REL.HEVC.D.ARM.OBJ: v01.00.00.01
authorJacob Stiffler <j-stiffler@ti.com>
Tue, 20 Feb 2018 15:33:01 +0000 (10:33 -0500)
committerJacob Stiffler <j-stiffler@ti.com>
Mon, 10 Dec 2018 18:15:48 +0000 (13:15 -0500)
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
21 files changed:
Client/Build/ARM/Out/h265vdec_pp [new file with mode: 0755]
Client/Build/ARM/makefile [new file with mode: 0644]
Client/Build/VC/h265vdec_pp_vc/h265vdec_pp_vc.sln [new file with mode: 0644]
Client/Build/VC/h265vdec_pp_vc/h265vdec_pp_vc.vcproj [new file with mode: 0644]
Client/Test/Inc/h265vdec_pp_allocutils.h [new file with mode: 0644]
Client/Test/Inc/h265vdec_pp_buffer_manager.h [new file with mode: 0644]
Client/Test/Inc/h265vdec_pp_parsecfg.h [new file with mode: 0644]
Client/Test/Src/h265vdec_pp_allocutils.c [new file with mode: 0644]
Client/Test/Src/h265vdec_pp_buffer_manager.c [new file with mode: 0644]
Client/Test/Src/h265vdec_pp_parsecfg.c [new file with mode: 0644]
Client/Test/Src/h265vdec_pp_testapp.c [new file with mode: 0644]
Client/Test/TestVecs/Config/Testparams.cfg [new file with mode: 0644]
Client/Test/TestVecs/Input/airshow_352x288.265 [new file with mode: 0644]
Client/Test/TestVecs/Reference/REF_airshow_352x288.yuv [new file with mode: 0644]
Docs/ARM_HEVC_Decoder_01.00.00_manifest.html [new file with mode: 0644]
Docs/ARM_HEVC_Decoder_66AK2X_DataSheet.pdf [new file with mode: 0644]
Docs/ARM_HEVC_Decoder_AM57xx_DataSheet.pdf [new file with mode: 0644]
Docs/ARM_HEVC_Decoder_ReleaseNotes.pdf [new file with mode: 0644]
Docs/ARM_HEVC_Decoder_UserGuide.pdf [new file with mode: 0644]
Inc/exp_pp_h265decoder.h [new file with mode: 0644]
Lib/h265vdec_pp_lib.a [new file with mode: 0644]

diff --git a/Client/Build/ARM/Out/h265vdec_pp b/Client/Build/ARM/Out/h265vdec_pp
new file mode 100755 (executable)
index 0000000..760fa7e
Binary files /dev/null and b/Client/Build/ARM/Out/h265vdec_pp differ
diff --git a/Client/Build/ARM/makefile b/Client/Build/ARM/makefile
new file mode 100644 (file)
index 0000000..e441cfa
--- /dev/null
@@ -0,0 +1,91 @@
+#**********************************************************************#\r
+#                      H265 Decoder Testapp Makefile                   #\r
+#**********************************************************************#\r
+\r
+#----------------------------------------------------------------------#\r
+# Defining the Root and Common Directories                             #\r
+#----------------------------------------------------------------------#\r
+PRJROOTDIR := ../../..\r
+OUTPUTDIR = $(PRJROOTDIR)/Client/Build/ARM/Out\r
+MAPDIR = $(PRJROOTDIR)/Client/Build/ARM/Map\r
+OBJDIR = Obj\r
+#----------------------------------------------------------------------#\r
+# Defining the output file                                             #\r
+#----------------------------------------------------------------------#\r
+OUTPUT := $(OUTPUTDIR)/h265vdec_pp\r
+#----------------------------------------------------------------------#\r
+# Compiler executable                                                  #\r
+#----------------------------------------------------------------------#\r
+CC := arm-linux-gnueabihf-gcc\r
+\r
+#----------------------------------------------------------------------#\r
+# Linker executable                                                    #\r
+#----------------------------------------------------------------------#\r
+LINKER := arm-linux-gnueabihf-gcc\r
+\r
+#----------------------------------------------------------------------#\r
+# Map File Creation                                                    #\r
+#----------------------------------------------------------------------#\r
+LDFLAGS = -Wl,-Map=$(MAPDIR)/h265vdec_pp.map\r
+\r
+#----------------------------------------------------------------------#\r
+# Defining all the source files                                        #\r
+#----------------------------------------------------------------------#\r
+SOURCES :=  h265vdec_pp_allocutils.c \\r
+            h265vdec_pp_buffer_manager.c \\r
+            h265vdec_pp_testapp.c \\r
+               h265vdec_pp_parsecfg.c \\r
+\r
+\r
+#----------------------------------------------------------------------#\r
+# Deriving object file list                                            #\r
+#----------------------------------------------------------------------#\r
+OBJS := ${SOURCES:%.c=%.o}\r
+OBJS := ${OBJS:%=$(OBJDIR)/%}\r
+\r
+#----------------------------------------------------------------------#\r
+# Defining flags for compilation                                       #\r
+#----------------------------------------------------------------------#\r
+CC_FLAGS := -c -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon -O3\r
+\r
+#----------------------------------------------------------------------#\r
+# Any MACRO definitions needs to be included                           #\r
+#----------------------------------------------------------------------#\r
+DEFINES :=  -DARM_PROFILE\r
+\r
+#----------------------------------------------------------------------#\r
+# Defining all the include directory paths                             #\r
+#----------------------------------------------------------------------#\r
+INCLUDES := -I $(PRJROOTDIR)/Client/Test/Inc -I $(PRJROOTDIR)/Inc  \r
+\r
+#----------------------------------------------------------------------#\r
+# Defining the library required                                        #\r
+#----------------------------------------------------------------------#\r
+LIBRARY  := $(PRJROOTDIR)/Lib/h265vdec_pp_lib.a\r
+\r
+#----------------------------------------------------------------------#\r
+# Compiling the C source files to get the corresponding object files   #\r
+#----------------------------------------------------------------------#\r
+$(OBJDIR)/%.o:%.c\r
+       -mkdir -p $(OBJDIR)\r
+       $(CC) $(CC_FLAGS) $(DEFINES) $(INCLUDES) -o $@ $<\r
+\r
+#----------------------------------------------------------------------#\r
+# Rules to build the target.                                           #\r
+#----------------------------------------------------------------------#\r
+$(OUTPUT): $(OBJS) $(LIBRARY)\r
+        $(LINKER) -lpthread -lrt $(OBJS) $(LIBRARY) -o $(OUTPUT) $(LDFLAGS)\r
+\r
+#----------------------------------------------------------------------#\r
+# Defining remove and force remove flag for target clean               #\r
+#----------------------------------------------------------------------#\r
+RM := rm\r
+RM_FLAGS := -f\r
+clean:\r
+       $(RM) $(RM_FLAGS) $(OBJS) $(OUTPUT) $(MAPDIR)/h265vdec_pp.map\r
+vpath %.c $(PRJROOTDIR)/Client/Test/Src/\r
+\r
+\r
+\r
+\r
+\r
diff --git a/Client/Build/VC/h265vdec_pp_vc/h265vdec_pp_vc.sln b/Client/Build/VC/h265vdec_pp_vc/h265vdec_pp_vc.sln
new file mode 100644 (file)
index 0000000..6e493d6
--- /dev/null
@@ -0,0 +1,20 @@
+\r
+Microsoft Visual Studio Solution File, Format Version 10.00\r
+# Visual C++ Express 2008\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h265vdec_pp_vc", "h265vdec_pp_vc.vcproj", "{029FDDE3-EB06-4C9D-BE44-45C45DFBF47B}"\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug|Win32 = Debug|Win32\r
+               Release|Win32 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {029FDDE3-EB06-4C9D-BE44-45C45DFBF47B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {029FDDE3-EB06-4C9D-BE44-45C45DFBF47B}.Debug|Win32.Build.0 = Debug|Win32\r
+               {029FDDE3-EB06-4C9D-BE44-45C45DFBF47B}.Release|Win32.ActiveCfg = Release|Win32\r
+               {029FDDE3-EB06-4C9D-BE44-45C45DFBF47B}.Release|Win32.Build.0 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+EndGlobal\r
diff --git a/Client/Build/VC/h265vdec_pp_vc/h265vdec_pp_vc.vcproj b/Client/Build/VC/h265vdec_pp_vc/h265vdec_pp_vc.vcproj
new file mode 100644 (file)
index 0000000..1899262
--- /dev/null
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="9.00"\r
+       Name="h265vdec_pp_vc"\r
+       ProjectGUID="{029FDDE3-EB06-4C9D-BE44-45C45DFBF47B}"\r
+       RootNamespace="h265vdec_pp_vc"\r
+       TargetFrameworkVersion="196613"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="../../../Test/Inc;../../../../Inc"\r
+                               PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="4"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="..\..\..\..\Lib\h265vdec_pp_vc.lib"\r
+                               IgnoreAllDefaultLibraries="false"\r
+                               GenerateDebugInformation="true"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="2"\r
+                       WholeProgramOptimization="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="2"\r
+                               EnableIntrinsicFunctions="true"\r
+                               AdditionalIncludeDirectories="../../../Test/Inc;../../../../Inc"\r
+                               PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;"\r
+                               RuntimeLibrary="0"\r
+                               EnableFunctionLevelLinking="true"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="..\..\..\..\Lib\h265vdec_pp_vc.lib"\r
+                               GenerateDebugInformation="true"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="Source Files"\r
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\..\..\Test\Src\h265vdec_pp_allocutils.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Test\Src\h265vdec_pp_buffer_manager.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Test\Src\h265vdec_pp_parsecfg.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Test\Src\h265vdec_pp_testapp.c"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Header Files"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\..\..\Test\Inc\h265vdec_pp_allocutils.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Test\Inc\h265vdec_pp_buffer_manager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Test\Inc\h265vdec_pp_parsecfg.h"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
diff --git a/Client/Test/Inc/h265vdec_pp_allocutils.h b/Client/Test/Inc/h265vdec_pp_allocutils.h
new file mode 100644 (file)
index 0000000..bb350c7
--- /dev/null
@@ -0,0 +1,91 @@
+/** ===========================================================================
+ * @file h265dec_allocutils.h
+ *
+ * @brief This file declares utility functions used for memory allocation as 
+ *        part of test application.
+ *
+ * ============================================================================
+ *
+ * Copyright © PathPartner Technology, 2012-2015
+ *
+ * This material,including documentation and  any related computer programs,is
+ * protected by copyright controlled by PathPartner Technology. All rights are
+ * reserved.
+ *
+ * ============================================================================
+ *
+ * <b> REVISION HISTORY </b>
+ * @n  ================  @n
+ * @version 0.1 : 30-Jun-2012 :  Sunil K : Initial Code
+ * $RevLog$
+ * 
+ *=============================================================================
+ */
+
+#ifndef _H265DEC_ALLOCUTILS_
+#define _H265DEC_ALLOCUTILS_
+
+/*******************************************************************************
+*   INCLUDE FILES
+*******************************************************************************/
+
+#include "exp_pp_h265decoder.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#define PP_H265DEC_MAX_MEMTAB   70
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/*******************************************************************************
+*   FUNCTION PROTOTYPES
+*******************************************************************************/
+
+/**
+******************************************************************************
+* @fn MEMMGR_AllocMemoryRequirements (tPPQueryMemRecords  *apQueryMemRecords,
+*                                         tPPu32 aNumMemTabEntries)
+*
+*
+* @brief This function is a utility function used to allocate memory
+*         as per the modules request
+*
+*
+* @param apQueryMemRecords [IN/OUT] Pointer to memory query records
+*
+* @param aNumMemTabEntries [OUT] Number of Mem Tab Entries
+*
+* @return Status code - SC_PP_SUCCESS       : if success
+*                       EC_PP_OUT_OF_MEMORY : insufficient memory status
+******************************************************************************
+*/
+
+extern tPPResult MEMMGR_AllocMemoryRequirements (
+  tPPQueryMemRecords  *apQueryMemRecords, tPPu32 aNumMemTabEntries);
+
+/**
+******************************************************************************
+* @fn MEMMGR_DeAllocMemory (tPPBaseDecoder *apBase)
+*
+* @brief This function destroys H.265 video decoder object
+*
+* @param appBase        [IN] Pointer to decoder object
+*
+* @return Status code - SC_PP_SUCCESS if success, or the following error codes
+*                       EC_PP_FAILURE : General failure
+*
+******************************************************************************
+*/
+extern tPPResult MEMMGR_DeAllocMemory (tPPQueryMemRecords  *apQueryMemRecords);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_EXP_PP_H265decODER_H_*/
+
+
diff --git a/Client/Test/Inc/h265vdec_pp_buffer_manager.h b/Client/Test/Inc/h265vdec_pp_buffer_manager.h
new file mode 100644 (file)
index 0000000..2bf1c10
--- /dev/null
@@ -0,0 +1,128 @@
+/** ===========================================================================
+ * @file h265dec_buffer_manager.h
+ *
+ * @brief This file contains implementation of all the API functions for
+ *        PathPartner's H265 decoder.
+ *
+ * ============================================================================
+ *
+ * Copyright © PathPartner Technology, 2012-2015
+ *
+ * This material,including documentation and  any related computer programs,is
+ * protected by copyright controlled by PathPartner Technology. All rights are
+ * reserved.
+ *
+ * ============================================================================
+ *
+ * <b> REVISION HISTORY </b>
+ * @n  ================  @n
+ * @version 0.1 : 30-Jun-2012 :  Sunil K : Structure declaration,
+ *                                            API changes,function additions
+ * $RevLog$
+ *
+ *=============================================================================
+ */
+
+
+#ifndef BUFFMANAGER_H_
+#define BUFFMANAGER_H_
+
+/***************************************************************
+*  INCLUDE FILES
+****************************************************************/
+#include "exp_pp_h265decoder.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+/*******************************************************************************
+*   MACROS AND STRUCTURES
+*******************************************************************************/
+
+#define MAX_BUFF_ELEMENTS 17
+#define DPB_MAXLUMAPS 8912896  /*Value for level 5.2 from Table A-1*/
+#define MIN(x,y) ((x < y) ? x : y)
+
+/**
+ *  @brief      Status of the buffer elements.
+ */
+typedef enum {
+    BUFFMGR_FREE = 0,
+    BUFFMGR_USED = 1
+} BUFFMGR_BufferStatus;
+
+/**
+ *  @brief      Definition of buffer element in the buffer array.
+ *            every time a new buffer is requested buffer manager
+ *            module returns a pointer to one of the elements
+ *            defined below from the buffer array
+ */
+typedef struct BuffEle
+{
+    /** Unique Id which identifies the buffer element */
+    tPPu32 bufId;
+    /**
+     * Status of the buffer element: can be either free for allocation or
+     * held by the codec and cannot be allocated
+     */
+    BUFFMGR_BufferStatus bufStatus;
+    /** Size of buffer members held by this buffer element in bytes */
+    tPPu32 bufSize[3];
+    /** buffer members which contain the address of the actual buffers
+     * represented by this buffer element */
+    tPPu8 *buf[3];
+} BUFFMGR_buffEle;
+
+typedef BUFFMGR_buffEle* BUFFMGR_buffEleHandle;
+
+extern BUFFMGR_buffEle buffArray[MAX_BUFF_ELEMENTS];
+
+/*******************************************************************************
+*   FUNCTION PROTOTYPES
+*******************************************************************************/
+
+/**
+* @fn BUFFMGR_Init()
+* @brief The BUFFMGR_Init function is called by the test application to
+*        initialise the global buffer element array to default and to allocate
+*        required number of memory data for reference and output buffers.
+*        The maximum required dpb size is defined by the supported profile &
+*        level.
+*/
+extern tPPi32 BUFFMGR_Init(tPPu32 totBufSize);
+
+/**
+* @fn BUFFMGR_ReInit()
+* @brief The BUFFMGR_ReInit function allocates global luma and chroma buffers
+*        and allocates entire space to first element. This element will be used
+*        in first frame decode. After the picture's height and width and its
+*        luma and chroma buffer requirements are obtained the global luma and 
+*        chroma buffers are re-initialised to other elements in the buffer arary
+*/
+extern tPPi32 BUFFMGR_ReInit(tPPu32 lumaOneFrameBufSize,
+                             tPPu32 chromaOneFrameBufSize);
+/**
+* @fn BUFFMGR_GetFreeBuffer()
+* @brief The BUFFMGR_GetFreeBuffer function searches for a free buffer in the
+*        global buffer array and returns the address of that element. Incase
+*        if none of the elements are free then it returns NULL
+*/
+extern BUFFMGR_buffEleHandle BUFFMGR_GetFreeBuffer(void);
+
+/**
+*@fn BUFFMGR_ReleaseBuffer(buffId)
+*@brief The BUFFMGR_ReleaseBuffer function takes an array of buffer-ids
+*        which are released by the test-app. "0" is not a valid buffer Id
+*        hence this function keeps moving until it encounters a buffer Id
+*        as zero or it hits the MAX_BUFF_ELEMENTS
+*/
+extern void BUFFMGR_ReleaseBuffer(tPPi32 bufffId[]);
+
+/**
+*@fn BUFFMGR_DeInit()
+*@brief        The BUFFMGR_DeInit function releases all memory allocated by 
+*              buffer manager.
+*/
+extern void BUFFMGR_DeInit(void);
+
+#endif /* BUFFMANAGER_H_ */
+
diff --git a/Client/Test/Inc/h265vdec_pp_parsecfg.h b/Client/Test/Inc/h265vdec_pp_parsecfg.h
new file mode 100644 (file)
index 0000000..26b45d8
--- /dev/null
@@ -0,0 +1,141 @@
+/** ===========================================================================
+* @file h265enc_config.h
+*
+* @brief This file contains structures and function declaration required
+*        to parse the file
+* 
+* ============================================================================
+*
+* Copyright © PathPartner Technology, 2012-2015
+*
+* This material,including documentation and  any related computer programs,is
+* protected by copyright controlled by PathPartner Technology. All rights are
+* reserved.
+*
+* ============================================================================
+*
+* <b> REVISION HISTORY </b>
+* @n  ================  @n
+* @version 0.1 : 10-Oct-2012 : Praveen GB : Initial Code
+* @version 0.2 : 02-July-2014 : Karthik SM : Added config file parameters 
+* $RevLog$
+*
+*=============================================================================
+*/
+
+#ifndef _H265DEC_PARSECFG_H_
+#define _H265DEC_PARSECFG_H_
+
+/***************************************************************
+*  INCLUDE FILES
+****************************************************************/
+
+#include "exp_pp_h265decoder.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+/*******************************************************************************
+*   MACROS AND STRUCTURES
+*******************************************************************************/
+
+/*#define DUMP_ERROR*/
+
+#define MAX_ITEMS_TO_PARSE 256
+typedef struct ppH265Dec_ConfigParams tPP_H265_ConfigParams;
+
+/** Create parameter structure for decoder
+ *  @brief Structure containing attributes of the decoder object to be instanced
+ *  @ingroup H265_DECODER
+ */
+struct ppH265Dec_ConfigParams
+{
+    /* Max width*/
+    tPPi32  nMaxWidth;
+    /* Max height */
+    tPPi32  nMaxHeight;
+    /* Number of CPUs */
+    tPPi32  nNumThreads;
+    /* Number of frames to decode */
+    tPPi32  nNumFramesToDecode;
+
+    tPPi8 nInputFile[FILE_NAME_SIZE];
+    tPPi8 nOutputFile[FILE_NAME_SIZE];
+    tPPi8 nRefFile[FILE_NAME_SIZE];
+    tPPi32 nInputLowDelayMode;
+    tPPi32 nOutputLowDelayMode;
+    tPPi32 nNumCTURows;
+    tPPi32 nMetadataType;
+    tPPi32 nDecodeHeader;
+};
+typedef struct H265CfgParseTokenMap tH265CfgParseTokenMap;
+struct H265CfgParseTokenMap{
+  tPPi8     *pTokenName;
+  void      *pPlace;
+  tPPi32    nType;
+};
+ /**
+ *******************************************************************************
+ *  @struct sTokenMapping
+ *  @brief  Token Mapping structure for Error reporting
+ *          This structure contains error reporting strings which are mapped to
+ *          Codec errors
+ *
+ *  @param  pErrorName : Pointer to the error string
+ *
+ *******************************************************************************
+*/
+typedef struct H265_ErrorMap tH265_sErrorMap;
+struct H265_ErrorMap{
+  tPPi8 *pErrorName;
+};
+
+
+tPPResult gParseConfigFile(FILE                  *afpCfgFile,
+                           tPP_H265_CreateParams *apH265_CfgParams);
+
+/*******************************************************************************
+*   FUNCTION PROTOTYPES
+*******************************************************************************/
+
+/**
+********************************************************************************
+ *  @fn     readparamfile(IH265VDEC_Params *params, tPPi8 *configFile)
+ *  @brief  Reads the entire param file contents into a global buffer,which is
+ *          used for parsing and updates the params to given addresses.
+ *
+ *  @param[in]  params : pointer to the codec params interface structure
+ *  @param[in]  configFile : Name of the configuration file with path
+ *
+ *  @return     0 - if successfully parsed all the elements in param file and
+ *                  their  values read into the memory addresses given in
+ *                  token mappign array.
+ *             XDM_EFAIL - For any file read operation related errors or if
+ *                  unknown parameter names are entered or if the parameter
+ *                  file syntax is not in compliance with the below
+ *                  implementation.
+********************************************************************************
+*/
+tPPi32 readparamfile(tPPi8 *configFile);
+/**
+********************************************************************************
+*  @fn     tPPResult gH265_Error_Report(FILE * fTraceFile,
+*                                       tPPi32 nError)
+*
+*  @brief  This function will print error messages
+*          This function will check for codec errors which are mapped to
+*          errors in ppH265Dec_StatusParams structure and dumps them to a file
+*          Returns EC_PP_FAILURE in case of fatal error
+*
+*  @param  fTraceFile [IN]   File pointer to the trace log file
+*
+*  @param  nError      [IN]   Error message
+*
+*  @return     SC_PP_SUCCESS -  when there is no fatal error
+*              EC_PP_FAILURE - when it is fatal error
+********************************************************************************
+*/
+tPPResult gH265_Error_Report(FILE *fTraceFile,
+                             tPPi32 nError);
+#endif
+
diff --git a/Client/Test/Src/h265vdec_pp_allocutils.c b/Client/Test/Src/h265vdec_pp_allocutils.c
new file mode 100644 (file)
index 0000000..baf9155
--- /dev/null
@@ -0,0 +1,108 @@
+/** ===========================================================================
+* @file h265vdec_pp_allocutilis.c
+*
+* @brief This file parses input config file
+*
+* ============================================================================
+*
+* Copyright © PathPartner Technology, 2012-2015
+*
+* This material,including documentation and  any related computer programs,is
+* protected by copyright controlled by PathPartner Technology. All rights are
+* reserved.
+*
+* ============================================================================
+*
+* <b> REVISION HISTORY </b>
+* @n  ================  @n
+* @version 0.1 : 10-Oct-2012 : Praveen GB : Initial Code
+* @version 0.2 : 02-July-2014 : Karthik SM : Added config file parameters
+* $RevLog$
+*
+*=============================================================================
+*/
+
+/*******************************************************************************
+*   INCLUDE FILES
+*******************************************************************************/
+
+#include "exp_pp_h265decoder.h"
+#include "h265vdec_pp_allocutils.h"
+
+/*******************************************************************************
+*   FUNCTION DEFINITIONS
+*******************************************************************************/
+
+/**
+******************************************************************************
+* @fn MEMMGR_AllocMemoryRequirements (tPPQueryMemRecords  *apQueryMemRecords,
+*                                         tPPu32 aNumMemTabEntries)
+*
+*
+* @brief This function is a utility function used to allocate memory
+*         as per the modules request
+*
+*
+* @param apQueryMemRecords [IN/OUT] Pointer to memory query records
+*
+* @param aNumMemTabEntries [OUT] Number of Mem Tab Entries
+*
+* @return Status code - SC_PP_SUCCESS       : if success
+*                       EC_PP_OUT_OF_MEMORY : insufficient memory status
+******************************************************************************
+*/
+tPPResult MEMMGR_AllocMemoryRequirements (tPPQueryMemRecords  \
+                                          *apQueryMemRecords,
+                                          tPPu32 aNumMemTabEntries)
+{
+    tPPu32 nMemTabIdx = 0;
+
+    for(nMemTabIdx = 0; nMemTabIdx < aNumMemTabEntries; nMemTabIdx++)
+    {
+        apQueryMemRecords[nMemTabIdx].allotedHandle =
+            (tPPu8 *) malloc(apQueryMemRecords[nMemTabIdx].reqSize);
+
+        if (apQueryMemRecords[nMemTabIdx].allotedHandle == NULL)
+        {
+            return EC_PP_OUT_OF_MEMORY;
+        }
+    }
+
+    return SC_PP_SUCCESS;
+}
+
+
+/**
+******************************************************************************
+* @fn MEMMGR_DeAllocMemory (tPPBaseDecoder *apBase)
+*
+* @brief This function destroys H.265 video decoder object
+*
+* @param appBase        [IN] Pointer to decoder object
+*
+* @return Status code - SC_PP_SUCCESS if success, or the following error codes
+*                       EC_PP_FAILURE : General failure
+*
+******************************************************************************
+*/
+tPPResult MEMMGR_DeAllocMemory (tPPQueryMemRecords  *apQueryMemRecords)
+{
+    tPPi32 nIndex;
+
+    if(apQueryMemRecords == NULL)
+    {
+      return EC_PP_FAILURE;
+    }
+
+    for(nIndex = PP_H265DEC_MAX_MEMTAB-1; nIndex >= 0; nIndex--)
+    {
+        if(apQueryMemRecords[nIndex].allotedHandle != NULL)
+        {
+            free(apQueryMemRecords[nIndex].allotedHandle);
+            apQueryMemRecords[nIndex].allotedHandle = NULL;
+        }
+    }
+
+    return SC_PP_SUCCESS;
+}/* MEMMGR_DeAllocMemory */
+
diff --git a/Client/Test/Src/h265vdec_pp_buffer_manager.c b/Client/Test/Src/h265vdec_pp_buffer_manager.c
new file mode 100644 (file)
index 0000000..ca580ad
--- /dev/null
@@ -0,0 +1,406 @@
+/** ===========================================================================
+* @file h265vdec_pp_buffer_mnge.c
+*
+* @brief This file contains implementation of all the buffer manager functions
+*        for PathPartner's H265 decoder
+*
+* ============================================================================
+*
+* Copyright © PathPartner Technology, 2012-2015
+*
+* This material,including documentation and  any related computer programs,is
+* protected by copyright controlled by PathPartner Technology. All rights are
+* reserved.
+*
+* ============================================================================
+*
+* <b> REVISION HISTORY </b>
+* @n  ================  @n
+* @version 0.1 : 30-Jun-2012 :  Sunil K : Initial Code
+* @version 0.2 : 20-jul-2014 :  Karthik SM :Modiofied alloc and dealloc
+* $RevLog$
+*
+*=============================================================================
+*/
+/** ===========================================================================
+* @file buffermanager.c
+*
+* @path $(PROJDIR)\src
+*
+****************************************************************/
+
+/*******************************************************************************
+*   INCLUDE FILES
+*******************************************************************************/
+
+#include "h265vdec_pp_buffer_manager.h"
+
+/*******************************************************************************
+*   MACROS 
+*******************************************************************************/
+
+#define OUTPUT_BUFFER_MEM_SIZE (98*1024*1024)
+
+/*******************************************************************************
+*   GLOBAL VARIABLES 
+*******************************************************************************/
+
+tPPu8   outputBufferMemory[OUTPUT_BUFFER_MEM_SIZE];
+tPPu8  *pOutputBufferMemory    = outputBufferMemory;
+tPPu32 outputBufferMemorySize  = OUTPUT_BUFFER_MEM_SIZE;
+
+/****************************************************************
+*  PUBLIC DECLARATIONS Defined here, used elsewhere
+****************************************************************/
+/*--------data declarations -----------------------------------*/
+BUFFMGR_buffEle buffArray[MAX_BUFF_ELEMENTS];
+tPPu8 *lumaGlobalBufferHandle = NULL;
+tPPu8 *chromaCbGlobalBufferHandle = NULL;
+tPPu8 *chromaCrGlobalBufferHandle = NULL;
+tPPu32 lumaGlobalBufferSize;
+tPPu32 chromaGlobalBufferSize;
+tPPu32 chromaCbGlobalBufferSize;
+tPPu32 chromaCrGlobalBufferSize;
+/*--------function prototypes ---------------------------------*/
+/****************************************************************
+*  PRIVATE DECLARATIONS Defined here, used only here
+****************************************************************/
+/*--------data declarations -----------------------------------*/
+/*--------function prototypes ---------------------------------*/
+/*--------macros ----------------------------------------------*/
+/*--------function definitions---------------------------------*/
+
+
+
+/*****************************************************************************/
+/**
+ * @fn BUFFMGR_Init(tPPu32 totBufSize)
+ *
+ * @brief  Implementation of buffer manager initialization module
+ *
+ *        The BUFFMGR_Init function is called by the test application to
+ *        initialise the global buffer element array to default and to allocate
+ *        required number of memory data for reference and output buffers.
+ *        The maximum required dpb size is defined by the supported profile &
+ *        level.
+ *
+ * @param  totBufSize
+ *        Total buffer size to be allocated
+ *
+ * @return Success(0)/failure(-1) in allocating and initialising
+ *
+ */
+/*****************************************************************************/
+tPPi32 BUFFMGR_Init(tPPu32 totBufSize)
+{
+    tPPu32 tmpCnt;
+    /* total buffer size allocatable is divided into three parts one part goes
+     * to luma buffers and the other two parts go to luma buffers */
+    chromaGlobalBufferSize = (totBufSize/3);
+    chromaCbGlobalBufferSize = chromaGlobalBufferSize >> 1;
+    chromaCrGlobalBufferSize = chromaGlobalBufferSize >> 1;
+
+    lumaGlobalBufferSize   = (chromaGlobalBufferSize*2);
+
+    if(outputBufferMemorySize < lumaGlobalBufferSize)
+    {
+        return EC_PP_FAILURE;
+    }
+    /*------------------------------------------------------------------------*/
+    /* Allocate the global buffers                                            */
+    /*------------------------------------------------------------------------*/
+    lumaGlobalBufferHandle = pOutputBufferMemory;
+    pOutputBufferMemory += lumaGlobalBufferSize;
+    /*------------------------------------------------------------------------*/
+    /* Upadate the memory after allocating to luma buffer                     */
+    /*------------------------------------------------------------------------*/
+    outputBufferMemorySize -= lumaGlobalBufferSize;
+
+/*------------------------------------------------------------------------*/
+/* Check whether the memory requirement is reaching beyond the available  */
+/*------------------------------------------------------------------------*/
+    if(outputBufferMemorySize < chromaCbGlobalBufferSize)
+    {
+        lumaGlobalBufferHandle = 0;
+        pOutputBufferMemory = outputBufferMemory;
+        outputBufferMemorySize = OUTPUT_BUFFER_MEM_SIZE;
+        return EC_PP_FAILURE;
+    }
+    /*------------------------------------------------------------------------*/
+    /* Allocate the global buffers                                            */
+    /*------------------------------------------------------------------------*/
+    chromaCbGlobalBufferHandle = pOutputBufferMemory;
+    pOutputBufferMemory += chromaCbGlobalBufferSize;
+    /*------------------------------------------------------------------------*/
+    /* Upadate the memory after allocating to luma buffer                     */
+    /*------------------------------------------------------------------------*/
+    outputBufferMemorySize -= chromaCbGlobalBufferSize;
+
+    /*------------------------------------------------------------------------*/
+    /* Check whether the memory requirement is reaching beyond the available  */
+    /*------------------------------------------------------------------------*/
+    if(outputBufferMemorySize < chromaCrGlobalBufferSize)
+    {
+        lumaGlobalBufferHandle = 0;
+        chromaCbGlobalBufferHandle = 0;
+        pOutputBufferMemory = outputBufferMemory;
+        outputBufferMemorySize = OUTPUT_BUFFER_MEM_SIZE;
+        return EC_PP_FAILURE;
+    }
+    /*------------------------------------------------------------------------*/
+    /* Allocate the global buffers                                            */
+    /*------------------------------------------------------------------------*/
+    chromaCrGlobalBufferHandle = pOutputBufferMemory;
+    pOutputBufferMemory += chromaCrGlobalBufferSize;
+    /*------------------------------------------------------------------------*/
+    /* Upadate the memory after allocating to luma buffer                     */
+    /*------------------------------------------------------------------------*/
+    outputBufferMemorySize -= chromaCrGlobalBufferSize;
+
+
+    /* Initialise the elements in the global buffer array */
+    for(tmpCnt = 0; tmpCnt < MAX_BUFF_ELEMENTS; tmpCnt++)
+    {
+        buffArray[tmpCnt].bufId = tmpCnt+1;
+        buffArray[tmpCnt].bufStatus = BUFFMGR_FREE;
+        buffArray[tmpCnt].bufSize[2] = 0;
+        buffArray[tmpCnt].bufSize[1] = 0;
+        buffArray[tmpCnt].bufSize[0] = 0;
+        buffArray[tmpCnt].buf[2] = NULL;
+        buffArray[tmpCnt].buf[1] = NULL;
+        buffArray[tmpCnt].buf[0] = NULL;
+    }
+
+    /* Initialise the entire buffer space to first frame and
+     * re-modify buffer sizes as per the picture frame sizes
+     * after first frame decode */
+     buffArray[0].buf[2] = chromaCrGlobalBufferHandle;
+     buffArray[0].bufSize[2] = chromaCrGlobalBufferSize;
+     buffArray[0].buf[1] = chromaCbGlobalBufferHandle;
+     buffArray[0].bufSize[1] = chromaCbGlobalBufferSize;
+     buffArray[0].buf[0] = lumaGlobalBufferHandle;
+     buffArray[0].bufSize[0] = lumaGlobalBufferSize;
+     return SC_PP_SUCCESS;
+}
+
+
+/*****************************************************************************/
+/**
+ * @fn tPPi32 BUFFMGR_ReInit(tPPu32 lumaOneFrameBufSize,
+ *                    tPPu32 chromaOneFrameBufSize)
+ * @brief  Implementation of buffer manager
+ *       re-initialization module
+ *
+ *        The BUFFMGR_ReInit function allocates global luma and chroma buffers
+ *       and allocates entire space to first element. This element will be used
+ *       in first frame decode. After the picture's height and width and its
+ *       luma and chroma buffer requirements are obtained the global luma and
+ *       chroma buffers are re-initialised to other elements in teh buffer arary
+ *
+ * @param  lumaOneFrameBufSize
+ *        Buffer size for one luma frame in bytes
+ *
+ * @param  chromaOneFrameBufSize
+ *        Buffer size for one chroma frame in bytes
+ *
+ * @return Success(0)/failure(-1) in allocating and initialising
+ *
+ */
+/*****************************************************************************/
+tPPi32 BUFFMGR_ReInit(tPPu32 lumaOneFrameBufSize,
+                      tPPu32 chromaOneFrameBufSize)
+{
+    tPPu32 tmpLum, tmpChrmCb, tmpChrmCr,tmpCnt;
+    tPPu8 *tmpLumaBuf, *tmpChrmCbBuf,*tmpChrmCrBuf;
+    tPPu32 chromaCbOneFrameBufSize,chromaCrOneFrameBufSize;
+
+    /* check if the requested sizes exceed allocated buffer sizes */
+    if((lumaOneFrameBufSize > lumaGlobalBufferSize) ||
+        (chromaOneFrameBufSize > chromaGlobalBufferSize))
+    {
+        return EC_PP_FAILURE;
+    }
+
+    chromaCbOneFrameBufSize = (chromaOneFrameBufSize >> 1);
+    chromaCrOneFrameBufSize =  chromaCbOneFrameBufSize;
+
+    tmpLum = lumaGlobalBufferSize;
+    tmpChrmCb = chromaCbGlobalBufferSize;
+    tmpChrmCr = chromaCrGlobalBufferSize;
+    tmpLumaBuf = lumaGlobalBufferHandle;
+    tmpChrmCbBuf = chromaCbGlobalBufferHandle;
+    tmpChrmCrBuf = chromaCrGlobalBufferHandle;
+
+    /* now re-allocate buffer sizes for each element based on the
+    * per frame buffer requirements */
+    for(tmpCnt = 0;
+        (tmpCnt < MAX_BUFF_ELEMENTS) &&
+        ((tmpLum >= lumaOneFrameBufSize)) &&
+        ((tmpChrmCb >= chromaCbOneFrameBufSize)) &&
+        ((tmpChrmCr >= chromaCrOneFrameBufSize) );
+    tmpCnt++)
+    {
+        buffArray[tmpCnt].buf[0] = tmpLumaBuf;
+        buffArray[tmpCnt].buf[1] = tmpChrmCbBuf;
+        buffArray[tmpCnt].buf[2] = tmpChrmCrBuf;
+
+        buffArray[tmpCnt].bufSize[2] = chromaCrOneFrameBufSize;
+        buffArray[tmpCnt].bufSize[1] = chromaCbOneFrameBufSize;
+        buffArray[tmpCnt].bufSize[0] = lumaOneFrameBufSize;
+        /* update the local variables for next iteration */
+        tmpLum -= lumaOneFrameBufSize;
+        tmpChrmCb -= chromaCbOneFrameBufSize;
+        tmpChrmCr -= chromaCrOneFrameBufSize;
+        tmpLumaBuf += lumaOneFrameBufSize;
+        tmpChrmCbBuf += chromaCbOneFrameBufSize;
+        tmpChrmCrBuf += chromaCrOneFrameBufSize;
+    }
+
+    /* Initialise rest of the elements to NULL - not really required since
+    * they are anyway initialised to these default values in Init function */
+    for(; (tmpCnt < MAX_BUFF_ELEMENTS); tmpCnt++)
+    {
+        buffArray[tmpCnt].buf[0] = NULL;
+        buffArray[tmpCnt].buf[1] = NULL;
+        buffArray[tmpCnt].buf[2] = NULL;
+        buffArray[tmpCnt].bufSize[2] = 0;
+        buffArray[tmpCnt].bufSize[1] = 0;
+        buffArray[tmpCnt].bufSize[0] = 0;
+    }
+    return 0;
+}
+
+
+/*****************************************************************************/
+/**
+* @fn BUFFMGR_buffEleHandle BUFFMGR_GetFreeBuffer()
+*
+* @brief  Implementation of buffer manager get free buffer module.
+*         The BUFFMGR_GetFreeBuffer function searches for a free buffer in the
+*         global buffer array and returns the address of that element. Incase
+*         if none of the elements are free then it returns NULL
+*
+*
+* @return Valid buffer element address or NULL incase if no buffers are empty
+*
+*/
+/*****************************************************************************/
+BUFFMGR_buffEleHandle BUFFMGR_GetFreeBuffer()
+{
+    tPPu32 tmpCnt;
+    /* Since buffers are re-initialised later on its perfectly possible to
+    * have buffer elements with NULL as the buffer pointers - as soon as
+    * such buffer elements are encountered we need to stop search for
+    * free buffers
+    */
+    for(tmpCnt = 0;
+        (tmpCnt < MAX_BUFF_ELEMENTS) && (buffArray[tmpCnt].buf[0] != NULL);
+        tmpCnt++)
+    {
+        /* Check for first empty buffer in the array and return its address */
+        if(buffArray[tmpCnt].bufStatus == BUFFMGR_FREE)
+        {
+            buffArray[tmpCnt].bufStatus = BUFFMGR_USED;
+            return (&buffArray[tmpCnt]);
+        }
+    }
+    printf("Run short of frames !!\n");
+    fflush(stdout);
+    /* Incase if no elements in the array are free then return NULL */
+    return NULL;
+}
+
+
+/*****************************************************************************/
+/**
+* @fn void BUFFMGR_ReleaseBuffer(buffId)
+* @brief  Implementation of buffer manager
+*       release module
+*
+*        The BUFFMGR_ReleaseBuffer function takes an array of buffer-ids
+*        which are released by the test-app. "0" is not a valid buffer Id
+*        hence this function keeps moving until it encounters a buffer Id
+*        as zero or it hits the MAX_BUFF_ELEMENTS
+*
+*
+* @return None
+*
+*/
+/*****************************************************************************/
+void BUFFMGR_ReleaseBuffer(tPPi32 bufffId[])
+{
+    tPPu32 tmpCnt, tmpId;
+    for(tmpCnt = 0;
+        (tmpCnt < MAX_BUFF_ELEMENTS);
+        tmpCnt++)
+    {
+        tmpId = bufffId[tmpCnt];
+        /*
+        * Check if the buffer Id = 0 condition has reached. zero is not a
+        * valid buffer Id hence that value is used to identify the end of
+        * buffer array
+        */
+        if(tmpId == 0)
+        {
+            break;
+        }
+        /*
+        * convert the buffer-Id to its corresponding index in the global
+        * array
+        */
+        tmpId--;
+
+        if(tmpId >= MAX_BUFF_ELEMENTS) {
+            /* Inidcates an invalid buffer Id passed - this buffer Id can be
+            * ignored!! alternatively we can break here.
+            */
+            
+            printf("Trying to release a buffer using an invalid bufferId %d \
+            ignoring..\n", tmpId+1);
+            fflush(stdout);
+            continue;
+        }
+        if(buffArray[tmpId].bufStatus == BUFFMGR_FREE) {
+            /* Trying to release an already free bufffer this idicates some
+            *  mismanagement in buffer usage following printf will help
+            * application developer to identify any such problem in her
+            * algorithm
+            */
+            printf("Trying to release an already free buffer Id %d \n",
+                tmpId+1);
+            fflush(stdout);
+        }
+        /* Set the status of the buffer to FREE */
+        buffArray[tmpId].bufStatus = BUFFMGR_FREE;
+    }
+
+    return;
+}
+
+/*****************************************************************************/
+/**
+* @fn void BUFFMGR_DeInit()
+* @brief  Implementation of buffer manager de-initialization module
+*         The BUFFMGR_DeInit function releases all memory allocated by buffer
+*           manager.
+*
+* @return None
+*
+*/
+/*****************************************************************************/
+void BUFFMGR_DeInit()
+{
+    if(lumaGlobalBufferHandle)
+    {
+        lumaGlobalBufferHandle = 0;
+    }
+    if(chromaCbGlobalBufferHandle)
+    {
+        chromaCbGlobalBufferHandle = 0;
+    }
+    if(chromaCrGlobalBufferHandle)
+    {
+        chromaCrGlobalBufferHandle = 0;
+    }
+    return;
+}
diff --git a/Client/Test/Src/h265vdec_pp_parsecfg.c b/Client/Test/Src/h265vdec_pp_parsecfg.c
new file mode 100644 (file)
index 0000000..a3cdbd5
--- /dev/null
@@ -0,0 +1,484 @@
+/** ===========================================================================
+* @file h265vdec_pp_parsecfg.c
+*
+* @brief This file parses input config file
+* 
+* ============================================================================
+*
+* Copyright © PathPartner Technology, 2012-2015
+*
+* This material,including documentation and  any related computer programs,is
+* protected by copyright controlled by PathPartner Technology. All rights are
+* reserved.
+*
+* ============================================================================
+*
+* <b> REVISION HISTORY </b>
+* @n  ================  @n
+* @version 0.1 : 10-Oct-2012 : Praveen GB : Initial Code
+* @version 0.2 : 02-July-2014 : Karthik SM : Added config file parameters
+* $RevLog$
+*
+*=============================================================================
+*/
+
+/*******************************************************************************
+*   INCLUDE FILES
+*******************************************************************************/
+
+#include "h265vdec_pp_parsecfg.h"
+
+/*******************************************************************************
+*   GLOBAL VARIABLES 
+*******************************************************************************/
+
+static char buf[20000];
+/*Global structure to store config params*/
+extern tPP_H265_ConfigParams h265_ConfigParams;
+
+#define gConfig h265_ConfigParams
+/*----------------------------------------------------------------------------*/
+/* Array of elements of type sTokenMapping for parsing and holding the tokens */
+/* from the input configuration file.                                         */
+/*----------------------------------------------------------------------------*/
+static tH265CfgParseTokenMap sTokenMap[MAX_ITEMS_TO_PARSE] =
+{
+  /*--------------------------------------------------------------------------*/
+  /* Input file name along with path and type of element is string            */
+  /*--------------------------------------------------------------------------*/
+  {(tPPi8 *)"NumThreads",&gConfig.nNumThreads,sizeof(gConfig.nNumThreads)},
+  /*--------------------------------------------------------------------------*/
+  /* Input file name along with path and type of element is string            */
+  /*--------------------------------------------------------------------------*/
+  {(tPPi8 *)"InputFile",&gConfig.nInputFile,0},
+  /*--------------------------------------------------------------------------*/
+  /* Input file name along with path and type of element is string            */
+  /*--------------------------------------------------------------------------*/
+  {(tPPi8 *)"OutputFile",&gConfig.nOutputFile,0},
+  /*--------------------------------------------------------------------------*/
+  /* Reference file to bitmatch with encoded bit stream                       */
+  /*--------------------------------------------------------------------------*/
+  {(tPPi8 *)"ReferenceFile",&gConfig.nRefFile,0},
+
+  /*--------------------------------------------------------------------------*/
+  /* Width of input bit stream                                                */
+  /*--------------------------------------------------------------------------*/
+  {(tPPi8 *)"ImageWidth",&gConfig.nMaxWidth,sizeof(gConfig.nMaxWidth)},
+  /*--------------------------------------------------------------------------*/
+  /* Height of the bit stream                                                 */
+  /*--------------------------------------------------------------------------*/
+  {(tPPi8 *)"ImageHeight",&gConfig.nMaxHeight,sizeof(gConfig.nMaxHeight)},
+  /*--------------------------------------------------------------------------*/
+  /* Total number of frames to encode                                         */
+  /*--------------------------------------------------------------------------*/
+  {(tPPi8 *)"FramesToDecode",&gConfig.nNumFramesToDecode,
+                                           sizeof(gConfig.nNumFramesToDecode)},
+  /*--------------------------------------------------------------------------*/
+  {(tPPi8 *)"InputLowDelayMode",&gConfig.nInputLowDelayMode,
+                                       sizeof(gConfig.nInputLowDelayMode)},
+
+  {(tPPi8 *)"OutputLowDelayMode",&gConfig.nOutputLowDelayMode,
+                                       sizeof(gConfig.nOutputLowDelayMode)},
+
+  {(tPPi8 *)"NumCTURows",&gConfig.nNumCTURows,
+                                           sizeof(gConfig.nNumCTURows)},
+
+  {(tPPi8 *)"MetadataType",&gConfig.nMetadataType,
+                                           sizeof(gConfig.nMetadataType)},
+
+  {(tPPi8 *)"DecodeHeader",&gConfig.nDecodeHeader,
+                                           sizeof(gConfig.nDecodeHeader)},
+  /*--------------------------------------------------------------------------*/
+  /* ALWAYS the last element in the map                                       */
+  /*--------------------------------------------------------------------------*/
+  {(tPPi8 *)"\0",NULL,0}
+};
+/**
+********************************************************************************
+ *  @func   ParameterNameToMapIndex
+ *
+ *  @desc   Returns the index number from sTokenMap[] for a given parameter
+ *          name
+ *
+ *  @param  s : Name string.
+ *
+ *  @param  sTokenMap : Token map strucutre for variables specified in config
+ *                      file.
+ *
+ *  @return Index number if the string is a valid parameter name,
+ *          EC_PP_FAILURE for error
+ *******************************************************************************
+ */
+static tPPi32 ParameterNameToMapIndex(char *s,tH265CfgParseTokenMap *sTokenMap)
+{
+    tPPi32 i = 0;
+    /*------------------------------------------------------------------------*/
+    /* Loop for all the variables in the token map for variables specified in */
+    /* Decoder configuration file                                             */
+    /*------------------------------------------------------------------------*/
+    while(sTokenMap[i].pTokenName != NULL)
+    {
+        if(0 == strcmp((const char *)sTokenMap[i].pTokenName, s))
+        {
+            return i;
+        }
+        else
+        {
+            i++;
+        }
+    }
+    /*------------------------------------------------------------------------*/
+    /* Return "EC_PP_FAILURE" in case no record is found                      */
+    /*------------------------------------------------------------------------*/
+    return EC_PP_FAILURE;
+} /* ParameterNameToMapIndex() */
+/**
+********************************************************************************
+*  @fn     ParseContent
+*
+*  @desc   Parses the character array buf and writes global variable input,
+*          which is defined in configfile.h.  This hack will continue to be
+*          necessary to facilitate the addition of new parameters through the
+*          sTokenMap[] mechanism-Need compiler-generated addresses in
+*          sTokenMap
+*
+*  @param  buf : buffer to be parsed.
+*
+*  @param  bufsize : size of buffer.
+*
+*  @param  sTokenMap : Pointer to token map strucutre
+*
+*  @param  params : Pointer to Decoder instarnce creation params
+*
+*  @return status ( PASS/ FAIL)
+*******************************************************************************
+*/
+static tPPi32 ParseContent (char *buf, tPPi32 bufsize)
+{
+    char  *items[MAX_ITEMS_TO_PARSE];
+    tPPi32 MapIdx;
+    tPPi32 item     = 0;
+    tPPi32 InString = 0;
+    tPPi32 InItem   = 0;
+    char   *p       = buf;
+    char  *bufend  = &buf[bufsize];
+    tPPi32 IntContent;
+    tPPi32 i;
+    FILE       *fpErr   = stderr;
+    /*------------------------------------------------------------------------*/
+    /* Stage one: Generate an argc/argv-type list in items[], without comments*/
+    /* and whitespace.                                                        */
+    /* This is context insensitive and could be done most easily with lex(1). */
+    /*------------------------------------------------------------------------*/
+    while (p < bufend)
+    {
+        switch (*p)
+        {
+            case 13:
+                    p++;
+                    break;
+            case '#':
+                    /*--------------------------------------------------------*/
+                    /* Found comment Replace '#' with '\0' in case of comment */
+                    /* immediately following integer or string Skip till      */
+                    /*  EOL or EOF, whichever comes first                     */
+                    /*--------------------------------------------------------*/
+                    *p = '\0';
+                    while (*p != '\n' && p < bufend)
+                    {
+                        p++;
+                    }
+                    InString = 0;
+                    InItem = 0;
+                    break;
+            case '\n':
+                    InItem   = 0;
+                    InString = 0;
+                    *p++='\0';
+                    break;
+            case ' ':
+            case '\t':
+                    /*--------------------------------------------------------*/
+                    /* Skip whitespace, leave state unchanged                 */
+                    /*--------------------------------------------------------*/
+                    if (InString)
+                    {
+                        p++;
+                    }
+                    else
+                    {
+                        /*----------------------------------------------------*/
+                        /* Terminate non-strings once whitespace is found     */
+                        /*----------------------------------------------------*/
+                        *p++ = '\0';
+                        InItem = 0;
+                    }
+                    break;
+
+            case '"':
+                        /*----------------------------------------------------*/
+                        /* Begin/End of String                                */
+                        /*----------------------------------------------------*/
+                    *p++ = '\0';
+                    if (!InString)
+                    {
+                        items[item++] = p;
+                        InItem = ~InItem;
+                    }
+                    else
+                    {
+                        InItem = 0;
+                    }
+                    InString = ~InString; /* Toggle */
+                    break;
+
+            default:
+                    if (!InItem)
+                    {
+                        items[item++] = p;
+                        InItem = ~InItem;
+                    }
+                    p++;
+        }
+    }
+
+    item--;
+    /*------------------------------------------------------------------------*/
+    /* Parse every item read above and place them in various places           */
+    /*------------------------------------------------------------------------*/
+    for(i=0 ; i<item ; i += 3)
+    {
+        MapIdx = ParameterNameToMapIndex(items[i],sTokenMap);
+        /*----------------------------------------------------------------*/
+        /* All the parameters other than Coreteam mapping can be placed in*/
+        /* token map structure                                            */
+        /*----------------------------------------------------------------*/
+        if (strcmp ("=", items[i+1]))
+        {
+            fprintf(fpErr,
+                "\nfile:'=' expected as the second token in each line.");
+            return EC_PP_FAILURE ;
+        }
+        if(MapIdx == EC_PP_FAILURE)
+        {
+            return EC_PP_FAILURE;
+        }
+        if(sTokenMap[MapIdx].nType == 0)
+        {
+           strcpy((char *)sTokenMap[MapIdx].pPlace, (char *)items[i+2]);
+        }
+        else if (sTokenMap[MapIdx].nType == 4)
+        {
+             sscanf ((const char *)items[i+2], "%d", (&IntContent));
+             * ((tPPi32 *) (sTokenMap[MapIdx].pPlace)) = IntContent;
+        }
+        else if (sTokenMap[MapIdx].nType == 2)
+        {
+              sscanf ((const char *)items[i+2], "%d", &IntContent);
+              * ((tPPi16 *) (sTokenMap[MapIdx].pPlace)) =
+                                                        (tPPi16)IntContent;
+        }
+        else if (sTokenMap[MapIdx].nType == 1)
+        {
+             sscanf ((const char *)items[i+2], "%d", &IntContent);
+             * ((tPPi8 *) (sTokenMap[MapIdx].pPlace)) =
+                                                          (tPPi8)IntContent;
+        }
+        else
+        {
+            printf("\nParameter Name '%s' not recognized...  \n", items[i]);
+            fflush(stdout);
+        }
+    }
+    return 0 ;
+}  /* ParseContent () */
+
+/**
+********************************************************************************
+ *  @fn     GetConfigFileContent
+ *
+ *  @desc   Reads the configuration file content in a buffer and returns the
+ *          address
+ *          .
+ *  @param  *fname :File pointer of config file.
+ *
+ *  @return One line of data from the config file other wise zero.
+ *******************************************************************************
+ */
+static char *GetConfigFileContent (FILE *fname)
+{
+    tPPi32 FileSize;
+    /*------------------------------------------------------------------------*/
+    /* Check for the size of the file by going to end and finding the position*/
+    /* of the file                                                            */
+    /*------------------------------------------------------------------------*/
+    if (0 != fseek (fname, 0, SEEK_END))
+    {
+        return 0;
+    }
+    FileSize = ftell (fname);
+    /*------------------------------------------------------------------------*/
+    /* If the file size is greater than 20K or no content in file return      */
+    /*------------------------------------------------------------------------*/
+    if (FileSize < 0 || FileSize >= 20000)
+    {
+        return 0;
+    }
+    /*------------------------------------------------------------------------*/
+    /* Seek to the start of the frame                                         */
+    /*------------------------------------------------------------------------*/
+    if (0 != fseek (fname, 0, SEEK_SET))
+    {
+        return 0;
+    }
+    /*------------------------------------------------------------------------*/
+    /* Note that ftell() gives us the file size as the file system sees it.   */
+    /* The actual file size, as reported by fread() below will be often       */
+    /* smaller due to CR/LF to CR conversion and/or control characters after  */
+    /* the dos EOF marker in the file.                                        */
+    /*------------------------------------------------------------------------*/
+    FileSize = fread (buf, 1, FileSize, fname);
+    /*------------------------------------------------------------------------*/
+    /* To end the string put end of string marker                             */
+    /*------------------------------------------------------------------------*/
+    buf[FileSize] = '\0';
+
+    fclose (fname);
+
+    return buf;
+} /* GetConfigFileContent() */
+/**
+********************************************************************************
+ *  @fn     readparamfile(IH265VDEC_Params *params, tPPi8 *configFile)
+ *  @brief  Reads the entire param file contents into a global buffer,which is
+ *          used for parsing and updates the params to given addresses.
+ *
+ *  @param[in]  params : pointer to the codec params interface structure
+ *  @param[in]  configFile : Name of the configuration file with path
+ *
+ *  @return     0 - if successfully parsed all the elements in param file and
+ *                  their  values read into the memory addresses given in
+ *                  token mappign array.
+ *             XDM_EFAIL - For any file read operation related errors or if
+ *                  unknown parameter names are entered or if the parameter
+ *                  file syntax is not in compliance with the below
+ *                  implementation.
+********************************************************************************
+*/
+tPPi32 readparamfile(tPPi8 *configFile)
+{
+  tPPi8 *FileBuffer = NULL;
+  tPPi32  retVal ;
+  FILE        *fConfigFile;
+  /*--------------------------------------------------------------------------*/
+  /*  Open Test Config File                                                   */
+  /*--------------------------------------------------------------------------*/
+  fConfigFile = fopen((const char *)configFile,"r");
+  /*--------------------------------------------------------------------------*/
+  /*  Perform file open error check.                                          */
+  /*--------------------------------------------------------------------------*/
+  if (!fConfigFile)
+  {
+    printf("Couldn't open Parameter Config file %s.\n",(char *)configFile);
+    fflush(stdout);
+    return EC_PP_FAILURE;
+  }
+  /*--------------------------------------------------------------------------*/
+  /* read the content in a buffer                                             */
+  /*--------------------------------------------------------------------------*/
+  FileBuffer = (tPPi8*)GetConfigFileContent(fConfigFile);
+  /*--------------------------------------------------------------------------*/
+  /* if the buffer address is NULL then return error                          */
+  /*--------------------------------------------------------------------------*/
+  if(FileBuffer)
+  {
+    /*------------------------------------------------------------------------*/
+    /* Parse every string into items and group them into triplets.            */
+    /* Decode these ordered triplets into correspondign indices in the global */
+    /* Token Map arrray provided by the user.                                 */
+    /*------------------------------------------------------------------------*/
+    retVal  =
+       ParseContent((char *)FileBuffer,strlen((const char *)FileBuffer));
+
+    return retVal;
+  }
+  else
+  {
+    return EC_PP_FAILURE;
+  }
+  /*--------------------------------------------------------------------------*/
+  /*    Close Config Parameter File.                                          */
+  /*--------------------------------------------------------------------------*/
+  fclose(fConfigFile);
+}/* readparamfile */
+
+/*----------------------------------------------------------------------------*/
+/* Error strings which are mapped to codec errors                             */
+/* Please refer User guide for more details on error strings                  */
+/*----------------------------------------------------------------------------*/
+static tH265_sErrorMap gErrorStrings[32] =
+{
+  (tPPi8 *)"PP_H265_ERR_UNSUPPORTED = 1 \0",
+  (tPPi8 *)"PP_H265_ERR_NO_NALU_BEGIN_FOUND = 2\0",
+  (tPPi8 *)"PP_H265_ERR_NO_NALU_END_FOUND = 3 \0",
+  (tPPi8 *)"PP_H265_ERR_INVALID_NAL_UNIT_TYPE = 4\0",
+  (tPPi8 *)"PP_H265_ERR_INSUFFICIENT_BUFFER = 5\0",
+  (tPPi8 *)"PP_H265_ERR_DATA_SYNC = 6 \0",
+  (tPPi8 *)"PP_H265_ERR_CRITICAL  = 7 \0",
+  (tPPi8 *)"PP_H265_ERR_NO_VPS  = 8 \0",
+  (tPPi8 *)"PP_H265_ERR_VPS = 9 \0",
+  (tPPi8 *)"PP_H265_ERR_NO_SPS = 10 \0",
+  (tPPi8 *)"PP_H265_ERR_SPS = 11 \0",
+  (tPPi8 *)"PP_H265_ERR_NO_PPS = 12 \0",
+  (tPPi8 *)"PP_H265_ERR_PPS = 13 \0",
+  (tPPi8 *)"PP_H265_ERR_SLICELOSS = 14 \0",
+  (tPPi8 *)"PP_H265_ERR_SLICEHDR = 15 \0",
+  (tPPi8 *)"PP_H265_ERR_SLICEDATA = 16 \0",
+  (tPPi8 *)"PP_H265_ERR_RANDOM_ACCESS_SKIP = 17 \0",
+  (tPPi8 *)"PP_H265_ERR_REFPIC_NOT_FOUND  = 18\0",
+  (tPPi8 *)"PP_H265_ERR_META_DATA = 19 \0"
+};
+/**
+********************************************************************************
+*  @fn     tPPResult gH265_Error_Report(FILE * fTraceFile,
+*                                       tPPi32 nError)
+*
+*  @brief  This function will print error messages
+*          This function will check for codec errors which are mapped to
+*          errors in ppH265Dec_StatusParams structure and dumps them to a file
+*          Returns EC_PP_FAILURE in case of fatal error
+*
+*  @param  fTraceFile  [IN]   File pointer to the trace log file
+*
+*  @param  nError      [IN]   Error message
+*
+*  @return     SC_PP_SUCCESS -  when there is no fatal error
+*              EC_PP_FAILURE - when it is fatal error
+********************************************************************************
+*/
+tPPResult gH265_Error_Report(FILE *fTraceFile,
+                             tPPi32 nError)
+{
+
+    tPPi32 i;
+    if(nError)
+    {
+        /*--------------------------------------------------------------------*/
+        /* Loop through all the bits in error message and map to the global   */
+        /* error string                                                       */
+        /*--------------------------------------------------------------------*/
+        for (i = 1; i < 32; i ++)
+        {
+            if (nError & (1 << i))
+            {
+                printf("ERROR: %s \n",  (char *)gErrorStrings[i-1].pErrorName);
+                fflush(stdout);
+#ifdef DUMP_ERROR
+                fprintf(fTraceFile, "ERROR: %s \n",
+                    (char *)gErrorStrings[i].pErrorName);
+#endif
+            }
+        }
+    }
+    return SC_PP_SUCCESS;
+}
diff --git a/Client/Test/Src/h265vdec_pp_testapp.c b/Client/Test/Src/h265vdec_pp_testapp.c
new file mode 100644 (file)
index 0000000..a308ea6
--- /dev/null
@@ -0,0 +1,1394 @@
+/** ===========================================================================
+* @file h265dec_testapp.c
+*
+* @brief This file defines test application for PathPartner's
+*        H265 decoder.
+*
+* ============================================================================
+*
+* Copyright © PathPartner Technology, 2012-2015
+*
+* This material,including documentation and  any related computer programs,is
+* protected by copyright controlled by PathPartner Technology. All rights are
+* reserved.
+*
+* ============================================================================
+*
+* <b> REVISION HISTORY </b>
+* @n  ================  @n
+* @version 0.1 : 02-July-2012 : Sunil K : Initial Code
+* @version 0.2 : 14-Mar-2013  : Nandu : Code changes for multi threading
+* @version 0.3 : 9 -May-2014  : Akshatha: Changes done dynamic threading
+* $RevLog$
+*
+*=============================================================================
+*/
+
+/*******************************************************************************
+*   INCLUDE FILES
+*******************************************************************************/
+
+#include "exp_pp_h265decoder.h"
+#include "h265vdec_pp_allocutils.h"
+#include "h265vdec_pp_buffer_manager.h"
+#include "h265vdec_pp_parsecfg.h"
+
+#ifdef ARM_PROFILE
+#include <sys/time.h>
+#endif
+
+/*******************************************************************************
+*   MACROS 
+*******************************************************************************/
+
+#define Main() main(int argc, char *argv[])
+#define INFILE argv[1]
+#define OUTFILE argv[2]
+/* DBP size */
+#define H265_DPB_SIZE_PROFILE_3_0 (98*1024*1024)
+/* Macro to indicate maximum I/O file length */
+#define MAX_FILENAME_LEN (256)
+/* Macro to indicate maximum number of cores/threads */
+#define MAX_NUM_THREADS (4)
+/* Data packet size */
+#define H265_PACKET_SIZE (8*1024*1024)
+/* YUV dump enable*/
+#define FILE_DUMP
+/* Output low dealy buffer */
+#define LOW_DELAY_OUTBUFF   (2088960)
+/*#define LOW_DELAY_INTERFACE_SLICEMODE*/
+
+
+#ifdef ARM_PROFILE
+#include <sys/time.h>
+unsigned long long process_time;
+unsigned long long avg_process_time;
+unsigned long long peak_process_time;
+unsigned long long total_time;
+float frame_rate;
+unsigned int nFrmNo;
+struct timeval tProcessSt, tProcessEd;
+#endif
+
+#ifdef LOW_DELAY_INTERFACE_SLICEMODE
+tPPu32 nFileRead_Sync = 0;
+tPPu32 nNoBytes_Sync = 0;
+tPPu32 nByteRead_Sync = 0;
+tPPu32 nByteLeft_Sync = 0;
+tPPu32 nBufFilled_Sync = 0;
+/* Size of slice data NAL units  */
+tPPu32 Bytes[100] = {1522, 2457, 2825, 2135, 1718, 100, 158, 176, 140,
+                    187, 20, 22, 30, 25, 28};
+tPPu32 Bytes_frames[100] = {10657, 761, 126};
+tPPu32 inputSync_Counter = 0;
+#endif
+
+#ifndef _WIN32
+    pthread_t thread[MAX_NUM_THREADS];    /* Thread identifiers */
+#endif
+
+/* Arrays for input and output filenames */
+tPPi8  inFile[MAX_FILENAME_LEN];
+tPPi8  outFile[MAX_FILENAME_LEN];
+tPPi8  nTestCasesFile[FILE_NAME_SIZE];
+tPPi8  configFile[FILE_NAME_SIZE];
+tPPi8  aErTraceFile[FILE_NAME_SIZE + 4];
+/* Input Bitstream array*/
+tPPu8  nBitStream[H265_PACKET_SIZE];
+
+ /* File pointer variable for test and reference file */
+FILE *fpDataSync   = NULL;
+FILE *fErTraceFile = NULL;
+FILE *fpInput;
+FILE *fpOutput;
+FILE *fpRef;
+FILE  *fTestCasesFile;   
+
+/* Global structures */
+tPP_H265_CreateParams        h265_CreateParams;
+tPP_H265_DynamicParams       h265_DynamicParams;
+tPP_H265_ConfigParams        h265_ConfigParams;
+tPP_H265_DataSyncDesc        gInputDataSyncParams;
+tPPBaseDecoder              *h265dec = NULL;
+tPPYUVPlanarDisplayFrame     pOutBuf[PP_H265VDEC_MAX_REF_FRAMES + 1];
+tPPInput_BitStream           Input_buff;
+
+/* Global variables */
+tPPu32 nRowNum;
+tPPu16 nDataSyncIntrCntr;
+
+/* Buffers for output low delay */
+tPPu8  ybuf[LOW_DELAY_OUTBUFF];
+tPPu8  cbbuf[LOW_DELAY_OUTBUFF];
+tPPu8  crbuf[LOW_DELAY_OUTBUFF];
+tPPu8  nCompareOutput = 0;
+tPPu8  nRefBuf[LOW_DELAY_OUTBUFF];
+
+/* Volatile variables */
+volatile tPPi32 gCurrHeight = 0;
+volatile tPPu32 nInitCompleted = 0;
+volatile tPPi32 nDecFrmNo = 0;
+volatile tPPi32 nDispFrameNo = 0;
+volatile long completed_testapp;
+volatile tPPi32 nFrameDecodeStart ;
+volatile tPPi32 nFrameDecodeEnd;
+volatile tPPi32 nTerminateStatus;
+volatile tPPu32 nFrameSync = 0;
+volatile tPPu32 nStatus = 0;
+volatile tPPu32 nSlaveExit = 0;
+
+#ifdef ARM_PROFILE
+#define PROF_BUF_SIZE (10000)
+tPPu64  PeakDecodeTime( tPPu64  *pTimerBuffer, tPPu32  nNumFrame);
+#endif
+
+/*******************************************************************************
+*   FUNCTION PROTOTYPES 
+*******************************************************************************/
+
+static tPPu32 WriteOutputFrame(tPPYUVPlanarDisplayFrame *pOutFrame,
+                               FILE  *fpOutput);
+
+static tPPi32 CompareOutputFrame(tPPYUVPlanarDisplayFrame *pOutFrame,
+                               FILE  *fpRef);
+
+static void gGetProfileNums();
+
+static tPPi32 sPP_H265_MultiThreadInit(tPPMultiThreadParams *nMultiThreadParam,
+                                       tPPu32 nThreadID, tPPu32 nNumThreads);
+void *DecodeTask(void *thread_args);
+
+tPPResult gPP_PPL_AtomicAdd8(tPPu8 *ptr, tPPu8 val);
+
+void gH265_putDataSync(tPP_H265_DataSyncDesc *pDataSyncParams);
+
+void gH265_getDataSync(tPP_H265_DataSyncDesc *pDataSyncParams);
+
+tPPResult gH265_Error_Report(FILE *fTraceFile, tPPi32 nError);
+
+/*******************************************************************************
+*   FUNCTION DEFINITONS 
+*******************************************************************************/
+
+/**
+******************************************************************************
+* @fn main(tPPi32 argc, tPPi8 *argv[])
+*
+* @brief Main function calling H265 decoder APIs to decode H265 bitstream
+*        from file to YUV data into another file
+*        Usage: decoder.exe arg1 arg2
+*               arg1 - Name of the file containing H265 bitstream to be decoded
+*               arg2 - Name of the file to write output YUV data
+*
+* @param argc [IN] Argument count
+* @param argv [IN] Argument vector
+*
+* @return None
+******************************************************************************
+*/
+
+int main(tPPi32 argc, tPPi8 *argv[])
+{
+    tPPi32 nThreads = MAX_NUM_THREADS;
+    tPPi32 taskid[4]={0};      /* Id numbers for each thread */
+    tPPi32 i;
+#ifndef _WIN32
+    int *pThreadRetVal[(MAX_NUM_THREADS -1)] ;
+#endif
+    /* Initialize global variables */
+    nFrameDecodeStart = 0;
+    completed_testapp = 0;
+    /* basic initializations */
+    fpInput    = NULL;
+    fpOutput   = NULL;
+    h265_CreateParams.nMaxWidth = PP_H265_MAX_PIC_WIDTH;
+    h265_CreateParams.nMaxHeight = PP_H265_MAX_PIC_HEIGHT;
+    h265_CreateParams.nNumThreads = nThreads;
+
+#ifdef BATCH_MODE
+    strcpy((char *)configFile,"Testparams.cfg");
+#else
+#ifdef _WIN32
+    strcpy((char *)configFile,
+        "..\\..\\..\\Test\\TestVecs\\Config\\Testparams.cfg");
+#else
+    strcpy((char *)configFile,"Testparams.cfg");
+#endif
+#endif
+
+    /*------------------------------------------------------------------------*/
+    /*  Open Test Config File                                                 */
+    /*------------------------------------------------------------------------*/
+    fTestCasesFile = fopen((const char *)configFile,"rb");
+
+    if(fTestCasesFile == NULL)
+    {
+        printf("\n Unable to open Config List  %s\n",
+            (char *)configFile);
+        fflush(stdout);
+        return EC_PP_FILE_OPEN_FAIL;
+    }
+
+    if (readparamfile(configFile) < 0)
+    {
+        printf("Syntax Error in %s\n", configFile);
+        fflush(stdout);
+        printf("Exiting for this configuration...\n");
+        fflush(stdout);
+        fclose(fTestCasesFile);
+        return EC_PP_FILE_READ_FAIL;
+    }
+    /* Open input file */
+    fpInput = fopen((char *)h265_ConfigParams.nInputFile,"rb");
+    if(fpInput == NULL)
+    {
+        printf("Unable to open Input file.\n");
+        fflush(stdout);
+        fclose(fTestCasesFile);
+        return EC_PP_FILE_OPEN_FAIL;
+    }
+    /* Open ref file */
+    fpRef = fopen((char *)h265_ConfigParams.nRefFile,"rb");
+    if(fpRef != NULL)
+    {
+        nCompareOutput = 1;
+    }
+
+    /* Open output file */
+    fpOutput = fopen(h265_ConfigParams.nOutputFile,"wb");
+    if(fpOutput == NULL)
+    {
+        printf("Unable to open Output file.\n");
+        fflush(stdout);
+        fclose(fTestCasesFile);
+        fclose(fpInput);
+        if(fpRef)
+        {
+            fclose(fpRef);
+        }
+        return EC_PP_FILE_OPEN_FAIL;
+    }
+    if(h265_ConfigParams.nOutputLowDelayMode == 1)
+    {
+        fpDataSync = fopen("Dump.yuv","wb");
+         if(fpDataSync == NULL)
+         {
+             printf("Unable to output dump file.\n");
+             fflush(stdout);
+             fclose(fTestCasesFile);
+             fclose(fpInput);
+             fclose(fpOutput);
+             if(fpRef)
+             {
+                 fclose(fpRef);
+             }
+             return EC_PP_FILE_OPEN_FAIL;
+         }
+
+    }
+#ifdef DUMP_ERROR
+    /*----------------------------------------------------------------*/
+    /*    Trace file to write the decoded error details               */
+    /*----------------------------------------------------------------*/
+    strcpy((char *)aErTraceFile, (const char *)h265_ConfigParams.nOutputFile);
+    strcat((char *)aErTraceFile, ".txt");
+    fErTraceFile = fopen((const char *)aErTraceFile, "w");
+
+    if((fErTraceFile)== NULL)
+    {
+        printf("\n Unable to open trace file to write error \
+               details %s\n",(char *)fErTraceFile);
+        fflush(stdout);
+        fclose(fTestCasesFile);
+        fclose(fpInput);
+        fclose(fpOutput);
+        if(fpRef)
+        {
+            fclose(fpRef);
+        }
+        if(fpDataSync)
+        {
+            fclose(fpDataSync);
+        }
+        return EC_PP_FILE_OPEN_FAIL;
+    }
+    else
+    {
+        fprintf(fErTraceFile, "Config File   : %s\n",(char *)configFile);
+    }
+#endif
+    /*Copying Config params to create params*/
+    {
+      h265_CreateParams.nNumThreads         =
+          h265_ConfigParams.nNumThreads;
+      h265_CreateParams.nMaxWidth           =
+          h265_ConfigParams.nMaxWidth;
+      h265_CreateParams.nMaxHeight          =
+          h265_ConfigParams.nMaxHeight;
+      h265_CreateParams.nInputLowDelayMode  =
+          h265_ConfigParams.nInputLowDelayMode;
+      h265_CreateParams.nOutputLowDelayMode =
+          h265_ConfigParams.nOutputLowDelayMode;
+      h265_CreateParams.nNumCTURows =
+          h265_ConfigParams.nNumCTURows;
+
+      if(h265_ConfigParams.nMetadataType == 1)
+      {
+          h265_CreateParams.nMetadataType = PP_H265_METADATA_SEI_DATA;
+      }
+      else if(h265_ConfigParams.nMetadataType == 2)
+      {
+          h265_CreateParams.nMetadataType = PP_H265_METADATA_VUI_DATA;
+      }
+      else
+      {
+          if(h265_ConfigParams.nMetadataType == 3)
+          {
+              h265_CreateParams.nMetadataType =\
+                  PP_H265_METADATA_SEI_DATA|PP_H265_METADATA_VUI_DATA;
+          }
+          else
+          {
+              h265_CreateParams.nMetadataType = h265_ConfigParams.nMetadataType;
+          }
+      }
+
+      h265_DynamicParams.nDecodeHeader = h265_ConfigParams.nDecodeHeader;
+
+      if(h265_ConfigParams.nOutputLowDelayMode == PP_H265_NUMCTUROWS)
+      {
+          h265_DynamicParams.fOutputLowDelayFxn
+              = (gH265_DataSyncPutFxn)gH265_putDataSync;
+      }
+      else
+      {
+          h265_DynamicParams.fOutputLowDelayFxn = NULL;
+      }
+
+      if(h265_ConfigParams.nInputLowDelayMode == PP_H265_SLICEMODE)
+      {
+          h265_DynamicParams.fInputLowDelayFxn
+              = (gH265_DataSyncPutFxn)gH265_getDataSync;
+      }
+      else
+      {
+          h265_DynamicParams.fInputLowDelayFxn  = NULL;
+      }
+    }
+    nThreads = h265_CreateParams.nNumThreads ;
+
+#ifndef _WIN32
+    tPPi32 nRet;
+    for(i = 0; (i < nThreads); i++)
+    {
+        taskid[i] = i;
+    }
+
+    for(i = 1; i < nThreads; i++)
+    {
+        /* Create a thread with its argument in taskid[i] */
+        nRet = pthread_create(&thread[i], NULL, DecodeTask,
+            &taskid[i]);
+        if (nRet)
+        {
+            /* Check for errors */
+            printf("ERROR; return code from pthread_create() is %d\n", 
+                    nRet);
+            fflush(stdout);
+        }
+    }
+#else
+    nThreads = h265_CreateParams.nNumThreads = 1;
+    for(i = 0; (i < nThreads); i++)
+    {
+        taskid[i] = i;
+    }
+#endif
+
+    DecodeTask(&taskid[0]);
+
+    if(fTestCasesFile)
+    {
+         fclose(fTestCasesFile);
+    }
+    if(fErTraceFile)
+    {
+        fclose(fErTraceFile);
+    }
+    if(fpInput)
+    {
+        fclose(fpInput);
+    }
+    if(fpOutput)
+    {
+        fclose(fpOutput);
+    }
+    if(fpRef)
+    {
+        fclose(fpRef);
+    }
+    if(fpDataSync)
+    {
+        fclose(fpDataSync);
+    }
+    printf("Decode completed\n");
+    fflush(stdout);
+#ifndef _WIN32
+    for(i = 0; i < (nThreads - 1); i++)
+    {    
+        pthread_join(thread[(i + 1)] ,(void **)&pThreadRetVal[i]); 
+    }
+
+#endif
+    return 0;
+}
+/**
+********************************************************************************
+ * @fn     void *DecodeTask(void *thread_args)
+ *
+ * @brief   Task processed by threads
+ *
+ * @param   thread_args [IN]  thread arguments
+ *
+ * @return  void
+********************************************************************************
+*/
+void *DecodeTask(void *thread_args)
+{
+    tPPu32 nFileRead;
+    tPPu32 nNoBytes;
+    tPPu32 nByteRead ;
+    tPPu32 nByteLeft;
+    tPPu32 nIndex;
+    tPPu32 nBytesDec;
+    tPPu32 nBufFilled = 0;
+    tPPu32 nBytesConsumed = 0;
+    tPPu32 nTOTAL_FRAME_SIZE;
+    tPPu32 nLumSize;
+    tPPu32 nCbSize;
+    tPPu32 nCrSize;
+    tPPi32 nRetVal   = 0;
+    tPPi32 nInitDone = EC_PP_FAILURE;
+    tPPi32 nAllocDone = EC_PP_FAILURE;
+    /*MultiThread*/
+    tPPMultiThreadParams nMultiThreadParam;
+    tPPu32 nCurrThreadID = 0;
+    tPPi32 nRetV;
+
+#ifdef ARM_PROFILE
+    tPPu64  *pTimerBuffer;
+#endif
+    tPPu32 nNumMemTabEntries = 0;
+    tPPQueryMemRecords ReqMemTab[PP_H265DEC_MAX_MEMTAB];
+    BUFFMGR_buffEleHandle H265_dec_BuffEle = NULL;
+    tPPInFrame_Buff  H265_dec_InBuff;
+    tPPOutFrame_Buff H265_dec_OutBuff;
+    tPPDecParam_Status apVal ;
+
+    tPPi32 *thread_ptr = thread_args;
+    tPPi32 thread_no = *thread_ptr;
+    tPPi32 nResult = 0;
+
+#ifdef ARM_PROFILE
+    extern struct timeval tProcessSt, tProcessEd;
+#endif
+    nByteRead  = 0;
+    nByteLeft  = 0;
+    nBytesDec  = 0;
+    Input_buff.nBitStream = nBitStream;
+
+#ifdef ARM_PROFILE
+    pTimerBuffer = calloc((PROF_BUF_SIZE * sizeof(tPPu64)),sizeof(char));
+#endif
+
+    memset(ReqMemTab,0,sizeof(tPPQueryMemRecords)*PP_H265DEC_MAX_MEMTAB);
+
+    nCurrThreadID = thread_no ;
+
+    nRetVal = sPP_H265_MultiThreadInit(&nMultiThreadParam ,nCurrThreadID,
+        h265_CreateParams.nNumThreads);
+
+    if(nRetVal != SC_PP_SUCCESS)
+    {
+        printf("Invalid Multi thread init params\n");
+        fflush(stdout);
+        nInitDone = EC_PP_FAILURE;
+        goto EXIT_H265DEC;
+    }
+    if (nMultiThreadParam.nTaskID == kH265_TASK_MASTER)
+    {
+        if( BUFFMGR_Init(H265_DPB_SIZE_PROFILE_3_0) ==  EC_PP_FAILURE)
+        {
+            printf("\nError : Buffer allocation for DPB failed");
+            fflush(stdout);
+        }
+
+        if((h265_CreateParams.nMetadataType & PP_H265_METADATA_SEI_DATA)
+                                                  == PP_H265_METADATA_SEI_DATA)
+        {
+          H265_dec_InBuff.buf[3]  = malloc(sizeof(tH265_SeiMesseges)+ 4);
+        }
+        if((h265_CreateParams.nMetadataType & PP_H265_METADATA_VUI_DATA)
+                                                  == PP_H265_METADATA_VUI_DATA)
+        {
+          H265_dec_InBuff.buf[4]  = malloc(sizeof(tH265_VUIParameters)+ 4);
+        }
+        /* TODO: Ideally number of mem tab entires should be queried
+        * before passing the memory table */
+        /* Query the decoder for memory requirements*/
+        nRetVal = gPP_H265_QueryMemoryRequirements( &ReqMemTab[0],
+            &h265_CreateParams, &nNumMemTabEntries);
+
+        if(nRetVal != SC_PP_SUCCESS)
+        {
+            printf("Error in Finding the memory requirements.\n");
+            fflush(stdout);
+            nAllocDone = EC_PP_FAILURE;
+            goto EXIT_H265DEC;
+        }
+
+        /*Allocate the memory*/
+        nRetVal = MEMMGR_AllocMemoryRequirements(&ReqMemTab[0],
+            nNumMemTabEntries);
+        if(nRetVal != SC_PP_SUCCESS)
+        {
+            printf("Error in Allocating the memory requirements.\n");
+            fflush(stdout);
+            nAllocDone = EC_PP_FAILURE;
+            nSlaveExit = 1;
+            goto EXIT_H265DEC;
+        }
+        /*Pass the memory and Initialize the decoder*/
+        nRetVal = gPP_H265_InitializeDecoder  ( &h265dec,
+            &ReqMemTab[0],&h265_CreateParams);
+
+        if(nRetVal != SC_PP_SUCCESS)
+        {
+            printf("Invalid create time params\n");
+            fflush(stdout);
+            nInitDone = EC_PP_FAILURE;
+            nSlaveExit = 1;
+            goto EXIT_H265DEC;
+        }
+        nAllocDone = nRetVal;
+        nInitDone  = nRetVal;
+
+        /* Initialise pLum pointers in output base frames to NULL.
+        * When the decoder initialises these pointers with valid values we know
+        * that its time to dump/display them
+        */
+        nIndex = 0;
+        while( nIndex < (PP_H265VDEC_MAX_REF_FRAMES+1) )
+        {
+            pOutBuf[nIndex].pLum = NULL;
+            nIndex++;
+        }
+
+        /*  Call decode bit stream */
+        nByteRead = 0;
+        nBytesDec = 0;
+        nRetV = h265dec->vSet( h265dec, PP_SET_DATASYNC,
+            0, &h265_DynamicParams);
+        if(nRetV == EC_PP_FAILURE)
+        {
+            nTerminateStatus = 1;
+            goto EXIT_H265DEC;
+        }
+#ifdef LOW_DELAY_INTERFACE_SLICEMODE
+        nNoBytes   = ( Bytes[inputSync_Counter]);
+#else
+        nNoBytes   = ( H265_PACKET_SIZE - nByteLeft );
+#endif
+        nFileRead  = ( tPPu32 )fread( Input_buff.nBitStream + nByteLeft, 1 ,
+            nNoBytes,fpInput);
+
+        Input_buff.nBufLength = nFileRead + nByteLeft ;
+        nBufFilled = Input_buff.nBufLength;
+        nBytesDec +=nFileRead;
+#ifndef _WIN32
+        gPP_PPL_AtomicAdd8((tPPu8 *)&nInitCompleted,1);
+#endif
+        nStatus = 1;
+        printf("\nDecoding ..\n");
+        fflush(stdout);
+    }
+    else
+    {
+#ifndef _WIN32
+         while(!nInitCompleted)
+        {
+            if(nStatus)
+                break;
+            if(nSlaveExit)
+                goto EXIT_H265DEC;
+        }
+#endif
+    }
+
+#ifdef ARM_PROFILE
+    process_time =  0;
+    avg_process_time = 0;
+    peak_process_time = 0;
+    total_time = 0;
+#endif
+    nFrameDecodeStart = 0 ;
+
+    while(Input_buff.nBufLength > 4)
+    {
+        if (nMultiThreadParam.nTaskID == kH265_TASK_MASTER)
+        {
+            nRetV = h265dec->vSet( h265dec, PP_SET_DECODE_HDR,
+                h265_DynamicParams.nDecodeHeader, &h265_DynamicParams);
+            if(nRetV == EC_PP_FAILURE)
+            {
+                nTerminateStatus = 1;
+                goto EXIT_H265DEC;
+            }
+
+            if(h265_DynamicParams.nDecodeHeader == PP_H265_DECODE_ACCESSUNIT)
+            {
+                H265_dec_BuffEle =  BUFFMGR_GetFreeBuffer();
+
+                /* Assign the buffer allotted by Buffer manager to I/p frame*/
+                if(H265_dec_BuffEle)
+                {
+                    (H265_dec_InBuff.buf[0])= (H265_dec_BuffEle->buf[0]);
+                    (H265_dec_InBuff.buf[1])= (H265_dec_BuffEle->buf[1]);
+                    (H265_dec_InBuff.buf[2])= (H265_dec_BuffEle->buf[2]);
+                    (H265_dec_InBuff.bufId) = (H265_dec_BuffEle->bufId);
+                }
+                else
+                {
+                    printf("No Free Buffers available\n");
+                    fflush(stdout);
+                    nTerminateStatus = 1;
+                    goto EXIT_H265DEC;
+                }
+            }
+        }
+
+
+#ifndef _WIN32
+        gPP_PPL_AtomicAdd8((tPPu8 *)&nFrameSync,1);
+
+        while((nFrameSync % h265_CreateParams.nNumThreads) != 0)
+        {
+            if(nTerminateStatus == 1)
+                goto EXIT_H265DEC;
+        };
+
+        if (nMultiThreadParam.nTaskID == kH265_TASK_MASTER)
+        {
+#ifdef ARM_PROFILE
+            gettimeofday(&tProcessSt , NULL) ;
+#endif
+        }
+        if(((h265_DynamicParams.nDecodeHeader == PP_H265_PARSE_HEADER)
+            && (nMultiThreadParam.nTaskID == kH265_TASK_MASTER))|| 
+            (h265_DynamicParams.nDecodeHeader == PP_H265_DECODE_ACCESSUNIT))
+        {
+            nRetVal = h265dec->vDecode( h265dec, &(Input_buff),
+                &(H265_dec_InBuff), &(H265_dec_OutBuff),
+                (tPPYUVPlanarDisplayFrame *)(&pOutBuf[0]),
+                &nMultiThreadParam);
+        }
+        if (nMultiThreadParam.nTaskID == kH265_TASK_MASTER)
+        {
+#ifdef ARM_PROFILE
+            gettimeofday(&tProcessEd , NULL) ;
+            process_time = (tProcessEd.tv_sec - tProcessSt.tv_sec)*1000000 +
+                (tProcessEd.tv_usec - tProcessSt.tv_usec);
+            pTimerBuffer [nDecFrmNo] = process_time ;
+            total_time += process_time;
+#endif
+        }
+#else
+        nRetVal = h265dec->vDecode( h265dec, &(Input_buff),
+            &(H265_dec_InBuff), &(H265_dec_OutBuff),
+            (tPPYUVPlanarDisplayFrame *)(&pOutBuf[0]),&nMultiThreadParam);
+#endif
+        if (nMultiThreadParam.nTaskID == kH265_TASK_MASTER)
+        {
+#ifdef LOW_DELAY_INTERFACE_SLICEMODE
+            inputSync_Counter++;
+#endif
+        }
+        if(nRetVal == EC_PP_FAILURE)
+        {
+            if(nMultiThreadParam.nTaskID == kH265_TASK_MASTER)
+            {
+                apVal.nError = 0;
+                h265dec->vGet(h265dec, PP_GET_ERRORSTATUS,
+                    (void *)(&apVal));
+                if(apVal.nError !=0)
+                {
+                    gH265_Error_Report(fErTraceFile, apVal.nError);
+                }
+                goto EXIT_H265DEC;
+            }
+        }
+
+
+        if (nMultiThreadParam.nTaskID == kH265_TASK_MASTER)
+        {
+            nFrameSync   = 0;
+            apVal.nError = 0;
+            h265dec->vGet( h265dec, PP_GET_ERRORSTATUS,
+                (void *)(&apVal));
+            if(apVal.nError !=0)
+            {
+                gH265_Error_Report(fErTraceFile, apVal.nError);
+            }
+            if(nDecFrmNo >= 0)
+            {
+                tPPi32 nTemp =0;                
+                h265dec->vGet(h265dec, PP_GET_BUFSTATUS,
+                    (void *)(&nTemp));
+                if((nTemp == BUFFMGR_FREE) || (nTemp == BUFFMGR_USED))
+                {
+                    if((h265_DynamicParams.nDecodeHeader ==
+                       PP_H265_DECODE_ACCESSUNIT) &&\
+                       (H265_dec_BuffEle != NULL))
+                    {
+                        H265_dec_BuffEle->bufStatus =
+                            (BUFFMGR_BufferStatus)nTemp;
+                    }
+                }
+                h265_DynamicParams.nDecodeHeader = PP_H265_DECODE_ACCESSUNIT;
+            }
+            /* Buflength contains bytes left */
+            nByteLeft = Input_buff.nBufLength;
+            nBytesConsumed = (nBufFilled - nByteLeft);
+            nByteRead = nBufFilled - nByteLeft;
+            /* If the end of NAL unit(Start of the next NAL unit)
+            not found exit*/
+            if( nRetVal == EC_PP_H265_NO_NALU_END_FOUND )
+            {
+                printf("\nError : NAL unit's end not found\n");
+                fflush(stdout);
+                goto  EXIT_H265DEC;
+            }
+
+            if ( nRetVal == EC_PP_OUT_OF_MEMORY )
+            {
+                if ( nByteLeft )
+                {
+                    for ( nIndex = 0; nIndex < nByteLeft; nIndex++)
+                    {
+                        Input_buff.nBitStream[nIndex]
+                        = Input_buff.nBitStream[nByteRead + nIndex ];
+                    }
+                }
+            }
+            if (  ( nRetVal == EC_PP_FAILURE )
+                ||( nRetVal ==  EC_PP_INVALID_PARAM ) ||
+                (nRetVal == EC_PP_NOT_SUPPORTED) )
+            {
+                /* Failure*/
+                nIndex = 0;
+                while( nIndex < (PP_H265VDEC_MAX_REF_FRAMES + 1) )
+                {
+                    if (pOutBuf[nIndex].pLum)
+                    {
+                        nTOTAL_FRAME_SIZE = pOutBuf[0].nBaseFrame.nWidth *
+                            pOutBuf[0].nBaseFrame.nHeight;
+
+                        WriteOutputFrame(&pOutBuf[nIndex], fpOutput);
+                        if(nCompareOutput)
+                        {
+                            nResult =
+                                CompareOutputFrame(&pOutBuf[nIndex], fpRef);
+                            if(nResult == -1)
+                            {
+                                printf("Frame Comparision : FAIL\n\n");
+                                fflush(stdout);
+                            }
+                            else
+                            {
+                                printf("Frame Comparision : PASS\n\n");
+                                fflush(stdout);
+                            }
+                        }
+                        pOutBuf[nIndex].pLum = NULL;
+                        printf("Frame number %d dumped\n", 
+                             nDispFrameNo++);
+                        fflush(stdout);     
+                    }
+                    else
+                    {
+                        break;
+                    }
+                    nIndex++;
+                }
+
+                /*Call release buffer*/
+                BUFFMGR_ReleaseBuffer( &H265_dec_OutBuff.bufId[0]);
+                goto  EXIT_H265DEC;
+            }
+
+            if ( nByteLeft > 4 )
+            {
+                /* Buflength contains bytes left*/
+                for ( nIndex = 0; nIndex < nByteLeft; nIndex ++)
+                {
+                    Input_buff.nBitStream[nIndex]
+                    = Input_buff.nBitStream[nByteRead + nIndex];
+                }
+            }
+
+            /* If complete frame is decoded, write that in the output file*/
+            if( nRetVal == SC_PP_SUCCESS || nRetVal == SC_PP_RESOLUTION_CHANGED
+                ||  nRetVal == SC_PP_END_OF_PICTURE)
+            {
+                if ( nDecFrmNo == 0 || nRetVal == SC_PP_RESOLUTION_CHANGED)
+                {
+                    nRetVal =  h265dec->vGet( h265dec, 
+                        PP_GET_PARAMSTATUS, (void *)(&apVal));
+                    if ( nRetVal != SC_PP_SUCCESS )
+                    {
+                        printf("Get params failed\n");
+                        fflush(stdout);
+                    }
+
+                    nTOTAL_FRAME_SIZE = (apVal.nTotalFrameSize);
+                    /* inorder to make multiple of 4 ht for inter prediction
+                    module */
+
+                    nLumSize = nTOTAL_FRAME_SIZE;
+                    nCbSize  = nTOTAL_FRAME_SIZE >> 2;
+                    nCrSize  = nTOTAL_FRAME_SIZE >> 2;
+
+                    h265dec->vSet(h265dec, PP_SET_RES_INV,
+                        0, &h265_DynamicParams);
+                    if ( BUFFMGR_ReInit( nLumSize,
+                        (nCbSize + nCrSize)) == -1)
+                    {
+                        /* Failure*/
+                        printf("Re initialization of Buffer failed\n");
+                        fflush(stdout);
+                        goto  EXIT_H265DEC;
+                    }
+                }
+
+                nIndex = 0;
+                while( nIndex < (PP_H265VDEC_MAX_REF_FRAMES + 1) )
+                {
+
+                    if (pOutBuf[nIndex].pLum)
+                    {
+                        nTOTAL_FRAME_SIZE = pOutBuf[0].nBaseFrame.nWidth *
+                            pOutBuf[0].nBaseFrame.nHeight;
+
+                        WriteOutputFrame(&pOutBuf[nIndex], fpOutput);
+                        if(nCompareOutput)
+                        {
+                            nResult =
+                                CompareOutputFrame(&pOutBuf[nIndex], fpRef);
+                            if(nResult == -1)
+                            {
+                                printf("Frame Comparision : FAIL\n\n");
+                                fflush(stdout);
+                            }
+                            else
+                            {
+                                printf("Frame Comparision : PASS\n\n");
+                                fflush(stdout);
+                            }
+                        }
+                        printf("Frame number %d dumped\n",
+                            nDispFrameNo);
+                        fflush(stdout);
+
+                        nDispFrameNo++;
+                        pOutBuf[nIndex].pLum = NULL;
+                    }
+                    else
+                    {
+                        break;
+                    }
+                    nIndex++;
+                }
+                nDecFrmNo++;
+                /*Call release buffer*/
+                BUFFMGR_ReleaseBuffer( &H265_dec_OutBuff.bufId[0]);
+            }/*end of if( nRetVal == SC_PP_SUCCESS )*/
+#ifdef LOW_DELAY_INTERFACE_SLICEMODE
+            nNoBytes   = Bytes[inputSync_Counter];
+#else
+            nNoBytes   = ( H265_PACKET_SIZE - nByteLeft );
+#endif
+            nFileRead  = ( tPPu32 )fread( Input_buff.nBitStream + nByteLeft, 1 ,
+                nNoBytes,fpInput);
+
+            Input_buff.nBufLength = nFileRead + nByteLeft ;
+
+            nBufFilled = Input_buff.nBufLength;
+        }
+#ifndef _WIN32
+        if (nMultiThreadParam.nTaskID != kH265_TASK_MASTER)
+        {
+            if (( nRetVal == EC_PP_FAILURE ) ||
+                (nRetVal ==  EC_PP_INVALID_PARAM ) ||
+                (nRetVal == EC_PP_NOT_SUPPORTED) ||
+                (nRetVal == EC_PP_H265_NO_NALU_END_FOUND))
+            {
+                goto EXIT_H265DEC ;
+            }
+            gPP_PPL_AtomicAdd8((tPPu8 *)&nFrameDecodeStart,1);
+            do
+            {
+                if(nFrameDecodeStart == (tPPi32)
+                    ((h265_CreateParams.nNumThreads) -1))
+                {
+                    gPP_PPL_AtomicAdd8((tPPu8 *)&nFrameDecodeEnd,1);
+                    break;
+                }
+            }while(1);
+        }
+        if (nMultiThreadParam.nThreadID == kH265_TASK_MASTER)
+        {
+            do
+            {
+                if(nFrameDecodeEnd ==
+                 (tPPi32) ((h265_CreateParams.nNumThreads)  -1))
+                {
+                    nFrameDecodeStart = 0;
+                    nFrameDecodeEnd = 0;
+                    break;
+                }
+            }
+            while(1);
+        }
+        else
+        {
+            while(nFrameDecodeStart);
+        }
+#endif
+        if(h265_ConfigParams.nNumFramesToDecode <= nDispFrameNo)
+        {
+            goto EXIT_H265DEC;
+        }
+
+    }
+
+    if (nMultiThreadParam.nTaskID == kH265_TASK_MASTER)
+    {
+        if (Input_buff.nBufLength < 5)
+        {
+            /* after Decoding Last Frame Dump all the rest frame */
+            do
+            {
+                h265dec->vSet( h265dec , PP_SET_DPB_FLUSH , 
+                    PP_TRUE, &h265_DynamicParams);
+
+                nRetVal = h265dec->vDecode( h265dec,
+                    &(Input_buff), &(H265_dec_InBuff), &(H265_dec_OutBuff),
+                    (tPPYUVPlanarDisplayFrame *)(&pOutBuf[0]), 
+                    &nMultiThreadParam);
+
+                if (nRetVal == SC_PP_SUCCESS)
+                {
+                    nIndex = 0;
+                    while( nIndex < (PP_H265VDEC_MAX_REF_FRAMES + 1) )
+                    {
+                        if (pOutBuf[nIndex].pLum)
+                        {
+                            nTOTAL_FRAME_SIZE = pOutBuf[0].nBaseFrame.nWidth *
+                                pOutBuf[0].nBaseFrame.nHeight;
+
+                            WriteOutputFrame(&pOutBuf[nIndex], fpOutput);
+
+                            if(nCompareOutput)
+                            {
+                                nResult =
+                                    CompareOutputFrame(&pOutBuf[nIndex], fpRef);
+                                if(nResult == -1)
+                                {
+                                    printf("Frame Comparision : FAIL\n\n");
+                                    fflush(stdout);
+                                }
+                                else
+                                {
+                                    printf("Frame Comparision : PASS\n\n");
+                                    fflush(stdout);
+                                }
+                            }
+
+                            pOutBuf[nIndex].pLum = NULL;
+                            printf("Frame number %d dumped\n",
+                                nDispFrameNo++);
+                            fflush(stdout);    
+                        }
+                        else
+                        {
+                            break;
+                        }
+                        nIndex++;
+                    }
+                }
+                else
+                {
+                    printf("\nStream End\n");
+                    fflush(stdout);
+                }
+            }while (nRetVal == SC_PP_SUCCESS);
+        }
+    }
+
+EXIT_H265DEC:
+
+    if (nMultiThreadParam.nThreadID == kH265_TASK_MASTER)
+    {
+#ifdef ARM_PROFILE
+        avg_process_time = ( total_time / nDecFrmNo);
+        frame_rate = (nDecFrmNo * (1000000))/(float)total_time;
+        nFrmNo = nDecFrmNo;
+        peak_process_time = PeakDecodeTime(pTimerBuffer , nDecFrmNo);
+        gGetProfileNums();
+#endif
+        if((nAllocDone == EC_PP_FAILURE) &&
+            (nInitDone == SC_PP_SUCCESS))
+            /*Deallocate the memory*/
+            MEMMGR_DeAllocMemory(&ReqMemTab[0]);
+
+        /* de-initialise buffer management unit */
+        BUFFMGR_DeInit();
+    }
+    /* Delete threads*/
+#ifndef _WIN32
+    if (nMultiThreadParam.nThreadID != kH265_TASK_MASTER)
+    {
+        pthread_exit(&nMultiThreadParam.nThreadID);       
+    }
+#endif
+    return 0;
+}
+
+/**
+******************************************************************************
+* @fn PeakDecodeTime(tPPi32 argc, tPPi8 *argv[])
+*
+* @brief Function to calculate peak decode time
+*
+* @param pTimerBuffer [IN] Decode time buffer pointer
+* @param nNumFrame    [IN] Number of frames decoded
+*
+* @return Peak time in micro seconds
+******************************************************************************
+*/
+#ifdef ARM_PROFILE
+/*Moving average for peak decode time call calculation*/
+tPPu64  PeakDecodeTime( tPPu64  *pTimerBuffer,
+                       tPPu32  nNumFrame)
+{
+    tPPu64  nPeak;
+    tPPu64  nPeakTime;
+    tPPu32 i,j,nCount;
+    nPeakTime = 0;
+    for(i = 0 ; i < nNumFrame ;i++)
+    {
+        nPeak = 0;
+        nCount = 30;
+        for(j = i; j < (30+i); j++)
+        {
+            nPeak += pTimerBuffer[j];
+            if(pTimerBuffer[j] == 0)
+            {
+                nCount --;
+            }
+        }
+        nPeak = nPeak/nCount;
+        nPeakTime = nPeak > nPeakTime ? nPeak : nPeakTime;
+    }
+    return nPeakTime;
+}
+#endif
+/*
+******************************************************************************
+* @fn gPP_H265_MTInit(tPPi32 argc, tPPi8 *argv[])
+*
+* @brief Function to initialize multi thread parameters
+*
+* @param nMultiThreadParam [IN] Structure
+*
+* @return Number of bytes written to the file
+******************************************************************************
+*/
+static tPPi32 sPP_H265_MultiThreadInit(tPPMultiThreadParams *nMultiThreadParam,
+                                       tPPu32 nThreadID, tPPu32 nNumThreads)
+{
+    /*Task ID*/
+    if(nThreadID == 0)
+        nMultiThreadParam->nTaskID = kH265_TASK_MASTER ;
+    else
+        nMultiThreadParam->nTaskID = kH265_TASK_SLAVE ;
+    /*Number of threads*/
+    nMultiThreadParam->nNumThreads = nNumThreads ;
+    /*Thread ID */
+    nMultiThreadParam->nThreadID = nThreadID ;
+
+    return SC_PP_SUCCESS ;
+
+}
+/**
+********************************************************************************
+*  @fn     gH265_getDataSync( tPP_H265_DataSyncDesc *pDataSyncParams)
+*
+*  @brief  The function is an Application function to fill datasync parameters
+*
+*  @param[IN/OUT] pDataSyncParams  : datasync descriptor
+*
+*  @return  None
+********************************************************************************
+*/
+void gH265_getDataSync(tPP_H265_DataSyncDesc *pDataSyncParams)
+{
+#ifdef LOW_DELAY_INTERFACE_SLICEMODE
+    tPPu32 nIndex = 0;
+    nByteLeft_Sync = Input_buff.nBufLength;
+    inputSync_Counter++;
+
+    if ( nByteLeft_Sync )
+    {
+        /* Buflength contains bytes left*/
+        for ( nIndex = 0; nIndex < nByteLeft_Sync; nIndex ++)
+        {
+            Input_buff.nBitStream[nIndex]
+            = Input_buff.nBitStream[nByteRead_Sync + nIndex];
+        }
+    }
+    nNoBytes_Sync   = Bytes[inputSync_Counter];
+    nFileRead_Sync  = ( tPPu32 )fread( Input_buff.nBitStream + nByteLeft_Sync,
+         1 ,nNoBytes_Sync, fpInput);
+    pDataSyncParams->nSize = nFileRead_Sync + nByteLeft_Sync;
+    nBufFilled_Sync = pDataSyncParams->nSize;
+#endif
+}
+/**
+********************************************************************************
+*  @fn     gH265_putDataSync(tPP_H265_DataSyncDesc *pDataSyncParams)
+*
+*  @brief  The function is an Application function to fill datasync parameters
+*
+*  @param[IN/OUT] pDataSyncParams  : datasync descriptor
+*
+*  @return  None
+********************************************************************************
+*/
+void gH265_putDataSync(tPP_H265_DataSyncDesc *pDataSyncParams)
+{
+    tPPu32 nNumRows = pDataSyncParams->nNumBlocks;
+    /*Data sync code for validation---->Start(Data sync)*/
+    tPPi32 nCurrHeight;
+    tPPu8 *pLum;
+    tPPu8 *pCb;
+    tPPu8 *pCr;
+    tPPi32 nPicHeight,nPicWidth ,nSize ,nTotBytes =0;
+
+    tPPYUVPlanarDisplayFrame *pOutFrame_DS = &pOutBuf[0];
+    /* init */
+    nPicHeight = pOutFrame_DS->nBaseFrame.nHeight;
+    nPicWidth  = pOutFrame_DS->nBaseFrame.nWidth;
+    nCurrHeight =  pDataSyncParams->nNumBlocks << 4;
+
+    nRowNum += nNumRows;
+    if(nNumRows)
+    {
+
+        pLum = ybuf +(nPicWidth * gCurrHeight);
+        pCb =  cbbuf +((nPicWidth * gCurrHeight) >> 2);
+        pCr = crbuf + ((nPicWidth * gCurrHeight) >> 2);
+        memcpy(pLum,(pOutFrame_DS->pLum + (nPicWidth * gCurrHeight)),
+            nCurrHeight*nPicWidth);
+        memcpy(pCb,(pOutFrame_DS->pCb + ((nPicWidth * gCurrHeight) >> 2)),
+            ((nCurrHeight*nPicWidth)>>2));
+        memcpy(pCr,(pOutFrame_DS->pCr + ((nPicWidth * gCurrHeight) >> 2)),
+            ((nCurrHeight*nPicWidth)>>2));
+        gCurrHeight = gCurrHeight + nCurrHeight;
+        if(gCurrHeight >= nPicHeight)
+        {
+            gCurrHeight = 0;
+            nSize = pOutFrame_DS->nBaseFrame.nWidth *
+                pOutFrame_DS->nBaseFrame.nHeight;
+            nTotBytes = fwrite(ybuf , 1, nSize,      fpDataSync);
+            nTotBytes = fwrite(cbbuf, 1, nSize >> 2, fpDataSync);
+            nTotBytes = fwrite(crbuf, 1, nSize >> 2, fpDataSync);
+        }
+        /*  Increment the row counter by number of rows output in
+        *  this datasync call
+        */
+    }
+    nDataSyncIntrCntr++;
+}
+
+/**
+******************************************************************************
+* @fn static tPPu32 WriteOutputFrame(tPPYUVPlanarDisplayFrame *pOutFrame,
+*                                    FILE *fpOutput)
+*
+* @brief Function to write the output reconcstructed YUV frame to file
+*
+* @param pOutFrame [IN] Reconstructed YUV frame pointer
+*
+* @param fpOutput  [IN] File Pointer
+*
+* @return Number of bytes written to the file
+******************************************************************************
+*/
+static tPPu32 WriteOutputFrame(tPPYUVPlanarDisplayFrame *pOutFrame,
+                               FILE  *fpOutput)
+{
+#ifdef FILE_DUMP
+    tPPu32 nTotBytes = 0;
+    tPPi32 i, nSize;
+    tPPu8 *pSrc;
+
+    if(pOutFrame->nBaseFrame.nIsPadded)
+    {
+        pSrc = pOutFrame->pLum;
+        nSize = pOutFrame->nBaseFrame.nWidth;
+        for(i = 0; i < pOutFrame->nBaseFrame.nHeight; i++)
+        {
+            nTotBytes += fwrite(pSrc, 1, nSize, fpOutput);
+            pSrc += pOutFrame->nBaseFrame.nExWidth;
+        }
+
+        pSrc = pOutFrame->pCb;
+        nSize = pOutFrame->nBaseFrame.nWidth >> 1;
+        for(i = 0; i < pOutFrame->nBaseFrame.nHeight >> 1; i++)
+        {
+            nTotBytes += fwrite(pSrc, 1, nSize, fpOutput);
+            pSrc += (pOutFrame->nBaseFrame.nExWidth >> 1);
+        }
+        pSrc = pOutFrame->pCr;
+        nSize = pOutFrame->nBaseFrame.nWidth >> 1;
+        for(i = 0; i < pOutFrame->nBaseFrame.nHeight >> 1; i++)
+        {
+            nTotBytes += fwrite(pSrc, 1, nSize, fpOutput);
+            pSrc += (pOutFrame->nBaseFrame.nExWidth >> 1);
+        }
+    }
+    else
+    {
+        nSize = pOutFrame->nBaseFrame.nWidth * pOutFrame->nBaseFrame.nHeight;
+        {
+            nTotBytes = fwrite(pOutFrame->pLum, 1, nSize, fpOutput);
+            nTotBytes = fwrite(pOutFrame->pCb, 1, nSize >> 2, fpOutput);
+            nTotBytes = fwrite(pOutFrame->pCr, 1, nSize >> 2, fpOutput);
+        }
+    }
+
+    return nTotBytes;
+#else
+    return 0;
+#endif
+}
+/**
+******************************************************************************
+* @fn static tPPi32 CompareOutputFrame(tPPYUVPlanarDisplayFrame *pOutFrame,
+*                                      FILE *fpRef)
+*
+* @brief Function to Compare the output YUV frame to reference YUV file
+*
+* @param pOutFrame [IN] Reconstructed YUV frame pointer
+*
+* @param fpRef     [IN] File Pointer
+*
+* @return
+******************************************************************************
+*/
+static tPPi32 CompareOutputFrame(tPPYUVPlanarDisplayFrame *pOutFrame,
+                               FILE  *fpRef)
+{
+    tPPi32 i, nSize;
+    tPPu8 *pSrc;
+    tPPu8 *pRefBuf;
+    tPPu32 nFrameSizeLuma ,nFrameSizeChroma;
+
+    nFrameSizeLuma = pOutFrame->nBaseFrame.nWidth *
+        pOutFrame->nBaseFrame.nHeight;
+    nFrameSizeChroma = nFrameSizeLuma >> 2;
+
+    pSrc = pOutFrame->pLum;
+    pRefBuf = nRefBuf;
+    nSize = pOutFrame->nBaseFrame.nWidth;
+    for(i = 0; i < pOutFrame->nBaseFrame.nHeight; i++)
+    {
+        fread(pRefBuf,  1, nSize, fpRef);
+        pRefBuf += nSize;
+    }
+    /* Compare Luma component */
+    if (memcmp(pSrc,nRefBuf,nFrameSizeLuma))
+    {
+        printf("\nFailed in luma comparision\n");
+        fflush(stdout);
+        return EC_PP_FAILURE;
+    }
+
+    pSrc = pOutFrame->pCb;
+    pRefBuf = nRefBuf;
+    nSize = pOutFrame->nBaseFrame.nWidth >> 1;
+    for(i = 0; i < pOutFrame->nBaseFrame.nHeight >> 1; i++)
+    {
+        fread(pRefBuf,  1, nSize, fpRef);
+        pRefBuf += nSize;
+
+    }
+    /* Compare Luma component */
+    if (memcmp(pSrc,nRefBuf,nFrameSizeChroma))
+    {
+        printf("\nFailed in Chroma comparision\n");
+        fflush(stdout);
+        return EC_PP_FAILURE;
+    }
+
+    pSrc = pOutFrame->pCr;
+    pRefBuf = nRefBuf;
+    nSize = pOutFrame->nBaseFrame.nWidth >> 1;
+    for(i = 0; i < pOutFrame->nBaseFrame.nHeight >> 1; i++)
+    {
+        fread(pRefBuf,  1, nSize, fpRef);
+        pRefBuf += nSize;
+    }
+    /* Compare Luma component */
+    if (memcmp(pSrc,nRefBuf,nFrameSizeChroma))
+    {
+        printf("\nFailed in Chroma comparision\n");
+        fflush(stdout);
+        return EC_PP_FAILURE;
+    }
+    return 0;
+}
+#ifdef ARM_PROFILE
+/**
+******************************************************************************
+* @fn static void gGetProfileNums()
+*
+* @brief Function to print profile values
+*
+* @return
+******************************************************************************
+*/
+static void gGetProfileNums()
+{
+
+    printf("***************Profile statistics***************\n");
+    fflush(stdout);
+    printf(" Frames decoded                  : %d \n",nFrmNo);
+    fflush(stdout);
+    printf(" Total decode time               : %lld.%lld ms\n",
+        total_time/1000,total_time%1000);
+    fflush(stdout);
+    printf(" Peak decode time per frame      : %lld.%lld ms\n",
+        peak_process_time/1000,peak_process_time%1000);
+    fflush(stdout);
+    printf(" Average decode time per frame   : %lld.%lld ms\n",
+        avg_process_time/1000,avg_process_time%1000);
+    fflush(stdout);
+    printf(" Frames per second               : %0.2f fps\n",frame_rate);
+    fflush(stdout);
+    printf("************************************************\n");
+    fflush(stdout);
+
+}
+#endif
diff --git a/Client/Test/TestVecs/Config/Testparams.cfg b/Client/Test/TestVecs/Config/Testparams.cfg
new file mode 100644 (file)
index 0000000..ce8917a
--- /dev/null
@@ -0,0 +1,23 @@
+# New Input File Format is as follows
+# <ParameterName> = <ParameterValue> # Comment
+################################################################################
+# Parameters
+################################################################################
+#################################### No. of threads ############################
+NumThreads = 1
+################################### Files ######################################
+InputFile              = ../../../Test/TestVecs/Input/airshow_352x288.265
+OutputFile             = ../../../Test/TestVecs/Output/airshow_352x288.yuv
+ReferenceFile          = ../../../Test/TestVecs/Reference/REF_airshow_352x288.yuv
+ImageWidth          = 352   # Image width in Pels
+ImageHeight         = 288   # Image height in Pels
+FramesToDecode      = 10    # Number of frames to be coded
+InputLowDelayMode   = 0     # 0->Entire frame, 1 -> Slice mode (Data sync mode)
+OutputLowDelayMode  = 0     # 0->Entire frame, 1 -> Number of CTU rows (Data sync mode)
+NumCTURows          = 0     # 0->Non-DataSync mode, Non-Zero positive when OutputLowDelayMode is set to Data sync mode
+MetadataType        = 0     # 0->No Metadata, 1-SEI, 2-VUI 3-SEI and VUI
+###################################################################
+# Dynamic Parameters                                               
+###################################################################
+DecodeHeader         = 0    # 0 -> Disable decode Header mode, 1 -> Enable decode Header mode
+
diff --git a/Client/Test/TestVecs/Input/airshow_352x288.265 b/Client/Test/TestVecs/Input/airshow_352x288.265
new file mode 100644 (file)
index 0000000..61ba42e
Binary files /dev/null and b/Client/Test/TestVecs/Input/airshow_352x288.265 differ
diff --git a/Client/Test/TestVecs/Reference/REF_airshow_352x288.yuv b/Client/Test/TestVecs/Reference/REF_airshow_352x288.yuv
new file mode 100644 (file)
index 0000000..56da114
--- /dev/null
@@ -0,0 +1,3 @@
+ÁÁÁÁÁÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·················¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±±°°°°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤££££££££¢¢¢¢¢¡¡¡¡¡     \9f\9f\9f\9f\9f\9f\9fÁÁÁÁÁÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·················¶¶¶¶¶¶¶¶¶µ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±±°°°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬««ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤££££££££¢¢¢¢¢¡¡¡¡¡     \9f\9f\9f\9f\9f\9f\9fÁÁÁÁÀÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·················¶¶¶¶¶¶¶µµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±±°°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤£££££££¢¢¢¢¢¡¡¡¡¡     \9f\9f\9f\9f\9f\9f\9fÁÁÁÁÀÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·················¶¶¶¶¶¶µµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±±°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬««««ªªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤£££££££¢¢¢¢¢¡¡¡¡¡      \9f\9f\9f\9f\9f\9fÁÁÁÀÀÀÀÀÀÀÀ¿¿¿¿¾¾¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·················¶¶¶¶µµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±±°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««««ªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤£££££££¢¢¢¢¡¡¡¡¡      \9f\9f\9f\9f\9f\9fÁÁÁÀÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·················¶¶¶µµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±±°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬««««««ªªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤£££££££¢¢¢¢¢¡¡¡¡      \9f\9f\9f\9f\9f\9fÁÁÀÀÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·················¶µµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««««««ªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤££££££¢¢¢¢¢¡¡¡¡¡      \9f\9f\9f\9f\9fÀÀÀÀÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸················¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬««««««««ªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤££££££¢¢¢¢¡¡¡¡¡       \9f\9f\9f\9fÀÀÀÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾¾½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸···············¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±±°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««««««««ªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤££££££¢¢¢¢¢¡¡¡¡        \9f\9f\9fÀÀÀÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·············¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬««««««««««ªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤££££££¢¢¢¢¡¡¡¡¡        \9f\9fÀÀÀÀÀÀÀÀ¿¿¿¿¿¾¾¾¾¾½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸············¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤££££££¢¢¢¢¢¡¡¡¡          ÀÀÀÀÀÀÀ¿¿¿¿¿¿¾¾¾¾¾½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸··········¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬««««««««««««ªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤£££££¢¢¢¢¢¡¡¡¡¡         ÀÀÀÀÀÀÀ¿¿¿¿¿¿¾¾¾¾½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·········¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««««««««««««ªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤£££££¢¢¢¢¡¡¡¡¡         ÀÀÀÀÀÀ¿¿¿¿¿¿¾¾¾¾¾½½½½¼¼¼¼¼¼¼¼»»»¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸·······¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±±±°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬««««««««««««««ªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤£££££¢¢¢¢¢¡¡¡¡¡        ÀÀÀÀÀ¿¿¿¿¿¿¾¾¾¾¾½½½½½¼¼¼¼¼¼»»»»»¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸······¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²±°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««««««««««««««ªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤£££££¢¢¢¢¡¡¡¡¡¡       ÀÀÀÀ¿¿¿¿¿¿¿¾¾¾¾¾½½½½¼¼¼¼¼¼»»»»»»¼¼¼¼¼¼»»»»»»ººººº¹¹¹¹¸¸¸¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²²²°°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬««««««««««««««««ªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¤¤¤¤¤¤¤¤££££¢¢¢¢¢¡¡¡¡¡¡      ÀÀÀ¿¿¿¿¿¿¿¾¾¾¾¾½½½½½¼¼¼¼¼»»»»»»»»»»»»»ºººººº¹¹¹¹º¹¹¹¹¸¸¸¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²²±±°°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬¬«««««««««««««««««ªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¤¤¤¤¤¤¤£££££¢¢¢¢¢¡¡¡¡¡¡     ¿¿¿¿¿¿¿¿¿¿¾¾¾¾¾½½½½¼¼¼¼¼¼»»»»»»»»»»»»»ºººººº¹¹¹¹¹¹¹¹¹¸¸¸¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²²²±±±°°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬¬««««««««««««««««««ªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¤¤¤¤¤¤££££¢¢¢¢¢¡¡¡¡¡¡¡    ¿¿¿¿¿¿¿¿¿¾¾¾¾¾½½½½½¼¼¼¼¼»»»»»»»»»»»»»»ºººººº¹¹¹¹¹¸¹¹¹¸¸¸¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²²±±±±±°°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬¬«««««««««««««««««««ªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¤¤¤¤¤£££££¢¢¢¢¢¡¡¡¡¡¡¡   ¿¿¿¿¿¿¿¿¾¾¾¾¾¾½½½½¼¼¼¼¼»»»»»»»»»»»»»»»ºººººº¹¹¹¹¹¸¸¹¹¸¸¸¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²²²±±±±±±°°°°°°°¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬¬««««««««««««««««««««ªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¤¤¤¤¤¤££££¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¿¿¿¿¿¿¿¿¾¾¾¾¾½½½½½¼¼¼¼¼»»»»»»»»»»»»»»»ºººººº¹¹¹¹¹¸¸¸¹¸¸¸¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²²±±±±±±±±°°°°°°°¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬«««««««««««««««««««««ªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤¤¤£££££¢¢¢¢¢¡¡¡¡¡¡¡¡¡¿¿¿¿¿¿¿¾¾¾¾¾¾½½½½¼¼¼¼¼»»»»»»»»»»»»»»»»ºººººº¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³³²±±±±±±±±±°°°°°°°¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬¬««««««««««««««««««««««ªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¥¤¤¤¤¤££££¢¢¢¢¢¡¡¡¡¡¡¡¡¡¿¿¿¿¿¿¿¾¾¾¾¾½½½½½¼¼¼¼¼»»»»»»»ººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸·¸¸¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³³³²±±±±±±±±±±°°°°°°°¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®®®®­­¬¬¬¬¬¬¬¬¬«««««««««««««««««««««««ªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¥¤¤¤¤¤£££££¢¢¢¢¢¡¡¡¡¡¡¡¡¿¿¿¿¿¿¾¾¾¾¾¾½½½½¼¼¼¼¼»»»»»»»ºººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸··¸¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³³²²²±±±±±±±±±±°°°°°°°¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®®®®­­­¬¬¬¬¬¬¬¬««««««««««««««««««««««««ªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¥¥¤¤¤¤£££££¢¢¢¢¢¢¡¡¡¡¡¡¡¿¿¿¿¿¾¾¾¾¾¾½½½½½¼¼¼¼¼»»»»»»ººººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸···¸¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³³³²²²²±±±±±±±±±±°°°°°°°¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®®®®­­­­¬¬¬¬¬¬¬«««««««««««««««««««««««««ªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¥¥¤¤¤¤¤££££¢¢¢¢¢¢¡¡¡¡¡¡¡¿¿¿¿¾¾¾¾¾¾¾½½½½½¼¼¼¼¼»»»»»»ººººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸····¸¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³³²²²²²²±±±±±±±±±±°°°°°°°¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®®®®­­­­­¬¬¬¬¬¬««««««««««««««««««««««««««ªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¦¦¥¥¥¥¥¥¥¤¤¤¤¤£££££¢¢¢¢¢¡¡¡¡¡¡¡¿¿¿¿¾¾¾¾¾¾¾½½½½¼¼¼¼¼»»»»»»ºººººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸·····¸¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³³³²²²²²²²±±±±±±±±±±°°°°°°°¯¯¯¯¯®®®®®®®®®®®®®®®®®®®®®­­­­­­¬¬¬¬¬«««««««««««««««««««««««««««ªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¦¦¥¥¥¥¥¥¥¥¤¤¤¤£££££¢¢¢¢¢¢¡¡¡¡¡¡¿¿¿¾¾¾¾¾¾¾½½½½½¼¼¼¼¼»»»»»»ºººººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸······¸····¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´´´´´´´³³³²²²²²²²²²±±±±±±±±±±°°°°°°°¯¯¯¯®®®®®®®®®®®®®®®®®®®®®­­­­­­­¬¬¬¬««««««««««««««««««««««««««««ªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¦¦¦¥¥¥¥¥¥¥¤¤¤¤¤££££¢¢¢¢¢¢¡¡¡¡¡¡¿¿¾¾¾¾¾¾¾¾½½½½½¼¼¼¼¼»»»»»ººººººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸···········¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´´³³³´´´³³²²²²²²²²²²±±±±±±±±±±°°°°°°°¯¯¯®®®®®®®®®®®®®®®®®®®®®­­­­­­­­¬¬¬«««««««««««««««««««««««««««««ªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¦¦¦¦¥¥¥¥¥¥¤¤¤¤¤£££££¢¢¢¢¢¢¡¡¡¡¡¿¿¾¾¾¾¾¾¾¾½½½½½¼¼¼¼»»»»»»ººººººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸·······¶···¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´³³³³´´³²²²²²²²²²²²²±±±±±±±±±±°°°°°°°¯¯¯®®®®®®®®®®®®®®®®®®®®­­­­­­­­­¬¬¬«««««««««««««««««««««««««««««ªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¦¦¦¦¥¥¥¥¥¥¤¤¤¤¤£££££¢¢¢¢¢¢¡¡¡¡¡¾¾¾¾¾¾¾¾¾¾½½½½½¼¼¼¼»»»»»»ººººººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸·······¶···¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´³³³³´´³²²²²²²²²²²²²±±±±±±±±±±°°°°°°°¯¯®®®®®®®®®®®®®®®®®®®®­­­­­­­­­­¬¬««««««««««««««««««««««««««««««ªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¦¦¦¦¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤££££¢¢¡¡¡¡¡¾¾¾¾¾¾¾¾¾¾½½½½½¼¼¼¼»»»»»»ººººººº»»»»»»ºººººº¹¹¹¹¹¸¸¸¸·······¶···¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµµµ´´´´´³³³³³³³²²²²²²²²²²²²±±±±±±±±±±°°°°°°¯¯¯®®®®®®®®®®®®®®®®®®®­­­­­­­­­­¬¬¬«««««««««««««««««««««««««««««ªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¦¦¦¦¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤££££¢¢¡¡¡¡¡¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»»»»»ºººº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸············¶¶¶¶¶¶¶¶¶¶µµµµµ´´´´´´´´´³³³²²²²²²²²²²²±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®®®®®®®®®®­­­­­­­­­­­­­­­­¬¬¬««««««««««««««««««««««««««««ªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¤¤¤¤¤¤££££¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»»»»»ºººº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸············¶¶¶¶¶¶¶¶¶¶µµµµµ´´´´´´´´´³³³²²²²²²²²²²²±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®®®®®®®®®®­­­­­­­­­­­­­­­­¬¬¬««««««««««««««««««««««««««««ªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¤¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»»»»ººººº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸·············¶¶¶¶¶¶¶¶¶¶µµ´´´´´´´´´´´´³³³²²²²²²²²±±±±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®®®®®®®®­­­­­­­­­­­­­­­­­­¬¬¬«««««««««««««««««««««««««««ªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§§§¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»»»ºººººº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸··············¶¶¶¶¶¶¶¶¶¶µ´´´´´´´´´´´´´³³³²²²²²²±±±±±±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®®®®®®®­­­­­­­­­­­­­­­­­­­¬¬¬««««««««««««««««««««««««««ªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»»ººººººº¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸·············¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´³³³²²²²²±±±±±±±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®®®®®®­­­­­­­­­­­­­­­­­­­­¬¬¬«««««««««««««««««««««««««ªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼»»»»»»»»»»ºººººººººº¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸·············¶¶¶¶¶¶¶¶¶¶µ´´´´´´´´´´´´³³³³³³²²²±±±±±±±±±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®®®®®­­­­­­­­­­­­­­­­­­­­­¬¬¬««««««««««««««««««««««««ªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼»»»»»»»»»»ºººººººººº¹¹¹¹¸¸¸¸¸¸¸¸¸¸·············¶¶¶¶¶¶¶¶¶µµ´´´´´´´´´´´³³³³³³³³²²±±±±±±±±±±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®®®®­­­­­­­­­­­­­­­­­­­­­­¬¬¬«««««««««««««««««««««««ªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼»»»»»»»»»»ºººººººººº¹¹¹¹¸¸¸¸¸¸¸¸¸············¶¶¶¶¶¶¶¶¶µµµ´´´´´´´´´´´³³³³³³³³³±±±±±±±±±±±±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­¬¬¬««««««««««««««««««««««ªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼»»»»»»»»»»ºººººººººº¹¹¹¸¸¸¸¸¸¸¸¸··········¶¶¶¶¶¶¶¶¶¶¶µµµµ´´´´´´´´´´³³³³³³³³³²±±±±±±±±±±±±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬«««««««««««««««««««««ªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼¼»»»»»»»»»ºººººººººº¹¹¸¸¸¸¸¸¸¸¸¸··········¶¶¶¶¶¶¶¶¶µµµµµ´´´´´´´´´´³³³³³³³³²²²±±±±±±±±±±±±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬««««««««««««««««««««ªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»ºººººººººº¹¸¸¸¸¸¸¸¸¸¸···········¶¶¶¶¶¶¶¶µµµµµ´´´´´´´´´´³³³³³³³³³²²²±±±±±±±±±±±±°°°°°°°°°°¯¯¯¯¯¯¯®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬«««««««««««««««««««ªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½½¼¼¼¼¼¼¼¼¼¼¼»»»»»»»ºººººººººº¸¸¸¸¸¸¸¸¸·············¶¶¶¶¶¶µµµµµµ´´´´´´´´´´³³³³³³³³³³²²²±±±±±±±±±±±±°°°°°°°°°°¯¯¯¯¯¯®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬««««««««««««««««««ªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¥¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¾¾¾¾½½½½½½½½½½¼¼¼¼¼¼¼¼¼¼¼»»»»»»»ººººººººº¹¸¸¸¸¸¸¸¸¸·············¶¶¶¶¶µµµµµµ´´´´´´´´´´³³³³³³³³³³³²²²±±±±±±±±±±±±°°°°°°°°°°¯¯¯¯®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬«««««««««««««««««ªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»ºººººººººººººº¹¹¸¸¸¸¸¸¸¸··············¶¶¶µµµµµµµ´´´´´´´´´´³³³³³³³³³³³³²²²±±±±±±±±±±±±°°°°°°°°°°¯¯¯®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬««««««««««««««««ªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¥¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»ººººººººººº¹¹¹¹¸¸¸¸¸¸¸············¶¶¶¶¶µµµµµµµ´´´´´´´´´³³³³³³³³³³³³³³²²²±±±±±±±±±±±±°°°°°°°°°°¯®®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬«««««««««««««««ªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»ºººººººº¹¹¹¹¹¹¸¸¸¸¸¸··········¶¶¶¶¶¶µµµµµµµ´´´´´´´´´´³³³³³³³³³³³³³³³²²²±±±±±±±±±±±±°°°°°°°°°°®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬««««««««««««««ªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¥¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»ºººº¹¹¹¹¹¹¹¹¹¹¸¸¸¸¸··········¶¶¶¶¶¶¶µµµµµµ´´´´´´´´´´´³³³³³³³³³³³³²²²²²²±±±±±±±±±±±±°°°°°°°°¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬««««««««««««««ªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»ººº¹¹¹¹¹¹¹¹¹¹¸¸¸¸·········¶¶¶¶¶¶¶¶¶µµµµ´´´´´´´´´´´´³³³³³³³³³³²²²²²²²²²±±±±±±±±±±±±°°°°°°°¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬««««««««««««««ªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¥¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»»ºº¹¹¹¹¹¹¹¹¹¹¸¸¸·········¶¶¶¶¶¶¶¶¶µµµ´´´´´´´´´´´´³³³³³³³³³³²²²²²²²²²²²±±±±±±±±±±±±°°°°°¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬«««««««««««««ªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»ººº¹¹¹¹¹¹¹¹¹¸··········¶¶¶¶¶¶¶¶¶¶µµµ´´´´´´´´´´´³³³³³³³³³³²²²²²²²²²²²²±±±±±±±±±±±±°°°°¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬¬««««««««««««ªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¥¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»ººº¹¹¹¹¹¹¹¹¹¸·········¶¶¶¶¶¶¶¶¶¶¶µµµ´´´´´´´´´´´³³³³³³³³³²²²²²²²²²²²²²±±±±±±±±±±±±°°¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬¬¬«««««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»ººº¹¹¹¹¹¹¹¹¸········¶¶¶¶¶¶¶¶¶¶¶¶µµµ´´´´´´´´´´³³³³³³³³³²²²²²²²²²²²²²²±±±±±±±±±±±±°¯¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬««««««««««ªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¥¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼¼»»»»»»»»»»»»ººº¹¹¹¹¹¹¸¸¸·······¶¶¶¶¶¶¶¶¶¶¶¶¶µµµ´´´´´´´´´³³³³³³³³³²²²²²²²²²²²²²²²±±±±±±±±±±±°¯¯¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬«««««««««ªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¼¼¼¼¼¼»»»»»»»»»»»»»»ºººººººººººº¹¹¹¹¹¹¹¸¸¸¸¸·····¶¶¶¶¶¶¶¶¶¶¶¶¶¶µµµ´´´´´´´´³³³³³³³³³²²²²²²²²²²²²²²²²±±±±±±±±±°°°¯¯¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬¬««««««««ªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¦¦¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¼¼¼¼¼¼»»»»»»»»»»»»»»ºººººººººººº¹¹¹¹¹¹¸¸¸¸¸¸·····¶¶¶¶¶¶¶¶¶¶¶¶µµµ´´´´´´´´´³³³³³³³³³³²²²²²²²²²²²²²²²²±±±±±±±±°°°°¯¯¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬¬¬«««««««ªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¥¥¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¼¼¼¼¼¼»»»»»»»»»»»»»»»ººººººººººº¹¹¹¹¹¸¸¸¸¸¸¸¸···¶¶¶¶¶¶¶¶¶¶¶µµµµµ´´´´´´´´³³³³³³³³³³²²²²²²²²²²²²²²²²²±±±±±±°°°°°°¯¯¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬¬¬¬««««««ªªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¥¥¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¼¼¼¼¼¼»»»»»»»»»»»»»»»ººººººººººº¹¹¹¸¸¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶¶¶¶µµµµµµ´´´´´´´³³³³³³³³³³²²²²²²²²²²²²²²²²²²±±±±±°°°°°°°¯¯¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬¬¬¬¬«««««ªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¥¥¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¼¼¼¼¼¼¼»»»»»»»»»»»»»»»ºººººººººº¹¹¹¸¸¸¸¸¸¸¸¸¸¸·¶¶¶¶¶¶¶¶¶¶µµµµµµµ´´´´´´´³³³³³³³³³³²²²²²²²²²²²²±±±±±²±±±°°°°°°°°°¯¯¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬««««ªªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¥¥¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¼¼¼¼¼¼¼»»»»»»»»»»»»»»»ººººººººº¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸·¶¶¶¶¶¶¶¶¶¶µµµµµµµ´´´´´´³³³³³³³³³³²²²²²²²²²²²²±±±±±²²±±°°°°°°°°°°¯¯¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¥¥¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¼¼¼¼¼¼¼»»»»»»»»»»»»»»»ººººººººº¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸·¶¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²²²±°°±±±²±°°°°°°°°°°°°¯¯¯¯¯¯¯¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££££££££££££££££££¤¤¥¥¥¥¤¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¥¤¤¤£¢¢¡¡¡ ¼¼¼¼¼¼¼¼»»»»»»»»»»»»»»ººººººººº¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸·¶¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²²±°°°±±±±±°°°°°°°°°°°°¯¯¯¯¯¯¯¯¯®®®®®®®®­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¥¥¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤£££££££££££££££££££££££££££££¤¤¥¥¥¤¤¤¤¤¤¤¤¥¥¦¦¦¥¤¤¥¥¤¤¤£¢¢   \9f¼¼¼¼¼¼¼¼»»»»»»»»»»ºººººº¹¹¹¹¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸·¶¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±°°°±°±±±°°°°°°°°°°°°¯¯¯®®®®®®®­­­­­­­­­­­­­­­­­­­­¬¬¬¬¬¬¬¬¬¬«««««««««««ªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¥¥¥¥¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤££££££££££££££££££££££££££££££££¤¤¥¥¥¤¤¤¤¤¤¤¤§§¨¨§¥¤£¥¥¤¤¤£¢¢\9e\9e\9e\9d¼¼¼¼¼¼¼¼¼¼»»»»»ººººººººº¹¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±±°°°±°°°°¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®­­­­­­­­­­­­­­­­­­­­­¬¬¬¬«««««««ªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££¤¤¤¤¥¥¥¤¤¤¤££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢£££¢¢¡\9f\9e\9d\9b\9c\9e¡£¢¤¢\9d\99\97\95\92\8c\89\85\81}ytpnjhg¼¼¼¼¼¼¼¼¼¼»»»»»ººººººººº¹¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±±°°°±°°°°¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®­­­­­­­­­­­­­­­­­­­­­¬¬¬«««««««ªªªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££¤¤¤¤¥¥¥¤¤¤¤££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¢¤¤¥¦¦¦¦¦¢\9c\96\90\8b\85\81}{yvsrspmjggffede¼¼¼¼¼¼¼¼¼¼¼»»»»ººº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸···¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±±°°°°±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬««««««««««ªªªªªªªª©ªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢££¤¤¥¥¥¤¤££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡ \9f\9e\9c\99\98\97\9a\9a\98\95\92\8f\8a\82}ytqmihhhebbfillgffghimu¼¼¼¼¼¼¼¼¼¼¼¼»»»ººº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´´³³³³³³³³³³²²²²²²²²²±±°°°°°±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªª©©©©©©©©©ªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢££¤¤¥¥¥¤¤££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡\9f\9c\99\95\92\8e\8e\8e\8d\8b\87\80zvqmlkihhiijlmkhffjmoprw\7f\86\8e\95\98\9a¼¼¼¼¼¼¼¼¼¼¼¼¼»»ººº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±°°°°°±±±°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªª©©©©©©©©©ªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢££¤¤¥¥¥¤¤££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢££¤¦§¦¤£¡\9e\9a\97\94\91\8d\8a\86\82~{xurnidccefgjnpprtwy}\82\88\8c\90\95\96\98\99\9b\9c\9c\9d\9e\9e\9f\9f ¼¼¼¼¼¼¼¼¼¼¼¼¼»»ººº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±°°°°°±±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªª©©©©©©©©©ªªªªªªªªªªªªª©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢££¤¤¥¥¥¤¤££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡      \9f\9e\99\95\90\8c\88\85\81~zvtrmfa^chknqtwz{~\7f\80\83\88\8d\93\99\9f\9f\9f\9f\9f\9f\9e\9e\9e\9f¡¢¤£¡ \9e\9c\9b¼¼»»¼¼¼¼¼»¼¼¼¼»»ºº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±°°°°°±±±°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªª©©©©©©©©©ªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§¦§§¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢££¤¥¥¤£££¢¢££££££¢¢          \9d\99\94\8d\86\81~{xutsqponoqqnlnv~\85\8c\8f\91\94\98\9d¡£¥¥£¢¡ \9e\9e\9e\9e\9f\9f\9f\9f ¡£¤¤¡\9d\97\93\90\8f¼¼»»¼¼¼¼¼»¼¼¼¼»»»ºº¹¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²²±°°°°°±²±±°°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªª©©©©©©©©©ªªªªªªªªªªªª©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§¦§§¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢££¤¥¦¤£££¢¡¤¤£££££¢  \9f\9f\9d\98\94\90\8c\89\85\81|upmmmmmptw{~\82\85\89\8b\8d\8e\8f\93\96\98\9a\9c\9d\9e\9f\9f\9f\9f\9f        £¤¤¥¢¢¢££¢\9d\97\8d\88\83\84»ºº¹¾»¼Ä¿½¼¼¼¼¼»»ºº¹¹¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±±°°°±±±±±°±±±±°°¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«««ªªªªªªª©©©©©©©©©ªªªªªªªªªªª©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§¦¦¥¤¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢££££££¢ \9f\9f¢¢¤¥¤ \9c\97\95\93\8f\8a\84~xtqnjjkmorux{\7f\83\87\8b\8f\93\97\9a\9c\9e\9f ¡¢¢¢£££££¢¢¢¢¢¡¡¢¢¢££¥££¤¡\9e\99\93\89\7fxss|\81\87\87º·¶µ²¨­Âü¼¼¼»»»ºº¹¹¹¹¹¹¹¹¹¸¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±±±°°±±±±°°°±±±±°°¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬«ªªªªªªªªª©©©©©©©©©ªªªªªªªªªª©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¦£¢¡¢¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢£¢¡ \9f ¡££ \9d\9a\97\93\90\8b\86\80|wsqppqrtuw{~\82\86\8a\8e\93\97\9a\9c\9d\9f ¡¢¤¤¤¤¤¤££££¢¢¢¢¡¡¡¡¡¢££££¤¤¡\9b\94\8e\88\81{ty\7f\84\89\8e\91\95\99\9a¹¶³²\90ot\94²ÃÄ¿½¼»»»ºº¹¹¹¹¹¹¹¹¹¸¸¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±±±°°°±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬««««ªªªªªªªªªª©©©©©©©©©ªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¥¢\9f\9e¡¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢£¡\9e\9b\99\96\94\91\8d\88\84~zwttttuuvy}\82\86\8a\8f\93\97\9a\9b\9c\9d\9e ¢£¤¤¤¤¤££££££££¢¢¢¢¡¡¡¡¡¡¢¡¡¢¢¢¡\9e\9b\98\8a\80xppy\81\8a\91\96\9a\9e¡¢£¤¥¸µ²±j10U~¢ÁÃÀ¾¼»»ººº¹¹¹¹¹¹¹¹¹¸¸¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±°°°°°±±°°¯¯®®®®®®¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬¬¬¬¬«««««««««ªªªªªªªªªª©©©©©©©©©ªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¤¡\9e\9d ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢££ \9d\98\95\91\8dwvuuvvwx|\81\86\8a\8f\94\97\9b\9e ¢¤¦§¨¦¥¤¤££££££££¢¢¢¢¢¢¡¡¡¡¡¡¡¡¢¢£££¢¢\9f\9c\99\92\86ymrw}\85\8c\92\97\9c\9e ¡£¤¥¦§§·µ´\8f:9<<AV\89§¾¼¼»»»ºº¹¹¹¹¹¹¹¹¹¹¸¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±°°°°°±±±°¯­¬¬¬¬¬­­®®¯¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬«««««««««««««ªªªªªªªªªª©©©©©©©©©ªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨¨¨¨¨ £¦ rZTV}¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢££ \9d\98\95\91\8d\83\83\85\89\8d\91\94\97\9a\9c\9f¡£¥¦§§¨¨¨§¦¥¥¤¤£¢¢¢¢¢¢¢¡¡      \9f\9f¡£¤¤££¢¢¡ \9e\96\8c~qnx\82\8b\91\97\9b\9f¢¢¡  ¡¡¢¢¢££¢··³m9<<<64M\95¼¼¼»»»ºº¹¹¹¹¹¹¹¹¹¹¸¸··¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²²±±°°°°°±±±°¯®¬«ªªª««¬­®®¯¯¯¯¯¯¯¯¯¯¯¯®®®­­­­­­¬¬¬¬¬¬¬¬«««««««««««««ªªªªªªªªªª©©©©©©©©©ªªªªª©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨¨¨¨\9e¡\9d\8aZCBJw¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢£¡\9e\9b\99\97\96\98\9a\9c\9e\9f¢£¥¦¥¤£¢¡¢££¤¥¥¥¥¤¤£¢¢¡      \9f\9f\9e\9e\9e\9e\9e\9e\9e\9e\9f   \9e\9c\9a\99\8b~pnr|\86\8f\96\9e¥§¦¥¥¥¥¤£¢  \9f\9f\9e\9d\9c\9c¶·\90R<=<<?;M\80»¼»»ºº¹¹¹¹¹¹¹¹¹¹¹¹¸¸·¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³²²²²²²²²²²±±±°°°±±±±±°¯®¬ª©©©ªª«­­®¯¯®®®¯¯®®®®®­­­­­­­­­¬¬¬¬¬¬¬¬«««««««««««««ªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨¨¨¢¢\8dhSJNW}¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¡¡¢¢  \9f\9f\9f\9f ¡    ¡¢¢¢¢¡¡¡¢¢£££££££¢¡¡ \9e\9e\9e\9e\9f\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9e\9b\98\94\92\8a\7fupy\83\8c\8f\94\9b¢¦¦¦¦¦¦¥¥¥¥¥¤£ \9e\9c\9c\9c\9c\9c\9c¶¯m<=>==@;Oy»¼»»ºº¹¹¹¹¹¹¹¹¹¹¹¹¸¸·¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²±±±±±²²±±±°°°°±±±±±±°®¬ª©¨¨©©ª¬­®¯¯¬¬®¯®®®®®®­­­¬¬¬¬¬¬«««««««««««««««««««««ªªªªªªªªªª©©©©©©©©©©©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨¨¨§¢~PKIMS}£¥¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤£££££££££££££££¢¢¢¢¢¢¡¡¢¢¡¢¢¢¢¡¡   \9f   ¡¡¡¡¡¡¢¢¢¢¢¢¢¢¢¡¡            \9f\9f\9e\9e\9e\9e\97\90\8d\8a\8a\8c\8f\91\9b£ªª¨¦¥¥¥¥¤¤££¢¢¢¢¢¡\9f\9f\9e\9e\9e\9e\9e\9eµ\91ZDA@@?A>Ps¸ºº¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸···¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³²²²²±±±±±±±±±°°°°°±±±°°°¯®­«©©¯\99\90\8bfUWZQ\7f\98­®­­­­­­¬¬¬¬¬¬¬¬¬«««««««««««««««««««««ªªª©©©©©©©¨¨¨¨¨¨¨¨¨©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨¨\97jIGIMQ\7f\9f¥¥¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££¢¢¢¢¢¢¢¢¢¡¡¡¡¢£¤£¢¡  \9f\9f\9f\9f   ¡¡¡¡¢¡¡¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ \9a\8f\87\83\88\8c\91\96\9a\9c\9e\9e¡£¥¥££££££££¢¡¡¡¡¡ ¡ \9f      °sIJFEDBDBNn²··¶¶·······¸¸¸¸¸¸··¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³²²±±±±±±±±±°°°°°°°°±±±°°°¯®®¬ªª¾¯­\9cS>AB_\96®®®­­­­­¬¬¬¬¬¬¬¬¬¬««««««««ªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨¦\82OKHKOP\84\9e¤¤¥¥¥¥¥¥¥¥¥¥¥¤¤¤££££££££££££¢¢¢¢¢¢¢¢¢¡¡¡¡¡¢£¢¡¡         ¡¡¡¡¢¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡ \9f\9e\9e\9f¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡ ¡¡ ¡¡¡¡¡¡\8f]MOLJHFGELh¬¶´³´µ¶¶¶¶¶¶········¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²±±±°°°°°°°°°°°°°°°°°°°°¯¯¯­¬«²¨ª|E>GFz¯®®®­¬¬¬¬¬«««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨\93fMJJOPP\8a\9f¤¤¤¤¤¤¤¤¤¤¤¤¤¤££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££¢¢¡\9d\9a\99\9a\9b\9c\9e\9f¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡oJORPMKIHFKe§µ³³³µ¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²±±±°°°°°°°°°°°°°°°°°°°°°°¯®­¬©ª±l>=E=v¯®®­¬¬¬¬¬««««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨©©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨\7fQLKMRPP\8e ¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££¢¢¢ \9f\9e\9e\9e\9f  ¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡[MQQONMLLKRkªµ²³³µ¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²±±±°°°°°°°°°°°°°°­¸¹©°°°°°¯®­ªª\97aIEEI|¯®®­¬¬¬¬¬««««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨©©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§¦¥¤\95\8d\8d\91cOKMQRPS\90¢¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡JORPNNMMNOWp¬µ²²³´µµµµµµµµµµµµµµ¶¶µµµµµµµµ´´´´´³³³³³³³³³³³²²²²²±±±°°°°°°°°°°°°°°\98ª¹ª°°°°°¯®­««}WNLMe\8a¯®®­¬¬¬¬¬««««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨©©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§¦£¢¡|faePNLOSRPS\95£¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LPPNNNMNNRZr­µ²²³´µµµµµµµµµµµµµµµµµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²±±±°°°°°°°°°°°°°°t\88°±¬°°°°°¯®««gQMN[\8e\9d¯®®­¬¬¬¬¬««««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨©©©©©©¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§§¦¦¦¦§§§§§§§§§§§§§§§§¥¢ \9fmMFKPNNRTSQT\98¤¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NPOMMMMNORZr­¶³²³´µµµµµµµµµµµµµµµµµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²±±±°°°°°°°°°°°°°°Wk¦¹­¯°°°¯¯®¬ [MIOe­¬¯®®­¬¬¬¬¬««««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨©©©¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§§¦¦¦¦¦¦§§§§§§§§§§§§§§¦¦¥¢ \9fkMJQQPPRUUSV\9a¤¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MOMLMMMMORTm­¶´³³´´´´´´´´´´´´´´´µµµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²±±±°°°°°°°°°°°°°°sM}¶°®°°¯¯®­¨\8eSNJOl²±®­­­­¬¬¬¬««««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§¦¦¦¦¦¦¦§§§§§§§§§§§§§§§§¥¢¡ nOJQRQPQRVZ_\9b¤¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LMLLMMMMNPRk¬¶´³³´´´´´´´´´´´´´´´µµµµµµ´´´´´³³³³³³³³³³³²²²²²²²²±±°°¯¯¯¯¯°°°°°°°°°\979V­·­¯°¯¯®­¢tQQNOq¯®­­­­­¬¬¬¬««««««««««ªªªªªªªªªªªªªªªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§¦¦¦¦¦¦¦¦§§§§§§§§§§§§§§¦¦¦¤££qQJPRQONNQZa\9d¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LLLLLLLMNOQj«·µ³²³³³³³³³³³³³³³´´´µµµµ´´´´´³³³³³³³³³³³²²²²²²²²±±°°°¯¯¯¯¯¯¯¯¯¯¯¯¯¯±H<\91¶¯®¯¯®®­\9c\NUQPx­¬¬¬¬¬¬¬¬¬¬««««««««««ªªªªªªªª©©©©©©ªªªªªªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§¦¦¦¦¦¦¦¦¦§§§§§§§§§§§§§§¦¦¦¥¤¤tSKPNLKJLOSZ\9e¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LLLLLLLMNOQj«·µ³²³³³³³³³³³³³³³´´´µµµ´´´´´³³³³³³³³³³³²²²²²²²²²±°°¯¯®®®®®¯¯¯¯¯¯¯¯¯¹q/p²´­®®­­­\90MLVSR\81«««¬¬¬¬¬¬¬¬««««««««««ªªªªªªªª©©©©©©©©©©©ªª©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§¦¦¦¦¦¦¦¦¦§§§§§§§§§§§§§§¦¦¦¥¤¤xUKOLJHGJNRW ¤¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LLLLLLLMNOQj«·µ³²³³³³³³³³³³³³³´´´µµ´´´´´³³³³³³³³³³³²²²²²²²²²±°°¯¯¯®®®®®®®®®®®®®®¶\91EA\8c²­¬­­­\9e`5<OPV\88®««¬¬¬¬¬¬¬¬««««««««««ªªªªªªªª©©©©©©©©©©©©©¨¨¨¨¨¨©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§¦¦¦¦¦¦¦¦¦¦§§§§§§§§§§§§§§§§¦¦¦¦\93\=HHIHGIMRX¡£¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LLLLLLLMNOQj«·´²²²²²²²²²²²²²²²³³´´´´´´´³³³³³³³³³³³²²²²²²²²²±±°°¯¯¯®®®®®®®®®®®®®®¯±c$g±­ª­­«\8c>,6JM[\8e±««¬¬¬¬¬¬¬¬««««««««««ªªªªªªªª©©©©©©©©©©©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦§§§§§§§§§§§§§§§§¦¦¦¦\9b]7DDDFHKOTZ¡£¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡KKMMKKLLNOQj«·´²²²²²²²²²²²³³²²³³´´´´´´³³²²²³³³³³³²²²²²²²±±°°°±±°°¯®®®®®®®®®®®®®®¥º\8a7C¢««­­\9ch,5:GI^\94³¬«¬¬¬¬¬¬¬¬««««««««««ªªªªªªª©©©¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§§§¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨§§¦¦§§§§§§§§¦¦¦¦¦¦¦¦¦¦§§¦¦¦¦¦¦¦¦¦¦¦¦¦§¦¦¦¥\8f[<BEEEGLQW]¡£¤¤¤¤¤¤¤¤¤¤¤£££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢£££¢¢¢¢¢¢¢¢¢¢¢¢¢££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡    ¡¡¡¡KKNNKKLLNOQj«·´²²²²²²²²²²³µµ²²³³³´´´´³³³°°±³³³³³²²²²²²²²¯®¯®°³³²±¯®®®®®®®®®®®®®®\9eµ°c!\87©¬­©\88M(BAFEb\99´¬«¬¬«¬¬¬¬¬««««««««««ªªªªª©©©¨¨¨¨¨¨¨¨¨¨¨¨¨§§§¨¨¨¨¨¨¨§§§§§§§¨¨¨¨¨¨¨¨¨¨§§§§¦¦¦¦¦§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¤\82WBCHGEFKMTb¡£££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡\9e\9e\9e\9e¡¡¡¡FFTQHHLJMT]c¯³¢«¯³¶·´³³´´´´´°­¯²³³³²³´´µ±¯²´µµ¶¶³¯´Â®¯±ª®®®®°²´³°®®®®®®®®®®®®®®®®®®¥?P\9f·°ªp\1e>UUJDg\9d´¬¬¬«««¬¬¬¬¬«««««ªªªª©©©©©©¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨§§§§¦¦¥¥¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¦¦\9evSDDIJGHLJQf¢¢£££££££££££¢¢¢¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡                      ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ \9f\95\9b¢¤¡\9f ¢¤¤¤¥¤£¢¡¢£¤¥ \9c\99\98\9b\9a\9a\9a\99\9b\9c\9d??_YCDLGFLWa­®\99£©®²´¶¸ºº¹¶³±º¿¼¸¶´´´¸¼¾¾º¶¶µ²±¯®µ«¨´­¯±°°¯¯¯¯¯­®®®®®®®®®®®®®®®®®®®®®\843\82µÃ¢Z1nz]?Fn ²­¬¬«««¬¬¬¬¬«««««ªªªª©©©©©¨¨¨§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨§§§§¦¦¥¥¥¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¦¦¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¦¦\93jLCEJLHJOJPl¢¢£££££££££££¢¢¢¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡                      ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡   \9e\8a\92\9b¡¡¡¥©©¦¦§¥¢¢¢¤ª®°³¶·¹¼ÀÄÅÆÇÇÇ;;f]>@LE:8@JkdSZ]`cd\88¬©©¨©ª¨\96\9cºÔÁ§\94\87\8a\8c\8b\89ÄÛÈ« \95\8d\86\9b\9f°ÏÕ¾¨©©ªª««¬¬®®®®®®®®®®®®®®®®®®®®®±bS\9e¬{Qd\85q[\Ju£°­¬¬«ª«¬¬¬¬¬«ªªªªªª©©©©¨¨¨¨¨§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨§§¦¦¥¥¤¤¥¥¥¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¦¦\88_FCFKMIKPJOr¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                              ¡¡¡             ¥®¹¾¿¿ÃÆÉÊËÊÑ×ÚÝÝÝÝÝÝÝÝÞßâæçäáÞÝ99i_=?LD1'+330/88999d\92\87\7fsbVM<B`}o\LCA?>=bsodYOHDEM{ºÃ\8e^bfkot\99»ÕẮ®®®®®®®®®®®®®®®®®®¨\84K\82\8d\7f\8f¸Â\8e``N~§¯­­¬«ª«¬¬¬¬«ªªª©©©©©©¨¨§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦§§§§§§§§§§§§§§¨¨¨¨¨¨¨¨§§¦¦¥¥¤¤¤¥¥¥¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¦¢}UCCFKMIKQJOv¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                            ¡£©²¼¾»¸¹º¸±ª£\9f\9c\98\96\8d\7fwrz\82\88\88\86\80{yrkgd>?KIMRV[>((,-,,.148<7F5101265468>EKNOOOOLGDC?;87<HcycPC?@DHKk«Æ©\8e\7f\83\8c\8b\8c\8d\90\93\93\93\93\9b¨ª­¯®®®°\99X]f¬ÎØâ\8cl]S\86«­­­¬«ª«¬¬¬¬«ª©©©©©©¨¨§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦§§§§§§§§§§§§§¨¨¨¨¨¨¨¨§§¦¦¥¥¥¤¤¤¥¥¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤£¥£\95nPCDGIMIKQKP{¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                            \9f\9d}\83\8a\8c\89\86\87\89\86\7f}||yeMYu{l{\80|u``v\8c\8b\8b\8c\8b:62/5<AF6)%%*+*))(,2Grpvyxx{jZMBCKRW\aehcWPNMNPUah^RH@;9;>@A_x{kJ;@K^p\81\8e\97\9d¡¤ £§¬®®®®¯¤dDJ¤\9f}dT]ZW\8f¯¬­­¬«ª«¬¬¬¬«ª¨¨©©¨¨§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦§§§§§§§§§§§¨¨¨¨¨¨¨¨§§¦¦¥¥¥¥¥¥¥¥¦¦¦¦¦¦¦¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤££¤\9f\87`KCEGIMILQKP\7f¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                            \9f\9d\86\8d\97\9c\9c\9d ¤¤¢¡¡¤£\8bfd\9bª\99¢£\9b\93g^y\98\9b\9e¡¢:731469:1)"!)+*)))2;b¨·ÃÅ¿º¸«\9f\93\8b\8f\9a¡¦§¨©ª¨¥££¡\9e\9c\9c\9e \9f\9d\95\8e\86\83\86\8f\95\95\9c\84kj[UY_flponjgf~\9f¤«®¯®­¦£m:B\9cn3RQQW]\93¯«­­¬«ª««««««©¨¨¨¨§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦§§§§¨¨¨§§¨¨§¨§§¨¨¨¨§§¦¦¦¥¤¤¥¦¦§¥¥¥¥¥¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££\9dzQGCFGIMJLRLP\83¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                            \9f\9d\8c\93\9d¢¢£¦¨¦\9c\97\94\99£\96uh\9a¡\9b\98\95\92\91hb\80     CHIJJIHE7)!\1e(+++0;KXe¢©²¶´³³´´´µ´³³´´´´´²°®®®­¬¬¬¬¯²³³³³´´³±°ª££§¬¯±²±®¦¢¡ \9f\99\9d£«­¯¯«\9e\9fr8B§yGLOQTe\98®ª­­¬ªªª««««ª©©¨§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦§§¨©©ª§§¨¨¥¨§§¨©©©©¨¨¨§¦¤¤¥§¨©¥¥¥££¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤£££\95mJDCFGJMJLRMQ\87¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                            \9f\9d\90\96\9d\9f\99\96\97\9a\9b\9c\9c\9c\98¤\9d\80q\9d\9e¥\96\90\93\98wr\8c¢ \9e\9c\9cEHIJJJIIE@<:853/P\8c±­\95¬©¯­¯³§­²´¶·µ´³³²²²²µ²®­­®¯°°±±±±±±±±±²²²²²±°¯®­¬«ª©¨§§¦¦¦¨­®­§«s6Tc\98hNLOQQf\9c¬ª­­«ª©ªªªªª©©§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦§¨©ªª¡\98\98\9d¤¥£¢¤¥¦§§§§§§¦¦¥¤¢¤§££¤\8d\9b¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤£££¢\8baGBDFGJMJLRMQ\89¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                              \9d\9d\9d\9d  \9f\9f\9e\9c\9b\9a¤¤\99\8aq~\89\9e\95\90\96\9b\99\98\98\9f\9e\9d\9b\9aGJKLLKKLMPRRX]`_g\91¨\91y\84\91®y_`eox\7f\84\8b·¶µ²®¯¯°³³´°®­­®®¯°°°°°°°°°°°°±±±±±±±±±°¯®­­¬¬­­®©\9e\8bDQ\85\84\8aVTQTRNc\9f¨©­­«ª©ªªªª©©¨§§§§§§§§§§§§§§§¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦§¨©©©±²­§¢\9f\9a\97\9b\9e\9f¡££¤¤¦§¨¦ \98\9a\9e\9f\9e q\8b¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤£££¢~SIBEFHJMJLRMQ\88¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                              \9f\9f\9f\9f  \9f\9f\9e\9d\9c\9b¤\94yk_fw\98\96\94\9a\9b\9a\9b\9b\9c\9c\9c\9b\9aHKNOONNMMLLLMNOPHX`SRRf\92]BCY]acdz¤¤·³¯¬¬­²³³³°­«ª«­­­­®®®®®¯¯¯¯¯¯¯¯°°°¯¯®­­®®®®®®®\9f\9fXH\90\84\88yQZWZTKb¡¤¨­¬ªª©©©©©©¨¨§§§§§§§§§§§§§§§¦¦¦¥¥¥¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¥¡\9e\9d©´»¼«\9a\93\90\91\91\90\91\91\8e\8f\90\96\9b ¢\9d\98\9f¨\9d\9b\9d^\82¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤££¢¢qEJCFGIKMJLRMQ\88¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                                    \9f\9f\9f\9d\9c\9b\9e}UETVc\86\97\96\9d\9c\9c\9b\9b\9b\9b\9b\9b\9bILOPPPQQU]dfda^[VUSNTFFbVPQQRSUV\ha\8d\9f°­«¬®°±±®­«ª«¬¬¬¬¬¬¬¬¬­­­­­­­­®®®­­¬««¬¬¬­¯«¤\9f\838\8a£crfS]Y]TJf¥£§­¬ªªª©©©©¨§§§§§§§§§§§§§§§§§¦¦¦¥¥¥¥¥¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¡\99\95\92\82\8b¬È­\97\90\8c\88\84\82\82\7fwtt|\84\8b\90\97\9e±Á\9e\99\9cU}¦¦¦¦¦¦¥¥¥¤¤¤¤¤¤¤¤¤¤¤££ \9ce=JCFGJLMJLRMQ\88¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                                 \9f\9f\9f\9f\9f\9e\9d\9c\9b\9fxL?TPVs\98\97\9f\9c\9a\9a\9b\9b\9b\9b\9b\9bankdoy}zupkg^UOJIIIFB>=;;?DG@::;=AFJbz\8c\99¡«®°°®©©¨©ª«««««««««««¬¬¬¬¬¬¬¬¬¬««ªªªªª«¤©\834;\9ayc{\DM[YPJp¥¤¨­¬ªªª©©©©¨§§§§§§§§§§§§§§§§§¦¦¦¥¥¥¥¥¥¥¦¦¦¦¦¦¦¦¦¦¦\9d¬³§\83rv\95\9b¡¨«¬\98\90\8c}rooja\X\fv\85\97¡£¡\88myE\92¢\99¨¦¤££££¤¤¤¤¤¤¤¤¤¤£££\9d\8dZAHH@ARPMJLPLT\8f¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                       \9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9e\9e\9e\9d\9a\7fZ@IL`\7f\98\98\9f\9c\9a\9a\9b\9b\9b\9b\9b\9bn\83\83}xtj]UROKB:5138=><:6469;<;9988999=APj{\96¦±±®ªª©ª««««««««««««««««««««««ªª©©©©©ª­\95C0_\8fccsN?B\VLJz¤¤©­«ªªª©©©©¨§§§§§§§§§§§§§§§§§¦¦¦¥¥¥¥¥¥¥¦¦¦¦¦¦¦¦¦¦¦ ¦\9a~js\9a««ªª©®\99\91\8dtb]]YQMNdpon\7f\81yo\84Vbb\8b\83\82¢¤¢ ¡¢£¤¤¤¤¤¤¤¤¤¤£££\9b}ODFM<<ZTMJLNKW\96¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                                 \9f\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9d\89jSUUh\83\99\99\9e\9c\9a\9a\9b\9b\9b\9b\9b\9bcswuaMCA?=;951/-/38:854569<=<965576789=DGc\86¢¯²¬«ª«¬¬««««««««««««««««««ªª©©¨¨©©¨¨\9dc1K\89\7fccXBB=[QJJ\84¤¥ª­«ªªª©©©©¨§§§§§§§§§§¦¦¦§§§§¦¦¦¥¥¥¥¥¦¦¦¦¦¥¥¥¦¦¥¥¦\9e\8f{n\81\92\9fª©§¦¥¯\9a\90\8clVPQPLLNirh[v\7fui}SIt\96\8btr\8f\9e\9f ¡¢£££¤¤¤¤¤¤¤££ \93oDGEQ89_VMJLMKZ\99¡¡¡¡¡¡¡¢¢¢¢¢¢¡  ¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡                                 \9f\9f\9f\9f\9f \9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9a\8f\82vuv\81\91\99\99\9e\9c\9a\9a\9b\9b\9b\9b\9b\9bNQSTH>85334443333566554579=>:85445459=@B-8Yw\95§«­««««««««««««ªªªªªªªªªª©©¨¨§§ª©§§}B7s{cc}?AF=XMJJ\8d¤¦«¬«ªªª©©©©¨§§§§§§§§§§¤¤¥§§§§¦¦¦¥¥¥¥¥¦¦§¦¦¥¤¤¦¦££§\91uu\8e\96\98 ¨¨¨¨¢¯\99\8f\8agPKKICABHNPPptn`TJ4^|\82{vr}\98\9e ¡¢¢£¤¥¥¥¤¤¤££\9e\8abBIDR77aXMJLLK\\9c¡¡¡¡¡¡¡¡¡¢¢¢¢¡  ¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡                                \9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9f\98\95\95\94\96\98\9b\9f\9a\9a\9d\9c\9a\9a\9b\9b\9b\9b\9b\9b;;;;:730.+3<;:877655666668:;975443448:;<>A<@d\87\95\94\9c\9f\9f\9f ¡¡¡¡\9f\9e\9e\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\9c\9c\9c\9b\9b£¢\98\8b\/j\8b|bimDJGCXHJKk}\8b\98¨­§ ¤\9a\96­¨¢\9c\97\92\8b\85}\85\8b\8f\92\9d¢¥¦¦§§¦¦¦¥¥¥¥¦¦¦¨¦¦¤¤£¥¤\9e¡£\86dz¤£\9b¢¤¥³´¢¡\90\8e\7f^LHHC<:=HMYqjkeZSSTTlwyzy\82\8f\97\9b\9c\9d\9e ¡¢££¤¤¤¤£\99{ZEJFQ77`YNJLLL^\9e       ¡¡¡¡¢¡\9f\9e\9e\9e ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡              \9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\98\99\9e\9f\9f  ¡\9b\9b\9c\9c\9b\9a\9a\9a\9a\9a\9b\9b76666642,&,45789999999865457654433448999:;?A8Qd\8b\89\8e\8c\8a\8c\8d\8d\8e\8e\8d\8c\8c\8c\8c\8c\8b\8b\8b\8a\8a\8a\8a\8a\8a\89\89\89\89\95\93\83sOJv\89tdvVIREQ[BJLFGQZ\83\9d¥¥\96wj\81wmc][^act\84\93\9e¤¤¥¦¦§§¦¦¦¥¥¥¥¦§§¨§¦¤£¢£¡\9b\9e\9a}i\82¤§££¡ «®¤\91\89\91zPIKF@::@Bdocgg\RRRQRalnprz\84\8b\8f\92\96\98\99\9a\9c\9e ¢¤¤¥£\8feUOLKP97]YNJLLMb\9d       ¡¡¡¡¢ \9c\9a\9a\9a\9d\9f¡¡¢¢¢¢¢¢¢¢¢¢¢£££¢¡              \9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9f\9f\9f\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9d\9d\9c\9c\9b\9b\9d\9d\9e\9e\9e\9e\9b\9b\9c\9c\9b\9a\9a\9a\9a\9a\9b\9b433333346:=><;9888888877500233234444899999:<EZ@fpyxxyz{||{{{{{zzyxxwwwwwwwww|yneXblxfoxFCKL_]=JMTZ^`mrmlaI=MU]eo{\89\95\9e\9f ¡¢£¤¥¥¦¦¦¥¥¥¥¥¥¥¦§§©§¦¤£¡¡\9f\9b\9c\92xu\8f¤««¡\93\90\96¡¬\85~xkLKHC=9;B<irWf[QQQOOPU_aadjry\80\84\88\8d\90\94\97\99\9c\9f¤¤¤\9a{VPVMQO;7ZZOKLLNg\9d\9f\9f\9f\9f\9f\9f\9f  ¡¡¢\9f\9b\97\97\97\99\9c\9f ¡¢¢¢¢¢¢¢¢¢¢¡¡¡¡    \9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9e\9e\9e\9e\9d\9d\9d\9d\9d\9d\9d\9d\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9d\9d\9c\9c\9c\9c\9c\9c\9d\9d\9d\9d\9c\9c\9c\9b\9a\99\99\99\99\9a\9a\9a21111124I\_\WSNJHHIIIIHF:..01123334489999999`\7fR@Saeijklmnnnnnmmlkjjiiiiiiiiifc_]a[ml]~fB?@We^;JMUTKB@>>?M`o\81\8b\93\9a\9d\9f¡£¥¥¤¤£¤¤¤¥¥¦¦¥¥¥¥¥¥¥¦§§©§¦¤£¡¡ \9e\99\8az\7f\92 ¨¥\92\83~|\90±tcMFIKE@<9?C9PbmYOOOMLKKMRUUV[cinsw|\81\86\8a\8f\94\99\9d¡¡\8efKMYOPN=7W[PKLLOl\9d\9f\9f\9f\9f\9f\9f\9f  ¡¡¢\9e\9a\96\95\96\97\99\9b\9e ¡¢¢¢¢¢¢¢¢¡¡¡   \9f\9f\9f\9e\9e\9e\9e\9e\9e\9f\9f\9f\9f\9f\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9d\9d\9d\9c\9c\9c\9c\9d\9d\9d\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9d\9d\9c\9c\9c\9c\9c\9c\9d\9d\9d\9d\9c\9c\9b\9b\99\98\98\98\98\99\99\9a21111124Umojgd`^\\]]]]\ZD..01122210/34569@FLJP=:VURhb\XXYZ[[[[ZZYXXXXXXXVTRRSUVXYUchs\7fOQFHXbWBKHC=:;SfZ=N\96®®©¥¢ \9f¢¦¨§¥¤£¥©­°­«©§¦¥¥¥¥¥¦§§©§¦¤£¡¢£ \90}w{\81\90\9c\94\7fyqi\81­vXBJKJFEA:51FVaPMMMKJJIGHKMMMPW\`cgkpuy~\84\89\8f\94\8av[NHKNTRPNPOMLLAHt®\9f\9f\9f\9f\9f\9f\9f\9f¡£¤¤\9b\8e\7futz\8e£\9e\9d\9e\9f\9f\9e\98\94\95\98\9d ¡\9f\9e\9e\9e\9e\9e\9e\9d\9d\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9e\9c\97\91\8b\8e\91\97\9d\9f\9e\9e\9e\9e\9e\9d\9d\9b\9a\9a\9a\9a\9a\9a\9a\9c\9f ¡¡¡\9e\9c\9b\9c\9d\9e\97\9c¢ \98\97\96\95\97\98\99\9b\9b\9b\9c\9c\9c\9c\9b\9b\9a\98\9b\9e\9c©©\95\9a\9d\9b\99\8f\8f\92\9543333346Womfebbbbbbbbba_F..01KK5.--,12348>EKBD9:cT7:=AGNRSTTTTTTUUUUUUTTSPMLLMMNRQYc\8abWWNQY_PILFDEKR\87{QBx«  £¦©©§¤¡\9f¥©««§¡\9c\94\8c\85\81\80\8d¥¥¥¥¥¦§§©§¦¤£¡¢£\9d\7fgjidu\89\82uxsgz wN9LMKGHCCIO[ZHHLLJIIIHFGHJIJLPSWY[^aeimt{\81\87\82}ythSKKLKMOOMMMLNm \9f\9f\9f\9f\9f\9f\9e\9e\9f\9f\9e\9d\8c{j`_g\84¡\9d\9c\9d\9f¡¥\9e\98\97\9b¢£¡\9e\9c\9c\9c\9c\9c\9c\9c\9c\9d\9d\9d\9d\9e\9e\9e\9e\9e\9d\9d\9d\9d\9d\99\91\84z\7f\85\91\9c \9f\9e\9e\9e\9e\9d\9c\9a\99\98\98\98\98\98\98\99\9b\9b\9b¡¡\9b\95\94\97\9a\9c\8d\95\9e\9a\90\8d\8d\8c\8f\91\94\97\9a\9b\9c\9c\9c\9c\9b\9a\9a\9a¡¨\95 ©\9f\9e\9e\97\91\83\83\89\8f8777778:HTSNNOPRTSSSSSRP?..011220-*)02347=DJ??>EG<4A=956;=>>>>?@BCDDDDDDEFGHHIIIQLOh{Fd`RXZ]IQMC<;J_s[Oj¤®     \9f\9c\96\91\8a\84}wpjfca^[YZz¥¥¥¥¥¥¦§©§¦¥¢ ¡\9f\93lQXVGUnspxzu}\8cqK8MJHKLRX\^NGJKJIHGGGGFGHJJJKNPQRSUWZ]`elty|\7f\82\82\7fym\TLEEHJLMbi\80«    \9f\9f\9e\9e\9a\94\90\8eteZZYa{\95\99\9b\9e\9e ¡\96\8d\7fz}\83\8f\9d\9c\9b\9b\9b\9b\9b\9b\9c\9c\9c\9c\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\98\8c{ms|\8a\98\9e\9f\9e\9f\9e\9d\9c\9a\9a\98\97\96\96\96\95\95\94\90\8d\8d\9a\9a\91\89\89\90\97\9b\82\89\92\8b\84\84\83\85\89\8b\8f\93\98\9b\9c\9c\9c\9c\9b\9b\9c¡®¹³´¸º¥\9d\8e\81ww\80\8a=<<<<<<<;978899;:99999860+,-11110,)(02237=CI><EOX`^]OA628:;;;;<>ACDDDDDEFIMNNMMMVFFwTBalW^ZZGTMFLauzcPQ^\96\88\92\81ysnkdZRNW_eiou{~\87\8f\94\99\9e¥¥¥¥¥¥¥§©§¦§¢\9e\9f\96\82\FMM;<Sdfo{\82\83\80kH8NFENOimXAGGJJHHGGGGGGHIJJJKLMNOPQRTVX[`fkptwx|\81\80|ocWQMMNNRMb\8e¢¢¢¢\9f\9f\9e\9d\96\8b\83\7fdXUZW_s\8a\94\9b\9f\9c\99\8f}n[SW]l\84\9d\9c\9b\9a\9a\9a\9a\9b\9b\9c\9c\9c\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\96\89ufis\83\94\9c\9e\9e \9e\9d\9b\99\99\98\96\94\93\93\92\92\8d\85\81\80\93\92\87~\80\8a\92\98v}\85\7fz{}\7f\83\86\8a\90\96\9b\9c\9c\9c\9c\9b\9b\9f¨¹Æ͵\95\8a\8f\8a}smnx\859:>@@>:62/25577797554320.+4524@JPSVY\^adozwqa_ju~\86\88\89~jRC;;:85322369;:788:>ACEFGHS\SD@=IaX_]]WV[b^r\7f|\`NLQQRUZaflosy\82\8b\95\9c¡££££££££¢¡ \9f¤¤¢ ¸Ã¿·§ \96\8b\85kNEJI:/=RX^v\86\84|cC;NEIS^WPKEDHIJHGHHHHGGHJIJIJJLLMMNOOPQUX[_bhmrtuwyz{|skcZUZXW]\92¤¦¨\9c\98\9d\9f\89zk`ZUTYU\m\99\97\8d\8d\9f\8e\8bvSSSSSUYl\97\9c\9a\9f\95\97\93\8a\83\89 \9d\9c\9c\9a\98\92\90\8e\8b\88\82{tpdk{\8d\97\9a\9a\99\96\92\8f\8c\8c\8a\89\87\84\7f|zxwur\82\83}vmpsxosytsuvxz}\81\86\8a\8d\8e\8e\8e\8e\8d\8d\90\95\9c££\94\81}{{toijrz/046640+**2;;>>>:86654558AGO\ceb`^[Y\^abfjaWPJKKMTXZ^enrqjd`YRLHC>:7;?BEGHKLNPQR\89nG24<DEW]aelh\R>MbeMiKRqy\7f\85\8b\91\96\96£¥¥¥££¢£¤¤¥¤¤£££¡\9e\9c\9a¢£\9d\98xlw\85\9a\9b\8c~~YCHID;/3FOWp\83\83~X>CLPTVTMHHHGHHIHGHHHHGGHIIJIJJLLLLLLMMNPQSUV[`ejmpstvxxyxvqlhaZq\97£¤ \9a\8f\82reZRWUVYTVg®©pjªÃ hSTUVUr~l\92\9a\8c\9e \9f\9c\8c}\83 \9a\95\8e\83wnmljihhhgceq\82\8d\92\90\8d\85}wrqqpoonmljgfetutqigghijkmopqqqqrsstuuuuuuuuuurolkkkkkkkkk\1e\1f#%%#\1f\1c\1d"/;=@CEFFFEEDCBHTfrombVLFA:61.,+-./.-,-03675;HS\cjnprtuuuvtwyzyz{}\7f\81\82\83\84gQF@;9=?W\dj\84\8b\7fpQbrlSjHn\92\98\9f\9f\99\92\8e\8d\98\9a\9a\9b\9b\9b\9b\9d\9e\9f\9f\9e\9d\9c\9b\9a\98\93\8e\8c\97\98\91\88n^Z\\89\93\89\82|V@GE<833AOWj|\82~N9KJ\]L?AHHHHHHHHHHHHHHHIIIJJKKLLLLLLLLLMNOQRTVY]`dhknrssqonpmd[Ul\87\8c\8a\7fmaZVSRVUVXRRa»±\Q¯è¨UVSPNL\8f¿ \9b¨\86¨Ñ»¸£\8cy\8cxqjd]ZZ[\]binpcagw\81\83}yqib^]_adgijkjgddmnmoponnmlkklllllllmmmnnnnnnnnnnnnnnnnnnnnnn\16\18\e\1d\1d\e\17\14\15\1c,;?BCDEDDCCCCBIXknR<2,(&%$,26788CN:7CPVTTTTOD=876720//269=AFIMMLMNPRSTGCHOI<7<W[enqpmigyrTJhG\89\8c\86\81{yusrsuy}\82\87\8a\8e\91\91\90\8e\8c\8a\88\86\83~yw\84\88\81xi`ad\83\8b\88\87y^GEB8654>PV`t\7fvF9NIRPA8?HHHHHHHHHHHHHHHHIIJJJKLLLLLLLLLLLLMNPQSUVX[^bfhfa``fbTHHA^r^RPPQQRTUVVWRO]À¢XU¤Õ\93ILLLLLl\9d\80d\93f\80½Á°\9cbkXYZ[\aaaabeimnc_anvumgc`^^_aegkmoqpmjjiiiowxwusqomlkkkkkkklllllllllllloruvvvvvvvvv\17\19\1c\1e\1e\1c\19\17\1a",6<??>>?@ABDDDB?>=0&"\1f.8:858=CHJLKB?DHJLMMPSSSTWQLHC?=JRRPPONJCBBDEGHIHGIKI?77U[YWURRTtqfQUcbusplhec``dghijkmosuutssrqffia\8f\88vpd\Nb\98\8buvmeSFB=8628GKQkuf_XRLIGEEFGHHHHHHHHHHHHHHHIIJJJKKKLLLLLLLLLLLLMNOPQRTUWY[ZWTRVY[]\YJ?HJHHY\RGHIIJNT_\93\82^`\8c¸}G\UNHDWqeXgO`\85\85\93\93\87gh^]^`aegda``bdefhikmoqsdloenqruwz{~\7f\7f\80\80\80\81\82\84\8a\8b\8b\89\86\84\82\80\7f~}}}}}}||||||||||{{|~\7f\80\80\80\80\80\80\80\80\80\1d\1f#$$"\1f\1d\1d!)0:=;99;=>?ABCBAABDGHIF@7259CMRSOJDBCDGJKKLMPSUWQLIFCBPY_a^\ZUKJJLNOQRI96DG=AQfnh`irtp\82iZNW`jqroliea_`dffdcaacehiiijjj\[bg\98\87miaY=a\99\82ebZbZKEC<612:?LcfUOJECDFFFGHHHHHHHHHHHHHHHHIIJJJKKKKKKKLLLLLLLLLLMNNOPQRSTTRPOLHGIWo{|i``abb]YXWVVVYZ[WYaiµ\9abZ\\^\aeijlotw|\86~hpx~\80\82\84\86\87\82~{xwxz{||||}}}|w{\7f|\82\83\83\84\85\85\86\86\85\85\84\84\83\83\83\83\83\83\83\82\81\80\7f~|{{{{{{zzzyyyyyyyyyyyyyyyyyyyyyy"$'))&#!!"%*8;5.***+,./15<BFILOPECJMBCMUWUJ?BCDEGJKKKKLOSYSLKKKKIO[f_XTOJIIKLNNND0/@G?H_dmljd_\\\87^RTTYdmpmjgedccccccccdfghhhhhggd[i\83\9d\86gd^W9^\82pZLIUYNC@:5420<UbXGDA@@CFIIGHHHHHGHHHHHHHHHHIIIJJKKLLKKKLLKLLLLLKKLLMMMNNOPONNND;415@Tex\81\81~\7f\80\82\81\7f|{y|\84\88\8a\85\88\93\9c±\91z\8d\89\83|w~\84\88\8a\99\9f\9b\95\94¡\9e\86\86\86\86\89\90\9e¨­\9b\94\8e\87\83\83\84\83\83\82\83\84\87\8e\92\94\87un{uvvxy{|||{{zzyyyxxyz{||||{{{{{zzyxxwwwwwxxyzzzzzzzzzzzzz#%'*)'$""!"%494.((())*,.2;@DHMOP61?NIJRYYSG:BDEFHJKKKKLNSYTMLORSDGSf[QKFDCBDHIJH?A@=?FGAIQV\[ZYY\87PN`SU_ghfdba____`aa```aaabbbbbbp`t\9e\9c\81f_\T?Zg]R?>IOJ@<9773,?]_KBABAADGIIHHHHHHGHHHHHHHHHHIIIKKLLMMLLLLLKLKKLLKKKKKKKLLMMMMMMF>8751,,6CSa\80\8e\88\7f\7f\7f\7f\80\7f~~~x|\88\93ÇÁ§£¯¹¾»ÃÉÎÑåæÔÃ\9d¢¯©¤ \9d\9d\9f¢¦§\9c\91\88\7f{|}}}}~\80\8f¤±¸\9adJbTW[agmrtttttttuvxz|~\81\83\84\85\85\85\85\85\85\85\84\84\83\82\82\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81$%'('&%$#! "1850.(''%$$$369HMNPPOMQTPPUZXSKHDEFGHJKKKKLMQVRNKFBA@CMRQKGEBA@@BA@?>DC<<=@BA<:8??PtiMUUUYeimmlmmmmljihhggghjmqrrrrrxx\87\9f\91{c[SMBJNJD88AHFA@@@4;ZXOIDABBCCEFGGHHHHGFFEEHLPF@FQVVWVSRQQPOOONNMMLLKLKKKKKKKKJKKLLLLLFA=<:866?CDEMZfptx}~\80\80\80\80\84{\8bÑíóõÿõù÷ñíîïïçèЭ\9d\9b\9e\99\96\89~~\7fv|\8e\8bzgaov{xsqv\80\90¦µ¼\92Q;E==>@Sovsvvvvwwwwz{|}~\7f\7f\7f}|{{{zzyvusrqpoonnnnnnmkhfeeeeee%%&&&%%%# \1f!1872.(''%$$$ARX`VRRRRQTVTTUXURQQJHIJIJKKKKKLOQQOF>97?EFFGFJMEA??EFEC@98<<;<<;66615S\8aNJYLXfsvxz{{{|}\7f\82\84\85\85\85\85\85\86\87\8a\8e\8f\8f\8f\8f\8f\91\96\9d§\89u`UMGAFIFA:;@@@EJMOV[UHDEEEEDDDEEFEGGGGECBAABIPV_p|xwwsdb]YTSRRPPOONMLLKKJJJJJJJJJKKKKKHEDCCCCCFQbnfVGCP\iqwz}\7f\80s\81äÞàêóûôïïïïïïíîÔ¡vgy\94\97\89}\81mX_{\85ta`W`kpmkmqw\7f\84\87qF542/.-Aglbjjiihhggfeeddcdegggecb``_`abdeeedcbbbbaaa```````%%%%%%%%# \1f!1983.(''%$$$Ku|gWRSTUUWXWUUVURQQJHIJJJKKKKKLNPPPG@<;@EFFGKW^IIIKQVZZTIC@>=<;97402<tpLSOH_owxyyzzzzzz{zzzzzzzzzzzzzzz\98 \9a\95zj[QJEACFC?;;@@@IPUW\QGABEHHGFEEEEEEFFGGDA@@EN\i|\8d\8a\86\82\82\80{lie^ZWVUSSRPPNMMLKJJJJJJJJJJJJJJQW[]]]]]LL\kokhaYPHKS_ltxu~àêóúýòïïïïïïðôøà\9f`FWt\8c\84{\87`AIl\81ua`ER`gd]URPQQQUD92/,)(=jrdiijjkklmmnooppppqpppqrrstuvvwxxxxxxxxxy{\7f\81\82\82\82\82\82\82%%%%%%%%# \1f!1983.(''%$$$K\84\85TSRSUWXXXUTSSSRQQJHIJJJKKKKKLNPPPKEB@BEFFGPakNPTUZdmpnf`WND?=923=9M\89\LWIHety~\80\81\81\80~}||{{||||{{zvsrrrrr\99\9c\85nd\UOID@BDB>;;@@@JTZ]NEA?CFIIGFEEEEEEEFFGC@>@Rh\81\93\8c\86\82\80{uojjigc[XVVTSRQPNNMLKJIIIIIIIIIIIIIEB?>>>>>ENW_elruojd]WRLNdpzÓèóóïïïïððòôö÷þä£X9Hd~sjwO-8a\83xa`]htyraNEABBBOF?51.+*F|\8b~\84\85\85\86\87\88\89\8a\8b\8c\8e\8e\8f\90\92\94\97\98\98\96\94\92\90\8f\8f\90\91\93\94\96\96\95\90\8e\8d\8d\8d\8d\8c\8c\8c\8b\8b\8b\8b\8b\8b\8b%%%%%%%$#"!!1983.(''%$$$L\81\82WVVWXYYXVRONONNKGFC><AKKKDCGLRWYVKE?=>CEFHCf`NPSSY]fnu{|zeQB71--07JnZMNDCVbhlopqpppppqqrrrrrrsuvwvw|\80¡\94q^__ULFB?@A@=::<==EJJJHDCCDEFFEEEEEEEEDCBA<@JSbx\8d\8e\8c\88\83}ume`a``\YVUTRRQPOMMMKJJIIIIIIIIIHGFECA?>;732Iay\82\84\86\88\8a\8b\8b\8b\8c\8b\87\84\85eeY{\82\9dÉïðøûõÜÖØÈÑ÷í\99L=C^}rkwJ6;^\7f|hg}\87\92\95\8cx`SMNOOIC<301APf\8b\94\90\93\93\92\92\92\92\92\92\92\92\91\91\91\91\91\91\92\92\91\90\8e\8d\8c\8c\8c\8c\8d\8f\90\91\91\91\8f\8e\8d\8d\8d\8d\8e\8f\90\91\92\92\92\92\92\92$$$$$$$##"!!1983.(''%$$$L~\7fZXWXYXWURMIFHILGAEB;7?KKKLOSXYYTQF?;9;?@@?<]OOOOOZ^gruqrtolaPD==@LV^b\WSQW\_begiklnonmlkjjjjklosttz\85\8d\9a\8doZ`bUJB?=>?><::;<<DDCCCDDDEEEEEEEEEEDDC@?><BN[n\87\91\8a\8a\84|skc[WYWXVTSRQPPONMLLLJJIIIIIIIIIHGDCBBBAA=831Fg\88\90\91\94\94\95\95\94\94\93\93\93\93\93\89\9b\9aÍ»¢\82y\8a¸ìÿÿé\8f:®ðò\90A@?Z}rlwE>=\z\80nj\81\88\90\93\8d|cUOQRRHB<4/0CUo\8d\8b\7f\7f\80\80\82\83\85\87\89\8b\8d\8f\90\92\94\95\95\96\97\98\9a\9c\9d\9f ¡  \9f\9e\9e\9e\9f¢¤¥¥¥¥¤¤£¢¢¢¢¢¢¢$$$$####""  1983-'&&$###N|}^XVVVVURNHC@BFJC;EF@<BKJJammje]LB>:667865<Pc^^^^^fiu\7f\7fwsprsuumdhmtz~\80}zwvy|\7f\82\85\87\89\8a\8a\8b\8c\8c\8c\8c\8c\8c\8c\8c\8c\8c\8c\8c\8c\8c\91\9d®»¸¼ª\87yeUG?=<==<;:;<==CCBBACDDEEEEEEDDDDCCC?;:L[fo}\92\8c\86\84|od\VRPRQQRQPOONNNLLKKKJIIIIIIIIIHHFB@???>>=965?_\81\87\89\8b\8d\8e\8e\8e\8d\8d\8c\8c\8c\8c\8c\8f\90àöùêÏ¥\9a\8f\8aÁÎ\8fB\96éñ\8a6E>X{pkvBD?[v\83vn\82\83\84\85\7fnUF@BCC@=9532=Gx\9b\9a\8d¥¥¥¦§§¨©ªª«¬¬­­­­­­®¯¯°°±±±±±°¯¯®­­­­­¬«ª©¨¨¨¨¨¨####""#"""  1983+%$$"!!!R}{aXTSSTSPLEB=>CHB:EIFCFKHHp\84\80|qfO=:74431.+As}\85\85\85\85\85}}\86\8e\91\90\8f\8b\87\82\82\83~y\82\8b\8c\8d\8d\8e\8e\8d\8d\8d\8d\8e\8d\8d\8c\8b\8b\8b\8b\8c\8c\8d\8e\8e\8f\8f\8f\8f\8e\8e\8d\89\86\85\8e\9e´Ä²ÇÂ\94\81fUF<<;;<;;;<>>>CCBAACDDEEEEDDDDDDCCBA=<b\7f\8c\8d\8c\8f\88\82}seZROLLLLMNONNNMLLKKJJJIIIIIIIIIIHGEA>======;::<Xw{\80\83\86\87\87\87\87\87\84\84\84\84\90\86\8aïèíûÿóðؤ\82\81\83w\86Ýð\864I@Vyojt@GA[s\87|r\93\90\8c\87}jO>8:;;99878879\8a¼ÆÂÀÀÀÀÀÀ¿¿¿¿¾¾¾¿¿ÀÁÂÃÄÅÄÃÁ½¹³®¨£\9f\9b\99\97\96\96\96\96\95\93\85\83\82\82\82\82\82\82!!!!!!!!"# \1fIeje(&(+,+'#_\81x`TNOQQROMGDCCEFB@FIHHII>1a\82\8d\89\8b\82a@7421/+)'Acu\83\89\89\89\8a\8a\8b\8c\8d\8d\8d\8e\8c\8a\87\86\86}uz\82\86\82{utwz{~\80\82\83\84\84\84\84\84\84\85\85\85\86\86\86\85\84\83\83\86\8d\8f\92¡­µ¶´¬§¦\95\81hQJHGDB@>==@AACCBBBDDDEEDDDDCCCCBAA>>@§´\9b\8d\8f\88\82|vk^SLJJJIJJKLLLLKKKJJIIJIIIIIIIIIIHGEA?>>>>>>???;Uqt}~\80\80\80\80\80\80y\82\86\88\83\8c\81àñôôöó÷õ×ÔǬ\8b\88\9dì\845KAUtokmAF@Yp\87\80z{tjbfQ@?620155557>EOv\8d\91\90\90\90\90\91\92\94\95\97\98\9a\9c\9d\9e\9f¡£®±²²±°­ª¥\9f\99\92\8c\86\82~gedddccb``_^^^^^!!!!   !#&\1f\eZ\81\88\81POSUUTPMq\86s^MFIMPRRRLLLLKGGGFFGIJG3"\\83\91\91\94\8bc;420/,)'&Bez\88\8a\87\87\87\89\89\89\86~|{{{{zzsh]VQUbo~\8d\99\9f¤¨«­­­­­­­­­­­­­«¨§§§ª«¬\9f\9d¥««¤¢¡\9e\95\84rgb]ZPJDA@CCCCCBBCDDDEEDDDDCBBBAA>:89Y{\87\84\83\7fztmdZQLJJJJJJKLLLLKKKJJIIIHHHHIIIIIIHGDCBBBBBBBBBB?Yorzzzzzzzzrpz\8a\8c\85\95ßíðÙâíéÿÿÿóìÇ¢¡à~<IASknlhDC=Tl\84\84\80vjZN]\US8*),211138=Ep\80\81\80\80\7f~}|{zyxwvuuttssstuvwyz{|}}~~\7f\81\83\85\86\86\86\86\87\87\87\88\88\88\88\88\88\88    \1f\1f !%)\1f\18^\89\8d\83\80\81\85\89\8b\8a\88\86|\82bQJHMTURRRMMOOLGGGFFFGD<, Qv\87\8e\87{T-,,,-+(%$:Sdp`][\]]]\[[[[[[\^chaZLOaqtokjqw|\80\82\84\85\85\85\85\85\85\85\85\85\85\82\7f|{xurq``q\81\8d\94\9b \98\95\8e\86~wqn^TKECDDDDDCCDDDDEEDDCCBBBBA@;623?=Prvsnid]VOLKKKKKKKLLLLKKKJJIIIHHHHHHHHHHGFDCBBBBBBBBBBD^nqwwwwwwww\7f|\8bÌÍÒÐØèâ ¸òç×Á̳Ïã¦Ô\88BFBRjvwoG@:Ney{xpfUHYopZ7)+11/-./25<n\81\84\85\86\86\86\86\86\86\86\86\86\86\86\86\86\86\85\84\83\83\83\84\86\88\89\8a\8b\8a\8a\89\88\87\87\87\88\88\89\89\89\89\89\88\88\88\87\87\87\87\87\87\1f\1f\1f\1f\1e\1e\1f!&*\1f\17_\88\88ynov{\7f\80\7f\7f\80yTFILU\XRRRNNPOMGGGFFEE>3+&<NZ`g\>#%'(**'$#*2:AAACGJNQTVVVVVVUTST[b\Y[\\[[[cinsvwxxxxxxxxxxtqnmlkkk_XUYh}\8b\94\86\80\80\80|vpmcYQIEDDDDDDDDDDDEEDDCCBAAA@?:4007A<Xeda^ZUPLKKKKKKKKLLLLKKKJJIIIHHHHHHHHHHGFDCBBBBBBBBBBGbnquuuuuuuu\8b}\9e¸\93»¨¼î÷\9d¬úïÈ\98º\99±«\9c\9d¬wGECQj~\80wI?:K`qspkcSGLptL5,072.,-./18n\82\85\86\87\87\87\87\88\88\89\89\8a\8a\8b\8b\8c\8c\8b\8b\8b\8a\88\87\85\83\82\81\80\80\81\82\83\84\85\86\88\88\89\89\89\89\88\88\87\86\86\85\85\85\85\85\1f\1f\1f\1f\1e\1e\1e\1f#)% ^\82\85yilrx~\80\80\7f\85Z7<IORUVUTTOLKJHFFFD?CKNHHINRV[]]]]ZXVTTVXYYZ[aegjkkmorstuuuuttsuw{xwwwxxww{~\7f\7f~|{{{{{|}\7f\82\83lhw\85~m`WTRSRYiy\85\81\7f{xsmgb]UNGDDDDDDDDDDDDEEDDCCBAAA?>:1-,5;;FTVVSQOLJJJKKKKKKKKKLKKKJJIIIHHHHHHHHHGGFDDCBBBBBCDEEb|}~~~\7f\7f\7f\7f\80\82\87\83\93 \8f¥\9d¨Ýâ\83\93åà¾\90¬\94\93\80xohS23@SnvcK).Hj{\7fuiR]oidleP+@BE)@?><;98k\7f\8d\95\8d\8b\8a\89\89\88\87\86\86\85\84\83\83\82\83\85\88\89\89\88\87\86\85\85\86\88\8a\8c\8f\91\94\96\99\9a\9b\9b\9b\9b\9a\9a\99\98\98\97\97\97\97\97\1f\1f\1f\1f\1e\1e\1d\1d '+*_}\82xoqv|\80\81\80\80sD0=KRSTUUUUNIFEDEEECFe\8a\91\8f\91\93\96\99\9c\9f\9d\98\93\8f\8e\8e\8c\8b\8c\8f\93\94\91\8e\8b\8c\8f\92\93\93\92\91\91\91\90\8f\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8d\8b\89\87\86\86\86\86\87\88\8c\94\9a\9d\9c\9f¦ª\9a}dTSSRPRUetwxtpkea^YPKFDDDDDDDDDDDDDDDDCCBAAA?=9.*)5;<@JLMKKIHHHJKKKKKKKKKKJJJJJIIIHHHHHHHHHGGFDDCBBBBBDGGI\8a\9a\9b\95\92\93\94\94\94\94\94\94\94\94\94\94\95\96\96\96©°g[ma\82¡\98\92\80_N>8<27IYVOE=23?KckbXDe\91\95\96\97}X?\8brX%rX%x\97P<y\8e\9d§«ª©ª«¬­®°±²³´µ·¹¿ÁÂÂÁÁÁÀÀÀ¿¿¿¾¿ÁÅÇÈÈÈÈÈÇÇÇÆÆÆÆÆÆ\1f\1f\1f\1f\1e\1e\1d\e\1e'0/_y\7f}|\7f\83\84\83\80|zI7@KPTVWUTTTKFC@ADDDTb\8aºÃÂÅÅÄÃÃÂÀ¾¼ºº»º¹¹¹¹¹¹¹¹»½¾½»º¸¹»¼¾¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¾¾¹³®¬±®¤\9c\90\83oaXOHHIIRampkgb^[YTNHECCDDCCEEDDDDCDDDCCBA@@>=7-'&5<?BFHHGFEFFHJJKKKJJJJJJJJJIIHHIHHHHHHHHHGGFDDCBBBBCDFLa¹Á´ÄÉÇÆÆÆÆÆÆÆÆÆÆÃÀ½¼¼¥_</3o\98\82\82gH0&*,*0=HFLYdq}\86\8b\90\8c\7fr{\9f­¦²´ \81\81\9b\9b\81h\81\81\82\84\88\8c\90¥¯µ····¸¸¸¹¹¹ººº»»¼½¿ÀÀ¿¾½¼¼½¿ÁÃÅÇÇÆÃÁÀÀÀÀÁÁÁÁÁÁÁÁÁÁ\1f\1f\1f\1f\1e\1e\1d\e\1c&34^w~}\80\83\84\81|unj/8R]UVXXUSRRIEB==BBBo\7f\94³º¸¸¸¸¸¸¸¹¹º»¿ÂÄÅÄÀ½¼¿ÂÅý»¹¹¹¸¹ºº»¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼»»º¹¹¹¹¹¸·²©¢\9e¡£¢¡\98\8czm^OC@AEEO]da_\YVUPLHEDDDDBAGGDDDDCDDDCCA@@@=<5,&%4:>ACDDCCCDEHJJKKKJJIIHHJJJIIHHHGGHHHHHHHGGFDDCBBBAAELl\91©³ºÂÅÄÃÃÃÃÃÃÃÃÃüµ±®©¢\87q^bvrehY\^r\8b\87\8d\94\9a\9e¥­µ»µ·¿Ç½´«¤¾Ìƺ¹¼¿¼¼¼¼¼¼¼¼¼¼¼¼¼ÀÅÅ¿·¶µ¶··¹ºº»¼½½¾¿ÀÁÁÂÂÁÀ¿¾¾½¼»º¸¸¸º¹ºººº»»¼¼½½½½½½\1f\1f\1f\1f\1c#&\e\1c%13Wv{||\80\84\85\87~Z5=FNRRRSSQJHJHE@;7:AX\88«ª¦¬¯±²´µ¶¸¸¹»¼½¿¿À¿½»»¼¾¿Àºº¹¹¹¹¹º»¾Á¿¼¸··¶¶¶¶¶¶¶·º¾¿¾½¼»»»ººµ°­¬©¥¢ \9c\99\93\90\8d\86|p_PA:;@=DNUZYXTQOKA>DCBDEA@Jck`N>BDDDCB@@?><:4,&%18<?@@AABABDGIJJIHHGGGGFCBAAABCEGJJIFDCCCCCCDCCDCA@?UWU^r¤½¼¿¿¾¾½¼¼»ºº¹¹¸¸···¸¸¹»¼¾ÀÁÁÂÁÁÀÀ¿½¼¼½»¹·µ²­«¨\9e\8e}g«À¿¼¼¼¼¼¼»»»»»»»»»»»¼¼»»¹¹¹¹¹¹º»¼½½¾¿ÀÀÀÁÁÁÁÁÀÀ¿¾¼»¹¹¸¸¸·¸¸¸¸¹¹ºº»»»»»»»\1f\1f\1f\1f\15\1c\19\e!$,/Hvxz|\81\86\88{L35:ACDFHIJHEFGIF@;>AU\87±¸´µº¼¼¼»»ºº¹¸¸·¶¶¶µ´´´´´´´´´´´´´´´µ¶¹½¾º·³²²²³³³´´´·»¾¿½¹¸··¶¶µ¯©¦£ \9e\9c\97\94\90\8a\86\81|shZK<67<:@HOUUTOKJFDXx]BDE@>LblhW:@DDDCB@??><94-&%.38<=>@@AABDEGHHGDDDDDDEEFFFFGIIJJJJA@ACDFGIFB??ACFItq`]h\9c·²µµ´´³³²²±±°°°¯¯¯¯±³´µ¶¶·¸··¶µ´²±­¨£¡£¥¦¨®£\92\80r\LY¦»»»»»»»ºººººººººººº»¼¼¼½½¾¾¾¾¾¾¾¾¾¾¾¿¿¾¾¾½½½½½½¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼\1f\1f\1f\1f\14\e/.&#(+@uuwz|\7fx?2235:;=?@CEHJHIGA=>?P\82«µµ´µ¶·¹¸¸··µµ´´³³²²²²²²²²²²²²²²²²²²²³³´µµµµµ¶¶···¸¸¹¹ººº·´±¯¯¯®®ª¦¡\9e\9b\96\92\8f\8a\85\7f{wrkaSE72488<CIPQPKFEKHZ}_BDE?=M`OZ^8>DDDCA??>=;83-&%+/38;<>>?@ACDEFGEBABHKNQTVY\_cdeefeebcdgiknpu{\80\84\83\82\80\81r[Tbu\9bª©«ªªª©©¨¨¨¨¨©©©©©ª­±²¯«©©¯°°¯®­¬«¨¥¢¡¡¡¡¡\89\82r[Jj\8a\9d¹½½½½½¼¼»ºº¹¹¹¹¹¹¹¹¹º»»»¼¼½½½½½½½½½½½½½¼¼¼»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»\1f\1f\1f\1f\17<VJ.#$(:utsfR>222225:;=>@BEJMLHA==;L~®º¼¼»º¹¹¹¹¹ºººº¼¼¼¼½½½½½½½½½½½½½½½½½¼¼»¸µ´·º½¾¾½½½½½½½»¹··³°­¬¨£\9f\9a\9a\99\98\97\93\8e\89\85\7fzurokcYL?511468>EKMKGCCTB4>@BDE?=Mc,Ha8>DDDB@>>=<:73-&%),0589;<=>?ACCDFC@?Abgmsx}\81\86\88\89\8a\8b\8a\8b\8c\8d\8e\8f\90\91\92\94\95\96\99\9c\9e \9c\99\96\95`Ig\9b \9d\9f£¥¦¦§¨©©ª©¨§¦¦¦¦¦¨ª«ª£\9c\99\98\9d\9d\9b\99\96\93\91\8f\8d\8d\8d\8d\8e\90\91\92dUf\8b«³¸¶À¾¾¾¾½½¼ºº¹¸¸¸¸¸¸¸¸¸¹ºº»»»¼¼¼¼¼¼¼¼¼¼¼¼¼»»»ºººººººººººººººººººººººººººººº\1e\1d\1c\e\1dTc>-#$))((/2.*)'%'.6?@BCEFGILJC>;6Bt¥ºÀÁÀ¿¾¾½½¼½¾¾¿¿ÁÁÁÁÂÂÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ¿¼º¹´³¶¹»¾¿ÂÆÉÊÈÁ³¨¡pVYam\8f±°¨\99\8c\8c\88\82}yuqmjfbZRH>510334:AEJIEEEHD@BCBDE?=Mc3F^CBBA@@>=<<;984.)&),/3579:;<>@AABC95CX{~\84\8a\91\97\9d\9d\9b\9b\9b\9c\9e  ¡¡¡¡¢£¤¤¥¦¦¦¦²³§\9bXl\98 ¦¨«­­ª¦¤¡\9e\9d\9c\9f§£\9d\9b\96\90\8b\86\7fztvtpnopqponnpw\85\93\9f\9cwZ^\81\9f°»ÃÀ¼¹»¼¼¼¼¼»º¸·¶¶¶¶¶¶¶¶··¸¹¹¹ºº»»»»»»»»»»»»»ººº¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹\1e\1d\1c\e\e\e\1d#-#%**))))***#!&0:CDFHIKLLMJFB8>h\96©´·´±²³³³³´´µµ···¹¹ºººº¹¹ººººººººººººº»¾ÃÆÇÂÃÉÌñ¥\9c\93\8a\83|ungc6-Jl\8bª¨¦\96\89\89\86\7fxrolhd`]XTNF>5102027<BFGEEEDDDDCBDE?=McAL[DB?>>=<<;;:984.(%(+.145789;<>?@ABAB\\80\90\93\95\99\9d £¥¦¦§¨«¬­®­«©¨¦¤£¢£¨««µ±\9d\89]\81 \89\88\87\85\84\80{vqmhea^_[VRJ=67>DG:<Ma\9d£¨¬°´¸¼¾½¼»Ä«\97¦·¿À¼º¹¹¹¸¸¸¸¸¸··µ´´´µµµµµ¶¶¶··¸¸¹¹ººººººººººººº¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸\1e\1d\1c\e\e\e\e\1c+#%++*)))***$%/9>BCEHIJKHCCB8;c\8e\9f§«§££§¨¨§¥¤¤£¢¢¡ \9f\9f\9e\9d\9d\9d\9c\9c\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\9d\9e ¡¡\86vqoia\Zgr|\84\91¢®³W:`\92¦\9f\98\95\84\81~zsnigd`[WTROKE=7311/149>CEEEEDDDDCBCD?>LbTYX=>><<;;::99873.(%')+.035679;<=>?@MQj\8f\9f\9f\9e\9f\9f\9e\9e\9f\9f\9d\9c\9a\98\95\93\90\8e\8b\88\85\82\7f{xsle`fdXMCPVGDA><9876542100;CRXTMGA;9:Q|¡µ¶¸¸¹¹ºº¸¶³±»³±¿¯±³´¹¼½º·³³³³³²²²²²²³³´´´µµµ¶¶···¸¸¸¸¸¸¸¸¸¸¸¸¸¸···¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶\1e\1d\1c\e\19\e\e\1c(#&-,+**(((*'+4<@?ADCDDC@8802V~\8f\99\9d\98\92\92\96\9c\9c\99\96\94\93\92\90\8e\8d\8b\89\88\87\85\84\83\83\82\82\83\83\83\83\83\83\83\83\83\83\83\83\82\80wf[UMNXcmx\80\84\85\86\87\88\8a\8d\90\91ww\90¬¦\96\8c\87\7fzuojea^[WROMMLHD?9421//16<ACEEEDDDDCBCC@?J`a`T8:=;;::9988773.(%'()+-03568:;<=>?PP_\81\82\7f}zwtrnljigec`]TOKHEB?<:8767765NC.)+....-,,,,+)1Aa{vhTG=964Jj\8e¤ª¨¨©©ª«¬¯®®­¦¥¬µ©¨©­²´µ³³°°°°°¯¯®®¯°±±²³³´´´µ¶¶¶·¸¸¸¸¸¸¸¸¸¸¸¸¸¸···¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶\1e#\1d\v\19\1a\e\1c!!'1,,+)'&(*+/68:<>@?>=<>>43Rq~\87\8d\8a\83\81\84\8a\8f\8e\8b\89\87\87\86\86\84\84\83\81\81\80\80\7f~~~~\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\80\80\80\80\80\80\85\8a\8c\8c\88\86\8f\98\97\99\9e\9d\94\89\82|yrmgb]YVRNLKJJIHD@;731..04<@CDDDDDCCBBBB?>DF_VB7:<::988766552,(&&&'(*,.024689::;CCKYUJB=<;:98876532111,))*))\1f%*!&RlZ@<4/--,+*)))/(*;k|vmXJIHFC@><U¢²ª««««ªª©¥¦¥¦¦¥¥¤£ ¢¥¨ªªª¨§§§§§¨ª¶¹º»»¼½½¿¿ÀÀÁÁÁÁÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÁÁÁÀÀÀÀÀÀÀÀÀÀÀÁÂÃÄÅÆÇÇÇÇÇÇÇÇÇÇÇÇÇ\1a\1d\1d\18\e\1a\1a\1a\1c\1f*6,+*)))+-145678:;:8664-,Hcglrsqqu}\83\87\85\84\81\80\80\7f\7f\7f\80\7f\7f\7f~\7f\7f\7f\7f\7f\7f\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\81\81\81\81\81\81\81\81\81\82\83\85\86\8c\95\95\94\95\96\94\92\87~wsoje`[VQOLJHGFGGFD@<841-,/4<@BCCCCCBBA@@@>=@BP?:<<;::866543220*&&&&''''()+.02333333321.,++,,---..,))*,0*$%&&&\1e %'B\80\7f??<40/.-,*('&-#0Y\95yVXJIIIFB@?4G\8f\9c\9d ¡£¢¡ \9f\9e\9d\9c\9b\9a\99\99\9a\9a\9b\9c\9c\9c\9c\9d\9f¦¨©©©©ª¬²´µµµ¶¶·¸¸¹¹¹¹¹¹ººººººººººººººº¹¹¹¸¸¸¸¸¸¸¸¸¸¸¹¹º»¼¼½½½½½½½½½½½½½3)\1d$\1d\1a\19\19\1a\1e+7++*(((+049;;7667421/*(D^``ccbekry~\81\80\80\7f~~~\7f~~~\7f\7f\7f~\7f\7f\80\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\81\81\81\81\81\81\81\81\81\81\81\81\82\84\8e\98\95\90\8d\8b\87\84zrliea]YTNJJHGEDDEEEC@=:61-+/5<@AAAAAA@@??>====><8::998865432100.)%&&%&&''((((()*))))))*+.1211000//.+'%&/73-*'$#$\15\1cI|vX@=;510/.-+(%$'\1d=\81\8fX?JIIIIGC@?EWt\8a\8f\8f\90\93\92\91\90\90\8f\8f\8e\8d\8d\8c\8c\8c\8c\8c\8d\8d\8d\8d\8e\8f\8f\90\91\91\91\91\91\92\92\92\93\93\93\93\94\94\94\95\95\95\95\95\95\95\96\96\96\96\96\96\96\96\96\96\96\96\96\96\96\95\95\95\94\94\94\94\94\94\94\94\94\94\94\94\94\94\95\95\95\95\95\95\95\95\95\95\95\95\95\95\95\95[F\1d\1d\e\1a\19\17\19\1d+8++****+-/110./02221/:Umnosroosxz|~\83\86\88\87\86\85\85\84\83\82\80\80\7f~~||}~~\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\85\8b\8e\8e\8d\89\8e\94\8d\86\81|mgb^[WSPLIGHGEDCBCDDB@=:72-+/5<?A@@@@@??>==<;;:999988877532100//,(&''&&&''(((('''&&&&&&&'((((((((((($!\1f /;94-&"\1f)\133\8b\87U7J@=85320.,($# \18H\9fpKRIIIIIHEBA_xp\91\8a\86\85\85\85\85\85\85\85\85\84\84\84\84\83\83\84\84\84\84\84\84\83\81\7f}||||{{{zzzzzzz{{{{{{{{{{{{{{{{{{{{{{{zzzyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxVL=;"\16\17\19\e\e\1d&'()+--+)%#!!#)03)*-#Pihhosuuwz|ywy\7f\85\87\86\86\86\84\84\83\83\81\80\80~}}}}~~\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\80\80\7f~~\89\92\9a\9bu\7f\8d\80zuplb]YVSPLJGFFGFECBAABBA?=;;;;;7:<>>>>>>>==<;;:9998877666543210//..+''(''&&''((((''%$$$$$$$%&'((((()-39B'\14\1f2960*$\1e\19\13\1df©^=FGD?:7541.*$!\1f\1c*k§oKLMRTQNFBM[u\85\8a\89\86\81\81\81\81\81\81\81\81\81\81\81\80\80\80\80\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f~~~~~~~~~~~~~~~~~~~~~~~}}}||||||||||||||{{{{{{{{{{{{{{{{SLEF6'\18\1a\1a\1a\1a\1c!#$$$"!#$%%%%" "\1d,I]mlilquy{||{xvw{\7f\80\80\7f\7f\7f\7f~~~~}}}}}~\7f\7f\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\7f~~}}}\80\84\88\89\93\9c¢¢kw\83nga\XVSQOLJHGFEEFFECA@@AA@?=;;;;:7:;<==<<<<;;::98887765544433110///.-+((()(&%''(((('&$#""""""$&()))((()19Y;\14\12*63-"\1d\1d\1f*:|\98BCJHD?<9763/+&% )>\93¥qOEGTYYXpn_Rcilty\7f\7f\7f\7f\7f\7f\7f\80\80\80\80\7f\7f\7f~~~}}}~~\7f\80\81\81\82\82\82\82\82\83\83\83\83\83\83\83\82\82\82\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\80\80\80\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80J?;<742&\1f\1a\1a\1a\1e ""\1f\1f #'+-.-*'%+1P~\82\7f\80\80\80\81\82\82\80|z{}~|{zyyyxwwxwwvvuuvvwwxxxxxxxxxxxxxxxyyyzzz{~\81\84\86\84\83\81}dik]YURPOONLIGFDDCDFFDB@???@?><:;:9989:;<<;;;;::::76876543333321000.00/-+)**+)&%&())()(&$"!  !!#$&*+++**,0=HmbE=?50*&2Lbix\97v?JJGFA><:852./.@:>\85\99\80qnq\8d\9f©²Å¾\8bVamrux~~~~~\7f\7f\80\80\80\80\7f\7f\7f~~}}|{||}~~\7f\7f\7f\7f\7f~~~}}}}||{zzyyyyyxxxxxxxxxxxxxxxwwwvvvvvvvvvvvwwxyzz{{{{{{{{{{{{{C521+.<;2#\1a\1a\1f!$#11/,(%#!#(-.B2<msuwusrqpmjkrxywtsuvvvvvvvvuvyzz{||}}}}}}}}}}}}}}}}}}}}||xsnlbYRRVYWPPNLLKKJHFEDBBBCEECB?>>>?>=<::988899:;;::::99:;55976422232210///.221/-++,+)&$&*++)*)'$" \1f\1f !#$'+---,-5DYhx\7f\80\81`4/)!3\\7f\88\98©iJJJGHCB@=:7503@~¬¾îàáãæèàϺªÝÜ©rjhnsx}}~~~\7f\7f\80\80\80\80\80\80\7f\7f\7f~~}}~\7f\7f\81\81\82\82\82\82\82\81\80\80\7f\7f\7f\7f~~}||{{{{{xxxxxxxxxxxxxwwvwwvvvvwwwwxxxyzz{|}}}~~~~~~~~~~~'9TR?8=C+\1e\e'3823HVC!\1e\1a"'\1f7]L>euzyvyyxxxwwwxxutuuuuvvvwwwwwuuuuvwxzyxxy|~\7f\7f\7f\7f~~~}||||{{ulhd^YRPMOIHHHHHHGFDCCAA@ABBBA?>====<<::99878999:::::9987?35;64/.0221/..---.=GSF.-+--+&"$/6/+,+(%" \1f\1f "$&)+---.4>M]\80\84\84\84\84p@-:5B`~\86\87\87\8a\8b\8c\8d\8d\88~cKA=970oÊðøÿôðíâË·ÚÙ´\8f¦£\94\81upotx{}}~\7f\7f\80\80\80\81\81\81\81\81\81\80\80\80\80\80\80\80\81\82\83\83\84\84\83\83\83\82\81\82\81\81\81\81\81\7f\7f\7f\7f\7f\7f\7f\7f\81\81\80\7f\7f~~}}||{{{{zxxyyzzzz{{{{||}~~\7f\7f\80\80\80\80\80\80\80\80\81\81\81\81\810U|y[LNTG+\1d\1f,<JSKTK@>3$%?NC>NJ<It~{xy{{{{zzz{{yyzzzzz{zzyyxxwwvwy{}~|yyz~\80\80\80\80\80\80\80\7f~}|{zxvrke`\YROKJDCCCCCCCCBAA?@>??@??=<;:::::8888878899999999984>06@60))-120,+++,,-2>d_0-+,.,&!#071,--*'#!\1f\1f!#%(*+--.3>M]\80\84\84\84\84\84nMMcn}\8b\93\95\92\90\8d\8a\88\85\84}rdZI@<:Z¼ýõÿôëãÛ˸¤­¬\9f\93\8b\86\84\81}zyxz{}}~\7f\80\80\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\84\84\84\84\83\83\83\83\82\82\82\82\81\80\80\80\80\80\80\81\81\81\81\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\82\82\82\82\82\82\82\82Ps\8a\84yx\7f\86x>%\1c$>az~zuxnG*.txtngU>5d~}wy|~\7f\7f~~~~~~\7f\80\80\81\81\81\81\81\82\81\80\7f|zxvvxz}}zwtsrqponmkhda`_^]]]bjrwgYROJEA???????@@??>>======<;988888777777788899999988-91<G6*$#*03/+(()+,,.=ro1-*,/-& "072-/0-)%"  "%()*+,-1<J`\80\84\84\84\84\84\84yir\87\96\9d\97\90\8b\89\86\84\80}yunfkqREBA°ÿÿÿôëÛÏŹ§\96\99\94\88}yzzzzzz{{|~~~\7f\80\80\81\81\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\84\84\84\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83g||qqsvyvE,\1f"8^z\80|z\7ftG##{y\82\84vc?\1aPz|vz}\7f\80\81\81\81\81\81\81\82\84\85\86\86\85\85\84\83\83\82\7f|xtomkjlonjgdca```___ajnprstvxy|~\7fkYRNJD?<<<<===>>>>>>=<<==<;:877776666666778888899988(40AL5%\1f\1f'-1-*&'(+,,DZ\8bz0+),0/&\1e .61-12/+'$!!$'*++,,/9I`}\84\84\84\84\84\84\84\86\87\8a\8f\8f\8c\88\85\82\7f|yvtpmib`_PJJJìÿëõðãÏÁ©\99\8f\8a~xwwpprux{}~~\7f\7f\7f\7f\7f\80\80\81\81\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\84\84\84\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83L`kWZ\^`R6&\1d\1c(?PR^ktsU0&sz\84}y\82_\1c0^\80\88\83\81\83\84\83\81\80~|zxwvtrqomkjhec`\XURQQPPSW[`ehkmnpsvxz|}~\7f\80\81\81\81\81\81\7fscWA56;;<<<<====>=<<<;;;;:875444444445566778889;:51$/-CN3 \1a\1f'080%#+)-38`v\7ft1*)-1/&\1d\1f,51.241-)%##%)+)'%%C_w\80\87\8a\8d\8e\93\92\93\9b\9f\9d\91\86\84\82~|xuqnkhda[RMIO>G\84úíòñßκ¦\94\87\7f}yvqkfjmrw|~\80\80\80\80\80\80\80\80\80\81\81\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\84\84\84\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83<LYEB?;7/%\1a\17\18\1d'-'BW_eR/\1esoqor\81m=-Kekb`cggeca_]ZVSPMLKJIIIIJIIIIIMTZ_fmtz}\7f\80\81\82\83\83\83\83\82\81\81\81\81\80\80\80\80\80\80\81\80vgI56;;<<<<<<<==<<<;:;;:9742122222233455677888<;2*$,)BM/\1e\e\1d&3?5! 0%*?Rw\83|o0**.1/&\1c\1d*30.3630+'%%'+-+(&Sk|\84\85\86\89\8d\8e\92\96¢§¨¡\8e|zxuqmic`\XUROIIIM9D¢þûïÙÁ«\97\86}|xtplgabimrx}\80\82\82\81\81\80\80\80\80\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\84\84\84\83\83\83\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82/%)! \1f\1e!$'\19\19!*03?QYX]VA;KDDGGIC7-.7B87?GJJIIHGFECBAA@@@ACGKQV[_chow|~\81\82\82\82\81\80\80\80\80\7f\7f~}}}}}}~~~~~\80\81\80z^D?<;;;::::;;;;;9889998742111111123455567777=;/&&+&?J+\1d\1e\1e&6C8\1e\1c3\e%Pw\83\85xf/*+/1/&\1c\1c)20/4741,(&&(,./Fwx\80\84\84\84\83\84\85\85\93¢¥¡\9a\90\81upkfc^ZVSOLJIIIHHI;A\9fêâÈ«\9a\88\81\7f{tnjfca`dmquz~\81\83\82\81\81\81\80\80\80\81\81\81\82\82\82\82\83\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\81\81\81\81\81=,2=?BDGL5!"/?ILHF8/3218$5;/','\e.\1f\1d3))3=AAAAAABDHNRUX\^adfhmqvy{|{{x|\7f\81\82\82\81\81\81\81\81\80\80\80\7f~~~~~~~~~~~\7f\80\81nSH=9988988:::987777777631110011123555566767>;.#'+#=H)\1c \1e&7F;\1c\193\15!Z\90\87\7fp].*+01/&\1c\e(20/5852-)'')-/c~\80\84\84\84\84\83\80\7f~}\9cª¢\95\86|smfa[VRPNMKKJHFECAC>@\92Æ¢\8e\80\80}zvslfaaaaafpsw{\7f\81\83\83\82\81\81\81\81\81\81\82\82\83\83\83\83\83\83\82\82\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\83\83\83\82\82\82\82\82\82\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\81\80\80\7f\7f~*0?NTQHA3.,+*(&#!!  !!!!!#%'*,04258<?DGKQW]ciprtvvvwwxwvgedeeedddefhijmoruwyz{|}~~~~~~~\7f\7f\7f\7f\7f\7f\7f\7f\80xhS?@<<=@:5989877655565533232111346765544555682''.36/)$%"'Lu=\1c\16(\15\1cK}}vmR*'+/?7(\1a\1d"/9/586*-:GWgqy||||{{{|\7f\7f\81\82ª² \93slgb]XSNKJIIIHGFD@<978:Z\85~|}wurpkgikouwyruw{\7f\82\84\84\84\83\81\81\81\82\82\83\84\84\85\85\85\85\85\85\83\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\82\82\82\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\83\83\83\83\82\82\81\80\7f\7f}|{{##%(% \1a\1a\e\1d!"%')+,-..//015;AGMSW\`cfjmprssuwy{|||||||{{{{{{{{{{{{ywusrpnkigffffeedefgijmpuxz|}~\80\83\80zkYYXXWQ?168888765556555555444468;<96422211.+)"!',//13<@=Tv7\1e\13\1e\1f\18<kuqlE"#+.<.\1a\19)-8C/4860?]v{\80~yxz{{{|||\7f\83\86\88°®\8f\7fc^YVTPNKHHGGFEDDA>:8679:hksyupmlmlkhghhjjiikmnqsvxyyyyzz{{||||}~\7f\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\82\82\82\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\83\83\83\83\82\82\81\7f~|zyww\1c\1d ##"\1f\1d\1c\1e!%(,06=BGJMPTX^djpu{~\80\80\80\81\81\81\81\7f}||{{zyyzzz{{{{|}~\7f\80\80\80\81\80\80\7f~}}||{{zxwwvuspnkjihgecba`aabcfnominqstfH389::986555555556676778<@A<73101..00236<BFSanvpej\7f7'\1c#(\1d8h}\7ft9""&&,#(>PPPN/476;Pq\8a\84~{}}~\80\81\81\82\82\83\83\83\83\83\9d\8bhZRNLLJIHGFFFDCB@>==852241T_jtnhc`YSQNKJIHHGGIJLNQZ\]]]]^^__````acv\80\80\80\80\80\80\80\80\80\80\80\80\80\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\82\82\82\81\81\81\81\81\81\80\80\80\80\80\80\81\81\82\82\83\83\83\83\83\83\82\82\81\7f}|zz(-8DIIDEGLQUZ_cimqsuvxz|\7f\81\83\84\85\87\86\85\83\82\81\80~|zyyzzz{{|}}~~~\7f\7f~~~}}}}}}}||||||}\7f\82\83\84\84\84\84\83\83\81\7f~}|{ywtronmljie^_acfimlL7<<<;9765667789;<><:99;>BC=95200--9DNYdoz\80\80\7f\7f\7fgIG_&/%*2"7f\85\8av3$\1e\1d\1e #Ew\7fyjY/476?Qi{~\81\84\86\86\86\86\85\85\84\83\83\80|yx\86gC<ECCBBBBCCDCA?=;8663/--.-AQ`mifb_RPRTVWUUTTTVWY[^`bccccddeeffffgiw\80\80\80\80\80\80\80\80\80\80\80\80\80\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\81\81\81\80\80\80\80\80\80\80\80\80\80\80\80\81\81\82\82\83\83\83\83\84\85\85\86\86\84\82\81\7f\7fjmtzzwrnmoqtwy{}\7f\7f\80\80\81\81\82\84\85\84\84\83\82\80\7f\7f~~~}}{{{|}~\7f\80\81\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\82\82\81\81\80\7f\7f~~}}}}}}~~\7f\80\81\82\82\83\83\84\84\84\83\82\82\81\80\80\7f}|{~\81\83\84y_NHGFCAABCEGILPV_hn^WI;8@F@DIMQV[`emu|\81\82~zwz|{xg]ab*(%&\1f\1d>k\8a\8bq)\1f\1e\1d\1e 2^\80|wm_C<959Kp{{zz{||}}}}}}|zvtQHKE@??>===?@?>;852.-/0--/016ANZ]`bddfikmnoprsuwyz||}}}}}}~~\7f\7f\80\80\80\80\80\80\80\80\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\80\80\80\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\81\81\81\80\80\80\80\80\80\7f\7f\7f\7f\7f\7f\80\80\81\81\82\82\82\82\82\83\83\82\82\80~}{{\82\7f{yxxzzzzz}\80\82\84\83\80~|||||}|{{zywxz|~\7f\7f\7f\7f\80\81\81\82\82\82\83\83\83\83\83\83\83\83\83\83\84\84\85\85\85\85\85\85\84\84\83\83\82\82\82\82\81\81\7f\7f~}}~~\7f\80\81\82\83\83\83\82\82\81\80\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\82\85\87\86~na[_cccdefghjkms{\82\86shO:=Xgbdfjnt|\82\86|sjd^ZWTX\]\W]bW, $# "(.Nie4$\1e\1d\1e\1d:p\80~~yoJ>966Fvzzzz{||}}}}}}{wsqF>GC=<;::889:9740,($%/257;>AJWaaeiloppooonnnooqrtvwxyyyyyyzz{{||||}}~~\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\80\80\80\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\80\80\80\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\80\80\81\81\82\82\82\82\81\7ffda`^\[Z\82\7f}|}\82\85\87\82\81\80\81\81\83\82\80wutttttttsrrqqrtvw{}}\7f\81\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\82\82\81\81\81\81\80\80\80\7f\7f\7f\7f\80\80\80\81\81\81\82\82\83\83\84\85\85\86\86\85\85\85\85\85\85\86\86\86\86\86\86\86\85\85\84\87\88\88\88\85\81{vy{zyyyzzzzz{~\82\85\87{jK1?i\82~{xuspmjh\PHDA?<;>ADCFNN=&"! %"\17\ e!FT7&\1e\1d\1e\1eAnvxzxrN?985Cyyzzz{||}}}}}}zvpnWD<:78765456420+'# \1f%1<CJOU[ajkkostuvvvvuutrqpprsuvwwwwwwwxxyyzzz{{|}~~~~~~~\7f\7f\7f\7f\7f\7f\80\80\80\81\81\81\81\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\81\81\81\80\80\80\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\80\80\81\81\82\82\81\81\80~zwusqpnnyy{|\81\80~}~\7f}|}\80\85\81vtssssrrpooooopqqqwz|\7f\82\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\83\83\83\83\82\82\82\82\82\82\81\81\81\80\80\80\80\80\81\81\81\81\81\81\82\82\83\83\83\83\84\83\84\85\85\86\87\87\86\86\86\86\86\87\86\86\87\87\87\87\89\8e\8f\8a\87\82~|{}~~~~~~\7f\80\80\80}kH,:g\82}yvsrpnml`UMIEB?>>?><;@<'$$!\1e  \1d\1a$>G&  \1f 'MelpsspQA=>8Cywzzz{zxvtqomknuommO5323433334/,*&"\1f\1c\e$2@LW_gknqtuuutsqqqsuwwxxxy{}~\80~}|{{{{||}}~~~~~~~~~~~~~~\7f\7f\7f\7f\7f\7f\80\80\80\81\81\82\81\80\80\80\80\80\80\80\7f\7f\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f~\7f\7f\80\81\81\82\82\82\82\81\81\80\7f\7f}||zzvx{{yxxx|\80}{z\81\87\86\8c\85tdntvvv|zqmnqtniv{|\7f\82\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\83\83\83\83\83\83\83\83\82\82\82\82\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\83\84\85\86\86\86\86\86\86\86\87\87\87\87\87\86\86\86\87\86\86\85\85\82\82\81\81\80\7f\7f\7f\7f\7f\80\80\7f\7f~~}iF+`w\7ftqz~xtpkgc_XQJC=<<<;8.=D(&&"\1f\19\18\17\13\14\e%$ ""#!!9NID?<>;:;=?ILLOSUTRQOMKIHGEDCA@??<<;9630.(&#!\1f\1c\1a\1a$>^rstuvtqomnppqpppqrssttuwyzz{{ywvutsrrstvwy{{|}|||||}}}}~~~~~\7f\7f\80\82\82\80\7f\7f\7f~~~~~~~~~\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\80\7f\7f\7f\7f\7f~~~~~~~~~~\7f\7f\80\80\81\81\81\81\82\83\83\83\83\83\82\81\81\81xyz{}~\7f\80|\84\81~\80\83\89\90\90\8e\89\85\89\86~us{wejmu}n_z\81\7f\7f\82\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\83\83\82\82\82\82\82\82\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\81\81\81\82\82\82\82\83\84\85\85\85\85\85\86\86\86\86\86\86\86\86\85\85\85\85\84\84\83\83\82\82\81\81\80\7f\7f\7f\80\81\81\81\81\81\80\7f{fD.Zw\86\80xyvo^UROMKNTWUUWFC>8.@L0/+'!\19\1d##!#$"!$&'&%"'*,,--./1334544566665443221110001210/-+(%\1f\1d\1c\1c\1c\1c\e\19 >brqrqppqrqqrrqqqqqqqqqsuwxxxxy{\7f\83\84\82\7f}{yxyz|~~}{zyyyyzz{{||||||~\80\82\83\7f~}}||||}~~~~~~~~~\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f~~~~~~~~~~\7f\7f\80\80\81\81\81\81\82\82\82\82\82\82\82\81\81\81\80\80\81\82\83\84\85\85|\87\84\80\8a\89\8c§\9f\97\92\8e£¯®ª\9f¢\97{dmx\81nW~\86\82\7f\82\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\83\83\82\82\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\83\83\83\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\84\84\83\83\82\82\82\81\81\81\81\81\81\81\82\83\84\83\83\83\82\80yaB2YlrfXQMGFKQX^eilkgc_ID>79AK?:3,$\14\17\1f! #%$%'))('%###$$&&''')))(()*++,,,,,---,,,,,,+*)'%$!\1f\1e\1c\e\e\e\e\1a\18\1f1IIIJJJMQTTUUUUUUUUUUUVWZ^___`afnuxurnkhggiklmoppqqqqrrsstttttuvy}~}}||{{{{|}}}}}}}~~~~~~~~\7f\7f\7f\7f\7f\7f~~~~~~~~~~~\7f\7f\80\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\98\95\91\8b\85\7f{y|\88\84~\8c\8b\93ÇÖÕñ´®\9e\91\87\8d\84f_ly\84nT\7f\88\83\7f\82\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\83\83\82\82\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\83\83\83\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\84\84\83\82\82\81\82\82\82\83\83\83\84\84\84\84\84\84\83\83\82\81w]>3NOIBGVdjljkjhh`WOGA<<;<=@BIND;2,**'!\1c\1f$')*+,*)('&%%%#""!!#$%'()+,,,,++****))))(('%$#!\1f\1d\1c\e\1a\1a\1a\1a\1a\19\17\1d+-\1f#&(*+,-.25799999999:<?CDDDDEFILOKHECBBCDFHJMOQRRRRSSTTUUUUUVX[_`v}|{{{zz{{||||||}}}}}}}~~~~~~~~~~~~~~~~~~~\7f\7f\80\80\81\81\81\81\81\81\81\81\81\81\81\81\81\81\9e\9f\9f  ¡¢¢\8a\82\82|\89\8a\9cæ÷ùõñìêëéàÒÄ·¸¸¬¢\95d\7f\87\82\81\82\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\83\83\82\82\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\83\83\83\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\84\83\83\83\83\83\84\85\86\86\86\85\84\84\84\84\84\83\83\82\80~|dM=:C8&':Vnzh^TKC;79<AFJRYafhggjfca`^ZRE8320.-,,+*('&%$%%%%$$%$$#$%%&&'''''''''(((''&$$#!\1f\1e\1e\1d\1d\1d\1d\1d\1d\1d\1e!))&&'())&%$'+-......./137544445579;;;;;::<=?ABCCCCCCCDDEEFFFFECK\muvyyyxxyyzzz{{{|||||}}}}}~~~~~~~~~~~~~~~~~~\7f\7f\80\80\81\81\81\81\81\81\81\81\81\81\81\81\81\81mpu{\82\88\8d\90\80t\81\81\87\89¢÷ùõñòðóüþÿþüúýüùöÔr\7f\86\82\81\82\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\83\83\82\82\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\83\83\83\84\84\84\84\84\84\84\84\84\84\85\85\84\84\84\84\84\84\85\85\85\86\87\87\87\86\86\85\84\84\84\84\84\84\83\81\7f}|cNB@I6\1f\e#.;BBBBEHKOUZ^chmsxzyurrrrrrsstmbYSK=61-,+)& \1f\1f!"#$&&&%%$$%%&''((())))******++*(&&$##"""""#$%((('()*)((()*+,,,,,,,-/251////0279;=>?????ACDEFGGGGGGHHIIJJJJKM^mssvwvvwwwxyyzz{{{{{||||}}}}}~~~~~~~~~~~~~~~~\7f\7f\80\80\81\81\81\81\81\81\81\81\81\81\81\81\81\81uusqnljija\83\8e\8a\8a¤ùõñòøßÏÌÑØãï÷÷÷÷÷ã|\7f\86\82\81\82\83\84\84\84\84\84\84\84\84\83\83\83\83\84\84\83\83\81\81\80\81\81\81\81\80\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\83\83\84\84\84\84\85\85\85\85\85\84\84\84\85\86\88\89\89\87\86\86\86\86\86\85\85\85\84\84\84\82\81\81\80\7f~}{n^OFI?2-)'6KZ`finrsstuvwxz{|{zyxyzzyonpkbZTM>82--,*(''&%%$#$#$$%%'(()**++,,,,---//011100.,*)'&&&&&&''((((()*+/237:>@@@@@@@??>:766678?JQTTVWYZ[\^_abdeeffffgghhiiiijlprqruwvvvvwwxxyzz{{{{|||||}}}}~~~~~~~~~~~~~~~~\7f\7f\7f\80\80\80\80\80\80\80\7f\7f\7f\7f\7f\7f\7f\7f\83\83\82\80\7f}||dT\86\9a\8f\8c£õññõõÖÁ»¾ÃÉÏÓïùñåâ\81\7f\86\82\82\83\84\85\85\84\84\84\84\84\84\83\83\83\83\84\84\83\83\81\81\80\81\81\81\81\80\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\80\81\81\81\82\82\82\83\84\84\85\85\86\86\86\86\87\88\88\89\89\89\8a\89\89\88\87\86\86\86\86\85\85\84\83\82\81\81\80\80\7f~}|{xo]MGE?:/-Fhzzzzzyyzz|~\7f|{yxyy{|ysppombRA63210/.0-,+----,+*))(()*+,,-../--./111144577>?BDFGIIGFFFFEC3(((())*/7;>KW`dfeeeeedbL?????@BN^hlmmmnqrsuwxywywvvvvwwxxyyyyxxttrquwvvvvwwwxyyzzz{{{{||||}}}~~~~~~~~~~}}}}}}~~~\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\7f\82\82\81\81\81\80\80\80eY\83\99\9d¥¼ññòôõòòòñßáæëïòôöÜuz\81\83\84\85\86\87\86\86\86\86\85\85\85\85\85\85\84\83\83\82\82\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\81\81\81\82\82\82\82\83\83\83\84\85\87\87\88\88\88\88\88\89\88\89\8a\8a\89\88\88\86\85\85\85\85\85\85\85\84\83\81\80\7f\7f\7f\7f~}}|{|xdJMNMI@49gut\7f\83ws}\83\84\82\81\7f|yvututsoomkd_[VPJE@?ACB1//.,,,-/012221100//012389<?EPZelllmttpllnqssqlfXK>4/./358:AIT_gmppqrqnha[UNG=:<?P`inrvyyyyz|~\7f\7f\7f~}|xwvuuvvwxxyyyyyxywvuxxxxxxwxxyxyzzzz{{{{||||}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~\82\81\81\81\81\81\81\81ue}\7fuy¦òóôõö÷ø÷÷÷öööööööÓp}\84\86\88\89\89\89\89\89\88\88\87\87\88\88\88\88\88\87\87\87\87\87\87\86\86\85\84\84\84\84\84\83\82\83\82\83\83\84\85\85\84\84\85\85\86\86\87\87\87\87\87\87\89\8b\8c\8d\8c\8c\8b\8a\89\88\87\86\85\85\84\83\82\82\82\82\81\82\83\83\83\82\80\7f~~\7f\7f~}}|{z{fC.+:IB6/apl}\87xr{}~|{zwutrponnnmlkjgd`YSNHC?=:20112333444555554579;?CHLQUZbjpoomkjjjkllmljf_WL?3-/258;FQ\dkosv}~wod_YRKE?<;=GWgnvz{{|{zz{{|}}}}}||zzyyyyzz{{||||||||||||{{zyxyyyyyyzzzz{{{{||||}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~\82\81\81\81\81\81\81\81}erd\c øøøøøøø÷öööööööööÏs\88\91\92\93\93\93\91\90\8e\8d\8c\8b\8a\87\84\81\80\7f\7f~}}}~\7f\81\82\83\83\83\83\83\83\84\84\83\83\83\83\83\84\86\88\8a\8b\8a\8a\8a\89\88\87\87\86\86\87\87\87\87\87\87\86\84\82\82\81\82\83\83\83\82\80\80\7f~~~~\7f\80\7f\7f~~~~~}}|{y}h>\1c\14'>89(Kdet\85|sz{zxwvtsqponmmkjhe`ZWSNIEA=71/1124799:999;=@CGKOSVY^bhntuusqonlnnmnnpplf_YN@747;<<=>Jbhmsuwvvw|zndLHEC@<=BM_jry|~~}|{|||||||||||{{zzyyyyzz{{|||||||||||||{{zzzzzzzzzzz{{{{{||||}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~\82\81\81\81\81\81\81\81rTi_jz°ø÷öõôóñïííîïòöùûýÓx\91\9c\9e   \9e\9c\9a\98\96\95\92\8f\8b\89\87\86\85\83\83\83\82\82\82\82\81\81\81\82\82\82\82\83\83\84\84\85\86\87\87\88\88\88\88\88\88\88\88\88\88\88\88\89\88\87\87\86\86\85\84\84\84\83\83\84\84\84\83\82\81\81\80~~~~\7f~~~~~~~}}|||y~i<+$+61>%3HUm~}z}{zxvusrpomkjgc_ZSMGA><;8851-,011247;>BFKRW]chnswzxwvwwxvtrpoqrrrsqokdZPF@9/1<?BEIWpxvvvvvx{}~\81zk]QSW\bgjjmuz}\7f\7f~}||||||||||||||{{zzyyyyzz{{|||||||||||||{{{zzzzzzzzzzz{{{{{||||}}}}}}}}}}}}}}}}}}}}}}}}}}||||||||\82\81\81\81\81\81\81\81uWi\j{·ñðïîíìêéæâàãæéíïð¿^jntz\82\89\90\96\9c §¬¯°®¨£\9e\99\94\91\8f\8c\89\86\84\82\80\7f~\86\7f\92¤¥£\9d\98¥¥¢\9e\99\94\90\8b\88\85\84\84\83\83\82\80}||}~\7f\7f~\7f\80\81\82\83\85\84\83\81\80\7f\7f\7f\7f\7f\7f~~~}}}}}|||{eVD.)+-//2*-);b{yz\82}yvsqpnljgb]XRKFC@><:9887654468;>CHMSX^cimrvy{}~}|yvutsrrrstuuvwuog]RHA=>AHNRbq|\81\82\80\7f~~~~~~~~~}|zwsqrtxz{{|~\7f~~~~~}}||||||||||||{{zzyyyyzz{{||||||||||||||{{zzzzzzzzzzzz{{{{{|||}}}}}}}}}}||||||||||||||||||||||||\82\81\81\81\81\81\81\81xZiYk|½êééèèçæåâàÝÝÝÝÝÝÝ»bmpia^[\_bekrz\84\8e\97\9f¦®µµ°ª¥ \9b\96\91\8e\8c\8e~\86}\8a\90\90\93\9c ¡£¥¦¦¦¤¢\9f\9e\9c\9a\98\95\90\8c\88\85\81~~~~}}|||||{{{|}\7f~~~}}}}}}}|||{]H7((----+*)\1c'Rwwrzzrnjgdb_\WOHC?<99999876668;?BGMSY_cgjmpqrrsuvwwwwwvvwwwwvuvwxyyxwrkc^ZZ\_elrv}\85\85\81~}}~~~~~~~~~|ywutsuw{~\7f\81\80\7f~\7f\7f\7f~~}}||||||||||||{{zzyyyyzz{{||||||||||||||{{{{zzzzzzzzzzz{{{{|||||||||||||||||||||{{{{{{{{{{{{{{{{\82\81\81\81\81\81\81\81{]iVi}Àååääãäãäæêííííííí¿q{\7f\80\80\80\7fxohd]WSOPU\ckry\82\8b\93\9b¢ª±±¬\88wzOXYTRTZbjsz\82\8a\94\98\9b\9d\9f¡¤©«ª©§¤¢\9f\9c\99\95\90\8c\87\83\80\7f}{zyyxyz{{||||||||{{ZD6.+---,*'&\1d$Fjohgg\XTRNKHFB>:888889:;<>?ACJU^dhknqsstuuuuuttuvwxyyzzyyxwwwwxzz{{zzzxxwwxy{|\7f\82\82\7f||}}~~~~~~~~~~~|yvtstuwz}~\7f\7f\7f~~~~}}||||||||||||||{{zzzyyyzz{{||||||||||||||{{{{zzzzzzzzzzzz{{{{||||||||||{{{{{{{{{{{{{{{{{{{{{{{{{{\82\81\81\81\81\81\81\81y[iSh\7fÃàààààáâãåçêíðñôö÷»s|}~\81\82\83\80{wvxy{|\83\7fztngjn``bdginvXXyPgsroonkfa]YVVY\_begjow\7f\88\91\9a\9d\9d£¦§§¨¨¤\9f\98\92\8c\87\82}{zz{{{{|||||{{ZD;62---+)&%#&B[ZWUOECAA>=;:9888889;AEIMRVZ]dow{{{zzzz{{yzyyyyxxxwwxyyyyyyyyzz{{{{zyxx|~}yurrsssy{}~~~~~~~~~~~~~|zwvvwxxz|}~}||}}~}}||||||||||||||||{{{zzz{{||||||||{{{{{{{{{{zzzzzzyyyzzzzz{{{{{|||||||||{{{{{{{{{{zzzzzzzzzzzzzzzz\82\81\81\81\81\81\81\81wQhRh\84ÅÚÜÝßàááãäåæèéñôõõ®t|{y~\7f~~\7f\7f\7fyZx\89\86\85\85\84\84\83\83\83\82\81|xtplk[`~Um}\81~}}}}}}||yvspnkhfda^]a`_^ahpz\84\8d\97\9f¨§¦¬·¼¸±¥¢\9e\96\8a\82\80~}|whSD?>:1,(''''*.23667899;;?CEC6:EKIFLZbdfhkmmmnnnqtwxxvuuvyyzzz{zyxwwwxyzzzzzz{{zzzzzxyyzzzywvvvvwwz}~~~~~~~~~~~~~|{zzyyyzzzyyz{{{||||{{zzzz{{{{{{{{{{{{z{{{{{{{{{{{{{{{{{{{{{{zzzzzzyyyyyyyz{{{{{{|||{{{{{{{{zzyyyyzzyyyyyyyyyyyyyyyy\82\81\81\81\81\81\81\81vOhRg\86ÆÙÜßáããââãäåææíïïï¨t~{y~\7f}}~\7f\7fyZw\88\85\84\84\83\82\82\82\83\83\85\83\83\81\80|zc`~Um}\81~}}}}}}}}|||||||||{{{ztib`bba_^^_aeip{\84\8a\91\98¡«¶½¼¶® \9f\9e\92}gXOD5+%+169<@DE?:656;?AAAA>2=P]cejnnnnrvxzywvwxz||{zwvvvvwwxyyyxxxxxyyyyyyyzzzzzzzyyyyyyyxxxxxxyz|}}}}}~~~~~~~~}}||||{{{{{{{zzzyyxxwwwwwwxxxxyyyyyyyyyzzzzzzzz{{{{{{{{{{{{{{zzzzzzyyyyyyyzzzzzzz{{{zzzz{{zzzzyyyyyyyyyyyyyyyyyxxxxx\82\81\81\81\81\81\81\81vPjRg\89ÇÙÝáåçåãááâåææíïïï¢t\80|z~\7f}|}~}wXv\87\83\82\82\81\81\80\80\80\82\84\82\81\80\7f}}d`~Um}\81\7f~~\7f\7f\7f\7f\7f\7f\80\80\80\80\7f\7f\7f\80\81\84\87\88\89\82vl\87\87\83\7fxsnic`\YW[dg_eilnw\86\90\9a «°¬¦£¡\9b\8d\83|wqke]TLHA;7569=>ADHL`jqrqqssqpswz\7f\81\81vtststttsstuuvwwxyyyyyyyyyyyyyyyzzzzzzzzyyyyyyxxxxxyz{|}}}}}}}}}}}}}}}}}||{{{{{{{{{{{{zzyxxxwwwwwwwwwwxxxxxyyyyyyyyzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyzzyyyyxxxxxxxxxxxxxxxxxxxxxx\82\81\81\81\81\81\81\81wQkTi\8aÈÛàäèéåâààâåææíïïï\9et\80}z~\80}{{||vWt\85\82\81\81\80\7f\7f\7f\80\80\82\80\80~}{|d`~Um}\81\7f\7f\7f\80\80\80\80\80\81\81\81\82\82\82\82\82\82\80}{z}wka\7f\80\80\80~}||}\7f\80~\7f\88\9a¥\84\84\86\83ymcZY\afjnu|\84\90\98\9e¡¤¤¤¢\9e\9a\96\89~tld[SNZemosvyvw~\80yussttvuuttuuuuuvwvuuuuvvwxxyyyyyyyyyyyyyzzzzzzzzyyyyyyyyxxxyz{|}}}}}}}}}}}}}}}||{{zzzzz{{{{{{{zzyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyzzzzzzzzyyyyyyxxxyyyyyyyxxxxxxxxxxxyyyyyxxwwwwwwwwwwwwwwwwwwwwww\82\81\81\81\81\81\81\81ySmUk\8cÊÝÞÞßßáÞØÔÓÕÖÖÜàåê\99u\80}z~\80{yzzztUs\84\80\7f\7f~~~~~~\81\7f~}|zzc`~Um}\81\80\80\81\82\82\82\82\82\82\82\82\82\82\81\81\81\81\81\81\81\81\80wkasuwwxyzz}\84\8c\91\9a«ÂØÞÓÌÐ×α\94IDDHMPQOPTWZcmt{\82\89\91\96\9a\9d ¢¤©©©¤ \99\93\8f\8f\89|x|viqqqpnmnqsuwvwvvvuttttttuwyyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyyyyyz{||||||||}}}}}}}}||{{zzzzzzzzzzzzzzyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyzzzzzzzyyyyyyxxxyyyyyxxwwvvvvvvvwwwxxxxwvvvwwwwwwwwwwwwwwwvvvvv\82\81\81\81\81\81\81\81{UoWl\8eÌÞßßààßÚÏÆÂÃÄÄÊËÏÔ\94u\80}z~\80zxyyxrTq\82\7f~~}}{zz{}||zzxyb`~Um}\81\80\81\83\84\84\84\84\83\83\81\80\80\80\7f\7f\7f\7f\7f\7f\7f\80\80wkay{|{{{yxy{|\7f\85\8f\9d£¡\9e£­²¨\8duTSX_c`VOJFCBEGJLMPSV_hpy\7f\83\86\8a\93\9c£©ª¥\8dss\86\90\88\85\82~ytolkkmopqrtvwxzzzzz{zyyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyyyyzz{||||||||||||||||||{{zzzzzzzzzzzzyyxxwwwwxxxxxxxxxxxxxxxxxxxxxxxxyyyzzzzzzzyyyyyyxxxyyyyxxwvuutttttuuvvwwwwvvvvvvvwwwwvvvvvvuuuttsr\82\81\81\81\81\81\81\81{VoWm\8fÍÞààÞÝÝÖÊÀ»¼½½ÃÄÈÎ\8fu\80|z~\7f{xyxxrSo\80}}|zxxyzz|zywvtu`_}Tl|\80\80\82\84\85\85\85\85\84\82\7f}||||||||}}~wkauwxwwwxxwusruwwutvpaNEIPSSZdnoga]YUS\dilmnonga[VSTSTTUV[psdYp\9eº¹½º·´±¯«¦\8e\89\86\84\83\82\81\7f~\7f\7f\7f~~}|{yyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyyyzzz{||||||}}|{||||||{{zzyyyyyzzzzzzzyyxxxxxxxxxxxxxxxxxxxxxxwwxxxxxxyyyzzzzzzyyyyyyxxxyyyyxxxwuutsrrrrttuuvwwwvuuvuuuvvvvvvvutsqpnmlkk\82\81\81\82\82\82\82\82|WpXm\90ÎßàÞÜÚÛ×ʾ·¸¹¹ÆÍÖß\8au\81|{~\7f{yyzyrSn~zzyxxxyyy{yywwvv`_}Tl|\80\7f\83\85\86\86\86\86\85\83}{zzzzzzzzz{}wkatvy{}~\7f~{tpt|\7fypQTXSHDJRUQOUagfdflqstxyyxsnlnrrsrnljgc`\X_]Vg\83\87w\82\88\8e\97\9f¦¬²µ·¹¼¿ÃÄÄ´®¨¤\9f\9a\95\8e\82yyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyyzzz{{||||||~~|{||||||{{zzyyxxxyyyyyyyyzyyyyyyyyyyyyyxxxxwwwwwwwxxxxxxyyyzzzzzzyyyyyyxxxyyyxxxwwuusrpooossstuvvvuuuutuuuutsrpomkkkkkkkkk\81\81\81\81\82\83\83\83}WmXj\8fÍÞÞÝÜÚÜÚÚÚÙÓÍÇÏÖÙÜ\83s\81{{}}yyz{{tSn}yxwxxxxyyyyxxwvv_^|Sk{\7f}\83\90 ¬ª§£\9e\98\93\8f\8b\87\84\81\7f}{zxwtnlnsvvvrmklqsvlaZTRQOONNNQYalw}~zvuuuuxxxxx|{vrpoprsttuutsszwfqmOXYZ[]adioy\80\85\8a\8e\92\98\9eª¯²µ¸»¾ÂÃÁ¿¼¹¶²®¨¢\9e\9a\97\93\8f\8b\88\85\81~zwutuvxxyyyxxxy|\7f\82\83\83\82\81\7f\7f||||zxvutuvwxyyy{{{{{{{{{{{zzzyyyyyyzzyyyyyxxxxwwwxxxxxxxxyyyyzzzzyyyyyyxxxxxxxxxwwutrrqqqomijlnqstsrpoooooomkhgfda^YVSPMJIH\80\80\80\80\82\82\82\82|WhVe\8eÌÚÜßÞÜÞÞßààßßßÚÛÜÝxn\81wxzywx{}}uSm|xxwxxxxxxxxxxwww_]{Rk{\7f}e]cmv\7f\88\90\96\99\9b\9d ¢¡\9c\97\90\89\83\82{pgdipuxyxwwwwvqlheefhlptvv^amvyvsstuuvwwwwvuwz}xtsstuuttssuzuenfL[agjlkjhe]\[[[\\]`dimquz\80\89\8f\95\99\9d¡¦­ÂÅÆÇÇÈÈÉÈþ¹²­¦ \91\8c\88\85\82\7f}|\82\82\80|xtrqsuvwxz|\7f\80\81\80~}||~\80\80\81\81\80\80\80\80\80\7f\7f\7f\7f~}|{zyxxxyyyzz{{{{{{{zzyyyyyyyyyyyyzzzzzzyyyyyyxxxxxxxxwwvspnorvyzyyxxyz{wromjhgeca]ZWTROMLIHGFEDEH\7f\7f\7f\80\81\82\82\82{XcT`\8dË×ÙÝàÞßàààààààÜÜßàql\80vvwvvw|~~vTm{xyxxxxxxxxxxxxxx_]{Rjz~|]QYecb_]^cjqy\80\84\88\90\9a¢¨§\9e\8f\82\8f\91\90\8e\87~wqnliinsxyyvuuttrpN^v\83\84\82}xuvvvvvvvvvvuuy|{zzzzyywutskZedQenw}\80\7f~{xuronmljgeb``_^\YVVWY[]`eou{\7f\84\88\8e\94¥©­¯²´¸¼ÍÍÍÌÊÉÆû³­§¡\9b\95\90\8d\8b\89\87\85\83\80}wusrqomnruwxyz{}}}~~~~}}|{{zzzyyxwwvuuuvvvwxxyzzyyyyyyyyzzzzzzyyyyyyxxxxxxxwwwvuttvy|\7f\80\7fztnie`\YWVVUTSQOLJHHGFFGIKMOQSVY}}}\7f\80\80\81\80zZaT^\8cÉÕ×ÙÝàààààààààÝÝàánl\80uuvutw|~~vTm{xyxxxxxxxxxxxxxx_]{Rjz~{c_o\80~}xsnhd`]Y]cfhjo\81\8a\8a\8b\97\9b\9f¢¢ \9c\98\92\87\80{|}~}{zzywusqZj\81\85|qnsuvvwwwwwwvvvvvuwxxyyyyxwrncR_bUmrvyzz{zzyxwwwwvvtsrqpoooonnmkjhgdcbbaa_]Z[\_adhm~\85\8b\90\95\9a §³¸¾ÅÊÐÖÛáÞÛÖÒÍÈÁ·³°¯¬§\9f\98\90\8b\87\84\81~{xxyyyyyyxwwvvvwwwwwxxxxyyyyxxxxwwwwxxxxyyzzzzzyyyyyyxwxxxxxxwwwvutqoljgdb_[WTPMLLMMMNNNMLKLLNOPRUY\_beikm|{|}~\7f\7f\7fz\aUZ\93Ä­ÒÓÚàÞÝÜÛÛÜÝÝÙÓÌÈnbl\7fw{~tt|~~vTm{xyxxxxxxxxxxxxxx_]{Rjz~{e_n\7f}|zyz{|{{{yvqlgehfb^^blu}\81\83\86\8c\96\9c¡ \9e\9c\9a\98\94\8f\8a\83}wrOav|vopvz|\7f\7f\7f~~}{xwvvvvvuuuuuutsqmaO]cXrsstuuvusrqpqqrrrssttuuuvuttssrrrrrrrqqomgecbba`]SQQRRSTW`gmqv{\80\87\96\9e¤©®´ºÁÌÓÛãæçæçæäàÜ×ÓÎÉú´®§\9f\99\92\8e\8b\88\86\85\83\81\7f}|{{zzz{}~\7f\7f\7f\7f\7f\7f~|{yz|~\7f}{zzzyyyyyyxwxxxxxwwwwuspkfa[VSPNMMMLLMNPQRSTUVWY\^adgiknprtuwxxzzz||}}}{^`V`\9fÍ°ÎÎ×ßÜÙØØØÙÛÛØιq`c\90\8d\89\7frs|~~vTm{xyxxxxxxxxxxxxxx_\ySiz~zf`m~|{ywwvvuuuuuuvvtslaYX\^^[VQOUajs}\87\8f\97§¨¦¤ \9c\99\96u|\85\87\7fwy}}zwuvvwxz||ywwvuutttttsrqpdR`eYrtwxyyyxxxxxxwwvvuttsrrstuwxxxyyyyxxwwvutrqqrstttspnmkjhgeb_\YVSRTWZ^adfg_iu\82\8a\8f\90\95¯¶¼ÂÇÌÑÖÝåêëíîïîëæáÛÖÐÌǾ»·²®ª§£¡\9f\9c\99\96\93\91\8e\8a\88\86\85\81{wwyzzyyyyyyxwxxxxxxwwwwus[WUSRPONNOPQRTW\_`acdfgilnprtvwxxxxxwwwvyyzzz||}|__Wc\97ǼËÊÓÞÛØÖÕÕ×ÙÚÚÑøwed¦´\9bzps|~~vUmzyyxxxxxxxxwwwwww`[xTiz}zg_m||zxwvuvuuuuuuvuuwqe[osvvsojgc_[WVUTVZaiqy\81\89\8f\94\99 ¤¦¨¨¤\9d\93\8a\83\82\81\80\7f~zy{}zxvtssssssssukZeiYpsvyyyyxxxwwwvvuutssrrrsvxz{{{{{{{{{{zzyxwvwyz||}}|{zzyyyyyyyyxxwvsqoljgcW[affaYUTX]adhlpv}\83\8a\8d\90\93\9a §­²¸½ÃËÒÔÔÔÔÔÕ×ÛÚØÖÓÐÍËÌÏÐÏÔʯ\96}{zzyyyyyyxwxxxxxxwwwwusNLLNQSTVZ`fkqvwuttsttuuuuttuuuuvwwwvutttxxyzy{{}\7f_\Z_\80«´ÊÈÒÞÚ×ÔÓÔÖ×ØÛÔƼyhk´Ô¯{us|~~vUlyyyxxxxxxwwwwwwww`ZvThz}yh]my{zxwvuutttsstvuuuqfYgntxxwvvz~\80\7f{vrlfdbabaabekrz\85\90\98\9b\9f£¦¨¦£ \9d\94\86~{xz{{yxwwvvvvuyr\imYpruxywvvvvvvwwxxxxxxwwwwwxxxwwwvvvwxxxxwvqpqsuxxyxwwwwwwwxxxxxyxxvuuuttuvz~\83\85\7fuhchjjihhfec^\\WRPMKMQUZ^bdeintz\80\85\8a\84\87\8a\8f\93\98\9c ¡ \9f ¾¿¥\8azyyyyyyyyyxxxxxxxxwwwwusnlmortvwxwwvvuw{zxwwwwvtsqppppqrrsttttttxxyzxx{~\81KKj\80}lqz\83\8c\97¢­·ÁÉÑ×ÓÒÔÌÁrUy¸ÔÌ \80s{~~wVkxzzxxxxwwwwvvvvvvaWrVf{|xgYnv{ywvuutssssstvtutqsXhoxzzyz|zxvuwxyzzwutrpmiALZdfa_acejp{\87\91\9d«¬¦¢¢¥¦£\9d\96\90\8azywtvztZhqXpsvxywtrstwxxyyyzzzzzzzyyxwwwvvvvvuvwwwvubhqvtsvy|}}}~~}|zyxxxyyyyyyyyyz|{w|\80ydzt|||{{{zzxvuurpoomkigeca``aabbcbaVVWZ\^_a_ZVUZhoovwwx\97¢\9f\9f\92\92\91\91\91\91\90\8f\8d\8b\88\87\85\84\82\81\7f}|zywvtttuuuuuuuuuuvvvvvuuuuuuvvvvvuuuuxyzzuu|\82o@Iew\81wpe[SP[fr~\8a\99¢§°¼»µeL\87²ÆìÄ\8bs{~~wWkw{zxxxxwwwwvvvvvvaVqWf{{wfWotzyvvuuutttsstwtusquXhoxzywx{zwutttttttuvwxvrMXgpnihihca^]]]afoqv|\85\8b\8f\95\9d¤¨\82\7fyttxrQ`nVqvxxywvuwyz{zzyyyyyyyyyyyyyyzyyyyxwwvvvutkqz~}|~\81\80~|zyxwwxwwwxxyyyyyyyyz|{x}\81{f|vyyyyyyyyyyyyyyyyxxwwvuutsrponmlmtvwwwwvvrmhfdrypsttu\9d¢\9b\9d¦¦¦¦¦¦§¨©¨¨§¥¤£¢ \9f\9e\9c\9b\9a\99\98\98\96\94\92\90\8e\8b\89\86\84\82\81\80\7f~}||||{{zzxwvvuuttxyzzrr|\7fW:Sddz~raQFACFHJMSV\iwvm`X\88«¾ï×\91s{~~xYiv{zxxxxwwvvuuuuuubUoWe{{wfVpszxvvvvvuuuttuxturrvYhoxzxvwzyurqqrrrqqqqrrrq\huzxuuwxyzyxwuspkc[SNT\_`cigkpsvxsS^mVmyyyyvsprsvwwxxxyyyyyyyzz{{|||||||{{zyywujpy{zyz|yxwxxyxwvwwwwxxxxxxxxxy|{x}\81{f|vyyyyyyyyyyyyyyyyyyyyyyyyyxxxwwwxyyzzzzyyxtqpix~ooprs\86zltuuuuuuuvy|\80\83\86\89\8c\90\93\96\99\9c\9f¢¥©«ªª©¨§§¨­®­«ª¨§¦¥£¡\9f\9c\9a\98\97\96\96\95\94\92\90\8f\8dyzz{qr|vU>]cQewuh\TNLJGC=>?FZqun^h\87¥»ßå\9fsz~~x]gu|zxxxxwwvvuuuuuubTmXd{zvfVpszxuvvvvuuuttuxturrvYhoxzxvwyyuqppppqstttuutsdmx~}{{}}}|{zxxy|~zxurplf^WR[bjqtw{_erXhyyyy\87\94\9d\9f\90\8b\86\83\80}zxvvwxxwvutsrqqqqrtuwxxyxvfmuxvuwyyxxyyzzzyxwwwxxxxxxxxxy{zw|\80ze{vyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxwvvvvvvvvuuujy\7fnlnoqmQ@KLLLLLLKKJLNPSUX[]`begjkmnpsvz}\81\85\88\8a\8c\8e\90\92\94\96\97\98\99\9a\9b\9c\9e £¤¤¤££¢¢yzzwtv\8bffL^]EMdwncZTXXSMB@==K_gciq{\8a¡Úåªsy}~y_ewyyxxxxwwvvuuuuuubTmXd{zvfVpszxuvvvvuuuttuxturrvYhoxzxvwz{zyywtsrsvwwxxwvbgu{|zz||||}|zzzz{|}{zywutrqbju~op}hlw\dostu\8e§¬¶·¶´³²±¯­§\9f\96\8e\8d\8a\88\85\7f|zyxwvuuvuupquygluxvtvwvtsttttuvwxyyxxxxxxxxxy{zw|\80ze{uxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyxxmy|hmpruqVR[ffffffeeeca`^\[YWVTSQOMICCEGIKLMKMORVY[]_acgjmpqppruwz|\7fzz{s{\80\88`xWVVHDQqukaZbc^Zfi`ROZccelx\82¡ºÈ´sy}~yadvyyxxxxwwvvuuuuuubTmXd{zvfVpszxuvvvvuuuttuxturrvYhoxzxvw{}~\7f\80}yxwxxxwvuts[bpxxvvxzzz{ywvuvxz|zxtqkc^\RV\b\\n^aq\cmsturxbg\7f\84\89\8e\93\98\9d£ª´º¿ÁÂÁ½±«§£ \9c\98\94\8f\88\83\80|{zxchrwutvyzzz{{{{{zyxwwxxxxxxxxxy{zw|\80ze{uxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwvvvuuuuuuuuuoyxbnsuxvZbkrrrrrrrstttsrrqpoonmllkkkihgeca`_^^]\[YWSRQRRRRPIIJLNPRUzzyr\84\8bwewYMOVNGfwqh`kmg`mvqaYew\82wuy\7f¢¢Æ»sx}~zcbuzyyyyxwwvvuuuuuubTmXd{zveVotywuvvvvuuutuuwutqrvYhpwywuv}\81\88\8c\8e\89\84\7f{yxwvutrpXaowwuuvxxxxusqrtvwupi`[SJDCIIC>D?P@E_XdnuwwlqTZSTTUVWXZ`jr}\84\8b\93\9b¤¨¬®±³¶¹¼ÁÂÂÁ¶¢\8f\87\8a\91\91\8d\88\88\8a}xtqmjjjknqttuvvvvvwwwxzyv{\7fydzuxxxxxxxxxxxxxxxxxyyyyyyyxxwwwwxxyzzzzzzzzzzzqyv`ptwzy]nu}}}}}}||zyxwwvuutsrrqpqryz{{zzz{zyxvuspmjfdca`^]]]\\[ZZYz{vt\8d\8fhlmWIKaZE\tvmcosleqxudYe|\8b\83\84\8e\94\92¥ç¿sx}~zeat{z{{zyxwvvuuuuuubTmXd{zvdWouywuvvvvuuvuvuvvtqrvYiqvwwst\80\84\90\97\9b\95\90\8a\85~zwuttrpZbqxxwwxxyzyvropppldZNB?=:8:LN@39.;)/LQanxzyt\82grzxwutrqojd`[WTRRTX\`eins{\86\8e\95®µ«¢·¿ÇÉÄÁÂÃÀ¹²ª¡\99\94\90\8c\85~xwwvvvvvvvvwyxuz~xcytwwwwwwwwwwwwwwwwxyzzzzzzyxwwwwwwwwwxxxxxyyzztyw`ruy|{_sy{{{{{{z{yxxyyyyyyyyzzzyxvusrrqppqqrsstttssmmomootuututsrzys|\90\82hs\81lUJYq\WkvqfpunhsxveNqwxpv\98\9b¼¿ò§sx}~yebt|{|{zyxxxxxxxxxxmS`c~}y\82eXlsrolmmmnooopqsvvurrvYjqtvwpt\87­­¼¸°\9b\96ourstttrp[bqxxwwxyxyyurnnmi`SB7101124;=98556.,869\ouu\83sP\{|zywvtsstttuuuurlf`[UUY[\^_]Rh\93xru}\88\93\9eª±µ¹¼ÂÈÌÐÒÐÌÆÀ¼¶±­§¡\99\91\8b\85\80\7f\7f\80\7f|cm\83\84\83\83\83\83\83\82\80}{yxwwwxxyyzzzzyyxxxwwwwxxxxxxxxxyyzv{xbtuy|{au{zzzzzzzyzzzzzzz{{{{{{{zzyyxwwvvvvvwwwxxxw{knvtvxxz{zvvvu{vs\8a\8dkq{vki[HwiRYpqhotnhtvteOquwul\8ax\96¦ä\9fty}~wect{zzyyyxyz{||||||{Zt\89¡\98\93\9cgXdmd^[\\]_abcehnutxsrvYjqstunu\8f«½ÐºÐÈ\99zvpqrstsp[bqxxwwxxwwxvrppldTC5.,/00149;878;851.,*8Ykn\7frWky|{yxvutsstuuvvvvvvvvvsnkjihudg\8dRFSVUTVY]aejqx\7f\88\91\98\9f¥«±¸¿ÒÕÖØÚÛÛÙѲ¤\8e\7f\98\94\8f\8d\89\85\80{xuuvwxxyz{yxxxwwvvxyyzzz{{{zzzzzyyxxyzv|zdtuy|{`tzzzzzzzzyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|ilvsuvvxyxvvvuztx\90\83euzpj\86c@_g`SaninsnhttteOptvwe\8cs\83\9fÚ\96ty}}vdet{zywvuxz|~\7f\7f\7f\7f\7f\7fvIp\91\95ws\7f`TY^SJCEFILMOPSWbqutqrvYisrsuoy\97ÁØÕ\8c³àµ\98wpqrsutq[bqxxwwxxwwwvuqmdXF7.+-01124897779740-*)#7Tasn[tv}{zxwutttuuvvvvvvvvvvvvuutt\7fsm|X]ljjjihd`\ZXVSRQSW[`eimsz\81\8a\92\9b£«¶ÅÒÜ°¦ÛÝåáÝÚÖÔÎÉ«£\9d\97\92\8c\86\7fyvuttssttuvvvwwwwxxxxxxxyyz{w}{euuy|{`tzzzzzzzyyxxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwy}hkvruuuwwwvvvuws\84\91pgwtz\7f\9cX7J_kQTjlmsnhtttgPoruwm\9d ¡½Ò\87ty}}udftyywvtrrty{||||||j9d\84qEH]YSPQC801379:;=?BQequrrvYgrtstp\7f¢Ýïí\9fºóÙ´\7fqqrsutq[bqxxwwwwvvxyvpfYI9/++-/112367656852/+)'#&9Oee[su|{zxwuttuuvvvvvvvvvvvvvvvvvpnu~do}ttuttuxxxurqppnlifb^[XXWXYY[]`fnw\8au\8c\91\9f¦®·ÂËÔÝäåååäãáßÛÔÍÇÁ»´­\98\92\8e\8a\86\82\7f|zzzzzzyyyyz{w}{euuy|{`tzzzzzzzyyxxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwy}hkvruuuvwwvvvutx\86\80mpyxz¨uBP@O^_R^kmsnistthQnqtxv ËÄ׿|uz}}sdgsywvtrqprwyzzzzzzqEn\80d<JeRE:42*##%(*++,-/8Kdmqofddrtqrq\86®æùõ´ÈîâÉ\8btrstvur[bqxxwwwvtwzzuk]J<0+)+-0112356545640-*'&)'09PYVouz|zywvutuvvvvvvvvvvvvvvvvvvuuy}_pyyxwvvvwwwwwxz\83\83\83\80~|||\82\82\7fzuqmjihggoXQkZ\]^__bes|\85\8c\94\9b¤­½ÃÇËÎÒÖÚÛÙ×ÕÒÐÍÊù±«¥\8b\7fzxxz{w}{euuy|{`tzzzzzzyyxwvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuy}hkvruuuvwwvvvur|\89oky{{\97¬J>XJHVjSTimroirstiRnoswz\8dÀÁѤsuz}}rdhswutrqooprtuuuuuuvSjhR6BTD6,')"\1d\1e\1f!"""##$)3>Wfkf\bquqqr\8c¹Üÿè\91¯èèÙ\97wrstvur\bqxxvvvvuz|yqdS=2+)(*.111124433342/+(%$+(516HQkvx|{yxvuuvvvvvvvvvvvvvvvvvvvvvy|Zrv}{zxwwxxwwwwxuuvxz{}~\7f\7f~~}|{zyxwvlaajxvsojfa_[YXXXXWVVZ^dint{\82\8a\91\97\9d£ª±·¾ÄȺ\8d|zxxz{w}{euuy|{_szzzzzzzyxxxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwz}hkvrutuvvvvvvut\81\81dn|}~±\82@BNlIV_`R]mrojqstjSmnrsxt\94«¬\85ruy||qdhrussqonnopqrrrqppdHL;<3.-+(&'($!"""""!!  "&.9R`c``qurpr\90ÀÒáÞ\8b¬öïÞ¤zstuvvs\bqxwvuuvwzztiYJ4-)'&),011123322331-*'$#$%98,2Giuu|zyxwvuuvuvvvvvvvvvvvvvvvvvwy{Wsr\80|{yxxxxxxxwwuuvwy{{yxvvwxzz|||||plrz\80\7f\7f~}|{{{zywvtrpmkihfeb_\\\^_`bceghl\85\7fqxvxz{w}{evvy|z_syyzzzzzyxyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz~hkwrutuvvvvvvvz\85r_u|~\7fµPQAUheVVhTTmrojprukTlmroso\83\87\83|tvx{{qehqtrrponmnnoppomjjJ52!>H8(%&%&'&&'&%%$%%$##"")=KUZ`ovsps\91Äס¹\8e§èßã°\85vuvwwt\bqwwuttvxyvm^PE3.'#$'+/11122212220-)&$#\1f!79.'2^qsyyyywvvuvuuuuuuuuuuuuuuvvvwyz{Wtq\80~|zyyyxxxxxxwwwwvtsssttvvxxzzyy|\7ffl\8cyxxyz{{zyxwwvvvwuuuuvvutsqnmlkigaWROmqhvuxz{w}{evvy{z^ryyyzzzyyxwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvz~hkwrutuvvvvvvvx\88[qv\81\80VW@ZjrYATfRQms^nrukTlmqsrrrupustutzpfXpqqpoonnnorpnhb[QC:9::73/('&&%&%$%&'&&%$$# \1f '8CN[kuvpt\8c»äÆ\87­´\90\9cÑÃ\83vuvxxt]cpwvsssuxytfSF@8/& \1e$*/1122111211/-+)(&#$0/-+-:Ymwwyxwwvvuuuuuuuuuuuuuuuvvwxyz{Vuq\80}|zyxxyxxxxxyxwvuuttttuuvvxyxxw|}aj\82\84~}}}}}|zyyyxwwwyzzzxxxxxxxxxxy{zvu{|]mrvxz{w}{ewvy{y]qxxyyzzyyxwvvvvvvvvvvvvvvvuuttttttttttttttz~hkwrutuvvvvvvv\85i]\84~n¦¯]aS<ZpuaCKdUE_l[nrukTlmqsrrrsqrqrsrypgVoppooonopsvpj^RG@=;<<:642.+('%$###%%%%#"""!!!\1f 0@Qcr{qr\83«÷à\97\93\81\83´ç£\80vuuwxu]cpwusrrtxytbI>;6.'!!%*/1122111100///...+'&%+*)+Dbtuxwwwvvuuuuuuuuuuuuuuuvvwxyz{Wuq\80|{yxwwxxxxxxxxwwwwwwwwwwwwxyxxv}z_o~\82|{{|||{yyxxwwwwxyyyxxxxxxxxxxy{{xx\7f\81ctyzxz{w}{ewwy{x\pwxyyzzyxwwvvvvvvvvvvvvvvvuuttttttttttttttz~hkwrutvvvvvvvv\94\yv{|Ã\7f`kO:[txh_NN]NH\_orukTlmqsrrrrrqqqrqyqhUnoooooopqqpe\K?<>@?>==<:840,)&$#"$&%$$"!   !"!\1e *?`j|qqy\9bÚÖ³¡\93³Øâ\9c~vuuvxu]cpvurqqsxyu^@763.(%$%)/122222211000//..+&#"))&$3Srzyxwwvvuuuuuuuuuuuuuuuvvwxz{|Xuq\80|zxwvwxxxxxxxxxxxxxxxxxxxxyzyxv\7fw^r}\80{{{{{{{yyxxwwwwwxxxxxxxxxxxxxy{{xx\7f\81ctyzxz{w}{exwyzx\pwwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvv\84[\81uw\9eªYumO:Ztzmt[CP\CA_orukTlmqsrrrrrqqqrqyqhUnoooooopqoj\P<17@C@?@ABA>:61-*(&&'('$#!\1f\1e\1e\1f !!"!"1Pfrqpt\8fÞΪ°±¶ÏÐ\95|uvuvxu]cpvtqppsxyuZ:021.,)&'+/1222221100///.--*%"!((%!!Bl|yxxwwwvvvvvvvvvvvvvvvvwwyz{|Xuq\80}{ywvvwxxxxxxxxxxxxxxxxxxxyzyxv\7fv^u|\7f{{{{{{{yyxxwwxxxyyyyyyyxxxxxxy{{xx\7f\81ctyzxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvvox\94£¡ÖrWvu\GXrznokSGY\NXkrukTlmqsrrrrrqqqrqyqhUnoooooopqohTC705;>?@CEFEC@<730-,++*(%# \1e\1c\e\1d\1e\1f !!\1e'=[qqps\87ɸ\7f\91¢\97Ïé\8ezuvtutq[dpvtqpprvvqQ7100/-*)+-012332211100///..+'$#!!##'Io|yxxxxxxxxxxxxxxxxxxxwwwwyz|}Xuq\80}{xwwwxxz\80\87\8c\93\9a\9e\9f\8f\87\7fzwxxxxxyzyyv\80t^w||zzzzz{zyxxxwwxxxyyyyyyyyyyyyyz||yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvvI]bb\95Â[\90\91\7fQGVqyonrcKTcZSirukTlmqsrrrrrqqqrqyqhUnooooooopk_H5.-27;=?BEGGFC@<964320+)%"\1e\e\19\19\1a\1c\1d\1f  \1e\1f+Mmrqr\80¥É\94tv\80ËÊ\87xvutrqnZdpvtqppqssnH4200.-,--./1122211000//..--)%#"\1d\1d"&,Oq{yxxxyyyyyyyyyyyyyyyyxxxxy{|}Yvr\81}{xwwxxx\80\8c\9c¦«­®­\9e\90\84|xxxxxxyzyyv\80s^y{|zzzzzzzyxxxwwxxxyyyyyyyyyyyyyz||yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvvUfmxÃqJk\85vNBToyoomsZNVdMfrukTlmqsrrrrrqqqrqyqhUmoooooonmdQ=/*).599;>ADEECA?>;:874.*&"\1e\e\18\18\19\1a\e\1d\1e\1e\1d\1e\1e>crqqx~À»\8a\7f\9cÚ¶\7fwvussolYdpvurqqqsoj>12/.---....0011100///...-,,'#\1f\1f\19\1a")2Vt{yxyyyzzzzzzzzzzzzzzyyyxxz{|}Yvr\81~|yxxxyy\87\9c´ÁÅÀ¿½­\9b\8c\80zxxxxxyzyyv\81q^{y{yyyyyzyxxxxwwxxxyyyyyyyyyyyyyz||yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvv^jdµ½CsaO_\BRnyponpkTNVTfqtkUlmqsrrrrrqqqrqyqhUmoooooonlYE8/)(/45469<?@AA@@?=<;;70,'#\1f\e\18\17\18\18\19\e\1c\1c\1c\1d\1e2Tlopu|¦ÚØƺÈ\99yvvussolZeqwurqqqsmg6-0/--../.-.11111100//...-,+%!\1c\1d\1a\18 -9]vzxxyyzz{{{{{{{{{{{{{zyyyyz|}~Yws\81~|yxxxz{\8c©Ç×ÝÜÛÛĬ\99\88}yxxxxxyzzv\81p^}xzyyyyyyyxxxxwwxxxyyyyyyyyyyyyyz||yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvvma\88ËrWStvy^;Ndl[bioqC2?PamrkWlnqsrrrrrqqqrqyriVmoooooookN<3,(+240/1469;;<<<<<<;:70-($\1f\1c\19\17\18\19\19\1a\e\e\1a\e\1d+Minott«ÏÎÊɱmwuvvtsqo[dqxvsrrqsl[*'.,++..-,+,**+***))((''''%$$\1e\18\1a\e\18\1f2Dfxyxxyyzz{{{{{{{{{{{{{{zxyy{|}~Zws\82\7f}zxyw}\8a\99ºÜåÍ  ÜåÎ\9e\92\81yxxxxxyzzv\80q_}xzyyyyyyyxxxxxxxxxyyyyyyyyyyyyyz||yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvv\_\9f­Zj~lloaMY~\98\8f\87\80usTFHMXfml[lnqsrrrrrqqqrqyriWkooooooohA6.()174-,-/2356655678763/+'$ \1d\1a\19\19\1a\1a\1a\e\1a\1a\1a\1d+Mhmoti¥ÀÀ´¸®\81yvvvuutr]cqxvtrsrukY*$+)()++*)())))((('''&&%%%$#"\1d\16\19\1c\18\1e4Uqyxxxyyzz{{{{{{{{{{{{{{zyyz{}~\7fZws\82\7f}zyzw\85\9f°Ðçíä\8bmÄíÙ²ª\88{xxxxxyzzw\80r`zyzyyyyyzyyxxxxxyyyzzzzzzzyyyyyyz||yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvvL[\8bsNo]SY^a^\{\99\9d\96\8f\88\7ftaJ=M^gj_lnqsrrrrrqqqrqxsjYioooooood80)'.774,++-/000/./00121/,)&# \1d\e\e\e\e\e\e\e\1a\1a\1a\1d,Mgloud\8d\97¦­§\93ywvvvvvus`cqxwtsstujW*"&&&'(('&%&&&&&%%$$$##"""!!\1f\e\15\18\1d\18\1e6bwzxxxyyzz{{{{{{{{{{{{{{{yyz|}~\7f[xt\83\7f}{y{w\89¬ÉÛíçñ¯\90ÝøðÙµ\90\7fyxxxxyyzw\7fsaxyzyyyyyzyyxxxxxyyyzzzzzzzzzzzzz{}|yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvvTQ^QahVYehb\FI[dr\80\8f\95\96\8cxePUbhcmprrrrrrrqqrrqwsjZhoooooooa3,(+4774+**,--,+*)))**+,*('$" \1d\e\e\e\e\e\e\e\1a\1a\1a\1d,Mgloubwp\8c\80hf}xvvvvvusacpxxusttukV+\1f#"#$%%$$##$####""!!!  \1f\1f\1f\1f\1e\e\15\18\1d\19\1f6lyyxxxyyyzzzzzzzzzzzzzz{zyzz|}\7f\7f[xt\83\80~{z|v\8b´Òæîà빧èæèí³\9e\84{xxxxyyzw~tcvz{zzzzzzzyyyyxxyyyzzzzzzzzzzzzz{}|yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvv=JDJV][\\ZYW^[PEHS\g\84\8e\91\8fwy\80\7fjdjrtsrrrrrrqqqwtk[fooooooo].()17764*)*++*)('%$$$$$'(&$#!\1f\1d\1c\e\e\e\e\e\e\1a\1a\1a\1d,Mglorsvt{|tsy{wvvvvvv`bowxustuujV,\1d\1f\1e\1f!"#""!!"!!   \1f\1f\1e\1e\1d\1d\1d\1d\1d\1d\1d\e\15\17\1d\19\1f7vzxxxxyyyzzzzzzzzzzzzzzzzzz{|~\7f\80[yu\83\80~{z{y\91¹Õåæéî\8bxÝãäýÕ¦\8d|uxxxyyzw~udty|{zzzzzzyyyyxxyyyzzzzzzzzzzzzz{}|yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvv-;5?PX\]\YVTLGEJNRSXSB?QRh\8a\9b\95\91\90\90\8a\81xssrrrqqqvtk\eoooooooY)'.67764)((()((&#"!  !#%$##! \1e\1d\1c\e\e\e\e\e\e\1a\1a\1a\1d,MglotvuuuyttxzwvvvvvvaanwxustvvjU-\1a\e\e\e\1e\1f \1f \1f  \1f\1f\1f\1e\1e\1e\1d\1d\1c\1c\1c\e\e\1c\1d\1c\e\15\17\1d\1a 7xyxxxxxxyyyyyyyyyyyyyyzzzzz{|~\7f\80[yu\83\80~|zz}\98½àØêöó\87zåðåïÚ­\94|sxxxyyzx}very|{zzzzzzyyyyyyyyyzzzzzzzzzzzzz{}|yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvuuuuuuuuuuuuuuz~hkwrusvvvvvvvv)'16KTWVOF>;Wc]TNNKID24LNCGhs~\88\91\93\92\91\8d\85|trrqqvul]coooooomV'*266653'%$%%%$#!!\1f\1f  !"!!!\1f\1f\1e\1d\1c\1c\e\e\e\e\e\1a\1a\1a\1d,Lglotvuuuwuvxywvvuvvvc`mvxvttvvjT.\19\19\18\19\1c\1d\1d\1d\1e\1d\1e\1e\1d\1d\1c\1c\1c\e\e\1a\1a\1a\1a\19\19\1a\1a\e\e\16\17\1c\1a!7yxxxxxxxyyyyyyyyyyyyyyzzzzzz|}~\7f[xt\83\80~{yy\7f\9dÁÞÎÏå¨z~Îêêáä¹\9d\81swxxxyzx}veqy||{zzzzzzyyyyyyyzzzzzzzzzzzzzz{}|yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvy}gjvqusvvvvvvvv&\1a01FQQRT[`c`WJDHU\`aB).PCEn[Wdr}\85\8d\92\92\91\91\87trruum_booooooiS&-444433%"!""!! \1f\1f\1f  \1f\1f\1f\1f\1e\1e\1d\1d\1c\1c\e\e\e\e\e\1a\19\1a\1d,Kglotvuuuvwxxxwvvuwwwd_mvxvttwvjT0\18\17\16\17\1a\e\e\e\1c\e\1c\1d\e\e\1a\1a\1a\19\19\18\18\18\18\18\18\18\19\e\1c\18\19\1c\e"5zxxxxxxxyyyyyyyyyyyyyyzzyyzz|}~\7f[xt\83\80~{yy\82¢Ä㸣¾©\99\89¶Ú׺ÑÄ¢\87vvxxxy{x\7fwdqy||{zzzzzzyyyyyyyzzzzzzzzzzzzzz{}|yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvy}gjvqtrvvvvvvvv#\17$0?R[ZZTMEAHXgh]PGA=8@FCADMV\\WUX`l~\8e\9b¤\9f\98\8d\81wlgvqjltxuj&',*(+/0% \1f\1f\1f\1d\1d\1d\1e\1d\1f\1f\1f\1f\1e  \1e\1e\1d\1d\1c\1c\1c\e\e\e\e\e\e\1a\19\1a\1f,Eh|\7f|qpqswz|}|wqovwwwe_luxvuuvvjW.\18\16\16\16\1a\e\e\e\1c\e\1c\e\e\e\1a\1a\1a\19\19\18\18\17\17\17\17\17\19\1a\e\1a\1a\1c\1d#1Jk{qxxxxxxxxxyyyyyyyyyyyyyyy{|}~Zws\82\7f}zxx\80\9a¼ìãµ\8c\8fÄÆ\9c\92\8c\98ÛÀ\9f\87vuxwxy|y\81wasz{{{zzzzzzyyyyyyyzzzzzzzzzzzzzz{}|yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvx|fiuptruuuvvvww\1f"\1424O\\JWjobQE?3246:>EJP[inkikm^^`b`]XUm\81\94\9b\95\8f\89\83{odemrpl(%)'')--$\1e\1e\1e\1d\1c\1c\1c\1c\1d\1f\1f\1f\1f\1f\1f \1d\1d\1c\1d\1c\1c\1c\e\e\e\e\e\e\1a\19\19!,<k\92¢¡\99\8d\82yvroooqstwwwwf`kuxvuuuvl[)\18\16\17\17\1a\e\e\e\1c\1c\1c\e\e\e\1a\1a\1a\19\19\19\19\18\18\18\18\19\1a\1a\e\1c\1c\e\1e%32j~rxxxxxxxxxyyyyyyyyyyyyyyy{|}~Zws\82~|zyx{\8a¬åûÓ\99\90\8d\83}\8f¹Ðï´\96\80uvxwxy|y\83v_uz{{{zzzzzzyyyyyyyzzzzzzzzzzzzzz{}|yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwx{eiuptruuuvvvww\1e \1d"6AW^bdeXC3/2567>HQVNYY\gu|{vga^ZVPKFEJO\p\86\9b\9e¢\9a\90\87\80xjb-%'&&)**#\1d\1d\1c\1c\e\e\e\1c\1d\1e\1f\1f\1f\1f  \1d\1d\1c\1c\e\e\e\e\e\e\e\e\e\1a\18\18#,4U\80\9a\9e¢¤§¤\9d\95\8c\89\83zrpvxxxg`jtxvuuuvo^%\18\15\17\19\1a\e\e\e\1c\1c\1c\e\e\e\1a\1a\1a\19\19\19\19\19\19\19\19\1a\e\e\e\1d\1e\19\1e'60u\81zxxxxxxxxxxxxxxxxxyyyxxxxz{|}Yvr\81~|zxxx\81\9eâ÷㱿\9f\9b°«ÜàÝ©\8eyuxxwxz|y\84u^vzz{{zzzzzzyyyyyyyyzzzzzzzyyyyyyz|{yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww{ehtosquuuvvvww\1d\1f"\1747NXJEA==CMRYdol\PKPXYUQOT_jnjb[QHEA?>?CGMSev\85\95\9c\99\95\8f\824%%%'*)% \e\e\e\1a\19\1a\1a\e\1c\1e\1e\1f\1f\1f \1f\1d\1d\1c\1c\e\e\e\1a\1a\1a\e\e\e\1a\18\17#,14Pfkar\84\91\98\9e£\9d\99\97\96\91~xxxi`jtxwutuwqa!\17\15\18\19\1a\e\e\1c\e\1c\1c\e\e\1a\1a\1a\19\19\18\18\18\18\18\18\18\19\1a\e\e\1d\1e\19\1f);9x\82\82yxxxxxxxxxxxxxxxxxxxxxxxz{|}Yvr\81~|zxwy|\90çèá¦Â¬§º¬ñöæ¡\88vuxxwxz|y\84u^vzz{{zzzzzzyyyyyyyyyyyyyyyyyyyyyz|{yy\80\82du|yxz{w}{exwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwzdhtosquuuvvvww\e\1d!\1f#8@T?@GUennmpg\[bd^_V\beb_XPNQZ_\UJB???>===<;FSct\86\98\978'$$(+'"\1d\1a\19\19\19\18\18\19\e\1c\1d\1e\1e\1e\1f \1f\1d\1d\1c\1c\e\e\1a\1a\1a\1a\1a\e\e\1a\1a\1f'/5Heuu_YSUbnz~\87\96¡¨¤¡\9c\97xdfpqqrssttr*\19\18\1a\1c\e\e\e\1c\e\1d\e\e\e\1a\1a\1a\19\19\18\18\18\18\18\18\18\19\1a\1a\1a\1d\1f\19\1f*?Fu\7f\7fyxxxxxxxxxxxxxxxxxxxxxxxz{|}Yvr\81~|zxwy{\88¼êØ\8b¤Çο\9aâö÷\99\82vvxxxxz|y\84u^vzz{{zzzzzzyyyyyyyyyyyyyyyyyyyyyz|{yy\80\80\80\80\7f{vrq~\85{huwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvzdhtosquuuvvvww\19\e\1f$\1a38Lhjotun^QMPPPWdx\81~qb\^_``]ZXTNF=8<@CB?=;<?CDCCGP`?'"#),&\1f\19\18\17\17\17\17\17\18\1a\e\1c\1d\1d\1e\1e\1f\1e\1d\1d\1c\1c\e\e\1a\1a\1a\1a\1a\1a\e\e\e )16Wqz|{wsjaXOZdnv|\83\8a\90\95\97\94\9a\9c\95\8c\83~{xus,\1c\e\1c\1d\1c\e\e\1c\e\1d\e\e\e\1a\1a\1a\19\19\18\18\18\18\18\18\18\19\1a\1a\1a\1d\1f\19\1f,CSs||xxxxxxxxxxxxxxxxxxxxxxxxz{|}Yvr\81~|ywwxz\80\99ìØ\94}\9b\9b\8a\8dâèÎ\92|uwxyyyz|y\84u^vzz{{zzzzzzyyyyyyyxxxxxxxxxxxxxxy{zyy\80\90\9fª®®¨¡\9a\9c\8c{guwyzw[ovwxyzzyxwwwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvzdhtosquuuvvvww\18\1a\1e"##9>Ym~\82yj^VU_lusl^W]n\7f\84}skeTLFCFMV_`UIBCDFFFHID=9>LD'"#+-$\1d\18\17\16\15\16\16\17\18\1a\e\1c\1c\1d\1d\1e\1e\1e\1d\1c\e\e\1a\1a\19\19\19\19\19\19\1a\1c\1e"*27_otvwxyxtrokhfc`dinu\86\96\9b\99\9d¡¥ \98\8d\83}2\1d\1e\1e\1d\e\1a\1a\e\e\1c\e\e\e\1a\1a\1a\19\19\18\18\18\18\18\18\18\19\1a\19\19\1c\1f\1a!.Fbqyyxxxxxxxxxxxxxxxxxxxxxxxxz{|}Yvr\81~|ywwxy{\8eÜ߸\8d\8f\90~\95ãç½\8cxvxyyyyz|y\84u^vzz{{zzzzzzyyyyyyyxxxxxxxxxxxxxxy{zyy\80\8d\99¢¨±¼Åʼ\91{guwyzw[ovvwxyyxwvwwwwwwwwwwvvvvvvwwvvvvvvvvvvvvvvvzdhtosquuuvvvww\18\1a\1d $ 18Jexxmjy\87\8c\85}wsqquvncZWXWUJGJNTZes\80|ul_REE>CIHCAFOI'"",-#\1d\18\17\16\14\15\16\17\18\19\1a\e\1c\1c\1d\1d\1e\1d\1c\1c\e\1a\19\18\18\18\18\17\18\19\1a\1d %,28dlnopqrty{}||}{yuqmie`[[fs\80\88\8f\96\9d\9dA\1e\1f\1f\1d\e\1a\1a\e\e\1c\1a\1a\1a\1a\1a\1a\19\19\18\18\18\18\18\18\18\19\1a\19\18\e\1e\1c#2Hlqwxyyyyyyyxxxxxxxxxxxxxxxxxz{|}Yvr\81~|ywwwxz\8f»æ×\9a\80\92\98Àûá\91\88xwyyyyyz|y\84u^vzz{{zzzzzzyyyyyyyxxxxxxxxxxxxxxy{zyy\80rf][i\80\93¡¬\94{guwyzw[ovvwxyyxwvvwwwwwwwvvvvvvvvvvuuuuuuuuuuuuuuvzdhtosquuuvvvww\19\1a\e\1d  -4Cpntssvxniy\89\7f{xvoc[RJMPTY`gne\STXbkpnmlcYQIDD@FTª&"#++\1e\1a\17\15\14\14\15\16\17\19\19\19\e\1c\1c\1d\1d\1e\1d\1c\e\1a\19\18\18\17\18\18\17\16\18\1a\1e$-029XlmnnopppstusrrsrqpmcVdunf_bejpuK \1f\1f\1c\1a\19\19\1a\1a\e\1a\19\19\19\19\19\19\19\18\18\18\18\18\19\1a\e\1c\e\18\18\1d!-4Ax}v~zyyyyyyyyyxxxxxxxxxxxxxxz{|}Yvr\81~|ywwwxz\88\9aÅãàÙÑÁàÛ°\9f\84xyyzzzyz|y\84u^vzz{{zzzzzzyyyyyyxxxwwwwwwwwwwwwxyzyy\80xcdde^{²\8ermbuwyzw[ovuvwxxwvuvwwwwwvvvvuuuuuutuuuuuuuuuuuuuuuvzdhtosquuuvvvww\19\1a\1a\1c\1e!+48hmuvvuutrvzysi`MHMYfpw}~|zxurpjc]VV^gonjd^X[Xe~\9f&#%)%\18\13\13\13\13\13\15\16\17\19\19\19\e\1c\1c\1d\1d\1d\1d\1c\e\19\19\18\18\18\19\19\17\16\18\1c!'852=BmrsqqqqonllmopstuvueOg~{yvrmhd`O#\1f\1f\1c\19\18\18\1a\1a\e\1a\19\19\19\19\19\19\19\18\18\18\18\18\1a\1c\1e\1f\1e\e\19\1d'154x\84|\83{zyyyyyyyyyyxxxxxxxxxxxxz{|}Yvr\81~|ywwwxz\7f\99ºÈãñïéÔº\9c\85~{{{z{zyz|y\84u^vzz{{zzzzzzyyyyyyxxxwwwwwwwwwwwwxyzyy\80}_joweu§}`hbvwyzw[ovuvwxxwvuvwwwwwvvvvuuuuuuttttttttttttttttuzdhtosquuuvvvww\1a\e\1a\1c\1e#,51Ppwvvwy}~sjtpd[ajnqttuuutttuvwvtplg`ZSY^`ccjk\80¤\85%\1a $# \15\15\14\13\12\14\15\16\18\19\1a\e\1c\1c\1d\1d\1d\1c\e\1a\19\1a\19\1a\1a\1a\e\19\19\1a\1e$*?82>;ctvutssrqpoonmnqtwxkNfvx{}|ytolT%\1f\1e\1c\19\18\18\19\19\1a\19\19\19\19\19\19\19\19\18\18\18\18\18\e\1e "!\1d\19\1d'033e|\7f|{zzzzzzzyyyyyyyyxxxxxxxxz{|}Yvr\81~|ywwwxz{\92¨²µ¸»¼Ãµ\93uz{{{{{zyz|y\84u^vzz{{zzzzzzyyyyyxxwwvvvvvvvvvvvvwyyyy\80\80]nw\81w\82\9ey^ucvwyzw[ovtuvwwvutuwwwwwvvuuttttttttttttttttttttttuzdhtosquuuvvvww\19\1a\1a\1c\1f%-7-8puvvwxwwro{{rju{|zxvtstuvwvutuvvwurnjd]WRRYXq\9c\84="#-52' \e\17\14\15\16\17\18\19\1a\e\1c\1c\1d\1d\1d\e\1a\1a\1a\1c\1c\1d\1e\1f\1e\1d\1c\1d!'-B92@?PswwvvvuttttsssrrqtrUelortvurppZ'\1f\1e\1d\19\18\18\19\19\1a\19\19\19\19\19\19\19\19\18\18\18\18\18\1c\1f"$"\1e\1a\1d&.11Op|pxzzzzzzzzzzzzzzzyyxxxxxxz{|}Yvr\81~|ywwwxz}t\86¶À¼µÃµ\8elw{{{{{zyz|y\84u^vzz{{zzzzzzyyyyyxxwwvvvvvvvvvvvvwyyyy\80\82\p{vx\91¨vb\80dwwyzw[ovtuvwwvutuwwwwwvvuuttttttttttttttttttttttuzdhtosquuuvvvww\18\19\1a\1c!'08,-^pvvvvvvutvvsqqsuvwxyzyxwvvuuuuuuuvvwtpkgbl\87\83zrF\17\v%:,(U;\14\13\14\15\16\18\19\1a\e\1c\1c\1d\1c\1c\e\1a\e\1c\1e\1f!#$"! !%*/4659:Oz\88\7fwplortwyxxxwvuupVelrutttrpo\-\1d\1d\1a\18\18\18\19\19\19\19\19\19\19\19\19\19\19\18\19\1a\e\1c!+/)' \e\1e&-/.Lz}qrstuuwyzzzzzzzzzzzyyywxxz{|}Yvr\81~|ywwwxz{{w\8f\9fª®®\99\84{{|{{{{{zyz|y\84u^vzz{{zzzzzzyyyyyxxwwvvvvvvvvvvvvwyyyy\80\80]q{vx\91¨pZy`uwyzw[ovtuvwwvutuwwwwwvvuutttttsssssssssssssssssuzdhtosquuuvvvww\17\19\1a\1d")2:.'Tuuvvvuuuuttttttttttttuvvwvvuuuuuuuuvuvutrv\91}iiY%\14MwQZ\8bh.#\1a\19\19\18\18\19\e\1c\1c\1d\1c\1c\e\1a\e\1d "$&''$#$',02566@[\88\97\94\91\8d\8a\82yqpquyzyxwvnWfluxusrqpm_2\1c\19\e\18\18\18\19\19\19\19\19\19\19\19\19\19\19\18\1a\1c\1e\1f&6;.*"\1d\1e%,-,F\81\81oquvwvutuvxyzzzzzzzyyywxxz{|}Yvr\81~|ywwwxzz{z{||}}}||{zz{{{{zyz|y\84u^vzz{{zzzzzzyyyyyxxwvvuuuuuuuuuuvwyyyy\80}_q{vx\91¨kRs\swyzw[ovtuvwwvutuwwwwwvvuutttttsssssssssssssssssuzchtptquuuvvuvv\17\19\1a\1d#+4:3-Xvvvuuuuuuttssrrstvwwxyxwwvvuuuuuuuuuuuvvvq|_aZa/\1aq¨^p\99y<&\e\1a\19\18\19\1a\e\1c\1c\1d\1c\1c\e\1a\e\1e"$'*)*('(+.24676E]}\81\8a\93\9d\9f\99\93\8d\87\80yspsuxwlYgny{vqqpok`9\e\16\e\18\18\18\19\19\19\19\19\19\19\19\19\19\19\19\e\1e!!*>D1-%\1f %,-+>\8b\95\8b\8a\88\86\84\80}ywvuuvwxyzzzyyywxxz{|}Yvr\81}|zxxwxyzz|x{~\81\82\7f{xxzz{zzzyxy|y\83t^vzyzzyyyyyyxxxxxwwwvvuuuuuuuuuuvwyyyy\80{`r{vy\92§gMoYqwyzw[ovuvwwwwvuvwwwwwvvuuttttttttttttttttttttttvzcgtptqtuuvuuvv\17\19\e\1e&.4738]nxvtttuuuttuvvwxxvvvvvvuuuuuuuuuuuuuuuttslhFZ`s@#\82µM_\88m3\14\14\15\16\17\1c\e\e\1c\1c\1d\1c\1c\e\e\1c\1f$&(+,,*++.146887BP]T_ht}\87\90\9a\9b\97\90\89\83|unoj\ip}\80xrpnmhb@\1c\14\e\18\18\18\19\19\19\19\19\19\19\19\19\19\1a\1a\1c ##-AF4/'!!&,.,?\9cµ¸µ±¬¦\9e\93\89\82\7f{xvvvvwxyyyywxxz{|}Yvr\81}|{yyxyyyxyz|}~\80~|z{{{{yyxwwy|y\82s^vzyzzyyyyyyxxxwwwwvvvuuuuuuuuuuvwyyyy\80yas{v{\94¥bLlXqwyzw[ovuvwwwwvuvwwwwwvvuuttttttttttttttttttttttvybgtquqttuvutuu\16\18\e (/242:Ynywsstuuuuuuvxyyxwvuuttuuuuuuuuuuuuuutsrrj`;PoiK@s~RTp\80e4\1e\e\1d\1e\e\e\1c\1c\1c\1d\1c\1c\1c\1c\1e!$&(*,+-0/03569:7?Ma_ZZYYZ[an\85\8c\95\9e£¡\9d\97mgr\80\88\82tlgaWR_H$\11\1a\18\18\19\19\19\19\19\19\19\19\19\19\19\19\e\1d"$$/BE4/(#"(,/19[fmx\82\8e\9b¨­°²µ·´ª\9b\92\8a\84}wuvvtss\7f\87~lZpyvxxxxxxxyyyxz{{||{{z{zzyyxxwwy{z\7fr^vzxyyxxxxxxwwvvvvvvuuuuuuuuvvvvvwyyyy\80yas{v~ \9fYMhYqwyzw[ovvwwxxwwvvwwwwwvvuuttttuttuuuuuuuuuuuuuuuwyafurvqsttutsss\15\17\e"*11016Ifvxsssuuuuuuuvwwwvvuuttuuuuuuuuuuuuuutrqqlc:CgkN6asKJnnD\16\15\19\18\1a\1c\1c\1c\1d\1c\1c\1d\1d\1f"$&()))1943457;;7?Ma_[[\]^__[YWZdq\83\94\9cw{\83\88\83ym`VLFFWP3\f\19\18\19\19\1a\19\19\19\19\19\19\19\19\19\19\e\1f$%$/@A3/*'%)-13?Z`feccdhqz\82\8a\93\97\9d­°±¯­¬¥\9b\93\8d\88\82}\84\84tdtwmopsuvwwxyzzyyyyxxyxxxxwxyzyyyzz{r^vzxyyxxxxwwwvvvvuuvuuuuuuuuvvvvwxzzyy\80yas{v\80¢\9cXOeZrwyzw[ovwwxxxxwwwwwwwwwvuuutttuuuuuuuuuuuuuuuuuuwy`eurvqsttutrss\15\16\1c$,0/.16AVluuqsuuuuuuuuvvvvvvvuuuuuuuuuuuuuuuutrqpnb8;[iP,PoQHfrO \1e/+ \e\1d\1e\1e\1d\1d\1d\1d\1d\1f!#%'(())4=64568<<8?Ma_^]]\[ZY\a]SPUct\7f\88\8d\8d\86}r`QE=:9JT?\11\18\18\19\19\1a\19\19\19\19\19\19\19\19\19\1a\1d!&&$0>?2/,*(+/24Oku|vojebbcbbbgr|\85\8f\99¢«²µ¶´²¯\9b\9e\9a\83\85\82tjnrvxxwwvvuuvvwwxxxwwwwwwxxxyzzzzq^vzwxxwwwwwvvvuuuuuuuuuuuuuuvvvvwxzzyy\80yas{u\81¥\98XRb\swyzw[ovwxxxxxxwwwwwwwwvuuuuttuuuvvvvvvvvvvvvvvvxx`euswqrstusrrr\15\16\1d(02/.27:Gasvsruuuuuuuuvvvvvvvuuuuuuuuuuuuuuuutrqpoa95JZC O~bHq}U\1a\ f&3/#!\1f\1f\1e\1e\1d\1d\1e\1f!$%'((()5@74568<<8?Ma_edb`^\Z\bcaaekt|\8e\92\8b\82ykXK?60/8TM\1f\18\19\19\1a\19\19\19\19\19\19\19\19\19\19\e\1e!&&%/==1/-,*-/25Vlw\80{xuvwvuspnmj[[[[^_cm|\8f ¯­µ¦\83º¾´¶¨\99\88\81|||{zxxwwwwvvwwxyyz{{{{|{zzzp^vzwxxwwwwvuuutttttuuuuuuuuuvvvvwxzzyy\80yas{u\81¦\96YT^^twyzw[ovxxxxxxxxwwwwwwwvvuuuuuuuuvvvvvvvvvvvvvvvxx_duswqrstusqqq\15\17\1e+44/.368>SmvusrvuuuuuuvvvvvvvuuuuuuuuuuuuuuuutrqpphN7;B4"V\88gFWb@\11\a\15\17\13\19\e\1c\1c\1c\1d\1d\1e\1f "$&')*+.2666789;<8?Ma_kjigdb`]Z[dmtz}\82\87\84\80|sg]KD9.'7gu?\19\19\1a\19\19\19\19\19\19\19\19\19\19\19\1c\1f"'&%.;;1---,./25v}wstxtuuvwwwwvtrpnjfb``]YXXgu\85\95£­­¬»ÇÎÍƸª\9d\91\84~|ytpnsx{~\7f~}|{yyyyxvtmbwzwxxwwwwvuuutttttuuuuuuuuuvvvvwxyzyy\80yas{u\81¨\92ZWYayzv\8b|Xoyxxxxxxxxwwwwwwwvvuuuuuuuuvvvvvvvvvvvvvvvxx_duswqrstusqqq\17\19!.76//4769Iesutquuuuuuuvvvvvvvuuuuuuuuuuuuuuuutsrqpob<=?4+Qt[HBZV;,"\17\14\17\19\e\e\1c\1c\1d\1e !#%&')+-13466789;<8?Ma_lkkjihggginsvyyxurrpjibLOMD=4]tA\19\1a\19\19\19\19\19\19\19\19\19\19\19\1a\1d #'&%.991,-.-./25y\85\88\86~xttssttttssrrstuwwwtojffgdaY`jfs\7f\88\8e\95 ¬·ÁÌȽ²©¡\99\91\8a\83|xy{||}|{ywyzjfwzwxxwwwvvuuttttttuuuuuuuuuvvvvwxyzyy\80yas{t\81ª\90[ZUc~|s\9b\81Uo|yxxxxxxxwwwwwwwvvuuuuuuuuvvvvvvvvvvvvvvvxx_duswqrstusqqq\e\1c$097005657DZkrtsrvvuuuvvvvvvvvuuuuuuuuuuuuuuuutsrqqpiQRG92DOAG.=8'\e\ f\10\1c!\1f\1e\1e\1f\1f\1f !##$%&(*-1566779:;<8?M`^cddeghjkmquvvspj\_`_bc^Q]a[R=Q_A\e\19\19\19\19\19\19\19\19\19\19\1a\1a\1d\1f!%((&-760,-..//25gwr^jxttttuuuuuuvvvuuuvvvwwwwxws]^e[XURSXbmv\7f\88\92\9f­¿Î×ÔÑÌƽ³©\9d\92\87\82\83\82\81\83\83hixzwxxwwwvvuuttttttuuuuuttutuvvwxyzzyy\7fxas{t\82ª\8d\\Rc\82~p¦\83Ro~zxxxxxxxwwwwwwwvvvuuuuuuvvvvvvvvvvvvvvvvxx_duswqrstusqqq\1f '296007747AQaloqswwuuvvvvvvvvvuuuuuuuuuuuuuuuuttsrqpna_K?871)A''\1a\e\1a \1f\1e\1f "!"#$%$$$&(*.257788:;<=9?N^\Z[]`filosvutnaRKKPRSQLOY`d\QQSUP\1d\19\19\19\19\19\1a\1a\1a\1a\1a\e\1c\1f!#&()'-54/-..///25s\89|H_xtrsrrroopqtvwxvwwwtlhelrvxiu\85}xtqolfa]XSW`how\7f\8f ¯ÀÒÕ×ØÙÚÓȪ\91\90\90emyzwxxwwwvvuuttttttuuuuuttutuvvxyz{{zz~xas{t\83«\8a]]Pd\83~p«\83Po\7fzxxxxxxxxxxwwwwwvvvuuuuuvvvvvvvvvvvvvvvvxx_duswqrstusqqq#$)384/27836AKS^cmswwuuuvvvvvvvvuuuuuuuuuuuuuuuuttsrqpngaQ?1)#\1e\1e$\1f\1d\1e$" \1f\1c\1c #&&&&&'%##$&)-045779:;<<:DS^XSSZbir|\7f|vm`QHA<;=?ACDFJKKKKOTWP-\19\19\19\1a\e\e\1c\1c\1d\1d\1d\1e #%')))-23/..///(6T­~NHav{yttuuyyzywvtswwvvvvvwwxvs^k}xwvuvutsrqpmjgfecbafmhs\80\8f\9e­·½Õß¿\8c\81§¾§©\9d\91\8b\87\80xux{{zzyxwvuutttttvwwxxyz{|||\7fxas{v\86ª\83a`Ob\81\7f\7fMm\80{yyyyyyyxxxxxwwwvvvvuuuuvvvvvvvvvvvvvvvvxx_duswqrstusqqq(',474/28835?FJSZjvxxtrstuvvvvvvuuuuuuuuuuuuuuuuttsrqpkcXJ9-%"\1f\1d$#"$&%#!\1c\1d"&))(()'$! "$'*-12568::;;:M_]XY\cksy}}yo_PE?;99;<<;:;=?ADJQZ_\F\1a\19\19\e\1d\1e\1f\1f   !"$&(**+.12/////;,3WV<%/Tt~zwxwvsqonnpsuutssttttuuts_l|wwvuvvvvvvvuusqonljhdcb_]ZW\fo\84\89z\89ªÅÎçæåßÕÎÍÈ·¨\9c\91\87}zzxvutsrrtyzzyyxwx|\7f\81\83zas{x\8a§wgcP]}~v²vJk\7f{yyyyyyyxxxxxxwwwvvvvuuuvvvvvvvvvvvvvvvvxx_duswqrstusqqq,+.473048822<CCGNdvzwsoqrtvvvvvvuuuuuuuuuuuuuuuuttsrqpi^QB3*'(&#&(((('%"\1f %),,*)'&"\1f\1e #&(*.0368:::;;\fgfimu|\7f~ytl_L=3148>BCA><<;8:?GS]edS&\19\19\1c\1f!##$$$%%&(*+,,/11000//>/@y[L@DTfstsrqqrrssrqpopqrstttuuuts`m|wvuuvvvvvvvvvvvvuuutuxxvspnmmXTaplZ[rv\8a\9d¬¶ÄËÍççåâÝÚ\9b\90\86{wy|||zwuuuw{\7f\81yas{y\8d¤qnfRXy~{³oGi~zyyyyyyyxxxxxxwwwvvvvvvvvvvvvvvvvvvvvvvvxx_duswqrstusqqq.-/4642487206?@@D`x\7fwsnoptvvvvvvuuuuuuuuuuuuuuuutsrqpoh^H<1.//-++,,,+)($""'*,+('&$ \1d\1c\1e!$&(,.145799:;hmorv{\82\86\84|qg]O<-'*2;MPRQONNNHIMU_ionX<\1a\19\1d #%%%&&''()+,--/1100000-!P«µ­¤\9a\92\8e\8f\8c\80{xvtsrsssssrrrrrsttuutran{wvuuvvvvvvvvvvvvvvvvuuvw{~\80\82\81\83rn~gUQXWUUY`ekpt\81\90 ²ÃÊÏÖÖÕÓÑÏȺ©\9e\95\8f\88\80\7f\80\82\83\84\84{as{{\8f¢nrgSVv~}²nGh}zyyyyyyyxxxxxxwwwwvvvvvvvvvvvvvvvvvvvvvvxx_duswqrstusqqq//036534761-08=>>Zz\84\7ftnkotuvvvvvuuuuuuuuuuuuuuuutsrqpof]B:214661.,*)(&#! "%()'%#" \1e\e\1a\1c\1f"$&),/24689:;ekgx|\80\85\85\80seZM@1&&.:FV[\]]]^`abcflqupcN8**)(((((())*++,-./000///.,&>k\87\95¢ª°¹¼·¯¦\9d\94\8b\83}yvvwvvvvvwwwwvutsbo{vvvvvvvvvvvvvvvvvvvvvuuutttsrtwy{tqrr|vnlkgc`WWXYZ[cmn{\88\97¥³¸¹ËÌËÈĸ¬£\9c\96\8fwdt{|\95\9eoukTSt~\87¯jD\yyyyyyyyyxxxxxxxwwwvvvvvvvvvvvvvvvvvvvvvvxx_duswqrstusqqq0013675554/**2;?<U{\8b\87ypllsuvvvvvuuuuuuuuuuuuuuuutsrqpod\;4..5971-*('%!\1f\1d\1c\1e!#$" \1e\1d\1d\e\18\18\1a\1d #$(*-02479:;`dXu|}~zqdXM=5-)/;JU[\]^__`a_]\^`ab`[TF751.,+++++++,--.//000///.....2=KYiw\83\8f\99\9f¥¬²¸·®¤\97\8a\80ytppquwxy{zwcpzvvvvvvvvvvvvvvvvvvwxyz{zywusrrrrrifknquyxutwzyvspmijh\[Z[\]fr|\86\90\9c¨´º¼¾¿À¾sgv{}\9b\9aqxnVPr}\90«gCQtxyyyyyyyyyxxxxxwwwwwvvvvvvvvvvvvvvvvvvvvxx_duswqrstusqqq0013676532,($*8ABRw\8e\8d\80romotuvvvvuuuuuuuuuuuuuuuutsrqpncZ/(%)/2/)&%%$"\1e\e\1a\18\1a\1c\1f\1f\1c\19\19\19\1a\18\16\16\18\e\1e !%(+.03589<ZXEhvuqj_TKC2.-1=L\dgeca_]ZXPMLMOQPRSVQIC;51../.----..//0000./.-----.'%1COTYakv\80\8b\97\9f§¯¶¼À³¦\9a\91\8d\8a\86\80{vtsdqzvuuvvvvvvvvvvvvvvvuutsrrrssttssssgciotvzyuuz}}|zzzyxwuutsqpomXVWYZ\cmtz\82\8cpjvz}\9d\95rzrWLo|\97§eBHrwxxxxxxyyyxxxxxwwwwwwvvvvvvvvvvvvvvvvvvvyy`evtwqrstusqqq011356640.)(##5>FTt\8f\92\87wrnmsuvvvvuuuuuuuuuuuuuuuutsrqplbV'" #&)%!  ""\1f\e\19\18\14\16\18\e\e\19\16\16\16\17\16\15\15\17\19\1c\1e\1f#&)+-/377>TM7\rpj`SH@:)*0:HYjrtrokf`\XSRQTVWYVUWZ[PF=632210/../000000/..------:.)8Ted[VTSQPNR\j|\8d\9b§²»Ãú²ª¢\99\92\8beryvuuvvvvvvvvvvvvvvsttssstttssrrstujgpz}zxvuuokkosux{{|}}~}|{zywuspomkjhc^\nmux~ \92t{tXJk{\9c¢dA@lvxxxxxxxxxxxxxxxwwwwwwwwvvvvvvvvvvvvvvvvyy`evtwqrstusqpp012245531&$81%38C^\83\9c\96\8d\80tnkpuuuuuuuuuuuuuuuuuuuuutsrqklaJ$\1d\e\1f \1f\1e\1c\1c\1d\1e\1e\1c\1a\18\17\15\16\18\19\19\19\17\17\17\17\16\15\15\17\18\1a\1c\1e$'*+,.259IPA.Nhf`VI>5,(/;L_pxxyxvvvvutqg\WWVVUpuw\83rbTKC=85310001220/.--,-,,,,,,,,-AUZTX_ehhe^XUUWY[fp\7f\8e\99¦±ºÁ¿µ«¡\98\93\8f\8b\87\81tqnnmmmklmmnrrrrrsststsstuuvlir{\7f{wxzywvsolknruxyyzzzzyyyyyyyyxvuuttpqut\7f¤\8ft{wZFc{\9f\9daA3guwwwwwwwwxxxxxxxxxxxwwwwwwwwwwwwwwwwwwwwzzaevtxrrsttrppp122244435)-KD-33:`\8c¥\9d\96\87wlgmstttuuuuuuuuuuuuuuuuuutsrvqZ<'\e\18\1c\e\19\19\1a\1a\1a\1a\1a\1a\19\19\18\19\19\1a\e\1c\1d\1d\1d\e\19\18\18\17\17\17\18\e\1e%*.00123HUM1)?ZWTLA4''/>Obs{yyxxxxxxxxyyyuplgb{®ÔÕǺ­\9e\8aqWG=53222330,+++*,++++++++,0=EB^^YWY`jqqmc[VUWY]aejpy\85\93¢°½ÅÉýµª\9f\95\8b\81wrrsttrqppqqqqrstuvwxyymipw{zxxyzzzyxwuqnkotxyyyyyyyyyyyyyyyyxxxxxx\82«\89ryy\A^|¡\97]?2atvvvwwwwwwwwwxxxxxxxxwwwwwwwwwwwwwwwwwwwzzafwtxrrsttrppp12223333;,9^V5222X\87\9c\98\91\80ofbirsstuuuuuuuuuuuuuuuuuutsr~rjq*\e\16\18\17\17\17\18\17\17\17\16\16\15\15\15\15\16\16\17\19\1a\1a\1a\1a\19\18\18\18\18\17\17\19\1f&.36558DZVG'%5GEEB7(&0=Obs{yxyyyyyyyyyyyyyxxww\8fÏõåàÚÕÏŶ¨\95lF<63333/+)()*++++++++++.5DLijjgc]YVUUUXXZZ\_aba_]\]`elw\82\90\9d«¾ÁÄÄÅÆÁµ \93\8a\82{srrrqqqqrstvz\7f\80oimuyxwxxxxyyzzzxwvuvxyyyyyyyyyyyyyyyyyyyyyy\85¯\84qy{_<Y|¤\93Z@3\tvvvvvvwwwwwvwwwxxxxxxxxwwwwwwwwwwwwwwwwzzafwtxrrsstrpoo12222222;+Bja=00*O|\8e\90\89yjb^gqrrsuuuuuuuuuuuuuuuuuutsryn\8eÌ-\1a\15\17\17\17\17\17\16\16\15\15\14\14\14\14\14\15\16\17\18\19\1a\1a\19\18\18\18\18\18\18\18\e!)28<==AV[^G!#077:7*'/>Nbs{yxyyyyyyyyyyyyyyyyyy¾î÷êçåäáÞÙÔË®\90gG6333.*(((*++++++++++:EQ]``bcaZPKIKRX[_^____`aaccca]ZVXY`lz\88\96¤°¸¾ËÊÇÁ¼¶ª\9e\92\85yrrqqruy}~pilswwvvvwwwxxyyyzzyyyyyyyyyyyyyyyyyyyyyyyyy\88±\82qxz_:R|§\91YB4Uuvvvvvvvvvvvvvvvwwwwxxxxwwwwwwwwwwwwwwwwzzafwtxqrsstqooo122222226)ImfG2//Ho\86\88\84xkc]binrstuuuuuuuuuuuuuuuuutsrg\8dÑãV\1a\15\18\19\1a\e\1c\1d\1d\1d\1c\1c\e\e\e\1c\1c\1d\1f !""\1c\13\11\13\1a\19\13\11\1c%.7=ABAELNOA10/0/2+(/<Obs{yxyyyyyyyyyyyyyyyz|\80\84Ûø÷ðïîíìêéçæؾ\94t[L?542/,,28<>@>:1.+7?DGLTTOLMU^fjlkgfghihec`^\[\]_`bceffYVTUTT[ix\87\97§¸ÈÏÏÎÉž¯ \93\86}wz|edqx{vtrtuvxyxwwxxyyyyyyyyyyyyyyyyyyyyyyyyyy\8b®\81qy|b>J{©\8eYD5Nuvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwzzafvtwqrrssqooo122222220*QmhU<53@c~\83\80rdYQXajrstuuuuuuuuuuuuuuuuuutsi¨îÕ\93?",-//0112110001123566780+()'!\1d*29?DEEDEJKL<40.,+)+1;Mcr{yxyyyyyyyyyyyyyyyymr\88\9dôÿ÷õôóóòñðïîîáÈ\9ayeRC<54225=C@<8521:?FGFDABGNT[_a`^[Z[ZZYXVSRSV[ahkkg`WPMQX\_beea``_acdm{\8c\9f±ÁÉÐÕØÑì\94bw\90\82yupmptuwxxyyxxwxyyyyyyyyyyyyyyyyyyyyyyyy\8d«\80rz\7feAD|¬\8bWF6Fuvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwzz`evtwqqrrsqnnn01122233/1[mjfNC9:UuyteVMGOYgrstuvuuuuuuuuuuuuuuttst\98Ýæ¿¡\Xonmljkllkkjjiijklmmnnj_L8=CCABFIKMJGDDHIJ90,+)&,6>L_s|yxyyyyyyyyyyyyyyyyy|\8e¬Äúüùùøø÷÷õôôóòèÕ¶\9a\83n[NB;5108@;6205CEHLORUXZZYUQLMPX`gjjijjjjgb^YURPORVX]adc`[UQQWZ[[ZYXWVUUVZjz\8b\9d¯¸®¥\8b¯Ðź°¥\9b\97\93\8e\88\83~zwxxyyyyyyyyyyyyyyyyyyxyyzyyyy\91¨\7fr{\7fgD?|®\87WF8Btvuuvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwyy`euswpqqrspnnn/01233454:almq_OA8Gilg[OGBKUdrttuvuuuuuuuuuuuuuusrsvµàªu\84p\86\7f\82\84\86\87\87\87\87\86\85\84\83\82\82\82\82\83\84\84\85\85\86wU4I]a`ZXXWUPIEDGHH7/*%$'5BRanzzxyyyyyyyyyyyyyyyyyy¥ÈÝåýøúûûúúúù÷÷õôçÒÀ®\9b\88vgXJ?704;7423>LNSPTWXOKMPTZafikjjjmoqrrqrqppnliec_][ZYZ[]_ba][YXXYY[\]\[ZUQOPVago}\87\9e»ÏÙâèà×ͳ¢\91\86\81|xxyyyyyyyyyyyyyyyyxyz{yyyy\94¥~s}\80iG:|®\82XG;?rvuuvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwyy`dusvppqrrpnmm-.4:<>@CKUfnosljaQIFTYTLIBFQ^ntuuuvuuuuuuuuuuutrrpt{\8b\92\91\8e\8c\8d\8e\8f\8f\90\90\90\90\8f\8d\8b\8a\88\87\86\85\84\84\84\85\85\85\85t\7fQ*Tnmthdb`\VLFAABD6.,,19D]jowyyxyyyyyyustuz\7f\82\86\87ww\9aÐðú÷òêêòùúüûú÷õôïèßÖdz\96\85yjWKI>/.058<BFIKMOQSRRRSVY^`bccddddfhiihfgghjmnonmkkhda]^_`abbcc`^[YWWWV[`bdb`^\[YYYcv\87\97¢¬¸ÇÏÑÒÑÑÑʼ\9e\93\8b\84~vuvvvvvwwwwyyyy}~~\7f\9a ~v\80\80iM9\82¯\7f[G?<httsvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwxx_durvopqqrommm(-<KNRVZ`inpppookfa[HLQJRGCLWfuvuuvuuuuuuuuuuutrrpu\7f\8e\95\94\93\96\99\9b\9c\9d\9e\9d\9b\99\97\95\93\91\8f\8d\8b\89\88\87\87\86\86\86\86uxQ:_risjhgec[OE<79>2-/3?Qjosuwxyyyyyyyy||wrx~\86\8d¸º½Ýöúøøùùõíçîöøøóïíííìêݨ\87\81wiW:664:HSXZ[\^^`acdcb`\XSPOPTY^abbccdghhhgfdegijlljgfdegffaYTQRRSTUTSRSSUWY[]^_``aa^\[Z\_dn|\8b\99¨·½ÀÑÐʹ±£\96\8d\8a\86\82}ywyzyxusqoo¦\9a~z\83}iV?\8b±{\ID7Vqpovvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwxx_dtruoppqqommm*3L`cehjmoppppoonjgfDFMCNKCEO\krvuvuuuuuuuuuuutsrqw\84\92\9a\99\99\9e ¡¢¢¢¡\9f\9c\9a\97\95\92\8f\8c\8a\87\85\83\82\81\80\80\80{nF=fqeplllii_RD<8?F:7>H[mrtvxyyyyyyyyyy\97£®ÅÇÈËÏõûõüùøøø÷÷÷÷öïçèêêéèèèéëçܼ¢\89yti65<JV\hqtsrrrrqogb]ZWVWZ[\\XTPMJLQW`fjljifegkptutoifikmonmkjc\VQQSVXTPPRUWXXYYYZ[]^_^^\ZXXXYZ\eq}\89\97¨¹ÉÒÔÐÅ»°¦\9c\95\8e\87\82\7f}{zz{®\93~|\85{i^K\91®v\PN>Domlvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwxw^ctquooppqolll,:WppppppppppppppoooBCK@JOE@ITbovuuuuuuuuuuuuuttttz\86\94\9b\9a\99\99\99\9a\99\98\97\95\94\92\90\8e\8b\87\84\80|yvsqonmmjV39encoppomlaSFBIWcYXbkpsuwxyyyyyyyyyyy¿èêàæìðô÷ù÷øøøø÷÷ööööööðçÝÚÞÞÞßáêðéÏ©\8cupHKR^ktsrrsssstsrpopqpmha[WTTUWXXXVUSSTW[`dgjjkjjjhghlnpqngda^]\\_beid`^]\\\[ZZYXXYYYXXXXYZZ[\]^\VY\aflv\83\91\9e¬¹ÆÓÒÊû³ª \96\90\8c­\8e~\7f\88{ia`\93¢o[T]S>glkuvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwww^csqunoopqnlll2KiuppppppppppppppppZBGFBJI@ALXirtuvuuuuuuuuuuuvwx}\87\93\99\96\93\92\91\90\8f\8d\8c\8a\88\86\84\82\7f{vqmhea^\ZYYK8\1e0^ibmqomlh[LBBL]gloqrtvxyyyyyyyyy\81\84¡Òòøüûòôö÷÷øøùôðíëìòôôôôóñìáÖÏÔØÕÕÙáìðÙ¸\8bz[`kqvz{tponooopqqqqqqrtuurnhc]XUTUX[_``^[WUTUY[^`__aZSOORZ`fjmopqsuwspljihggfedcbba`cfhgeb_\ZWWZcfc^YURQQV]dkr~\8c\98¡¬µ½ÆÄ»¸\8e\83ª \86_c\82\9d\9ajWRd`Nguyxuqrrsuuuvvvvvvvvvvvvvvvvvvwwwwwwwwwww^bsqtnnoppnlkk;VlrppppppppppppppppoECK@FKB>EPaqttvuuuuuuuuuuvxz}\7f\87\8f\92\8e\8b\89\89\88\87\85\83\81\7f}{xtoje`ZVQNKIGG1&\16+UcclqomldTF?BOdkostuwxyyyyyyyyyy\87®ÛóüûùøôøùúûúúúôîéæåäèíòòñïçÞÝÝÓÊÏÓ×ÚàçëáÊ\9ewnr{\80}{xutttssstuuvwwxyzz{yxvtsspke^XSPPQUXZ\]^]WNFCLT\bfhjjotvwtmgd^YTTTVYZ\]_`begib[VSSW[_bfe`\YY[]^`b`]ZXUSV[_emv~\87\92\9d»\8c\81°¦\93hx\97«\9dfUWj^EZmqywtuuttsttuuvvvvvvvvvvvvvvvwwwwwwwwwww]bsptnnoopnkkkGZ_eppppppppppppppppp]BFD?GG=>HWlttvuuuuuuuuuuvx\7f\80\80\85\8a\8a\84~zzyxwvtrolhd_YSMGB=96421"&\1d-O`dlnmll`O?<CSjmqtvxyyyyyyyyyyyyªäÿýúøöõõùûüýüûú÷ôïìèââãäêîîæÝâéãÜÕÓÔÚÝßáäçѱ\95\7f||}xuuwxxxxwvtsuvurnkjknqtuuvusrpnlie`]ZWTRRRRUXZYYXVUTSTZafjh`YTNIGFEFFGHIJKOV]bfjnpokfa]XY]_abdegfbZWVVUUTSTVWWWWZ`²\89v\95\87\85f{\89«\9fbXn\81_F[uz\83\83\83\82\7f|ywutsttuuuvvvvvvvvvvvwwwwwwwwwvv]bsptmnoopmkkkRRTZpppppppppppppppppoHCE?DIA<CPfttuvuuuuuuuuuvx\82\82\81\83\86\84{rmlkkkkjha^ZVPKD>83-)&#! \1f+&1M^ejlkkl[J<;EWlnruwyyyyyyyyyyyyyÜÿÿþüøõôøûüýþýüûûùøöðéåãàáâãáßçïïîëåÞØÝßÛÛÝâçΨ\8czwvsqrsssstuwwvutuvxwwvtsstvvvusrrrssrpkf_YURQONV]ced_ZVVVVW[`eg_YTNGECBBAABDIOQ\fnsutssrqmg^YUSPMMMPTW[_cddb_][YWWZ¨\86ns]fRfo¤\9c]^\88\99gTn\8e\96\95\94\93\8f\8b\87\84\81~zwvutsttuvvvvvvvvvwwwwwwwwwvv]bsptmnoopmkkk\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\83\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\82\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\83\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\83\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\82\81\81\81\82\82\82\82\82\82\82\82\82\82\82\82\83\82\82\82\82\82\82\82\82\82\82\82\82\82\82\82\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\83\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\84\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81