From f7c7958d650d95f0d98ac3c578e8ecc0140242e4 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 14 Feb 2007 16:04:27 +0000 Subject: [PATCH] uboot: add uboot for gta01 and qt2410 * BIG FAT NOTE: broken for EABI: http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=180 --- packages/uboot/files/gta01_nand.h | 233 + packages/uboot/files/qt2410.h | 256 + packages/uboot/files/qt2410_nand.h | 256 + packages/uboot/files/qt2410_ram.h | 256 + .../uboot/files/u-boot-20060807-qt2410.patch | 8435 +++++++++++++++ packages/uboot/files/u-boot-20060807.tar.bz2 | Bin 0 -> 6446218 bytes .../uboot/files/u-boot-20060907-gta01.patch | 901 ++ packages/uboot/files/u-boot-20060907.tar.bz2 | Bin 0 -> 6535380 bytes .../files/u-boot-20061030-ext2load_hex.patch | 14 + .../files/u-boot-20061030-gta01bv2.patch | 246 + .../uboot/files/u-boot-20061030-gta01v4.patch | 132 + .../files/u-boot-20061030-qt2410-gta01.patch | 9272 +++++++++++++++++ packages/uboot/uboot-gta01_svn.bb | 55 + .../uboot/uboot-qt2410_0.0+cvs20061030.bb | 41 + 14 files changed, 20097 insertions(+) create mode 100644 packages/uboot/files/gta01_nand.h create mode 100644 packages/uboot/files/qt2410.h create mode 100644 packages/uboot/files/qt2410_nand.h create mode 100644 packages/uboot/files/qt2410_ram.h create mode 100644 packages/uboot/files/u-boot-20060807-qt2410.patch create mode 100644 packages/uboot/files/u-boot-20060807.tar.bz2 create mode 100644 packages/uboot/files/u-boot-20060907-gta01.patch create mode 100644 packages/uboot/files/u-boot-20060907.tar.bz2 create mode 100644 packages/uboot/files/u-boot-20061030-ext2load_hex.patch create mode 100644 packages/uboot/files/u-boot-20061030-gta01bv2.patch create mode 100644 packages/uboot/files/u-boot-20061030-gta01v4.patch create mode 100644 packages/uboot/files/u-boot-20061030-qt2410-gta01.patch create mode 100644 packages/uboot/uboot-gta01_svn.bb create mode 100644 packages/uboot/uboot-qt2410_0.0+cvs20061030.bb diff --git a/packages/uboot/files/gta01_nand.h b/packages/uboot/files/gta01_nand.h new file mode 100644 index 0000000000..04cb743158 --- /dev/null +++ b/packages/uboot/files/gta01_nand.h @@ -0,0 +1,233 @@ +/* + * (C) Copyright 2006 Harald Welte + * + * Configuation settings for the FIC GTA01 Linux GSM phone + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +/* we want to start u-boot directly from within NAND flash */ +#define CONFIG_S3C2410_NAND_BOOT 1 + +/* + * High Level Configuration Options + * (easy to change) + */ +#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ +#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ +#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ + +/* input clock of PLL */ +#define CONFIG_SYS_CLK_FREQ 12000000/* the GTA01 has 12MHz input clock */ + + +#define USE_920T_MMU 1 +#define CONFIG_USE_IRQ 1 + +/* + * Size of malloc() pool + */ +#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) +#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ + +/* + * Hardware drivers + */ + +/* + * select serial console configuration + */ +#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on GTA01 */ +//#define CONFIG_HWFLOW 1 + +/************************************************************ + * RTC + ************************************************************/ +#define CONFIG_RTC_S3C24X0 1 + +/* allow to overwrite serial and ethaddr */ +#define CONFIG_ENV_OVERWRITE + +#define CONFIG_BAUDRATE 115200 + +/*********************************************************** + * Command definition + ***********************************************************/ +#define CONFIG_COMMANDS (\ + CFG_CMD_BDI | \ + CFG_CMD_LOADS | \ + CFG_CMD_LAODB | \ + CFG_CMD_IMI | \ + CFG_CMD_CACHE | \ + CFG_CMD_MEMORY | \ + CFG_CMD_ENV | \ + /* CFG_CMD_IRQ | */ \ + CFG_CMD_BOOTD | \ + CFG_CMD_CONSOLE | \ + CFG_CMD_ASKENV | \ + CFG_CMD_RUN | \ + CFG_CMD_ECHO | \ + CFG_CMD_I2C | \ + CFG_CMD_REGINFO | \ + CFG_CMD_IMMAP | \ + CFG_CMD_DATE | \ + CFG_CMD_AUTOSCRIPT | \ + CFG_CMD_BSP | \ + CFG_CMD_ELF | \ + CFG_CMD_MISC | \ + CFG_CMD_USB | \ + CFG_CMD_JFFS2 | \ + CFG_CMD_DIAG | \ + /* CFG_CMD_HWFLOW | */ \ + CFG_CMD_SAVES | \ + CFG_CMD_NAND | \ + CFG_CMD_PORTIO | \ + CFG_CMD_MMC | \ + CFG_CMD_FAT | \ + CFG_CMD_EXT2 | \ + 0) +/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ +#include + +#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTARGS "rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8" +/*#define CONFIG_BOOTFILE "elinos-lart" */ +#define CONFIG_BOOTCOMMAND "nand load 0x32000000 0x34000 0x200000; bootm 0x32000000" + +#define CONFIG_DOS_PARTITION 1 + +#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ +/* what's this ? it's not used anywhere */ +#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ +#endif + +/* + * Miscellaneous configurable options + */ +#define CFG_LONGHELP /* undef to save memory */ +#define CFG_PROMPT "GTA01 # " /* Monitor Command Prompt */ +#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ +#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ +#define CFG_MAXARGS 16 /* max number of command args */ +#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ + +#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ +#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ + +#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ + +#define CFG_LOAD_ADDR 0x33000000 /* default load address */ + +/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ +/* it to wrap 100 times (total 1562500) to get 1 sec. */ +#define CFG_HZ 1562500 + +/* valid baudrates */ +#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } + +/*----------------------------------------------------------------------- + * Stack sizes + * + * The stack sizes are set up in start.S using the settings below + */ +#define CONFIG_STACKSIZE (128*1024) /* regular stack */ +#ifdef CONFIG_USE_IRQ +#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ +#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ +#endif + +#define CONFIG_USB_OHCI 1 + +/*----------------------------------------------------------------------- + * Physical Memory Map + */ +#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ +#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ +#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ +#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ + +/*----------------------------------------------------------------------- + * FLASH and environment organization + */ + +#if 1 +#define CFG_NO_FLASH 1 +#else +#define CFG_MAX_FLASH_SECT 1 +#define CFG_MAX_FLASH_BANKS 1 +#endif + +#define CFG_ENV_IS_IN_NAND 1 +#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ +#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ + +#define NAND_MAX_CHIPS 1 +#define CFG_NAND_BASE 0x4e000000 +#define CFG_MAX_NAND_DEVICE 1 + +#define CONFIG_MMC 1 +#define CFG_MMC_BASE 0xff000000 + +/* EXT2 driver */ +#define CONFIG_EXT2 1 + +/* FAT driver in u-boot is broken currently */ +#define CONFIG_FAT 1 +#define CONFIG_SUPPORT_VFAT 1 + +/* JFFS2 driver */ +#define CONFIG_JFFS2_NAND 1 +#define CONFIG_JFFS2_NAND_DEV 0 +#define CONFIG_JFFS2_NAND_OFF 0x634000 +#define CONFIG_JFFS2_NAND_SIZE 0x39cc000 + +/* ATAG configuration */ +#define CONFIG_INITRD_TAG 1 +#define CONFIG_SETUP_MEMORY_TAGS 1 +#define CONFIG_CMDLINE_TAG 1 +#if 0 +#define CONFIG_SERIAL_TAG 1 +#define CONFIG_REVISION_TAG 1 +#endif + +#define CONFIG_DRIVER_S3C24X0_I2C 1 +#define CONFIG_HARD_I2C 1 +#define CFG_I2C_SPEED 400000 /* 400kHz according to PCF50707 data sheet */ +#define CFG_I2C_SLAVE 0x7f + + +#if 0 +#define CONFIG_VIDEO +#define CONFIG_VIDEO_S3C2410 +#define CONFIG_CFB_CONSOLE +#define CONFIG_VIDEO_LOGO +#define CONFIG_VGA_AS_SINGLE_DEVICE + +#define VIDEO_KBD_INIT_FCT 0 +#define VIDEO_TSTC_FCT serial_tstc +#define VIDEO_GETC_FCT serial_getc + +#define LCD_VIDEO_ADDR 0x33d00000 +#endif + +#endif /* __CONFIG_H */ diff --git a/packages/uboot/files/qt2410.h b/packages/uboot/files/qt2410.h new file mode 100644 index 0000000000..627f365f86 --- /dev/null +++ b/packages/uboot/files/qt2410.h @@ -0,0 +1,256 @@ +/* + * (C) Copyright 2002 + * Sysgo Real-Time Solutions, GmbH + * Marius Groeger + * Gary Jennejohn + * David Mueller + * + * Configuation settings for the SAMSUNG SMDK2410 board. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +#if 0 +/* If we want to start u-boot from usb bootloader in NOR flash */ +#define CONFIG_SKIP_RELOCATE_UBOOT 1 +#define CONFIG_SKIP_LOWLEVEL_INIT 1 +#else +/* If we want to start u-boot directly from within NAND flash */ +#define CONFIG_S3C2410_NAND_BOOT 1 +#endif + +/* + * High Level Configuration Options + * (easy to change) + */ +#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ +#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ +#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ + +/* input clock of PLL */ +#define CONFIG_SYS_CLK_FREQ 12000000/* the SMDK2410 has 12MHz input clock */ + + +#define USE_920T_MMU 1 +#define CONFIG_USE_IRQ 1 +//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ + +/* + * Size of malloc() pool + */ +#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) +#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ + +/* + * Hardware drivers + */ +#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ +#define CS8900_BASE 0x19000300 +#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ + +/* + * select serial console configuration + */ +#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK2410 */ +#define CONFIG_HWFLOW 1 + +/************************************************************ + * RTC + ************************************************************/ +#define CONFIG_RTC_S3C24X0 1 + +/* allow to overwrite serial and ethaddr */ +#define CONFIG_ENV_OVERWRITE + +#define CONFIG_BAUDRATE 115200 + +/*********************************************************** + * Command definition + ***********************************************************/ +#define CONFIG_COMMANDS \ + (CONFIG_CMD_DFL | \ + CFG_CMD_BSP | \ + CFG_CMD_CACHE | \ + CFG_CMD_DATE | \ + CFG_CMD_DHCP | \ + CFG_CMD_DIAG | \ + CFG_CMD_ELF | \ + CFG_CMD_EXT2 | \ + CFG_CMD_FAT | \ + CFG_CMD_HWFLOW | \ + /* CFG_CMD_IDE | */ \ + /* CFG_CMD_IRQ | */ \ + CFG_CMD_JFFS2 | \ + CFG_CMD_MMC | \ + CFG_CMD_NAND | \ + CFG_CMD_PING | \ + CFG_CMD_PORTIO | \ + CFG_CMD_REGINFO | \ + CFG_CMD_SAVES | \ + CFG_CMD_USB) + +/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ +#include + +#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTARGS "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10" +/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */ +#define CONFIG_NETMASK 255.255.255.0 +#define CONFIG_IPADDR 10.0.0.110 +#define CONFIG_SERVERIP 10.0.0.1 +/*#define CONFIG_BOOTFILE "elinos-lart" */ +#define CONFIG_BOOTCOMMAND "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000" + +#define CONFIG_DOS_PARTITION 1 + +#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ +/* what's this ? it's not used anywhere */ +#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ +#endif + +/* + * Miscellaneous configurable options + */ +#define CFG_LONGHELP /* undef to save memory */ +#define CFG_PROMPT "QT2410 # " /* Monitor Command Prompt */ +#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ +#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ +#define CFG_MAXARGS 16 /* max number of command args */ +#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ + +#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ +#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ + +#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ + +#define CFG_LOAD_ADDR 0x33000000 /* default load address */ + +/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ +/* it to wrap 100 times (total 1562500) to get 1 sec. */ +#define CFG_HZ 1562500 + +/* valid baudrates */ +#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } + +/*----------------------------------------------------------------------- + * Stack sizes + * + * The stack sizes are set up in start.S using the settings below + */ +#define CONFIG_STACKSIZE (128*1024) /* regular stack */ +#ifdef CONFIG_USE_IRQ +#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ +#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ +#endif + +/* IDE/ATA config */ + +#if 0 +#define CFG_IDE_MAXBUS 1 +#define CFG_IDE_MAXDEVICE 2 +#define CFG_IDE_PREINIT 0 + +#define CFG_ATA_BASE_ADDR +#endif + +#define CONFIG_USB_OHCI 1 + +/*----------------------------------------------------------------------- + * Physical Memory Map + */ +#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ +#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ +#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ +#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ + +#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ + +#define CFG_FLASH_BASE PHYS_FLASH_1 + +/*----------------------------------------------------------------------- + * FLASH and environment organization + */ + +#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */ +#if 0 +#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */ +#endif + +#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ +#ifdef CONFIG_AMD_LV800 +#define PHYS_FLASH_SIZE 0x00100000 /* 1MB */ +#define CFG_MAX_FLASH_SECT (19) /* max number of sectors on one chip */ +#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */ +#endif +#ifdef CONFIG_AMD_LV400 +#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */ +#define CFG_MAX_FLASH_SECT (11) /* max number of sectors on one chip */ +#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x070000) /* addr of environment */ +#endif + +/* timeout values are in ticks */ +#define CFG_FLASH_ERASE_TOUT (5*CFG_HZ) /* Timeout for Flash Erase */ +#define CFG_FLASH_WRITE_TOUT (5*CFG_HZ) /* Timeout for Flash Write */ + +#define CFG_ENV_IS_IN_NAND 1 +#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ +#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ + +#define NAND_MAX_CHIPS 1 +#define CFG_NAND_BASE 0x4e000000 +#define CFG_MAX_NAND_DEVICE 1 + +#define CONFIG_MMC 1 +#define CFG_MMC_BASE 0xff000000 + +#define CONFIG_EXT2 1 + +/* FAT driver in u-boot is broken currently */ +#define CONFIG_FAT 1 +#define CONFIG_SUPPORT_VFAT + +/* ATAG configuration */ +#define CONFIG_INITRD_TAG 1 +#define CONFIG_SETUP_MEMORY_TAGS 1 +#define CONFIG_CMDLINE_TAG 1 +#if 0 +#define CONFIG_SERIAL_TAG 1 +#define CONFIG_REVISION_TAG 1 +#endif + + +#if 0 +#define CONFIG_VIDEO +#define CONFIG_VIDEO_S3C2410 +#define CONFIG_CFB_CONSOLE +#define CONFIG_VIDEO_LOGO +#define CONFIG_VGA_AS_SINGLE_DEVICE + +#define VIDEO_KBD_INIT_FCT 0 +#define VIDEO_TSTC_FCT serial_tstc +#define VIDEO_GETC_FCT serial_getc + +#define LCD_VIDEO_ADDR 0x33d00000 +#endif + +#endif /* __CONFIG_H */ diff --git a/packages/uboot/files/qt2410_nand.h b/packages/uboot/files/qt2410_nand.h new file mode 100644 index 0000000000..627f365f86 --- /dev/null +++ b/packages/uboot/files/qt2410_nand.h @@ -0,0 +1,256 @@ +/* + * (C) Copyright 2002 + * Sysgo Real-Time Solutions, GmbH + * Marius Groeger + * Gary Jennejohn + * David Mueller + * + * Configuation settings for the SAMSUNG SMDK2410 board. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +#if 0 +/* If we want to start u-boot from usb bootloader in NOR flash */ +#define CONFIG_SKIP_RELOCATE_UBOOT 1 +#define CONFIG_SKIP_LOWLEVEL_INIT 1 +#else +/* If we want to start u-boot directly from within NAND flash */ +#define CONFIG_S3C2410_NAND_BOOT 1 +#endif + +/* + * High Level Configuration Options + * (easy to change) + */ +#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ +#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ +#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ + +/* input clock of PLL */ +#define CONFIG_SYS_CLK_FREQ 12000000/* the SMDK2410 has 12MHz input clock */ + + +#define USE_920T_MMU 1 +#define CONFIG_USE_IRQ 1 +//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ + +/* + * Size of malloc() pool + */ +#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) +#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ + +/* + * Hardware drivers + */ +#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ +#define CS8900_BASE 0x19000300 +#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ + +/* + * select serial console configuration + */ +#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK2410 */ +#define CONFIG_HWFLOW 1 + +/************************************************************ + * RTC + ************************************************************/ +#define CONFIG_RTC_S3C24X0 1 + +/* allow to overwrite serial and ethaddr */ +#define CONFIG_ENV_OVERWRITE + +#define CONFIG_BAUDRATE 115200 + +/*********************************************************** + * Command definition + ***********************************************************/ +#define CONFIG_COMMANDS \ + (CONFIG_CMD_DFL | \ + CFG_CMD_BSP | \ + CFG_CMD_CACHE | \ + CFG_CMD_DATE | \ + CFG_CMD_DHCP | \ + CFG_CMD_DIAG | \ + CFG_CMD_ELF | \ + CFG_CMD_EXT2 | \ + CFG_CMD_FAT | \ + CFG_CMD_HWFLOW | \ + /* CFG_CMD_IDE | */ \ + /* CFG_CMD_IRQ | */ \ + CFG_CMD_JFFS2 | \ + CFG_CMD_MMC | \ + CFG_CMD_NAND | \ + CFG_CMD_PING | \ + CFG_CMD_PORTIO | \ + CFG_CMD_REGINFO | \ + CFG_CMD_SAVES | \ + CFG_CMD_USB) + +/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ +#include + +#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTARGS "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10" +/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */ +#define CONFIG_NETMASK 255.255.255.0 +#define CONFIG_IPADDR 10.0.0.110 +#define CONFIG_SERVERIP 10.0.0.1 +/*#define CONFIG_BOOTFILE "elinos-lart" */ +#define CONFIG_BOOTCOMMAND "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000" + +#define CONFIG_DOS_PARTITION 1 + +#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ +/* what's this ? it's not used anywhere */ +#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ +#endif + +/* + * Miscellaneous configurable options + */ +#define CFG_LONGHELP /* undef to save memory */ +#define CFG_PROMPT "QT2410 # " /* Monitor Command Prompt */ +#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ +#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ +#define CFG_MAXARGS 16 /* max number of command args */ +#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ + +#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ +#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ + +#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ + +#define CFG_LOAD_ADDR 0x33000000 /* default load address */ + +/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ +/* it to wrap 100 times (total 1562500) to get 1 sec. */ +#define CFG_HZ 1562500 + +/* valid baudrates */ +#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } + +/*----------------------------------------------------------------------- + * Stack sizes + * + * The stack sizes are set up in start.S using the settings below + */ +#define CONFIG_STACKSIZE (128*1024) /* regular stack */ +#ifdef CONFIG_USE_IRQ +#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ +#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ +#endif + +/* IDE/ATA config */ + +#if 0 +#define CFG_IDE_MAXBUS 1 +#define CFG_IDE_MAXDEVICE 2 +#define CFG_IDE_PREINIT 0 + +#define CFG_ATA_BASE_ADDR +#endif + +#define CONFIG_USB_OHCI 1 + +/*----------------------------------------------------------------------- + * Physical Memory Map + */ +#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ +#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ +#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ +#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ + +#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ + +#define CFG_FLASH_BASE PHYS_FLASH_1 + +/*----------------------------------------------------------------------- + * FLASH and environment organization + */ + +#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */ +#if 0 +#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */ +#endif + +#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ +#ifdef CONFIG_AMD_LV800 +#define PHYS_FLASH_SIZE 0x00100000 /* 1MB */ +#define CFG_MAX_FLASH_SECT (19) /* max number of sectors on one chip */ +#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */ +#endif +#ifdef CONFIG_AMD_LV400 +#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */ +#define CFG_MAX_FLASH_SECT (11) /* max number of sectors on one chip */ +#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x070000) /* addr of environment */ +#endif + +/* timeout values are in ticks */ +#define CFG_FLASH_ERASE_TOUT (5*CFG_HZ) /* Timeout for Flash Erase */ +#define CFG_FLASH_WRITE_TOUT (5*CFG_HZ) /* Timeout for Flash Write */ + +#define CFG_ENV_IS_IN_NAND 1 +#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ +#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ + +#define NAND_MAX_CHIPS 1 +#define CFG_NAND_BASE 0x4e000000 +#define CFG_MAX_NAND_DEVICE 1 + +#define CONFIG_MMC 1 +#define CFG_MMC_BASE 0xff000000 + +#define CONFIG_EXT2 1 + +/* FAT driver in u-boot is broken currently */ +#define CONFIG_FAT 1 +#define CONFIG_SUPPORT_VFAT + +/* ATAG configuration */ +#define CONFIG_INITRD_TAG 1 +#define CONFIG_SETUP_MEMORY_TAGS 1 +#define CONFIG_CMDLINE_TAG 1 +#if 0 +#define CONFIG_SERIAL_TAG 1 +#define CONFIG_REVISION_TAG 1 +#endif + + +#if 0 +#define CONFIG_VIDEO +#define CONFIG_VIDEO_S3C2410 +#define CONFIG_CFB_CONSOLE +#define CONFIG_VIDEO_LOGO +#define CONFIG_VGA_AS_SINGLE_DEVICE + +#define VIDEO_KBD_INIT_FCT 0 +#define VIDEO_TSTC_FCT serial_tstc +#define VIDEO_GETC_FCT serial_getc + +#define LCD_VIDEO_ADDR 0x33d00000 +#endif + +#endif /* __CONFIG_H */ diff --git a/packages/uboot/files/qt2410_ram.h b/packages/uboot/files/qt2410_ram.h new file mode 100644 index 0000000000..62cc88eaf0 --- /dev/null +++ b/packages/uboot/files/qt2410_ram.h @@ -0,0 +1,256 @@ +/* + * (C) Copyright 2002 + * Sysgo Real-Time Solutions, GmbH + * Marius Groeger + * Gary Jennejohn + * David Mueller + * + * Configuation settings for the SAMSUNG SMDK2410 board. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +#if 1 +/* If we want to start u-boot from usb bootloader in NOR flash */ +#define CONFIG_SKIP_RELOCATE_UBOOT 1 +#define CONFIG_SKIP_LOWLEVEL_INIT 1 +#else +/* If we want to start u-boot directly from within NAND flash */ +#define CONFIG_S3C2410_NAND_BOOT 1 +#endif + +/* + * High Level Configuration Options + * (easy to change) + */ +#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ +#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ +#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ + +/* input clock of PLL */ +#define CONFIG_SYS_CLK_FREQ 12000000/* the SMDK2410 has 12MHz input clock */ + + +#define USE_920T_MMU 1 +#define CONFIG_USE_IRQ 1 +//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ + +/* + * Size of malloc() pool + */ +#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) +#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ + +/* + * Hardware drivers + */ +#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ +#define CS8900_BASE 0x19000300 +#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ + +/* + * select serial console configuration + */ +#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK2410 */ +#define CONFIG_HWFLOW 1 + +/************************************************************ + * RTC + ************************************************************/ +#define CONFIG_RTC_S3C24X0 1 + +/* allow to overwrite serial and ethaddr */ +#define CONFIG_ENV_OVERWRITE + +#define CONFIG_BAUDRATE 115200 + +/*********************************************************** + * Command definition + ***********************************************************/ +#define CONFIG_COMMANDS \ + (CONFIG_CMD_DFL | \ + CFG_CMD_BSP | \ + CFG_CMD_CACHE | \ + CFG_CMD_DATE | \ + CFG_CMD_DHCP | \ + CFG_CMD_DIAG | \ + CFG_CMD_ELF | \ + CFG_CMD_EXT2 | \ + CFG_CMD_FAT | \ + CFG_CMD_HWFLOW | \ + /* CFG_CMD_IDE | */ \ + /* CFG_CMD_IRQ | */ \ + CFG_CMD_JFFS2 | \ + CFG_CMD_MMC | \ + CFG_CMD_NAND | \ + CFG_CMD_PING | \ + CFG_CMD_PORTIO | \ + CFG_CMD_REGINFO | \ + CFG_CMD_SAVES | \ + CFG_CMD_USB) + +/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ +#include + +#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTARGS "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10" +/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */ +#define CONFIG_NETMASK 255.255.255.0 +#define CONFIG_IPADDR 10.0.0.110 +#define CONFIG_SERVERIP 10.0.0.1 +/*#define CONFIG_BOOTFILE "elinos-lart" */ +#define CONFIG_BOOTCOMMAND "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000" + +#define CONFIG_DOS_PARTITION 1 + +#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ +/* what's this ? it's not used anywhere */ +#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ +#endif + +/* + * Miscellaneous configurable options + */ +#define CFG_LONGHELP /* undef to save memory */ +#define CFG_PROMPT "QT2410 # " /* Monitor Command Prompt */ +#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ +#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ +#define CFG_MAXARGS 16 /* max number of command args */ +#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ + +#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ +#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ + +#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ + +#define CFG_LOAD_ADDR 0x33000000 /* default load address */ + +/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ +/* it to wrap 100 times (total 1562500) to get 1 sec. */ +#define CFG_HZ 1562500 + +/* valid baudrates */ +#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } + +/*----------------------------------------------------------------------- + * Stack sizes + * + * The stack sizes are set up in start.S using the settings below + */ +#define CONFIG_STACKSIZE (128*1024) /* regular stack */ +#ifdef CONFIG_USE_IRQ +#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ +#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ +#endif + +/* IDE/ATA config */ + +#if 0 +#define CFG_IDE_MAXBUS 1 +#define CFG_IDE_MAXDEVICE 2 +#define CFG_IDE_PREINIT 0 + +#define CFG_ATA_BASE_ADDR +#endif + +#define CONFIG_USB_OHCI 1 + +/*----------------------------------------------------------------------- + * Physical Memory Map + */ +#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ +#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ +#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ +#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ + +#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ + +#define CFG_FLASH_BASE PHYS_FLASH_1 + +/*----------------------------------------------------------------------- + * FLASH and environment organization + */ + +#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */ +#if 0 +#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */ +#endif + +#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ +#ifdef CONFIG_AMD_LV800 +#define PHYS_FLASH_SIZE 0x00100000 /* 1MB */ +#define CFG_MAX_FLASH_SECT (19) /* max number of sectors on one chip */ +#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */ +#endif +#ifdef CONFIG_AMD_LV400 +#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */ +#define CFG_MAX_FLASH_SECT (11) /* max number of sectors on one chip */ +#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x070000) /* addr of environment */ +#endif + +/* timeout values are in ticks */ +#define CFG_FLASH_ERASE_TOUT (5*CFG_HZ) /* Timeout for Flash Erase */ +#define CFG_FLASH_WRITE_TOUT (5*CFG_HZ) /* Timeout for Flash Write */ + +#define CFG_ENV_IS_IN_NAND 1 +#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ +#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ + +#define NAND_MAX_CHIPS 1 +#define CFG_NAND_BASE 0x4e000000 +#define CFG_MAX_NAND_DEVICE 1 + +#define CONFIG_MMC 1 +#define CFG_MMC_BASE 0xff000000 + +#define CONFIG_EXT2 1 + +/* FAT driver in u-boot is broken currently */ +#define CONFIG_FAT 1 +#define CONFIG_SUPPORT_VFAT + +/* ATAG configuration */ +#define CONFIG_INITRD_TAG 1 +#define CONFIG_SETUP_MEMORY_TAGS 1 +#define CONFIG_CMDLINE_TAG 1 +#if 0 +#define CONFIG_SERIAL_TAG 1 +#define CONFIG_REVISION_TAG 1 +#endif + + +#if 0 +#define CONFIG_VIDEO +#define CONFIG_VIDEO_S3C2410 +#define CONFIG_CFB_CONSOLE +#define CONFIG_VIDEO_LOGO +#define CONFIG_VGA_AS_SINGLE_DEVICE + +#define VIDEO_KBD_INIT_FCT 0 +#define VIDEO_TSTC_FCT serial_tstc +#define VIDEO_GETC_FCT serial_getc + +#define LCD_VIDEO_ADDR 0x33d00000 +#endif + +#endif /* __CONFIG_H */ diff --git a/packages/uboot/files/u-boot-20060807-qt2410.patch b/packages/uboot/files/u-boot-20060807-qt2410.patch new file mode 100644 index 0000000000..ed9f987c81 --- /dev/null +++ b/packages/uboot/files/u-boot-20060807-qt2410.patch @@ -0,0 +1,8435 @@ +diff --git a/Makefile b/Makefile +index 128ae59..5d7b5bb 100644 +--- a/Makefile ++++ b/Makefile +@@ -1638,6 +1638,9 @@ omap730p2_cs3boot_config : unconfig + sbc2410x_config: unconfig + @./mkconfig $(@:_config=) arm arm920t sbc2410x NULL s3c24x0 + ++qt2410_config : unconfig ++ @./mkconfig $(@:_config=) arm arm920t qt2410 NULL s3c24x0 ++ + scb9328_config : unconfig + @./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx + +diff --git a/board/qt2410/Makefile b/board/qt2410/Makefile +new file mode 100644 +index 0000000..407b256 +--- /dev/null ++++ b/board/qt2410/Makefile +@@ -0,0 +1,47 @@ ++# ++# (C) Copyright 2000, 2001, 2002 ++# Wolfgang Denk, DENX Software Engineering, wd@denx.de. ++# ++# See file CREDITS for list of people who contributed to this ++# project. ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License as ++# published by the Free Software Foundation; either version 2 of ++# the License, or (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++# MA 02111-1307 USA ++# ++ ++include $(TOPDIR)/config.mk ++ ++LIB = lib$(BOARD).a ++ ++OBJS := qt2410.o flash.o ++SOBJS := lowlevel_init.o ++ ++$(LIB): $(OBJS) $(SOBJS) ++ $(AR) crv $@ $(OBJS) $(SOBJS) ++ ++clean: ++ rm -f $(SOBJS) $(OBJS) ++ ++distclean: clean ++ rm -f $(LIB) core *.bak .depend ++ ++######################################################################### ++ ++.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c) ++ $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@ ++ ++-include .depend ++ ++######################################################################### +diff --git a/board/qt2410/config.mk b/board/qt2410/config.mk +new file mode 100644 +index 0000000..1af85da +--- /dev/null ++++ b/board/qt2410/config.mk +@@ -0,0 +1,25 @@ ++# ++# (C) Copyright 2002 ++# Gary Jennejohn, DENX Software Engineering, ++# David Mueller, ELSOFT AG, ++# ++# SAMSUNG SMDK2410 board with S3C2410X (ARM920T) cpu ++# ++# see http://www.samsung.com/ for more information on SAMSUNG ++# ++ ++# ++# SMDK2410 has 1 bank of 64 MB DRAM ++# ++# 3000'0000 to 3400'0000 ++# ++# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000 ++# optionally with a ramdisk at 3080'0000 ++# ++# we load ourself to 33F8'0000 ++# ++# download area is 3300'0000 ++# ++ ++ ++TEXT_BASE = 0x33F80000 +diff --git a/board/qt2410/flash.c b/board/qt2410/flash.c +new file mode 100644 +index 0000000..993946b +--- /dev/null ++++ b/board/qt2410/flash.c +@@ -0,0 +1,433 @@ ++/* ++ * (C) Copyright 2002 ++ * Sysgo Real-Time Solutions, GmbH ++ * Alex Zuepke ++ * ++ * See file CREDITS for list of people who contributed to this ++ * project. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++#include ++ ++ulong myflush (void); ++ ++ ++#define FLASH_BANK_SIZE PHYS_FLASH_SIZE ++#define MAIN_SECT_SIZE 0x10000 /* 64 KB */ ++ ++flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; ++ ++ ++#define CMD_READ_ARRAY 0x000000F0 ++#define CMD_UNLOCK1 0x000000AA ++#define CMD_UNLOCK2 0x00000055 ++#define CMD_ERASE_SETUP 0x00000080 ++#define CMD_ERASE_CONFIRM 0x00000030 ++#define CMD_PROGRAM 0x000000A0 ++#define CMD_UNLOCK_BYPASS 0x00000020 ++ ++#define MEM_FLASH_ADDR1 (*(volatile u16 *)(CFG_FLASH_BASE + (0x00000555 << 1))) ++#define MEM_FLASH_ADDR2 (*(volatile u16 *)(CFG_FLASH_BASE + (0x000002AA << 1))) ++ ++#define BIT_ERASE_DONE 0x00000080 ++#define BIT_RDY_MASK 0x00000080 ++#define BIT_PROGRAM_ERROR 0x00000020 ++#define BIT_TIMEOUT 0x80000000 /* our flag */ ++ ++#define READY 1 ++#define ERR 2 ++#define TMO 4 ++ ++/*----------------------------------------------------------------------- ++ */ ++ ++ulong flash_init (void) ++{ ++ int i, j; ++ ulong size = 0; ++ ++ for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) { ++ ulong flashbase = 0; ++ ++ flash_info[i].flash_id = ++#if defined(CONFIG_AMD_LV400) ++ (AMD_MANUFACT & FLASH_VENDMASK) | ++ (AMD_ID_LV400B & FLASH_TYPEMASK); ++#elif defined(CONFIG_AMD_LV800) ++ (AMD_MANUFACT & FLASH_VENDMASK) | ++ (AMD_ID_LV800B & FLASH_TYPEMASK); ++#else ++#error "Unknown flash configured" ++#endif ++ flash_info[i].size = FLASH_BANK_SIZE; ++ flash_info[i].sector_count = CFG_MAX_FLASH_SECT; ++ memset (flash_info[i].protect, 0, CFG_MAX_FLASH_SECT); ++ if (i == 0) ++ flashbase = PHYS_FLASH_1; ++ else ++ panic ("configured too many flash banks!\n"); ++ for (j = 0; j < flash_info[i].sector_count; j++) { ++ if (j <= 3) { ++ /* 1st one is 16 KB */ ++ if (j == 0) { ++ flash_info[i].start[j] = ++ flashbase + 0; ++ } ++ ++ /* 2nd and 3rd are both 8 KB */ ++ if ((j == 1) || (j == 2)) { ++ flash_info[i].start[j] = ++ flashbase + 0x4000 + (j - ++ 1) * ++ 0x2000; ++ } ++ ++ /* 4th 32 KB */ ++ if (j == 3) { ++ flash_info[i].start[j] = ++ flashbase + 0x8000; ++ } ++ } else { ++ flash_info[i].start[j] = ++ flashbase + (j - 3) * MAIN_SECT_SIZE; ++ } ++ } ++ size += flash_info[i].size; ++ } ++ ++ flash_protect (FLAG_PROTECT_SET, ++ CFG_FLASH_BASE, ++ CFG_FLASH_BASE + monitor_flash_len - 1, ++ &flash_info[0]); ++ ++ flash_protect (FLAG_PROTECT_SET, ++ CFG_ENV_ADDR, ++ CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[0]); ++ ++ return size; ++} ++ ++/*----------------------------------------------------------------------- ++ */ ++void flash_print_info (flash_info_t * info) ++{ ++ int i; ++ ++ switch (info->flash_id & FLASH_VENDMASK) { ++ case (AMD_MANUFACT & FLASH_VENDMASK): ++ printf ("AMD: "); ++ break; ++ default: ++ printf ("Unknown Vendor "); ++ break; ++ } ++ ++ switch (info->flash_id & FLASH_TYPEMASK) { ++ case (AMD_ID_LV400B & FLASH_TYPEMASK): ++ printf ("1x Amd29LV400BB (4Mbit)\n"); ++ break; ++ case (AMD_ID_LV800B & FLASH_TYPEMASK): ++ printf ("1x Amd29LV800BB (8Mbit)\n"); ++ break; ++ default: ++ printf ("Unknown Chip Type\n"); ++ goto Done; ++ break; ++ } ++ ++ printf (" Size: %ld MB in %d Sectors\n", ++ info->size >> 20, info->sector_count); ++ ++ printf (" Sector Start Addresses:"); ++ for (i = 0; i < info->sector_count; i++) { ++ if ((i % 5) == 0) { ++ printf ("\n "); ++ } ++ printf (" %08lX%s", info->start[i], ++ info->protect[i] ? " (RO)" : " "); ++ } ++ printf ("\n"); ++ ++ Done:; ++} ++ ++/*----------------------------------------------------------------------- ++ */ ++ ++int flash_erase (flash_info_t * info, int s_first, int s_last) ++{ ++ ushort result; ++ int iflag, cflag, prot, sect; ++ int rc = ERR_OK; ++ int chip; ++ ++ /* first look for protection bits */ ++ ++ if (info->flash_id == FLASH_UNKNOWN) ++ return ERR_UNKNOWN_FLASH_TYPE; ++ ++ if ((s_first < 0) || (s_first > s_last)) { ++ return ERR_INVAL; ++ } ++ ++ if ((info->flash_id & FLASH_VENDMASK) != ++ (AMD_MANUFACT & FLASH_VENDMASK)) { ++ return ERR_UNKNOWN_FLASH_VENDOR; ++ } ++ ++ prot = 0; ++ for (sect = s_first; sect <= s_last; ++sect) { ++ if (info->protect[sect]) { ++ prot++; ++ } ++ } ++ if (prot) ++ return ERR_PROTECTED; ++ ++ /* ++ * Disable interrupts which might cause a timeout ++ * here. Remember that our exception vectors are ++ * at address 0 in the flash, and we don't want a ++ * (ticker) exception to happen while the flash ++ * chip is in programming mode. ++ */ ++ cflag = icache_status (); ++ icache_disable (); ++ iflag = disable_interrupts (); ++ ++ /* Start erase on unprotected sectors */ ++ for (sect = s_first; sect <= s_last && !ctrlc (); sect++) { ++ printf ("Erasing sector %2d ... ", sect); ++ ++ /* arm simple, non interrupt dependent timer */ ++ reset_timer_masked (); ++ ++ if (info->protect[sect] == 0) { /* not protected */ ++ vu_short *addr = (vu_short *) (info->start[sect]); ++ ++ MEM_FLASH_ADDR1 = CMD_UNLOCK1; ++ MEM_FLASH_ADDR2 = CMD_UNLOCK2; ++ MEM_FLASH_ADDR1 = CMD_ERASE_SETUP; ++ ++ MEM_FLASH_ADDR1 = CMD_UNLOCK1; ++ MEM_FLASH_ADDR2 = CMD_UNLOCK2; ++ *addr = CMD_ERASE_CONFIRM; ++ ++ /* wait until flash is ready */ ++ chip = 0; ++ ++ do { ++ result = *addr; ++ ++ /* check timeout */ ++ if (get_timer_masked () > ++ CFG_FLASH_ERASE_TOUT) { ++ MEM_FLASH_ADDR1 = CMD_READ_ARRAY; ++ chip = TMO; ++ break; ++ } ++ ++ if (!chip ++ && (result & 0xFFFF) & BIT_ERASE_DONE) ++ chip = READY; ++ ++ if (!chip ++ && (result & 0xFFFF) & BIT_PROGRAM_ERROR) ++ chip = ERR; ++ ++ } while (!chip); ++ ++ MEM_FLASH_ADDR1 = CMD_READ_ARRAY; ++ ++ if (chip == ERR) { ++ rc = ERR_PROG_ERROR; ++ goto outahere; ++ } ++ if (chip == TMO) { ++ rc = ERR_TIMOUT; ++ goto outahere; ++ } ++ ++ printf ("ok.\n"); ++ } else { /* it was protected */ ++ ++ printf ("protected!\n"); ++ } ++ } ++ ++ if (ctrlc ()) ++ printf ("User Interrupt!\n"); ++ ++ outahere: ++ /* allow flash to settle - wait 10 ms */ ++ udelay_masked (10000); ++ ++ if (iflag) ++ enable_interrupts (); ++ ++ if (cflag) ++ icache_enable (); ++ ++ return rc; ++} ++ ++/*----------------------------------------------------------------------- ++ * Copy memory to flash ++ */ ++ ++volatile static int write_hword (flash_info_t * info, ulong dest, ushort data) ++{ ++ vu_short *addr = (vu_short *) dest; ++ ushort result; ++ int rc = ERR_OK; ++ int cflag, iflag; ++ int chip; ++ ++ /* ++ * Check if Flash is (sufficiently) erased ++ */ ++ result = *addr; ++ if ((result & data) != data) ++ return ERR_NOT_ERASED; ++ ++ ++ /* ++ * Disable interrupts which might cause a timeout ++ * here. Remember that our exception vectors are ++ * at address 0 in the flash, and we don't want a ++ * (ticker) exception to happen while the flash ++ * chip is in programming mode. ++ */ ++ cflag = icache_status (); ++ icache_disable (); ++ iflag = disable_interrupts (); ++ ++ MEM_FLASH_ADDR1 = CMD_UNLOCK1; ++ MEM_FLASH_ADDR2 = CMD_UNLOCK2; ++ MEM_FLASH_ADDR1 = CMD_UNLOCK_BYPASS; ++ *addr = CMD_PROGRAM; ++ *addr = data; ++ ++ /* arm simple, non interrupt dependent timer */ ++ reset_timer_masked (); ++ ++ /* wait until flash is ready */ ++ chip = 0; ++ do { ++ result = *addr; ++ ++ /* check timeout */ ++ if (get_timer_masked () > CFG_FLASH_ERASE_TOUT) { ++ chip = ERR | TMO; ++ break; ++ } ++ if (!chip && ((result & 0x80) == (data & 0x80))) ++ chip = READY; ++ ++ if (!chip && ((result & 0xFFFF) & BIT_PROGRAM_ERROR)) { ++ result = *addr; ++ ++ if ((result & 0x80) == (data & 0x80)) ++ chip = READY; ++ else ++ chip = ERR; ++ } ++ ++ } while (!chip); ++ ++ *addr = CMD_READ_ARRAY; ++ ++ if (chip == ERR || *addr != data) ++ rc = ERR_PROG_ERROR; ++ ++ if (iflag) ++ enable_interrupts (); ++ ++ if (cflag) ++ icache_enable (); ++ ++ return rc; ++} ++ ++/*----------------------------------------------------------------------- ++ * Copy memory to flash. ++ */ ++ ++int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt) ++{ ++ ulong cp, wp; ++ int l; ++ int i, rc; ++ ushort data; ++ ++ wp = (addr & ~1); /* get lower word aligned address */ ++ ++ /* ++ * handle unaligned start bytes ++ */ ++ if ((l = addr - wp) != 0) { ++ data = 0; ++ for (i = 0, cp = wp; i < l; ++i, ++cp) { ++ data = (data >> 8) | (*(uchar *) cp << 8); ++ } ++ for (; i < 2 && cnt > 0; ++i) { ++ data = (data >> 8) | (*src++ << 8); ++ --cnt; ++ ++cp; ++ } ++ for (; cnt == 0 && i < 2; ++i, ++cp) { ++ data = (data >> 8) | (*(uchar *) cp << 8); ++ } ++ ++ if ((rc = write_hword (info, wp, data)) != 0) { ++ return (rc); ++ } ++ wp += 2; ++ } ++ ++ /* ++ * handle word aligned part ++ */ ++ while (cnt >= 2) { ++ data = *((vu_short *) src); ++ if ((rc = write_hword (info, wp, data)) != 0) { ++ return (rc); ++ } ++ src += 2; ++ wp += 2; ++ cnt -= 2; ++ } ++ ++ if (cnt == 0) { ++ return ERR_OK; ++ } ++ ++ /* ++ * handle unaligned tail bytes ++ */ ++ data = 0; ++ for (i = 0, cp = wp; i < 2 && cnt > 0; ++i, ++cp) { ++ data = (data >> 8) | (*src++ << 8); ++ --cnt; ++ } ++ for (; i < 2; ++i, ++cp) { ++ data = (data >> 8) | (*(uchar *) cp << 8); ++ } ++ ++ return write_hword (info, wp, data); ++} +diff --git a/board/qt2410/lowlevel_init.S b/board/qt2410/lowlevel_init.S +new file mode 100644 +index 0000000..310f2a0 +--- /dev/null ++++ b/board/qt2410/lowlevel_init.S +@@ -0,0 +1,167 @@ ++/* ++ * Memory Setup stuff - taken from blob memsetup.S ++ * ++ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and ++ * Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl) ++ * ++ * Modified for the Samsung SMDK2410 by ++ * (C) Copyright 2002 ++ * David Mueller, ELSOFT AG, ++ * ++ * See file CREDITS for list of people who contributed to this ++ * project. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++ ++#include ++#include ++ ++ ++/* some parameters for the board */ ++ ++/* ++ * ++ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S ++ * ++ * Copyright (C) 2002 Samsung Electronics SW.LEE ++ * ++ */ ++ ++#define BWSCON 0x48000000 ++ ++/* BWSCON */ ++#define DW8 (0x0) ++#define DW16 (0x1) ++#define DW32 (0x2) ++#define WAIT (0x1<<2) ++#define UBLB (0x1<<3) ++ ++#define B1_BWSCON (DW32) ++#define B2_BWSCON (DW16) ++#define B3_BWSCON (DW16 + WAIT + UBLB) ++#define B4_BWSCON (DW16) ++#define B5_BWSCON (DW16) ++#define B6_BWSCON (DW32) ++#define B7_BWSCON (DW32) ++ ++/* BANK0CON */ ++#define B0_Tacs 0x0 /* 0clk */ ++#define B0_Tcos 0x0 /* 0clk */ ++#define B0_Tacc 0x7 /* 14clk */ ++#define B0_Tcoh 0x0 /* 0clk */ ++#define B0_Tah 0x0 /* 0clk */ ++#define B0_Tacp 0x0 ++#define B0_PMC 0x0 /* normal */ ++ ++/* BANK1CON */ ++#define B1_Tacs 0x0 /* 0clk */ ++#define B1_Tcos 0x0 /* 0clk */ ++#define B1_Tacc 0x7 /* 14clk */ ++#define B1_Tcoh 0x0 /* 0clk */ ++#define B1_Tah 0x0 /* 0clk */ ++#define B1_Tacp 0x0 ++#define B1_PMC 0x0 ++ ++#define B2_Tacs 0x0 ++#define B2_Tcos 0x0 ++#define B2_Tacc 0x7 ++#define B2_Tcoh 0x0 ++#define B2_Tah 0x0 ++#define B2_Tacp 0x0 ++#define B2_PMC 0x0 ++ ++#define B3_Tacs 0x0 /* 0clk */ ++#define B3_Tcos 0x3 /* 4clk */ ++#define B3_Tacc 0x7 /* 14clk */ ++#define B3_Tcoh 0x1 /* 1clk */ ++#define B3_Tah 0x0 /* 0clk */ ++#define B3_Tacp 0x3 /* 6clk */ ++#define B3_PMC 0x0 /* normal */ ++ ++#define B4_Tacs 0x0 /* 0clk */ ++#define B4_Tcos 0x0 /* 0clk */ ++#define B4_Tacc 0x7 /* 14clk */ ++#define B4_Tcoh 0x0 /* 0clk */ ++#define B4_Tah 0x0 /* 0clk */ ++#define B4_Tacp 0x0 ++#define B4_PMC 0x0 /* normal */ ++ ++#define B5_Tacs 0x0 /* 0clk */ ++#define B5_Tcos 0x0 /* 0clk */ ++#define B5_Tacc 0x7 /* 14clk */ ++#define B5_Tcoh 0x0 /* 0clk */ ++#define B5_Tah 0x0 /* 0clk */ ++#define B5_Tacp 0x0 ++#define B5_PMC 0x0 /* normal */ ++ ++#define B6_MT 0x3 /* SDRAM */ ++#define B6_Trcd 0x1 ++#define B6_SCAN 0x1 /* 9bit */ ++ ++#define B7_MT 0x3 /* SDRAM */ ++#define B7_Trcd 0x1 /* 3clk */ ++#define B7_SCAN 0x1 /* 9bit */ ++ ++/* REFRESH parameter */ ++#define REFEN 0x1 /* Refresh enable */ ++#define TREFMD 0x0 /* CBR(CAS before RAS)/Auto refresh */ ++#define Trp 0x0 /* 2clk */ ++#define Trc 0x3 /* 7clk */ ++#define Tchr 0x2 /* 3clk */ ++#define REFCNT 1113 /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */ ++/**************************************/ ++ ++_TEXT_BASE: ++ .word TEXT_BASE ++ ++.globl lowlevel_init ++lowlevel_init: ++ /* memory control configuration */ ++ /* make r0 relative the current location so that it */ ++ /* reads SMRDATA out of FLASH rather than memory ! */ ++ ldr r0, =SMRDATA ++ ldr r1, _TEXT_BASE ++ sub r0, r0, r1 ++ ldr r1, =BWSCON /* Bus Width Status Controller */ ++ add r2, r0, #13*4 ++0: ++ ldr r3, [r0], #4 ++ str r3, [r1], #4 ++ cmp r2, r0 ++ bne 0b ++ ++ /* everything is fine now */ ++ mov pc, lr ++ ++ .ltorg ++/* the literal pools origin */ ++ ++SMRDATA: ++ .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28)) ++ .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) ++ .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) ++ .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) ++ .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) ++ .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) ++ .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) ++ .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) ++ .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) ++ .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT) ++ .word 0x32 ++ .word 0x30 ++ .word 0x30 +diff --git a/board/qt2410/qt2410.c b/board/qt2410/qt2410.c +new file mode 100644 +index 0000000..133b748 +--- /dev/null ++++ b/board/qt2410/qt2410.c +@@ -0,0 +1,130 @@ ++/* ++ * (C) Copyright 2002 ++ * Sysgo Real-Time Solutions, GmbH ++ * Marius Groeger ++ * ++ * (C) Copyright 2002 ++ * David Mueller, ELSOFT AG, ++ * ++ * See file CREDITS for list of people who contributed to this ++ * project. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++#include ++#include ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++#define FCLK_SPEED 1 ++ ++#if FCLK_SPEED==0 /* Fout = 203MHz, Fin = 12MHz for Audio */ ++#define M_MDIV 0xC3 ++#define M_PDIV 0x4 ++#define M_SDIV 0x1 ++#elif FCLK_SPEED==1 /* Fout = 202.8MHz */ ++#if 0 ++#define M_MDIV 0xA1 ++#define M_PDIV 0x3 ++#define M_SDIV 0x1 ++#else ++#define M_MDIV 0x5c ++#define M_PDIV 0x4 ++#define M_SDIV 0x0 ++#endif ++#endif ++ ++#define USB_CLOCK 1 ++ ++#if USB_CLOCK==0 ++#define U_M_MDIV 0xA1 ++#define U_M_PDIV 0x3 ++#define U_M_SDIV 0x1 ++#elif USB_CLOCK==1 ++#define U_M_MDIV 0x48 ++#define U_M_PDIV 0x3 ++#define U_M_SDIV 0x2 ++#endif ++ ++static inline void delay (unsigned long loops) ++{ ++ __asm__ volatile ("1:\n" ++ "subs %0, %1, #1\n" ++ "bne 1b":"=r" (loops):"0" (loops)); ++} ++ ++/* ++ * Miscellaneous platform dependent initialisations ++ */ ++ ++int board_init (void) ++{ ++ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); ++ S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO(); ++ ++ /* to reduce PLL lock time, adjust the LOCKTIME register */ ++ clk_power->LOCKTIME = 0xFFFFFF; ++ ++ /* configure MPLL */ ++ clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV); ++ ++ /* some delay between MPLL and UPLL */ ++ delay (4000); ++ ++ /* configure UPLL */ ++ clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV); ++ ++ /* some delay between MPLL and UPLL */ ++ delay (8000); ++ ++ /* set up the I/O ports */ ++ gpio->GPACON = 0x007FFFFF; ++ gpio->GPBCON = 0x00044555; ++ gpio->GPBUP = 0x000007FF; ++ gpio->GPCCON = 0xAAAAAAAA; ++ gpio->GPCUP = 0x0000FFFF; ++ gpio->GPDCON = 0xAAAAAAAA; ++ gpio->GPDUP = 0x0000FFFF; ++ gpio->GPECON = 0xAAAAAAAA; ++ gpio->GPEUP = 0x0000FFFF; ++ gpio->GPFCON = 0x000055AA; ++ gpio->GPFUP = 0x000000FF; ++ gpio->GPGCON = 0xFF95FFBA; ++ //gpio->GPGUP = 0x0000FFFF; ++ gpio->GPGUP = 0x0000AFEF; ++ gpio->GPHCON = 0x0028FAAA; ++ gpio->GPHUP = 0x000007FF; ++ ++ /* arch number of SMDK2410-Board */ ++ gd->bd->bi_arch_number = MACH_TYPE_QT2410; ++ ++ /* adress of boot parameters */ ++ gd->bd->bi_boot_params = 0x30000100; ++ ++ icache_enable(); ++ dcache_enable(); ++ ++ return 0; ++} ++ ++int dram_init (void) ++{ ++ gd->bd->bi_dram[0].start = PHYS_SDRAM_1; ++ gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; ++ ++ return 0; ++} +diff --git a/board/qt2410/u-boot.lds b/board/qt2410/u-boot.lds +new file mode 100644 +index 0000000..f4fbf96 +--- /dev/null ++++ b/board/qt2410/u-boot.lds +@@ -0,0 +1,57 @@ ++/* ++ * (C) Copyright 2002 ++ * Gary Jennejohn, DENX Software Engineering, ++ * ++ * See file CREDITS for list of people who contributed to this ++ * project. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") ++/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/ ++OUTPUT_ARCH(arm) ++ENTRY(_start) ++SECTIONS ++{ ++ . = 0x00000000; ++ ++ . = ALIGN(4); ++ .text : ++ { ++ cpu/arm920t/start.o (.text) ++ *(.text) ++ } ++ ++ . = ALIGN(4); ++ .rodata : { *(.rodata) } ++ ++ . = ALIGN(4); ++ .data : { *(.data) } ++ ++ . = ALIGN(4); ++ .got : { *(.got) } ++ ++ . = .; ++ __u_boot_cmd_start = .; ++ .u_boot_cmd : { *(.u_boot_cmd) } ++ __u_boot_cmd_end = .; ++ ++ . = ALIGN(4); ++ __bss_start = .; ++ .bss : { *(.bss) } ++ _end = .; ++} +diff --git a/cpu/arm920t/s3c24x0/Makefile b/cpu/arm920t/s3c24x0/Makefile +index af9e4ef..10f33f2 100644 +--- a/cpu/arm920t/s3c24x0/Makefile ++++ b/cpu/arm920t/s3c24x0/Makefile +@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk + LIB = lib$(SOC).a + + OBJS = i2c.o interrupts.o serial.o speed.o \ +- usb_ohci.o ++ usb_ohci.o mmc.o nand_read.o nand.o + + all: .depend $(LIB) + +diff --git a/cpu/arm920t/s3c24x0/mmc.c b/cpu/arm920t/s3c24x0/mmc.c +new file mode 100644 +index 0000000..b7057e2 +--- /dev/null ++++ b/cpu/arm920t/s3c24x0/mmc.c +@@ -0,0 +1,568 @@ ++/* ++ * u-boot S3C2410 MMC/SD card driver ++ * (C) Copyright 2006 by Harald Welte ++ * ++ * based on u-boot pxa MMC driver and linux/drivers/mmc/s3c2410mci.c ++ * (C) 2005-2005 Thomas Kleffel ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef CONFIG_MMC ++ ++#define CONFIG_MMC_WIDE ++ ++//#define MMC_DEBUG ++ ++#ifdef MMC_DEBUG ++#ifdef debug ++#undef debug ++#endif ++#define debug printf ++#endif ++ ++static S3C2410_SDI *sdi; ++ ++extern int ++fat_register_device(block_dev_desc_t *dev_desc, int part_no); ++ ++static block_dev_desc_t mmc_dev; ++ ++block_dev_desc_t * mmc_get_dev(int dev) ++{ ++ return ((block_dev_desc_t *)&mmc_dev); ++} ++ ++/* ++ * FIXME needs to read cid and csd info to determine block size ++ * and other parameters ++ */ ++static uchar mmc_buf[MMC_BLOCK_SIZE]; ++static mmc_csd_t mmc_csd; ++static int mmc_ready = 0; ++static int wide = 0; ++ ++ ++#define CMD_F_RESP 0x01 ++#define CMD_F_RESP_LONG 0x02 ++ ++static u_int32_t * ++/****************************************************/ ++mmc_cmd(ushort cmd, ulong arg, ushort flags) ++/****************************************************/ ++{ ++ static u_int32_t resp[5]; ++ ulong status; ++ int i; ++ ++ u_int32_t ccon, csta; ++ u_int32_t csta_rdy_bit = S3C2410_SDICMDSTAT_CMDSENT; ++ ++ memset(resp, 0, sizeof(resp)); ++ ++ debug("mmc_cmd CMD%d arg=0x%08x flags=%x\n", cmd, arg, flags); ++ ++ sdi->SDICSTA = 0xffffffff; ++ sdi->SDIDSTA = 0xffffffff; ++ sdi->SDIFSTA = 0xffffffff; ++ ++ sdi->SDICARG = arg; ++ ++ ccon = cmd & S3C2410_SDICMDCON_INDEX; ++ ccon |= S3C2410_SDICMDCON_SENDERHOST|S3C2410_SDICMDCON_CMDSTART; ++ ++ if (flags & CMD_F_RESP) { ++ ccon |= S3C2410_SDICMDCON_WAITRSP; ++ csta_rdy_bit = S3C2410_SDICMDSTAT_RSPFIN; /* 1 << 9 */ ++ } ++ ++ if (flags & CMD_F_RESP_LONG) ++ ccon |= S3C2410_SDICMDCON_LONGRSP; ++ ++ sdi->SDICCON = ccon; ++ ++ while (1) { ++ csta = sdi->SDICSTA; ++ if (csta & csta_rdy_bit) ++ break; ++ if (csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) { ++ printf("===============> MMC CMD Timeout\n"); ++ sdi->SDICSTA |= S3C2410_SDICMDSTAT_CMDTIMEOUT; ++ break; ++ } ++ } ++ ++ debug("final MMC CMD status 0x%x\n", csta); ++ ++ sdi->SDICSTA |= csta_rdy_bit; ++ ++ if (flags & CMD_F_RESP) { ++ resp[0] = sdi->SDIRSP0; ++ resp[1] = sdi->SDIRSP1; ++ resp[2] = sdi->SDIRSP2; ++ resp[3] = sdi->SDIRSP3; ++ } ++ ++#if 0 ++ for (i=0; i<4; i ++) { ++ debug("MMC resp[%d] = 0x%08x\n", i, resp[i]); ++ } ++#endif ++ ++ return resp; ++} ++ ++#define FIFO_FILL(host) ((host->SDIFSTA & S3C2410_SDIFSTA_COUNTMASK) >> 2) ++ ++static int ++/****************************************************/ ++mmc_block_read(uchar *dst, ulong src, ulong len) ++/****************************************************/ ++{ ++ u_int32_t dcon, fifo; ++ u_int32_t *dst_u32 = (u_int32_t *)dst; ++ u_int32_t *resp; ++ ++ if (len == 0) { ++ return 0; ++ } ++ ++ debug("mmc_block_rd dst %lx src %lx len %d\n", (ulong)dst, src, len); ++ ++ /* set block len */ ++ resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, len, CMD_F_RESP); ++ sdi->SDIBSIZE = len; ++ ++ //sdi->SDIPRE = 0xff; ++ ++ /* setup data */ ++ dcon = (len >> 9) & S3C2410_SDIDCON_BLKNUM_MASK; ++ dcon |= S3C2410_SDIDCON_BLOCKMODE; ++ dcon |= S3C2410_SDIDCON_RXAFTERCMD|S3C2410_SDIDCON_XFER_RXSTART; ++ if (wide) ++ dcon |= S3C2410_SDIDCON_WIDEBUS; ++ sdi->SDIDCON = dcon; ++ ++ /* send read command */ ++ resp = mmc_cmd(MMC_CMD_READ_BLOCK, src, CMD_F_RESP); ++ ++ while (len > 0) { ++ u_int32_t sdidsta = sdi->SDIDSTA; ++ fifo = FIFO_FILL(sdi); ++ if (sdidsta & (S3C2410_SDIDSTA_FIFOFAIL| ++ S3C2410_SDIDSTA_CRCFAIL| ++ S3C2410_SDIDSTA_RXCRCFAIL| ++ S3C2410_SDIDSTA_DATATIMEOUT)) { ++ printf("mmc_block_read: err SDIDSTA=0x%08x\n", sdidsta); ++ return -EIO; ++ } ++ ++ while (fifo--) { ++ //debug("dst_u32 = 0x%08x\n", dst_u32); ++ *(dst_u32++) = sdi->SDIDAT; ++ if (len >= 4) ++ len -= 4; ++ else { ++ len = 0; ++ break; ++ } ++ } ++ } ++ ++#if 1 ++ debug("waiting for SDIDSTA (currently 0x%08x\n", sdi->SDIDSTA); ++ while (!(sdi->SDIDSTA & (1 << 4))) {} ++ debug("done waiting for SDIDSTA (currently 0x%08x\n", sdi->SDIDSTA); ++#endif ++ ++ sdi->SDIDCON = 0; ++ ++#if 0 ++ if (!(sdi->SDIDSTA & S3C2410_SDIDSTA_XFERFINISH)) ++ printf("mmc_block_read; transfer not finished!\n"); ++#endif ++ ++ return 0; ++} ++ ++static int ++/****************************************************/ ++mmc_block_write(ulong dst, uchar *src, int len) ++/****************************************************/ ++{ ++#if 0 ++ uchar *resp; ++ ushort argh, argl; ++ ulong status; ++ ++ if (len == 0) { ++ return 0; ++ } ++ ++ debug("mmc_block_wr dst %lx src %lx len %d\n", dst, (ulong)src, len); ++ ++ argh = len >> 16; ++ argl = len & 0xffff; ++ ++ /* set block len */ ++ resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, argh, argl, CMD_F_RESP); ++ ++ /* send write command */ ++ argh = dst >> 16; ++ argl = dst & 0xffff; ++ MMC_STRPCL = MMC_STRPCL_STOP_CLK; ++ MMC_NOB = 1; ++ MMC_BLKLEN = len; ++ resp = mmc_cmd(MMC_CMD_WRITE_BLOCK, dst, CMD_F_RESP, ++ MMC_CMDAT_R1|MMC_CMDAT_WRITE|MMC_CMDAT_BLOCK|MMC_CMDAT_DATA_EN); ++ ++ MMC_I_MASK = ~MMC_I_MASK_TXFIFO_WR_REQ; ++ while (len) { ++ if (MMC_I_REG & MMC_I_REG_TXFIFO_WR_REQ) { ++ int i, bytes = min(32,len); ++ ++ for (i=0; iread_bl_len << 12; ++ mult = csd->c_size_mult1 << 8; ++ blocknr = (csd->c_size+1) * mult; ++ ++ return blocknr * block_len; ++} ++ ++int ++/****************************************************/ ++mmc_init(int verbose) ++/****************************************************/ ++{ ++ int retries, rc = -ENODEV; ++ int is_sd = 0; ++ u_int32_t *resp; ++ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); ++ ++ sdi = S3C2410_GetBase_SDI(); ++ ++ debug("mmc_init(PCLK=%u)\n", get_PCLK()); ++ ++ clk_power->CLKCON |= (1 << 9); ++ ++ /* S3C2410 has some bug that prevents reliable operation at higher speed */ ++ //sdi->SDIPRE = 0x3e; /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */ ++ sdi->SDIPRE = 0x02; /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */ ++ sdi->SDIBSIZE = 512; ++ sdi->SDIDTIMER = 0xffff; ++ sdi->SDIIMSK = 0x0; ++ sdi->SDICON = S3C2410_SDICON_FIFORESET|S3C2440_SDICON_MMCCLOCK; ++ udelay(125000); /* FIXME: 74 SDCLK cycles */ ++ ++ mmc_csd.c_size = 0; ++ ++ /* reset */ ++ retries = 10; ++ resp = mmc_cmd(MMC_CMD_RESET, 0, 0); ++ ++ printf("trying to detect SD Card...\n"); ++ while (retries--) { ++ int i; ++ udelay(100000); ++ resp = mmc_cmd(55, 0x00000000, CMD_F_RESP); ++ resp = mmc_cmd(41, 0x00300000, CMD_F_RESP); ++ ++ if (resp[0] & (1 << 31)) { ++ is_sd = 1; ++ break; ++ } ++ } ++ ++ if (retries == 0 && !is_sd) { ++ retries = 10; ++ printf("failed to detect SD Card, trying MMC\n"); ++ resp = mmc_cmd(MMC_CMD_SEND_OP_COND, 0x00ffc000, CMD_F_RESP); ++ while (retries-- && resp && !(resp[4] & 0x80)) { ++ debug("resp %x %x\n", resp[0], resp[1]); ++ udelay(50); ++ resp = mmc_cmd(1, 0x00ffff00, CMD_F_RESP); ++ } ++ } ++ ++ /* try to get card id */ ++ resp = mmc_cmd(MMC_CMD_ALL_SEND_CID, 0, CMD_F_RESP|CMD_F_RESP_LONG); ++ if (resp) { ++ /* TODO configure mmc driver depending on card attributes */ ++ mmc_cid_t *cid = (mmc_cid_t *)resp; ++ if (verbose) { ++ printf("MMC found. Card desciption is:\n"); ++ printf("Manufacturer ID = %02x%02x%02x\n", ++ cid->id[0], cid->id[1], cid->id[2]); ++ printf("HW/FW Revision = %x %x\n",cid->hwrev, cid->fwrev); ++ cid->hwrev = cid->fwrev = 0; /* null terminate string */ ++ printf("Product Name = %s\n",cid->name); ++ printf("Serial Number = %02x%02x%02x\n", ++ cid->sn[0], cid->sn[1], cid->sn[2]); ++ printf("Month = %d\n",cid->month); ++ printf("Year = %d\n",1997 + cid->year); ++ } ++ /* fill in device description */ ++ mmc_dev.if_type = IF_TYPE_MMC; ++ mmc_dev.part_type = PART_TYPE_DOS; ++ mmc_dev.dev = 0; ++ mmc_dev.lun = 0; ++ mmc_dev.type = 0; ++ /* FIXME fill in the correct size (is set to 32MByte) */ ++ mmc_dev.blksz = 512; ++ mmc_dev.lba = 0x10000; ++ sprintf(mmc_dev.vendor,"Man %02x%02x%02x Snr %02x%02x%02x", ++ cid->id[0], cid->id[1], cid->id[2], ++ cid->sn[0], cid->sn[1], cid->sn[2]); ++ sprintf(mmc_dev.product,"%s",cid->name); ++ sprintf(mmc_dev.revision,"%x %x",cid->hwrev, cid->fwrev); ++ mmc_dev.removable = 0; ++ mmc_dev.block_read = mmc_bread; ++ ++ /* MMC exists, get CSD too */ ++ resp = mmc_cmd(MMC_CMD_SET_RCA, MMC_DEFAULT_RCA, CMD_F_RESP); ++ if (is_sd) ++ rca = resp[0] >> 16; ++ ++ resp = mmc_cmd(MMC_CMD_SEND_CSD, rca<<16, CMD_F_RESP|CMD_F_RESP_LONG); ++ if (resp) { ++ mmc_csd_t *csd = (mmc_csd_t *)resp; ++ memcpy(&mmc_csd, csd, sizeof(csd)); ++ rc = 0; ++ mmc_ready = 1; ++ /* FIXME add verbose printout for csd */ ++ printf("READ_BL_LEN=%u, C_SIZE_MULT=%u, C_SIZE=%u\n", ++ csd->read_bl_len, csd->c_size_mult1, csd->c_size); ++ printf("size = %u\n", mmc_size(csd)); ++ } ++ } ++ ++ resp = mmc_cmd(MMC_CMD_SELECT_CARD, rca<<16, CMD_F_RESP); ++ ++#ifdef CONFIG_MMC_WIDE ++ if (is_sd) { ++ resp = mmc_cmd(55, rca<<16, CMD_F_RESP); ++ resp = mmc_cmd(6, 0x02, CMD_F_RESP); ++ wide = 1; ++ } ++#endif ++ ++ fat_register_device(&mmc_dev,1); /* partitions start counting with 1 */ ++ ++ return rc; ++} ++ ++int ++mmc_ident(block_dev_desc_t *dev) ++{ ++ return 0; ++} ++ ++int ++mmc2info(ulong addr) ++{ ++ /* FIXME hard codes to 32 MB device */ ++ if (addr >= CFG_MMC_BASE && addr < CFG_MMC_BASE + 0x02000000) { ++ return 1; ++ } ++ return 0; ++} ++ ++#endif /* CONFIG_MMC */ +diff --git a/cpu/arm920t/s3c24x0/nand.c b/cpu/arm920t/s3c24x0/nand.c +new file mode 100644 +index 0000000..f720229 +--- /dev/null ++++ b/cpu/arm920t/s3c24x0/nand.c +@@ -0,0 +1,212 @@ ++/* ++ * (C) Copyright 2006 Harald Welte ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++#include ++ ++#if 0 ++#define DEBUGN printf ++#else ++#define DEBUGN(x, args ...) {} ++#endif ++ ++#if (CONFIG_COMMANDS & CFG_CMD_NAND) ++#if !defined(CFG_NAND_LEGACY) ++ ++#include ++#include ++ ++#define __REGb(x) (*(volatile unsigned char *)(x)) ++#define __REGi(x) (*(volatile unsigned int *)(x)) ++ ++#define NF_BASE 0x4e000000 ++#define NFCONF __REGi(NF_BASE + 0x0) ++#define NFCMD __REGb(NF_BASE + 0x4) ++#define NFADDR __REGb(NF_BASE + 0x8) ++#define NFDATA __REGb(NF_BASE + 0xc) ++#define NFSTAT __REGb(NF_BASE + 0x10) ++ ++#define S3C2410_NFCONF_EN (1<<15) ++#define S3C2410_NFCONF_512BYTE (1<<14) ++#define S3C2410_NFCONF_4STEP (1<<13) ++#define S3C2410_NFCONF_INITECC (1<<12) ++#define S3C2410_NFCONF_nFCE (1<<11) ++#define S3C2410_NFCONF_TACLS(x) ((x)<<8) ++#define S3C2410_NFCONF_TWRPH0(x) ((x)<<4) ++#define S3C2410_NFCONF_TWRPH1(x) ((x)<<0) ++ ++static u16 s3c2410_read_word(struct mtd_info *mtd) ++{ ++ unsigned char byte = 0; ++ ++ printf("s3c2410_read_word: WARNING, this function is not implemented yet\n"); ++ return byte; ++} ++ ++static void s3c2410_write_word(struct mtd_info *mtd, u16 word) ++{ ++ printf("s3c2410_write_word: WARNING, this function is not implemented yet\n"); ++} ++ ++static void s3c2410_hwcontrol(struct mtd_info *mtd, int cmd) ++{ ++ struct nand_chip *chip = mtd->priv; ++ ++ DEBUGN("hwcontrol(): 0x%02x: ", cmd); ++ ++ switch (cmd) { ++ case NAND_CTL_SETNCE: ++ NFCONF &= ~S3C2410_NFCONF_nFCE; ++ DEBUGN("NFCONF=0x%08x\n", NFCONF); ++ break; ++ case NAND_CTL_CLRNCE: ++ NFCONF |= S3C2410_NFCONF_nFCE; ++ DEBUGN("NFCONF=0x%08x\n", NFCONF); ++ break; ++ case NAND_CTL_SETALE: ++ chip->IO_ADDR_W = NF_BASE + 0x8; ++ DEBUGN("SETALE\n"); ++ break; ++ case NAND_CTL_SETCLE: ++ chip->IO_ADDR_W = NF_BASE + 0x4; ++ DEBUGN("SETCLE\n"); ++ break; ++ default: ++ chip->IO_ADDR_W = NF_BASE + 0xc; ++ break; ++ } ++ return; ++} ++ ++static int s3c2410_dev_ready(struct mtd_info *mtd) ++{ ++ DEBUGN("dev_ready\n"); ++ return (NFSTAT & 0x01); ++} ++ ++static void s3c2410_cmdfunc(struct mtd_info *mtd, unsigned cmd, ++ int column, int page_addr) ++{ ++ DEBUGN("cmdfunc(): 0x%02x, col=%d, page=%d\n", cmd, column, page_addr); ++ ++ switch (cmd) { ++ case NAND_CMD_READ0: ++ case NAND_CMD_READ1: ++ case NAND_CMD_READOOB: ++ NFCMD = cmd; ++ NFADDR = column & 0xff; ++ NFADDR = page_addr & 0xff; ++ NFADDR = (page_addr >> 8) & 0xff; ++ NFADDR = (page_addr >> 16) & 0xff; ++ break; ++ case NAND_CMD_READID: ++ NFCMD = cmd; ++ NFADDR = 0; ++ break; ++ case NAND_CMD_PAGEPROG: ++ NFCMD = cmd; ++ printf("PAGEPROG not implemented\n"); ++ break; ++ case NAND_CMD_ERASE1: ++ NFCMD = cmd; ++ NFADDR = page_addr & 0xff; ++ NFADDR = (page_addr >> 8) & 0xff; ++ NFADDR = (page_addr >> 16) & 0xff; ++ break; ++ case NAND_CMD_ERASE2: ++ NFCMD = cmd; ++ break; ++ case NAND_CMD_SEQIN: ++ printf("SEQIN not implemented\n"); ++ break; ++ case NAND_CMD_STATUS: ++ NFCMD = cmd; ++ break; ++ case NAND_CMD_RESET: ++ NFCMD = cmd; ++ break; ++ default: ++ break; ++ } ++ ++ while (!s3c2410_dev_ready(mtd)); ++} ++ ++void board_nand_init(struct nand_chip *nand) ++{ ++ u_int32_t cfg; ++ u_int8_t tacls, twrph0, twrph1; ++ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); ++ ++ DEBUGN("board_nand_init()\n"); ++ ++ clk_power->CLKCON |= (1 << 4); ++ ++ /* initialize hardware */ ++ twrph0 = 3; twrph1 = 0; tacls = 0; ++ ++ /* default timings: maximum */ ++ //twrph0 = 8; twrph1 = 8; tacls = 8; ++ ++ cfg = S3C2410_NFCONF_EN; ++ cfg |= S3C2410_NFCONF_TACLS(tacls - 1); ++ cfg |= S3C2410_NFCONF_TWRPH0(twrph0 - 1); ++ cfg |= S3C2410_NFCONF_TWRPH1(twrph1 - 1); ++ ++ //NFCONF = cfg; ++ NFCONF = 0xf842; ++ ++ /* initialize nand_chip data structure */ ++ nand->IO_ADDR_R = nand->IO_ADDR_W = 0x4e00000c; ++ ++ /* read_buf and write_buf are default */ ++ /* read_byte and write_byte are default */ ++ ++ /* need to override word read/write since default routines try 16bit wide ++ * register access of an (in our case) 8bit register */ ++ nand->read_word = s3c2410_read_word; ++ nand->write_word = s3c2410_write_word; ++ ++ /* hwcontrol always must be implemented */ ++ nand->hwcontrol = s3c2410_hwcontrol; ++ ++ nand->dev_ready = s3c2410_dev_ready; ++ ++ nand->eccmode = NAND_ECC_SOFT; ++ nand->options = 0; ++ //nand->waitfunc = dfc_wait; ++ ++ //nand->cmdfunc = s3c2410_cmdfunc; ++ //nand->autooob = &delta_oob; ++ //nand->badblock_pattern = &delta_bbt_descr; ++ ++#if 0 ++ /* reset */ ++ nand->hwcontrol(NULL, NAND_CTL_SETNCE); ++ nand->cmdfunc(NULL, NAND_CMD_RESET, -1, -1); ++ while (nand->dev_ready(NULL) == 0) {} ++ nand->hwcontrol(NULL, NAND_CTL_CLRNCE); ++#endif ++ ++ DEBUGN("end of nand_init\n"); ++} ++ ++#else ++ #error "U-Boot legacy NAND support not available for S3C2410" ++#endif ++#endif +diff --git a/cpu/arm920t/s3c24x0/nand_read.c b/cpu/arm920t/s3c24x0/nand_read.c +new file mode 100644 +index 0000000..9d97932 +--- /dev/null ++++ b/cpu/arm920t/s3c24x0/nand_read.c +@@ -0,0 +1,75 @@ ++/* ++ * nand_read.c: Simple NAND read functions for booting from NAND ++ * ++ * Taken from GPLv2 licensed vivi bootloader, ++ * Copyright (C) 2002 MIZI Research, Inc. ++ * ++ * Author: Hwang, Chideok ++ * Date : $Date: 2004/02/04 10:37:37 $ ++ * ++ * u-boot integration (C) 2006 by Harald Welte ++ */ ++ ++#include ++ ++#ifdef CONFIG_S3C2410_NAND_BOOT ++ ++#define __REGb(x) (*(volatile unsigned char *)(x)) ++#define __REGi(x) (*(volatile unsigned int *)(x)) ++#define NF_BASE 0x4e000000 ++#define NFCONF __REGi(NF_BASE + 0x0) ++#define NFCMD __REGb(NF_BASE + 0x4) ++#define NFADDR __REGb(NF_BASE + 0x8) ++#define NFDATA __REGb(NF_BASE + 0xc) ++#define NFSTAT __REGb(NF_BASE + 0x10) ++ ++#define BUSY 1 ++inline void wait_idle(void) { ++ int i; ++ ++ while(!(NFSTAT & BUSY)) ++ for(i=0; i<10; i++); ++} ++ ++#define NAND_SECTOR_SIZE 512 ++#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1) ++ ++/* low level nand read function */ ++int ++nand_read_ll(unsigned char *buf, unsigned long start_addr, int size) ++{ ++ int i, j; ++ ++ if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) { ++ return -1; /* invalid alignment */ ++ } ++ ++ /* chip Enable */ ++ NFCONF &= ~0x800; ++ for(i=0; i<10; i++); ++ ++ for(i=start_addr; i < (start_addr + size);) { ++ /* READ0 */ ++ NFCMD = 0; ++ ++ /* Write Address */ ++ NFADDR = i & 0xff; ++ NFADDR = (i >> 9) & 0xff; ++ NFADDR = (i >> 17) & 0xff; ++ NFADDR = (i >> 25) & 0xff; ++ ++ wait_idle(); ++ ++ for(j=0; j < NAND_SECTOR_SIZE; j++, i++) { ++ *buf = (NFDATA & 0xff); ++ buf++; ++ } ++ } ++ ++ /* chip Disable */ ++ NFCONF |= 0x800; /* chip disable */ ++ ++ return 0; ++} ++ ++#endif /* CONFIG_S3C2410_NAND_BOOT */ +diff --git a/cpu/arm920t/start.S b/cpu/arm920t/start.S +index 346f0d0..232e2c2 100644 +--- a/cpu/arm920t/start.S ++++ b/cpu/arm920t/start.S +@@ -5,6 +5,10 @@ + * Copyright (c) 2002 Alex Züpke + * Copyright (c) 2002 Gary Jennejohn + * ++ * S3C2410 NAND portions ++ * Copyright (c) 2001 MIZI Research, Inc. ++ * Copyright (c) 2006 Harald Welte ++ * + * See file CREDITS for list of people who contributed to this + * project. + * +@@ -27,6 +31,7 @@ + + #include + #include ++#include + + + /* +@@ -161,6 +166,7 @@ #ifndef CONFIG_SKIP_LOWLEVEL_INIT + #endif + + #ifndef CONFIG_SKIP_RELOCATE_UBOOT ++#ifndef CONFIG_S3C2410_NAND_BOOT + relocate: /* relocate U-Boot to RAM */ + adr r0, _start /* r0 <- current position of code */ + ldr r1, _TEXT_BASE /* test if we run from flash or RAM */ +@@ -177,6 +183,93 @@ copy_loop: + stmia r1!, {r3-r10} /* copy to target address [r1] */ + cmp r0, r2 /* until source end addreee [r2] */ + ble copy_loop ++#else /* NAND_BOOT */ ++relocate: ++copy_myself: ++ /* mov r10, lr */ ++ ++ @ reset NAND ++ mov r1, #S3C2410_NAND_BASE ++ ldr r2, =0xf842 @ initial value enable tacls=3,rph0=6,rph1=0 ++ str r2, [r1, #oNFCONF] ++ ldr r2, [r1, #oNFCONF] ++ bic r2, r2, #0x800 @ enable chip ++ str r2, [r1, #oNFCONF] ++ mov r2, #0xff @ RESET command ++ strb r2, [r1, #oNFCMD] ++ mov r3, #0 @ wait ++1: add r3, r3, #0x1 ++ cmp r3, #0xa ++ blt 1b ++2: ldr r2, [r1, #oNFSTAT] @ wait ready ++ tst r2, #0x1 ++ beq 2b ++ ldr r2, [r1, #oNFCONF] ++ orr r2, r2, #0x800 @ disable chip ++ str r2, [r1, #oNFCONF] ++ ++#if 0 ++ @ get ready to call C functions (for nand_read()) ++ ldr sp, DW_STACK_START @ setup stack pointer ++ mov fp, #0 @ no previous frame, so fp=0 ++#else ++ ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */ ++ sub r0, r0, #CFG_MALLOC_LEN /* malloc area */ ++ sub r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo */ ++#ifdef CONFIG_USE_IRQ ++ sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ) ++#endif ++ sub sp, r0, #12 /* leave 3 words for abort-stack */ ++#endif ++ ++ @ copy u-boot to RAM ++ ldr r0, _TEXT_BASE ++ mov r1, #0x0 ++ mov r2, #0x30000 ++ bl nand_read_ll ++ ++ tst r0, #0x0 ++ beq ok_nand_read ++#ifdef CONFIG_DEBUG_LL ++bad_nand_read: ++ ldr r0, STR_FAIL ++ ldr r1, SerBase ++ bl PrintWord ++1: b 1b @ infinite loop ++#endif ++ ++ok_nand_read: ++#ifdef CONFIG_DEBUG_LL ++ ldr r0, STR_OK ++ ldr r1, SerBase ++ bl PrintWord ++#endif ++ ++ @ verify ++ mov r0, #0 ++ @ldr r1, =0x33f00000 ++ ldr r1, _TEXT_BASE ++ mov r2, #0x400 @ 4 bytes * 1024 = 4K-bytes ++go_next: ++ ldr r3, [r0], #4 ++ ldr r4, [r1], #4 ++ teq r3, r4 ++ bne notmatch ++ subs r2, r2, #4 ++ beq done_nand_read ++ bne go_next ++notmatch: ++#ifdef CONFIG_DEBUG_LL ++ sub r0, r0, #4 ++ ldr r1, SerBase ++ bl PrintHexWord ++ ldr r0, STR_FAIL ++ ldr r1, SerBase ++ bl PrintWord ++#endif ++1: b 1b ++done_nand_read: ++#endif /* NAND_BOOT */ + #endif /* CONFIG_SKIP_RELOCATE_UBOOT */ + + /* Set up the stack */ +diff --git a/drivers/Makefile b/drivers/Makefile +index 9be95c7..eef266a 100644 +--- a/drivers/Makefile ++++ b/drivers/Makefile +@@ -50,7 +50,7 @@ OBJS = 3c589.o 5701rls.o ali512x.o \ + videomodes.o w83c553f.o \ + ks8695eth.o \ + pxa_pcmcia.o mpc8xx_pcmcia.o tqm8xx_pcmcia.o \ +- rpx_pcmcia.o ++ rpx_pcmcia.o s3c2410_fb.o + + all: $(LIB) + +diff --git a/drivers/cs8900.c b/drivers/cs8900.c +index 082434c..1cce622 100644 +--- a/drivers/cs8900.c ++++ b/drivers/cs8900.c +@@ -120,6 +120,7 @@ void cs8900_get_enetaddr (uchar * addr) + unsigned char env_enetaddr[6]; + char *tmp = getenv ("ethaddr"); + char *end; ++ unsigned short chip_id; + + for (i=0; i<6; i++) { + env_enetaddr[i] = tmp ? simple_strtoul(tmp, &end, 16) : 0; +@@ -128,7 +129,9 @@ void cs8900_get_enetaddr (uchar * addr) + } + + /* verify chip id */ +- if (get_reg_init_bus (PP_ChipID) != 0x630e) ++ chip_id = get_reg_init_bus (PP_ChipID); ++ printf("\ncs8900a chipid 0x%04x\n", chip_id); ++ if (chip_id != 0x630e) + return; + eth_reset (); + if ((get_reg (PP_SelfST) & (PP_SelfSTAT_EEPROM | PP_SelfSTAT_EEPROM_OK)) == +diff --git a/drivers/s3c2410_fb.c b/drivers/s3c2410_fb.c +new file mode 100644 +index 0000000..fc389a9 +--- /dev/null ++++ b/drivers/s3c2410_fb.c +@@ -0,0 +1,182 @@ ++/* ++ * (C) Copyright 2006 Harald Welte ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++#include ++ ++#if defined(CONFIG_VIDEO_S3C2410) ++ ++#include ++#include "videomodes.h" ++#include ++/* ++ * Export Graphic Device ++ */ ++GraphicDevice smi; ++ ++#define VIDEO_MEM_SIZE 0x200000 ++ ++/******************************************************************************* ++ * ++ * Init video chip with common Linux graphic modes (lilo) ++ */ ++void *video_hw_init (void) ++{ ++ S3C24X0_LCD * const lcd = S3C24X0_GetBase_LCD(); ++ GraphicDevice *pGD = (GraphicDevice *)&smi; ++ int videomode; ++ unsigned long t1, hsynch, vsynch; ++ char *penv; ++ int tmp, i, bits_per_pixel; ++ struct ctfb_res_modes *res_mode; ++ struct ctfb_res_modes var_mode; ++ unsigned char videoout; ++ unsigned int *vm; ++ ++ /* Search for video chip */ ++ printf("Video: "); ++ ++ tmp = 0; ++ ++ videomode = CFG_DEFAULT_VIDEO_MODE; ++ /* get video mode via environment */ ++ if ((penv = getenv ("videomode")) != NULL) { ++ /* deceide if it is a string */ ++ if (penv[0] <= '9') { ++ videomode = (int) simple_strtoul (penv, NULL, 16); ++ tmp = 1; ++ } ++ } else { ++ tmp = 1; ++ } ++ if (tmp) { ++ /* parameter are vesa modes */ ++ /* search params */ ++ for (i = 0; i < VESA_MODES_COUNT; i++) { ++ if (vesa_modes[i].vesanr == videomode) ++ break; ++ } ++ if (i == VESA_MODES_COUNT) { ++ printf ("no VESA Mode found, switching to mode 0x%x ", CFG_DEFAULT_VIDEO_MODE); ++ i = 0; ++ } ++ res_mode = ++ (struct ctfb_res_modes *) &res_mode_init[vesa_modes[i]. ++ resindex]; ++ bits_per_pixel = vesa_modes[i].bits_per_pixel; ++ } else { ++ ++ res_mode = (struct ctfb_res_modes *) &var_mode; ++ bits_per_pixel = video_get_params (res_mode, penv); ++ } ++ ++ /* calculate hsynch and vsynch freq (info only) */ ++ t1 = (res_mode->left_margin + res_mode->xres + ++ res_mode->right_margin + res_mode->hsync_len) / 8; ++ t1 *= 8; ++ t1 *= res_mode->pixclock; ++ t1 /= 1000; ++ hsynch = 1000000000L / t1; ++ t1 *= ++ (res_mode->upper_margin + res_mode->yres + ++ res_mode->lower_margin + res_mode->vsync_len); ++ t1 /= 1000; ++ vsynch = 1000000000L / t1; ++ ++ /* fill in Graphic device struct */ ++ sprintf (pGD->modeIdent, "%dx%dx%d %ldkHz %ldHz", res_mode->xres, ++ res_mode->yres, bits_per_pixel, (hsynch / 1000), ++ (vsynch / 1000)); ++ printf ("%s\n", pGD->modeIdent); ++ pGD->winSizeX = res_mode->xres; ++ pGD->winSizeY = res_mode->yres; ++ pGD->plnSizeX = res_mode->xres; ++ pGD->plnSizeY = res_mode->yres; ++ switch (bits_per_pixel) { ++ case 8: ++ pGD->gdfBytesPP = 1; ++ pGD->gdfIndex = GDF__8BIT_INDEX; ++ break; ++ case 15: ++ pGD->gdfBytesPP = 2; ++ pGD->gdfIndex = GDF_15BIT_555RGB; ++ break; ++ case 16: ++ pGD->gdfBytesPP = 2; ++ pGD->gdfIndex = GDF_16BIT_565RGB; ++ break; ++ case 24: ++ pGD->gdfBytesPP = 3; ++ pGD->gdfIndex = GDF_24BIT_888RGB; ++ break; ++ } ++ ++#if 0 ++ pGD->isaBase = CFG_ISA_IO; ++ pGD->pciBase = pci_mem_base; ++ pGD->dprBase = (pci_mem_base + 0x400000 + 0x8000); ++ pGD->vprBase = (pci_mem_base + 0x400000 + 0xc000); ++ pGD->cprBase = (pci_mem_base + 0x400000 + 0xe000); ++#endif ++ pGD->frameAdrs = LCD_VIDEO_ADDR; ++ pGD->memSize = VIDEO_MEM_SIZE; ++ ++ lcd->LCDSADDR1 = LCD_VIDEO_ADDR >> 1; ++ lcd->LCDSADDR2 = (LCD_VIDEO_ADDR + 0x4b000) >> 1; ++ lcd->LCDSADDR3 = 0x000000f0; ++ ++ lcd->LCDCON1 = 0x00000479; ++ lcd->LCDCON2 = 0x014fc183; ++ lcd->LCDCON3 = 0x0060ef07; ++ lcd->LCDCON4 = 0x00000003; ++ lcd->LCDCON5 = 0x00000b09; ++ lcd->LPCSEL = 0x00000cf0; ++ ++ pGD->winSizeX = pGD->plnSizeX = 240; ++ pGD->winSizeY = pGD->plnSizeY = 320; ++ pGD->gdfBytesPP = 2; ++ pGD->gdfIndex = GDF_16BIT_565RGB; ++ ++ /* Enable Display */ ++ videoout = 2; /* Default output is CRT */ ++ if ((penv = getenv ("videoout")) != NULL) { ++ /* deceide if it is a string */ ++ videoout = (int) simple_strtoul (penv, NULL, 16); ++ } ++ ++ printf("clearing video memory\n"); ++ /* Clear video memory */ ++ i = pGD->memSize/4; ++ vm = (unsigned int *)pGD->frameAdrs; ++ while(i--) ++ *vm++ = 0; ++ ++ printf("returning from video_hw_init\n"); ++ return ((void*)&smi); ++} ++ ++void ++video_set_lut (unsigned int index, /* color number */ ++ unsigned char r, /* red */ ++ unsigned char g, /* green */ ++ unsigned char b /* blue */ ++ ) ++{ ++} ++ ++#endif /* CONFIG_VIDEO_S3C2410 */ +diff --git a/drivers/usbdcore_s3c2410.c b/drivers/usbdcore_s3c2410.c +new file mode 100644 +index 0000000..143fdf2 +--- /dev/null ++++ b/drivers/usbdcore_s3c2410.c +@@ -0,0 +1,1609 @@ ++/* ++ * (C) Copyright 2003 ++ * Gerry Hamel, geh@ti.com, Texas Instruments ++ * ++ * Based on ++ * linux/drivers/usb/device/bi/omap.c ++ * TI OMAP1510 USB bus interface driver ++ * ++ * Author: MontaVista Software, Inc. ++ * source@mvista.com ++ * (C) Copyright 2002 ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++ ++#include ++ ++#if defined(CONFIG_S3C2410) && defined(CONFIG_USB_DEVICE) ++ ++#include ++ ++#include "usbdcore.h" ++#include "usbdcore_s3c2410.h" ++#include "usbdcore_ep0.h" ++ ++ ++#define UDC_INIT_MDELAY 80 /* Device settle delay */ ++#define UDC_MAX_ENDPOINTS 31 /* Number of endpoints on this UDC */ ++ ++/* Some kind of debugging output... */ ++#if 1 ++#define UDCDBG(str) ++#define UDCDBGA(fmt,args...) ++#else /* The bugs still exists... */ ++#define UDCDBG(str) serial_printf("[%s] %s:%d: " str "\n", __FILE__,__FUNCTION__,__LINE__) ++#define UDCDBGA(fmt,args...) serial_printf("[%s] %s:%d: " fmt "\n", __FILE__,__FUNCTION__,__LINE__, ##args) ++#endif ++ ++#if 1 ++#define UDCREG(name) ++#define UDCREGL(name) ++#else /* The bugs still exists... */ ++#define UDCREG(name) serial_printf("%s():%d: %s[%08x]=%.4x\n",__FUNCTION__,__LINE__, (#name), name, inw(name)) /* For 16-bit regs */ ++#define UDCREGL(name) serial_printf("%s():%d: %s[%08x]=%.8x\n",__FUNCTION__,__LINE__, (#name), name, inl(name)) /* For 32-bit regs */ ++#endif ++ ++ ++static struct urb *ep0_urb = NULL; ++ ++static struct usb_device_instance *udc_device; /* Used in interrupt handler */ ++static u16 udc_devstat = 0; /* UDC status (DEVSTAT) */ ++static u32 udc_interrupts = 0; ++ ++static void udc_stall_ep (unsigned int ep_addr); ++ ++ ++static struct usb_endpoint_instance *s3c2410_find_ep (int ep) ++{ ++ int i; ++ ++ for (i = 0; i < udc_device->bus->max_endpoints; i++) { ++ if (udc_device->bus->endpoint_array[i].endpoint_address == ep) ++ return &udc_device->bus->endpoint_array[i]; ++ } ++ return NULL; ++} ++ ++/* ************************************************************************** */ ++/* IO ++ */ ++ ++/* ++ * omap1510_prepare_endpoint_for_rx ++ * ++ * This function implements TRM Figure 14-11. ++ * ++ * The endpoint to prepare for transfer is specified as a physical endpoint ++ * number. For OUT (rx) endpoints 1 through 15, the corresponding endpoint ++ * configuration register is checked to see if the endpoint is ISO or not. ++ * If the OUT endpoint is valid and is non-ISO then its FIFO is enabled. ++ * No action is taken for endpoint 0 or for IN (tx) endpoints 16 through 30. ++ */ ++static void omap1510_prepare_endpoint_for_rx (int ep_addr) ++{ ++ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; ++ ++ UDCDBGA ("omap1510_prepare_endpoint %x", ep_addr); ++ if (((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)) { ++ if ((inw (UDC_EP_RX (ep_num)) & ++ (UDC_EPn_RX_Valid | UDC_EPn_RX_Iso)) == ++ UDC_EPn_RX_Valid) { ++ /* rx endpoint is valid, non-ISO, so enable its FIFO */ ++ outw (UDC_EP_Sel | ep_num, UDC_EP_NUM); ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++ outw (0, UDC_EP_NUM); ++ } ++ } ++} ++ ++/* omap1510_configure_endpoints ++ * ++ * This function implements TRM Figure 14-10. ++ */ ++static void omap1510_configure_endpoints (struct usb_device_instance *device) ++{ ++ int ep; ++ struct usb_bus_instance *bus; ++ struct usb_endpoint_instance *endpoint; ++ unsigned short ep_ptr; ++ unsigned short ep_size; ++ unsigned short ep_isoc; ++ unsigned short ep_doublebuffer; ++ int ep_addr; ++ int packet_size; ++ int buffer_size; ++ int attributes; ++ ++ bus = device->bus; ++ ++ /* There is a dedicated 2048 byte buffer for USB packets that may be ++ * arbitrarily partitioned among the endpoints on 8-byte boundaries. ++ * The first 8 bytes are reserved for receiving setup packets on ++ * endpoint 0. ++ */ ++ ep_ptr = 8; /* reserve the first 8 bytes for the setup fifo */ ++ ++ for (ep = 0; ep < bus->max_endpoints; ep++) { ++ endpoint = bus->endpoint_array + ep; ++ ep_addr = endpoint->endpoint_address; ++ if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { ++ /* IN endpoint */ ++ packet_size = endpoint->tx_packetSize; ++ attributes = endpoint->tx_attributes; ++ } else { ++ /* OUT endpoint */ ++ packet_size = endpoint->rcv_packetSize; ++ attributes = endpoint->rcv_attributes; ++ } ++ ++ switch (packet_size) { ++ case 0: ++ ep_size = 0; ++ break; ++ case 8: ++ ep_size = 0; ++ break; ++ case 16: ++ ep_size = 1; ++ break; ++ case 32: ++ ep_size = 2; ++ break; ++ case 64: ++ ep_size = 3; ++ break; ++ case 128: ++ ep_size = 4; ++ break; ++ case 256: ++ ep_size = 5; ++ break; ++ case 512: ++ ep_size = 6; ++ break; ++ default: ++ UDCDBGA ("ep 0x%02x has bad packet size %d", ++ ep_addr, packet_size); ++ packet_size = 0; ++ ep_size = 0; ++ break; ++ } ++ ++ switch (attributes & USB_ENDPOINT_XFERTYPE_MASK) { ++ case USB_ENDPOINT_XFER_CONTROL: ++ case USB_ENDPOINT_XFER_BULK: ++ case USB_ENDPOINT_XFER_INT: ++ default: ++ /* A non-isochronous endpoint may optionally be ++ * double-buffered. For now we disable ++ * double-buffering. ++ */ ++ ep_doublebuffer = 0; ++ ep_isoc = 0; ++ if (packet_size > 64) ++ packet_size = 0; ++ if (!ep || !ep_doublebuffer) ++ buffer_size = packet_size; ++ else ++ buffer_size = packet_size * 2; ++ break; ++ case USB_ENDPOINT_XFER_ISOC: ++ /* Isochronous endpoints are always double- ++ * buffered, but the double-buffering bit ++ * in the endpoint configuration register ++ * becomes the msb of the endpoint size so we ++ * set the double-buffering flag to zero. ++ */ ++ ep_doublebuffer = 0; ++ ep_isoc = 1; ++ buffer_size = packet_size * 2; ++ break; ++ } ++ ++ /* check to see if our packet buffer RAM is exhausted */ ++ if ((ep_ptr + buffer_size) > 2048) { ++ UDCDBGA ("out of packet RAM for ep 0x%02x buf size %d", ep_addr, buffer_size); ++ buffer_size = packet_size = 0; ++ } ++ ++ /* force a default configuration for endpoint 0 since it is ++ * always enabled ++ */ ++ if (!ep && ((packet_size < 8) || (packet_size > 64))) { ++ buffer_size = packet_size = 64; ++ ep_size = 3; ++ } ++ ++ if (!ep) { ++ /* configure endpoint 0 */ ++ outw ((ep_size << 12) | (ep_ptr >> 3), UDC_EP0); ++ /*UDCDBGA("ep 0 buffer offset 0x%03x packet size 0x%03x", */ ++ /* ep_ptr, packet_size); */ ++ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { ++ /* IN endpoint */ ++ if (packet_size) { ++ outw ((1 << 15) | (ep_doublebuffer << 14) | ++ (ep_size << 12) | (ep_isoc << 11) | ++ (ep_ptr >> 3), ++ UDC_EP_TX (ep_addr & ++ USB_ENDPOINT_NUMBER_MASK)); ++ UDCDBGA ("IN ep %d buffer offset 0x%03x" ++ " packet size 0x%03x", ++ ep_addr & USB_ENDPOINT_NUMBER_MASK, ++ ep_ptr, packet_size); ++ } else { ++ outw (0, ++ UDC_EP_TX (ep_addr & ++ USB_ENDPOINT_NUMBER_MASK)); ++ } ++ } else { ++ /* OUT endpoint */ ++ if (packet_size) { ++ outw ((1 << 15) | (ep_doublebuffer << 14) | ++ (ep_size << 12) | (ep_isoc << 11) | ++ (ep_ptr >> 3), ++ UDC_EP_RX (ep_addr & ++ USB_ENDPOINT_NUMBER_MASK)); ++ UDCDBGA ("OUT ep %d buffer offset 0x%03x" ++ " packet size 0x%03x", ++ ep_addr & USB_ENDPOINT_NUMBER_MASK, ++ ep_ptr, packet_size); ++ } else { ++ outw (0, ++ UDC_EP_RX (ep_addr & ++ USB_ENDPOINT_NUMBER_MASK)); ++ } ++ } ++ ep_ptr += buffer_size; ++ } ++} ++ ++static void s3c2410_deconfigure_device (void) ++{ ++ int epnum; ++ ++ UDCDBG ("clear Cfg_Lock"); ++ outw (inw (UDC_SYSCON1) & ~UDC_Cfg_Lock, UDC_SYSCON1); ++ UDCREG (UDC_SYSCON1); ++ ++ /* deconfigure all endpoints */ ++ for (epnum = 1; epnum <= 15; epnum++) { ++ outw (0, UDC_EP_RX (epnum)); ++ outw (0, UDC_EP_TX (epnum)); ++ } ++} ++ ++static void s3c2410_configure_device (struct usb_device_instance *device) ++{ ++ u_int32_t tmp; ++ ++ s3c2410_configure_endpoints(device); ++ ++ /* disable EP0-4 SUBD interrupts ? */ ++ outw(0x00, S3C2410_UDC_USB_INT_EN_REG); ++ ++ /* UPLL already configured by board-level init code */ ++ ++ /* configure USB pads to device mode */ ++ tmp = inw(S3C2410_MISCCR); ++ tmp &= ~(S3C2410_MISCCR_USBHOST|S3C2410_MISCCR_USBSUSPND1); ++ outw(tmp, S3C2410_MISCCR); ++ ++ tmp = inb(S3C2410_CLKSLOW); ++ tmp &= ~S3C2410_CLKSLOW_USB_CLK_DISABLE; ++ outw(tmp, S3C2410_CLKSLOW); ++ ++ /* clear interrupt registers */ ++ inb(S3C2410_UDC_EP_INT_REG); ++ inb(S3C2410_UDC_USB_INT_REG); ++ ++ /* enable USB interrupts for RESET and SUSPEND/RESUME */ ++ outb(S3C2410_UDC_USBINT_RESET|S3C2410_UDC_USBINT_SUSPEND, ++ S3C2410_UDC_USB_INT_EN_REG); ++ ++} ++ ++/* omap1510_write_noniso_tx_fifo ++ * ++ * This function implements TRM Figure 14-30. ++ * ++ * If the endpoint has an active tx_urb, then the next packet of data from the ++ * URB is written to the tx FIFO. The total amount of data in the urb is given ++ * by urb->actual_length. The maximum amount of data that can be sent in any ++ * one packet is given by endpoint->tx_packetSize. The number of data bytes ++ * from this URB that have already been transmitted is given by endpoint->sent. ++ * endpoint->last is updated by this routine with the number of data bytes ++ * transmitted in this packet. ++ * ++ * In accordance with Figure 14-30, the EP_NUM register must already have been ++ * written with the value to select the appropriate tx FIFO before this routine ++ * is called. ++ */ ++static void omap1510_write_noniso_tx_fifo (struct usb_endpoint_instance ++ *endpoint) ++{ ++ struct urb *urb = endpoint->tx_urb; ++ ++ if (urb) { ++ unsigned int last, i; ++ ++ UDCDBGA ("urb->buffer %p, buffer_length %d, actual_length %d", ++ urb->buffer, urb->buffer_length, urb->actual_length); ++ if ((last = ++ MIN (urb->actual_length - endpoint->sent, ++ endpoint->tx_packetSize))) { ++ u8 *cp = urb->buffer + endpoint->sent; ++ ++ UDCDBGA ("endpoint->sent %d, tx_packetSize %d, last %d", endpoint->sent, endpoint->tx_packetSize, last); ++ ++ if (((u32) cp & 1) == 0) { /* word aligned? */ ++ outsw (UDC_DATA, cp, last >> 1); ++ } else { /* byte aligned. */ ++ for (i = 0; i < (last >> 1); i++) { ++ u16 w = ((u16) cp[2 * i + 1] << 8) | ++ (u16) cp[2 * i]; ++ outw (w, UDC_DATA); ++ } ++ } ++ if (last & 1) { ++ outb (*(cp + last - 1), UDC_DATA); ++ } ++ } ++ endpoint->last = last; ++ } ++} ++ ++/* omap1510_read_noniso_rx_fifo ++ * ++ * This function implements TRM Figure 14-28. ++ * ++ * If the endpoint has an active rcv_urb, then the next packet of data is read ++ * from the rcv FIFO and written to rcv_urb->buffer at offset ++ * rcv_urb->actual_length to append the packet data to the data from any ++ * previous packets for this transfer. We assume that there is sufficient room ++ * left in the buffer to hold an entire packet of data. ++ * ++ * The return value is the number of bytes read from the FIFO for this packet. ++ * ++ * In accordance with Figure 14-28, the EP_NUM register must already have been ++ * written with the value to select the appropriate rcv FIFO before this routine ++ * is called. ++ */ ++static int omap1510_read_noniso_rx_fifo (struct usb_endpoint_instance ++ *endpoint) ++{ ++ struct urb *urb = endpoint->rcv_urb; ++ int len = 0; ++ ++ if (urb) { ++ len = inw (UDC_RXFSTAT); ++ ++ if (len) { ++ unsigned char *cp = urb->buffer + urb->actual_length; ++ ++ insw (UDC_DATA, cp, len >> 1); ++ if (len & 1) ++ *(cp + len - 1) = inb (UDC_DATA); ++ } ++ } ++ return len; ++} ++ ++/* omap1510_prepare_for_control_write_status ++ * ++ * This function implements TRM Figure 14-17. ++ * ++ * We have to deal here with non-autodecoded control writes that haven't already ++ * been dealt with by ep0_recv_setup. The non-autodecoded standard control ++ * write requests are: set/clear endpoint feature, set configuration, set ++ * interface, and set descriptor. ep0_recv_setup handles set/clear requests for ++ * ENDPOINT_HALT by halting the endpoint for a set request and resetting the ++ * endpoint for a clear request. ep0_recv_setup returns an error for ++ * SET_DESCRIPTOR requests which causes them to be terminated with a stall by ++ * the setup handler. A SET_INTERFACE request is handled by ep0_recv_setup by ++ * generating a DEVICE_SET_INTERFACE event. This leaves only the ++ * SET_CONFIGURATION event for us to deal with here. ++ * ++ */ ++static void omap1510_prepare_for_control_write_status (struct urb *urb) ++{ ++ struct usb_device_request *request = &urb->device_request;; ++ ++ /* check for a SET_CONFIGURATION request */ ++ if (request->bRequest == USB_REQ_SET_CONFIGURATION) { ++ int configuration = le16_to_cpu (request->wValue) & 0xff; ++ unsigned short devstat = inw (UDC_DEVSTAT); ++ ++ if ((devstat & (UDC_ADD | UDC_CFG)) == UDC_ADD) { ++ /* device is currently in ADDRESSED state */ ++ if (configuration) { ++ /* Assume the specified non-zero configuration ++ * value is valid and switch to the CONFIGURED ++ * state. ++ */ ++ outw (UDC_Dev_Cfg, UDC_SYSCON2); ++ } ++ } else if ((devstat & UDC_CFG) == UDC_CFG) { ++ /* device is currently in CONFIGURED state */ ++ if (!configuration) { ++ /* Switch to ADDRESSED state. */ ++ outw (UDC_Clr_Cfg, UDC_SYSCON2); ++ } ++ } ++ } ++ ++ /* select EP0 tx FIFO */ ++ outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); ++ /* clear endpoint (no data bytes in status stage) */ ++ outw (UDC_Clr_EP, UDC_CTRL); ++ /* enable the EP0 tx FIFO */ ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++ /* deselect the endpoint */ ++ outw (UDC_EP_Dir, UDC_EP_NUM); ++} ++ ++/* udc_state_transition_up ++ * udc_state_transition_down ++ * ++ * Helper functions to implement device state changes. The device states and ++ * the events that transition between them are: ++ * ++ * STATE_ATTACHED ++ * || /\ ++ * \/ || ++ * DEVICE_HUB_CONFIGURED DEVICE_HUB_RESET ++ * || /\ ++ * \/ || ++ * STATE_POWERED ++ * || /\ ++ * \/ || ++ * DEVICE_RESET DEVICE_POWER_INTERRUPTION ++ * || /\ ++ * \/ || ++ * STATE_DEFAULT ++ * || /\ ++ * \/ || ++ * DEVICE_ADDRESS_ASSIGNED DEVICE_RESET ++ * || /\ ++ * \/ || ++ * STATE_ADDRESSED ++ * || /\ ++ * \/ || ++ * DEVICE_CONFIGURED DEVICE_DE_CONFIGURED ++ * || /\ ++ * \/ || ++ * STATE_CONFIGURED ++ * ++ * udc_state_transition_up transitions up (in the direction from STATE_ATTACHED ++ * to STATE_CONFIGURED) from the specified initial state to the specified final ++ * state, passing through each intermediate state on the way. If the initial ++ * state is at or above (i.e. nearer to STATE_CONFIGURED) the final state, then ++ * no state transitions will take place. ++ * ++ * udc_state_transition_down transitions down (in the direction from ++ * STATE_CONFIGURED to STATE_ATTACHED) from the specified initial state to the ++ * specified final state, passing through each intermediate state on the way. ++ * If the initial state is at or below (i.e. nearer to STATE_ATTACHED) the final ++ * state, then no state transitions will take place. ++ * ++ * These functions must only be called with interrupts disabled. ++ */ ++static void udc_state_transition_up (usb_device_state_t initial, ++ usb_device_state_t final) ++{ ++ if (initial < final) { ++ switch (initial) { ++ case STATE_ATTACHED: ++ usbd_device_event_irq (udc_device, ++ DEVICE_HUB_CONFIGURED, 0); ++ if (final == STATE_POWERED) ++ break; ++ case STATE_POWERED: ++ usbd_device_event_irq (udc_device, DEVICE_RESET, 0); ++ if (final == STATE_DEFAULT) ++ break; ++ case STATE_DEFAULT: ++ usbd_device_event_irq (udc_device, ++ DEVICE_ADDRESS_ASSIGNED, 0); ++ if (final == STATE_ADDRESSED) ++ break; ++ case STATE_ADDRESSED: ++ usbd_device_event_irq (udc_device, DEVICE_CONFIGURED, ++ 0); ++ case STATE_CONFIGURED: ++ break; ++ default: ++ break; ++ } ++ } ++} ++ ++static void udc_state_transition_down (usb_device_state_t initial, ++ usb_device_state_t final) ++{ ++ if (initial > final) { ++ switch (initial) { ++ case STATE_CONFIGURED: ++ usbd_device_event_irq (udc_device, DEVICE_DE_CONFIGURED, 0); ++ if (final == STATE_ADDRESSED) ++ break; ++ case STATE_ADDRESSED: ++ usbd_device_event_irq (udc_device, DEVICE_RESET, 0); ++ if (final == STATE_DEFAULT) ++ break; ++ case STATE_DEFAULT: ++ usbd_device_event_irq (udc_device, DEVICE_POWER_INTERRUPTION, 0); ++ if (final == STATE_POWERED) ++ break; ++ case STATE_POWERED: ++ usbd_device_event_irq (udc_device, DEVICE_HUB_RESET, 0); ++ case STATE_ATTACHED: ++ break; ++ default: ++ break; ++ } ++ } ++} ++ ++/* Handle all device state changes. ++ * This function implements TRM Figure 14-21. ++ */ ++static void omap1510_udc_state_changed (void) ++{ ++ u16 bits; ++ u16 devstat = inw (UDC_DEVSTAT); ++ ++ UDCDBGA ("state changed, devstat %x, old %x", devstat, udc_devstat); ++ ++ bits = devstat ^ udc_devstat; ++ if (bits) { ++ if (bits & UDC_ATT) { ++ if (devstat & UDC_ATT) { ++ UDCDBG ("device attached and powered"); ++ udc_state_transition_up (udc_device->device_state, STATE_POWERED); ++ } else { ++ UDCDBG ("device detached or unpowered"); ++ udc_state_transition_down (udc_device->device_state, STATE_ATTACHED); ++ } ++ } ++ if (bits & UDC_USB_Reset) { ++ if (devstat & UDC_USB_Reset) { ++ UDCDBG ("device reset in progess"); ++ udc_state_transition_down (udc_device->device_state, STATE_POWERED); ++ } else { ++ UDCDBG ("device reset completed"); ++ } ++ } ++ if (bits & UDC_DEF) { ++ if (devstat & UDC_DEF) { ++ UDCDBG ("device entering default state"); ++ udc_state_transition_up (udc_device->device_state, STATE_DEFAULT); ++ } else { ++ UDCDBG ("device leaving default state"); ++ udc_state_transition_down (udc_device->device_state, STATE_POWERED); ++ } ++ } ++ if (bits & UDC_SUS) { ++ if (devstat & UDC_SUS) { ++ UDCDBG ("entering suspended state"); ++ usbd_device_event_irq (udc_device, DEVICE_BUS_INACTIVE, 0); ++ } else { ++ UDCDBG ("leaving suspended state"); ++ usbd_device_event_irq (udc_device, DEVICE_BUS_ACTIVITY, 0); ++ } ++ } ++ if (bits & UDC_R_WK_OK) { ++ UDCDBGA ("remote wakeup %s", (devstat & UDC_R_WK_OK) ++ ? "enabled" : "disabled"); ++ } ++ if (bits & UDC_ADD) { ++ if (devstat & UDC_ADD) { ++ UDCDBG ("default -> addressed"); ++ udc_state_transition_up (udc_device->device_state, STATE_ADDRESSED); ++ } else { ++ UDCDBG ("addressed -> default"); ++ udc_state_transition_down (udc_device->device_state, STATE_DEFAULT); ++ } ++ } ++ if (bits & UDC_CFG) { ++ if (devstat & UDC_CFG) { ++ UDCDBG ("device configured"); ++ /* The ep0_recv_setup function generates the ++ * DEVICE_CONFIGURED event when a ++ * USB_REQ_SET_CONFIGURATION setup packet is ++ * received, so we should already be in the ++ * state STATE_CONFIGURED. ++ */ ++ udc_state_transition_up (udc_device->device_state, STATE_CONFIGURED); ++ } else { ++ UDCDBG ("device deconfigured"); ++ udc_state_transition_down (udc_device->device_state, STATE_ADDRESSED); ++ } ++ } ++ } ++ ++ /* Clear interrupt source */ ++ outw (UDC_DS_Chg, UDC_IRQ_SRC); ++ ++ /* Save current DEVSTAT */ ++ udc_devstat = devstat; ++} ++ ++static void s3c2410_udc_ep0(void) ++{ ++ u_int8_t ep0csr; ++ ++ UDCDBG("-> Entering EP0 handler"); ++ ++ S3C2410_UDC_SETIX(EP0); ++ ep0csr = inb(S3C2410_UDC_IN_CSR1_REG); ++ ++ /* clear stall status */ ++ if (ep0csr & S3C2410_UDC_EP0_CSR_SENTSTL) { ++ clear_sp0_sst; ++ /* FIXME */ ++ ep0_idle(); ++ } ++ ++ if (ep0csr & S3C2410_UDC_EP0_CSR_SE ++ && dev->ep0state != EP0_IDLE) { ++ clear_ep0_se; ++ ep0_idle(); ++ } ++ ++ switch (dev->ep0state) { ++ case EP0_IDLE: ++ if (ep0crs & S3C2410_UDC_EP0_CSR_OPKRDY) { ++ } ++ break; ++ case EP0_IN_DATA_PHASE: ++ break; ++ case EP0_OUT_DATA_PHASE: ++ break; ++ case EP0_END_XFER: ++ break; ++ case EP0_STALL: ++ set_ep0_ss; ++ break; ++ } ++} ++ ++ ++} ++ ++/* Handle SETUP USB interrupt. ++ * This function implements TRM Figure 14-14. ++ */ ++static void omap1510_udc_setup (struct usb_endpoint_instance *endpoint) ++{ ++ UDCDBG ("-> Entering device setup"); ++ ++ do { ++ const int setup_pktsize = 8; ++ unsigned char *datap = ++ (unsigned char *) &ep0_urb->device_request; ++ ++ /* Gain access to EP 0 setup FIFO */ ++ outw (UDC_Setup_Sel, UDC_EP_NUM); ++ ++ /* Read control request data */ ++ insb (UDC_DATA, datap, setup_pktsize); ++ ++ UDCDBGA ("EP0 setup read [%x %x %x %x %x %x %x %x]", ++ *(datap + 0), *(datap + 1), *(datap + 2), ++ *(datap + 3), *(datap + 4), *(datap + 5), ++ *(datap + 6), *(datap + 7)); ++ ++ /* Reset EP0 setup FIFO */ ++ outw (0, UDC_EP_NUM); ++ } while (inw (UDC_IRQ_SRC) & UDC_Setup); ++ ++ /* Try to process setup packet */ ++ if (ep0_recv_setup (ep0_urb)) { ++ /* Not a setup packet, stall next EP0 transaction */ ++ udc_stall_ep (0); ++ UDCDBG ("can't parse setup packet, still waiting for setup"); ++ return; ++ } ++ ++ /* Check direction */ ++ if ((ep0_urb->device_request.bmRequestType & USB_REQ_DIRECTION_MASK) ++ == USB_REQ_HOST2DEVICE) { ++ UDCDBG ("control write on EP0"); ++ if (le16_to_cpu (ep0_urb->device_request.wLength)) { ++ /* We don't support control write data stages. ++ * The only standard control write request with a data ++ * stage is SET_DESCRIPTOR, and ep0_recv_setup doesn't ++ * support that so we just stall those requests. A ++ * function driver might support a non-standard ++ * write request with a data stage, but it isn't ++ * obvious what we would do with the data if we read it ++ * so we'll just stall it. It seems like the API isn't ++ * quite right here. ++ */ ++#if 0 ++ /* Here is what we would do if we did support control ++ * write data stages. ++ */ ++ ep0_urb->actual_length = 0; ++ outw (0, UDC_EP_NUM); ++ /* enable the EP0 rx FIFO */ ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++#else ++ /* Stall this request */ ++ UDCDBG ("Stalling unsupported EP0 control write data " ++ "stage."); ++ udc_stall_ep (0); ++#endif ++ } else { ++ omap1510_prepare_for_control_write_status (ep0_urb); ++ } ++ } else { ++ UDCDBG ("control read on EP0"); ++ /* The ep0_recv_setup function has already placed our response ++ * packet data in ep0_urb->buffer and the packet length in ++ * ep0_urb->actual_length. ++ */ ++ endpoint->tx_urb = ep0_urb; ++ endpoint->sent = 0; ++ /* select the EP0 tx FIFO */ ++ outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); ++ /* Write packet data to the FIFO. omap1510_write_noniso_tx_fifo ++ * will update endpoint->last with the number of bytes written ++ * to the FIFO. ++ */ ++ omap1510_write_noniso_tx_fifo (endpoint); ++ /* enable the FIFO to start the packet transmission */ ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++ /* deselect the EP0 tx FIFO */ ++ outw (UDC_EP_Dir, UDC_EP_NUM); ++ } ++ ++ UDCDBG ("<- Leaving device setup"); ++} ++ ++/* Handle endpoint 0 RX interrupt ++ * This routine implements TRM Figure 14-16. ++ */ ++static void omap1510_udc_ep0_rx (struct usb_endpoint_instance *endpoint) ++{ ++ unsigned short status; ++ ++ UDCDBG ("RX on EP0"); ++ /* select EP0 rx FIFO */ ++ outw (UDC_EP_Sel, UDC_EP_NUM); ++ ++ status = inw (UDC_STAT_FLG); ++ ++ if (status & UDC_ACK) { ++ /* Check direction */ ++ if ((ep0_urb->device_request.bmRequestType ++ & USB_REQ_DIRECTION_MASK) == USB_REQ_HOST2DEVICE) { ++ /* This rx interrupt must be for a control write data ++ * stage packet. ++ * ++ * We don't support control write data stages. ++ * We should never end up here. ++ */ ++ ++ /* clear the EP0 rx FIFO */ ++ outw (UDC_Clr_EP, UDC_CTRL); ++ ++ /* deselect the EP0 rx FIFO */ ++ outw (0, UDC_EP_NUM); ++ ++ UDCDBG ("Stalling unexpected EP0 control write " ++ "data stage packet"); ++ udc_stall_ep (0); ++ } else { ++ /* This rx interrupt must be for a control read status ++ * stage packet. ++ */ ++ UDCDBG ("ACK on EP0 control read status stage packet"); ++ /* deselect EP0 rx FIFO */ ++ outw (0, UDC_EP_NUM); ++ } ++ } else if (status & UDC_STALL) { ++ UDCDBG ("EP0 stall during RX"); ++ /* deselect EP0 rx FIFO */ ++ outw (0, UDC_EP_NUM); ++ } else { ++ /* deselect EP0 rx FIFO */ ++ outw (0, UDC_EP_NUM); ++ } ++} ++ ++/* Handle endpoint 0 TX interrupt ++ * This routine implements TRM Figure 14-18. ++ */ ++static void omap1510_udc_ep0_tx (struct usb_endpoint_instance *endpoint) ++{ ++ unsigned short status; ++ struct usb_device_request *request = &ep0_urb->device_request; ++ ++ UDCDBG ("TX on EP0"); ++ /* select EP0 TX FIFO */ ++ outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); ++ ++ status = inw (UDC_STAT_FLG); ++ if (status & UDC_ACK) { ++ /* Check direction */ ++ if ((request->bmRequestType & USB_REQ_DIRECTION_MASK) == ++ USB_REQ_HOST2DEVICE) { ++ /* This tx interrupt must be for a control write status ++ * stage packet. ++ */ ++ UDCDBG ("ACK on EP0 control write status stage packet"); ++ /* deselect EP0 TX FIFO */ ++ outw (UDC_EP_Dir, UDC_EP_NUM); ++ } else { ++ /* This tx interrupt must be for a control read data ++ * stage packet. ++ */ ++ int wLength = le16_to_cpu (request->wLength); ++ ++ /* Update our count of bytes sent so far in this ++ * transfer. ++ */ ++ endpoint->sent += endpoint->last; ++ ++ /* We are finished with this transfer if we have sent ++ * all of the bytes in our tx urb (urb->actual_length) ++ * unless we need a zero-length terminating packet. We ++ * need a zero-length terminating packet if we returned ++ * fewer bytes than were requested (wLength) by the host, ++ * and the number of bytes we returned is an exact ++ * multiple of the packet size endpoint->tx_packetSize. ++ */ ++ if ((endpoint->sent == ep0_urb->actual_length) ++ && ((ep0_urb->actual_length == wLength) ++ || (endpoint->last != ++ endpoint->tx_packetSize))) { ++ /* Done with control read data stage. */ ++ UDCDBG ("control read data stage complete"); ++ /* deselect EP0 TX FIFO */ ++ outw (UDC_EP_Dir, UDC_EP_NUM); ++ /* select EP0 RX FIFO to prepare for control ++ * read status stage. ++ */ ++ outw (UDC_EP_Sel, UDC_EP_NUM); ++ /* clear the EP0 RX FIFO */ ++ outw (UDC_Clr_EP, UDC_CTRL); ++ /* enable the EP0 RX FIFO */ ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++ /* deselect the EP0 RX FIFO */ ++ outw (0, UDC_EP_NUM); ++ } else { ++ /* We still have another packet of data to send ++ * in this control read data stage or else we ++ * need a zero-length terminating packet. ++ */ ++ UDCDBG ("ACK control read data stage packet"); ++ omap1510_write_noniso_tx_fifo (endpoint); ++ /* enable the EP0 tx FIFO to start transmission */ ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++ /* deselect EP0 TX FIFO */ ++ outw (UDC_EP_Dir, UDC_EP_NUM); ++ } ++ } ++ } else if (status & UDC_STALL) { ++ UDCDBG ("EP0 stall during TX"); ++ /* deselect EP0 TX FIFO */ ++ outw (UDC_EP_Dir, UDC_EP_NUM); ++ } else { ++ /* deselect EP0 TX FIFO */ ++ outw (UDC_EP_Dir, UDC_EP_NUM); ++ } ++} ++ ++/* Handle RX transaction on non-ISO endpoint. ++ * This function implements TRM Figure 14-27. ++ * The ep argument is a physical endpoint number for a non-ISO OUT endpoint ++ * in the range 1 to 15. ++ */ ++static void omap1510_udc_epn_rx (int ep) ++{ ++ unsigned short status; ++ ++ /* Check endpoint status */ ++ status = inw (UDC_STAT_FLG); ++ ++ if (status & UDC_ACK) { ++ int nbytes; ++ struct usb_endpoint_instance *endpoint = ++ omap1510_find_ep (ep); ++ ++ nbytes = omap1510_read_noniso_rx_fifo (endpoint); ++ usbd_rcv_complete (endpoint, nbytes, 0); ++ ++ /* enable rx FIFO to prepare for next packet */ ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++ } else if (status & UDC_STALL) { ++ UDCDBGA ("STALL on RX endpoint %d", ep); ++ } else if (status & UDC_NAK) { ++ UDCDBGA ("NAK on RX ep %d", ep); ++ } else { ++ serial_printf ("omap-bi: RX on ep %d with status %x", ep, ++ status); ++ } ++} ++ ++/* Handle TX transaction on non-ISO endpoint. ++ * This function implements TRM Figure 14-29. ++ * The ep argument is a physical endpoint number for a non-ISO IN endpoint ++ * in the range 16 to 30. ++ */ ++static void omap1510_udc_epn_tx (int ep) ++{ ++ unsigned short status; ++ ++ /*serial_printf("omap1510_udc_epn_tx( %x )\n",ep); */ ++ ++ /* Check endpoint status */ ++ status = inw (UDC_STAT_FLG); ++ ++ if (status & UDC_ACK) { ++ struct usb_endpoint_instance *endpoint = ++ omap1510_find_ep (ep); ++ ++ /* We need to transmit a terminating zero-length packet now if ++ * we have sent all of the data in this URB and the transfer ++ * size was an exact multiple of the packet size. ++ */ ++ if (endpoint->tx_urb ++ && (endpoint->last == endpoint->tx_packetSize) ++ && (endpoint->tx_urb->actual_length - endpoint->sent - ++ endpoint->last == 0)) { ++ /* Prepare to transmit a zero-length packet. */ ++ endpoint->sent += endpoint->last; ++ /* write 0 bytes of data to FIFO */ ++ omap1510_write_noniso_tx_fifo (endpoint); ++ /* enable tx FIFO to start transmission */ ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++ } else if (endpoint->tx_urb ++ && endpoint->tx_urb->actual_length) { ++ /* retire the data that was just sent */ ++ usbd_tx_complete (endpoint); ++ /* Check to see if we have more data ready to transmit ++ * now. ++ */ ++ if (endpoint->tx_urb ++ && endpoint->tx_urb->actual_length) { ++ /* write data to FIFO */ ++ omap1510_write_noniso_tx_fifo (endpoint); ++ /* enable tx FIFO to start transmission */ ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++ } ++ } ++ } else if (status & UDC_STALL) { ++ UDCDBGA ("STALL on TX endpoint %d", ep); ++ } else if (status & UDC_NAK) { ++ UDCDBGA ("NAK on TX endpoint %d", ep); ++ } else { ++ /*serial_printf("omap-bi: TX on ep %d with status %x\n", ep, status); */ ++ } ++} ++ ++ ++/* ++------------------------------------------------------------------------------- ++*/ ++ ++/* Handle general USB interrupts and dispatch according to type. ++ * This function implements TRM Figure 14-13. ++ */ ++void s3c2410_udc_irq (void) ++{ ++ u_int8_t save_idx = inb(S3C2410_UDC_INDEX_REG); ++ u_int8_t usb_status = inb(S3C2410_UDC_USB_INT_REG); ++ u_int8_t usbd_status = inb(S3C2410_UDC_EP_INT_REG); ++ ++ UDCDBGA("< IRQ usbs=0x%02x, usbds=0x%02x start >", usb_status, ++ usbd_status); ++ ++ if (usb_status & S3C2410_UDC_USBINT_RESET) { ++ valid_irq++; ++ } ++ ++ if (usb_status & S3C2410_UDC_USBINT_RESUME) { ++ valid_irq++; ++ ++ } ++ ++ if (usb_status & S3C2410_UDC_USBINT_SUSPEND) { ++ valid_irq++; ++ ++ } ++ ++ /* Endpoint Interrupts */ ++ if (usbd_status) { ++ int i; ++ ++ if (usbd_status & S3C2410_UDC_INT_EP0) { ++ s3c2410_udc_ep0(); ++ outb(S3C2410_UDC_INT_EP0, S3C2410_UDC_EP_INT_REG); ++ valid_irq++; ++ } ++ ++ for (i = 1; i < 5; i++) { ++ u_int32_t tmp = 1 << i; ++ ++ if (usbd_status & tmp) { ++ /* FIXME: Handle EP X */ ++ s3c2410_udc_epn(i); ++ outb(tmp, S3C2410_UDC_EP_INT_REG); ++ valid_irq++; ++ } ++ } ++ } ++ outb(save_idx, S3C2410_UDC_INDEX_REG); ++ ++#if 0 ++ if (!(irq_src & ~UDC_SOF_Flg)) /* ignore SOF interrupts ) */ ++ return; ++ ++ UDCDBGA ("< IRQ #%d start >- %x", udc_interrupts, irq_src); ++ /*serial_printf("< IRQ #%d start >- %x\n", udc_interrupts, irq_src); */ ++ ++ if (irq_src & UDC_DS_Chg) { ++ /* Device status changed */ ++ omap1510_udc_state_changed (); ++ valid_irq++; ++ } ++ if (irq_src & UDC_EP0_RX) { ++ /* Endpoint 0 receive */ ++ outw (UDC_EP0_RX, UDC_IRQ_SRC); /* ack interrupt */ ++ omap1510_udc_ep0_rx (udc_device->bus->endpoint_array + 0); ++ valid_irq++; ++ } ++ if (irq_src & UDC_EP0_TX) { ++ /* Endpoint 0 transmit */ ++ outw (UDC_EP0_TX, UDC_IRQ_SRC); /* ack interrupt */ ++ omap1510_udc_ep0_tx (udc_device->bus->endpoint_array + 0); ++ valid_irq++; ++ } ++ if (irq_src & UDC_Setup) { ++ /* Device setup */ ++ omap1510_udc_setup (udc_device->bus->endpoint_array + 0); ++ valid_irq++; ++ } ++ /*if (!valid_irq) */ ++ /* serial_printf("unknown interrupt, IRQ_SRC %.4x\n", irq_src); */ ++#endif ++ UDCDBGA ("< IRQ end >", udc_interrupts); ++ ++ udc_interrupts++; ++} ++ ++/* This function implements TRM Figure 14-26. */ ++void omap1510_udc_noniso_irq (void) ++{ ++ unsigned short epnum; ++ unsigned short irq_src = inw (UDC_IRQ_SRC); ++ int valid_irq = 0; ++ ++ if (!(irq_src & (UDC_EPn_RX | UDC_EPn_TX))) ++ return; ++ ++ UDCDBGA ("non-ISO IRQ, IRQ_SRC %x", inw (UDC_IRQ_SRC)); ++ ++ if (irq_src & UDC_EPn_RX) { /* Endpoint N OUT transaction */ ++ /* Determine the endpoint number for this interrupt */ ++ epnum = (inw (UDC_EPN_STAT) & 0x0f00) >> 8; ++ UDCDBGA ("RX on ep %x", epnum); ++ ++ /* acknowledge interrupt */ ++ outw (UDC_EPn_RX, UDC_IRQ_SRC); ++ ++ if (epnum) { ++ /* select the endpoint FIFO */ ++ outw (UDC_EP_Sel | epnum, UDC_EP_NUM); ++ ++ omap1510_udc_epn_rx (epnum); ++ ++ /* deselect the endpoint FIFO */ ++ outw (epnum, UDC_EP_NUM); ++ } ++ valid_irq++; ++ } ++ if (irq_src & UDC_EPn_TX) { /* Endpoint N IN transaction */ ++ /* Determine the endpoint number for this interrupt */ ++ epnum = (inw (UDC_EPN_STAT) & 0x000f) | USB_DIR_IN; ++ UDCDBGA ("TX on ep %x", epnum); ++ ++ /* acknowledge interrupt */ ++ outw (UDC_EPn_TX, UDC_IRQ_SRC); ++ ++ if (epnum) { ++ /* select the endpoint FIFO */ ++ outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM); ++ ++ omap1510_udc_epn_tx (epnum); ++ ++ /* deselect the endpoint FIFO */ ++ outw (UDC_EP_Dir | epnum, UDC_EP_NUM); ++ } ++ valid_irq++; ++ } ++ if (!valid_irq) ++ serial_printf (": unknown non-ISO interrupt, IRQ_SRC %.4x\n", ++ irq_src); ++} ++ ++/* ++------------------------------------------------------------------------------- ++*/ ++ ++ ++/* ++ * Start of public functions. ++ */ ++ ++/* Called to start packet transmission. */ ++void udc_endpoint_write (struct usb_endpoint_instance *endpoint) ++{ ++ unsigned short epnum = ++ endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK; ++ ++ UDCDBGA ("Starting transmit on ep %x", epnum); ++ ++ if (endpoint->tx_urb) { ++ /* select the endpoint FIFO */ ++ outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM); ++ /* write data to FIFO */ ++ omap1510_write_noniso_tx_fifo (endpoint); ++ /* enable tx FIFO to start transmission */ ++ outw (UDC_Set_FIFO_En, UDC_CTRL); ++ /* deselect the endpoint FIFO */ ++ outw (UDC_EP_Dir | epnum, UDC_EP_NUM); ++ } ++} ++ ++/* Start to initialize h/w stuff */ ++int udc_init (void) ++{ ++ u16 udc_rev; ++ uchar value; ++ ulong gpio; ++ int i; ++ ++ /* Let the device settle down before we start */ ++ for (i = 0; i < UDC_INIT_MDELAY; i++) udelay(1000); ++ ++ udc_device = NULL; ++ ++ UDCDBG ("starting"); ++ ++ /* Check peripheral reset. Must be 1 to make sure ++ MPU TIPB peripheral reset is inactive */ ++ UDCREG (ARM_RSTCT2); ++ ++ /* Set and check clock control. ++ * We might ought to be using the clock control API to do ++ * this instead of fiddling with the clock registers directly ++ * here. ++ */ ++ outw ((1 << 4) | (1 << 5), CLOCK_CTRL); ++ UDCREG (CLOCK_CTRL); ++ /* Set and check APLL */ ++ outw (0x0008, APLL_CTRL); ++ UDCREG (APLL_CTRL); ++ /* Set and check DPLL */ ++ outw (0x2210, DPLL_CTRL); ++ UDCREG (DPLL_CTRL); ++ /* Set and check SOFT */ ++ outw ((1 << 4) | (1 << 3) | 1, SOFT_REQ); ++ /* Short delay to wait for DPLL */ ++ udelay (1000); ++ ++ /* Print banner with device revision */ ++ udc_rev = inw (UDC_REV) & 0xff; ++ printf ("USB: TI OMAP1510 USB function module rev %d.%d\n", ++ udc_rev >> 4, udc_rev & 0xf); ++ ++#ifdef CONFIG_OMAP_SX1 ++ i2c_read (0x32, 0x04, 1, &value, 1); ++ value |= 0x04; ++ i2c_write (0x32, 0x04, 1, &value, 1); ++ ++ i2c_read (0x32, 0x03, 1, &value, 1); ++ value |= 0x01; ++ i2c_write (0x32, 0x03, 1, &value, 1); ++ ++ gpio = inl(GPIO_PIN_CONTROL_REG); ++ gpio |= 0x0002; /* A_IRDA_OFF */ ++ gpio |= 0x0800; /* A_SWITCH */ ++ gpio |= 0x8000; /* A_USB_ON */ ++ outl (gpio, GPIO_PIN_CONTROL_REG); ++ ++ gpio = inl(GPIO_DIR_CONTROL_REG); ++ gpio &= ~0x0002; /* A_IRDA_OFF */ ++ gpio &= ~0x0800; /* A_SWITCH */ ++ gpio &= ~0x8000; /* A_USB_ON */ ++ outl (gpio, GPIO_DIR_CONTROL_REG); ++ ++ gpio = inl(GPIO_DATA_OUTPUT_REG); ++ gpio |= 0x0002; /* A_IRDA_OFF */ ++ gpio &= ~0x0800; /* A_SWITCH */ ++ gpio &= ~0x8000; /* A_USB_ON */ ++ outl (gpio, GPIO_DATA_OUTPUT_REG); ++#endif ++ ++ /* The VBUS_MODE bit selects whether VBUS detection is done via ++ * software (1) or hardware (0). When software detection is ++ * selected, VBUS_CTRL selects whether USB is not connected (0) ++ * or connected (1). ++ */ ++ outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0); ++ outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0); ++ UDCREGL (FUNC_MUX_CTRL_0); ++ ++ /* ++ * At this point, device is ready for configuration... ++ */ ++ ++ UDCDBG ("disable USB interrupts"); ++ outw (0, UDC_IRQ_EN); ++ UDCREG (UDC_IRQ_EN); ++ ++ UDCDBG ("disable USB DMA"); ++ outw (0, UDC_DMA_IRQ_EN); ++ UDCREG (UDC_DMA_IRQ_EN); ++ ++ UDCDBG ("initialize SYSCON1"); ++ outw (UDC_Self_Pwr | UDC_Pullup_En, UDC_SYSCON1); ++ UDCREG (UDC_SYSCON1); ++ ++ return 0; ++} ++ ++/* Stall endpoint */ ++static void udc_stall_ep (unsigned int ep_addr) ++{ ++ /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */ ++ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; ++ ++ UDCDBGA ("stall ep_addr %d", ep_addr); ++ ++ /* REVISIT? ++ * The OMAP TRM section 14.2.4.2 says we must check that the FIFO ++ * is empty before halting the endpoint. The current implementation ++ * doesn't check that the FIFO is empty. ++ */ ++ ++ if (!ep_num) { ++ outw (UDC_Stall_Cmd, UDC_SYSCON2); ++ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) { ++ if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) { ++ /* we have a valid rx endpoint, so halt it */ ++ outw (UDC_EP_Sel | ep_num, UDC_EP_NUM); ++ outw (UDC_Set_Halt, UDC_CTRL); ++ outw (ep_num, UDC_EP_NUM); ++ } ++ } else { ++ if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) { ++ /* we have a valid tx endpoint, so halt it */ ++ outw (UDC_EP_Sel | UDC_EP_Dir | ep_num, UDC_EP_NUM); ++ outw (UDC_Set_Halt, UDC_CTRL); ++ outw (ep_num, UDC_EP_NUM); ++ } ++ } ++} ++ ++/* Reset endpoint */ ++#if 0 ++static void udc_reset_ep (unsigned int ep_addr) ++{ ++ /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */ ++ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; ++ ++ UDCDBGA ("reset ep_addr %d", ep_addr); ++ ++ if (!ep_num) { ++ /* control endpoint 0 can't be reset */ ++ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) { ++ UDCDBGA ("UDC_EP_RX(%d) = 0x%04x", ep_num, ++ inw (UDC_EP_RX (ep_num))); ++ if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) { ++ /* we have a valid rx endpoint, so reset it */ ++ outw (ep_num | UDC_EP_Sel, UDC_EP_NUM); ++ outw (UDC_Reset_EP, UDC_CTRL); ++ outw (ep_num, UDC_EP_NUM); ++ UDCDBGA ("OUT endpoint %d reset", ep_num); ++ } ++ } else { ++ UDCDBGA ("UDC_EP_TX(%d) = 0x%04x", ep_num, ++ inw (UDC_EP_TX (ep_num))); ++ /* Resetting of tx endpoints seems to be causing the USB function ++ * module to fail, which causes problems when the driver is ++ * uninstalled. We'll skip resetting tx endpoints for now until ++ * we figure out what the problem is. ++ */ ++#if 0 ++ if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) { ++ /* we have a valid tx endpoint, so reset it */ ++ outw (ep_num | UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); ++ outw (UDC_Reset_EP, UDC_CTRL); ++ outw (ep_num | UDC_EP_Dir, UDC_EP_NUM); ++ UDCDBGA ("IN endpoint %d reset", ep_num); ++ } ++#endif ++ } ++} ++#endif ++ ++/* ************************************************************************** */ ++ ++/** ++ * udc_check_ep - check logical endpoint ++ * ++ * Return physical endpoint number to use for this logical endpoint or zero if not valid. ++ */ ++#if 0 ++int udc_check_ep (int logical_endpoint, int packetsize) ++{ ++ if ((logical_endpoint == 0x80) || ++ ((logical_endpoint & 0x8f) != logical_endpoint)) { ++ return 0; ++ } ++ ++ switch (packetsize) { ++ case 8: ++ case 16: ++ case 32: ++ case 64: ++ case 128: ++ case 256: ++ case 512: ++ break; ++ default: ++ return 0; ++ } ++ ++ return EP_ADDR_TO_PHYS_EP (logical_endpoint); ++} ++#endif ++ ++/* ++ * udc_setup_ep - setup endpoint ++ * ++ * Associate a physical endpoint with endpoint_instance ++ */ ++void udc_setup_ep (struct usb_device_instance *device, ++ unsigned int ep, struct usb_endpoint_instance *endpoint) ++{ ++ UDCDBGA ("setting up endpoint addr %x", endpoint->endpoint_address); ++ ++ /* This routine gets called by bi_modinit for endpoint 0 and from ++ * bi_config for all of the other endpoints. bi_config gets called ++ * during the DEVICE_CREATE, DEVICE_CONFIGURED, and ++ * DEVICE_SET_INTERFACE events. We need to reconfigure the OMAP packet ++ * RAM after bi_config scans the selected device configuration and ++ * initializes the endpoint structures, but before this routine enables ++ * the OUT endpoint FIFOs. Since bi_config calls this routine in a ++ * loop for endpoints 1 through UDC_MAX_ENDPOINTS, we reconfigure our ++ * packet RAM here when ep==1. ++ * I really hate to do this here, but it seems like the API exported ++ * by the USB bus interface controller driver to the usbd-bi module ++ * isn't quite right so there is no good place to do this. ++ */ ++ if (ep == 1) { ++ omap1510_deconfigure_device (); ++ omap1510_configure_device (device); ++ } ++ ++ if (endpoint && (ep < UDC_MAX_ENDPOINTS)) { ++ int ep_addr = endpoint->endpoint_address; ++ ++ if (!ep_addr) { ++ /* nothing to do for endpoint 0 */ ++ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { ++ /* nothing to do for IN (tx) endpoints */ ++ } else { /* OUT (rx) endpoint */ ++ if (endpoint->rcv_packetSize) { ++ /*struct urb* urb = &(urb_out_array[ep&0xFF]); */ ++ /*urb->endpoint = endpoint; */ ++ /*urb->device = device; */ ++ /*urb->buffer_length = sizeof(urb->buffer); */ ++ ++ /*endpoint->rcv_urb = urb; */ ++ omap1510_prepare_endpoint_for_rx (ep_addr); ++ } ++ } ++ } ++} ++ ++/** ++ * udc_disable_ep - disable endpoint ++ * @ep: ++ * ++ * Disable specified endpoint ++ */ ++#if 0 ++void udc_disable_ep (unsigned int ep_addr) ++{ ++ /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */ ++ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; ++ struct usb_endpoint_instance *endpoint = omap1510_find_ep (ep_addr); /*udc_device->bus->endpoint_array + ep; */ ++ ++ UDCDBGA ("disable ep_addr %d", ep_addr); ++ ++ if (!ep_num) { ++ /* nothing to do for endpoint 0 */ ; ++ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { ++ if (endpoint->tx_packetSize) { ++ /* we have a valid tx endpoint */ ++ /*usbd_flush_tx(endpoint); */ ++ endpoint->tx_urb = NULL; ++ } ++ } else { ++ if (endpoint->rcv_packetSize) { ++ /* we have a valid rx endpoint */ ++ /*usbd_flush_rcv(endpoint); */ ++ endpoint->rcv_urb = NULL; ++ } ++ } ++} ++#endif ++ ++/* ************************************************************************** */ ++ ++/** ++ * udc_connected - is the USB cable connected ++ * ++ * Return non-zero if cable is connected. ++ */ ++#if 0 ++int udc_connected (void) ++{ ++ return ((inw (UDC_DEVSTAT) & UDC_ATT) == UDC_ATT); ++} ++#endif ++ ++/* Turn on the USB connection by enabling the pullup resistor */ ++void udc_connect (void) ++{ ++ UDCDBG ("connect, enable Pullup"); ++} ++ ++/* Turn off the USB connection by disabling the pullup resistor */ ++void udc_disconnect (void) ++{ ++ UDCDBG ("disconnect, disable Pullup"); ++} ++ ++/* ************************************************************************** */ ++ ++ ++/* ++ * udc_disable_interrupts - disable interrupts ++ * switch off interrupts ++ */ ++#if 0 ++void udc_disable_interrupts (struct usb_device_instance *device) ++{ ++ UDCDBG ("disabling all interrupts"); ++ outw (0, UDC_IRQ_EN); ++} ++#endif ++ ++/* ************************************************************************** */ ++ ++/** ++ * udc_ep0_packetsize - return ep0 packetsize ++ */ ++#if 0 ++int udc_ep0_packetsize (void) ++{ ++ return EP0_PACKETSIZE; ++} ++#endif ++ ++/* Switch on the UDC */ ++void udc_enable (struct usb_device_instance *device) ++{ ++ UDCDBGA ("enable device %p, status %d", device, device->status); ++ ++ /* initialize driver state variables */ ++ udc_devstat = 0; ++ ++ /* Save the device structure pointer */ ++ udc_device = device; ++ ++ /* Setup ep0 urb */ ++ if (!ep0_urb) { ++ ep0_urb = ++ usbd_alloc_urb (udc_device, ++ udc_device->bus->endpoint_array); ++ } else { ++ serial_printf ("udc_enable: ep0_urb already allocated %p\n", ++ ep0_urb); ++ } ++ ++#ifdef FIXME ++ /* The VBUS_MODE bit selects whether VBUS detection is done via ++ * software (1) or hardware (0). When software detection is ++ * selected, VBUS_CTRL selects whether USB is not connected (0) ++ * or connected (1). ++ */ ++ outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_CTRL | UDC_VBUS_MODE, ++ FUNC_MUX_CTRL_0); ++ UDCREGL (FUNC_MUX_CTRL_0); ++#endif ++ ++ s3c2410_configure_device(device); ++} ++ ++/* Switch off the UDC */ ++void udc_disable (void) ++{ ++ UDCDBG ("disable UDC"); ++ ++ s3c2410_deconfigure_device(); ++ ++#ifdef FIXME ++ /* The VBUS_MODE bit selects whether VBUS detection is done via ++ * software (1) or hardware (0). When software detection is ++ * selected, VBUS_CTRL selects whether USB is not connected (0) ++ * or connected (1). ++ */ ++ outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0); ++ outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0); ++ UDCREGL (FUNC_MUX_CTRL_0); ++#endif ++ ++ /* Free ep0 URB */ ++ if (ep0_urb) { ++ /*usbd_dealloc_urb(ep0_urb); */ ++ ep0_urb = NULL; ++ } ++ ++ /* Reset device pointer. ++ * We ought to do this here to balance the initialization of udc_device ++ * in udc_enable, but some of our other exported functions get called ++ * by the bus interface driver after udc_disable, so we have to hang on ++ * to the device pointer to avoid a null pointer dereference. */ ++ /* udc_device = NULL; */ ++} ++ ++/** ++ * udc_startup - allow udc code to do any additional startup ++ */ ++void udc_startup_events (struct usb_device_instance *device) ++{ ++ /* The DEVICE_INIT event puts the USB device in the state STATE_INIT. */ ++ usbd_device_event_irq (device, DEVICE_INIT, 0); ++ ++ /* The DEVICE_CREATE event puts the USB device in the state ++ * STATE_ATTACHED. ++ */ ++ usbd_device_event_irq (device, DEVICE_CREATE, 0); ++ ++ /* Some USB controller driver implementations signal ++ * DEVICE_HUB_CONFIGURED and DEVICE_RESET events here. ++ * DEVICE_HUB_CONFIGURED causes a transition to the state STATE_POWERED, ++ * and DEVICE_RESET causes a transition to the state STATE_DEFAULT. ++ * The OMAP USB client controller has the capability to detect when the ++ * USB cable is connected to a powered USB bus via the ATT bit in the ++ * DEVSTAT register, so we will defer the DEVICE_HUB_CONFIGURED and ++ * DEVICE_RESET events until later. ++ */ ++ ++ udc_enable (device); ++} ++ ++#endif +diff --git a/examples/Makefile b/examples/Makefile +index a342d75..082e52e 100644 +--- a/examples/Makefile ++++ b/examples/Makefile +@@ -60,7 +60,7 @@ endif + include $(TOPDIR)/config.mk + + SREC = hello_world.srec +-BIN = hello_world.bin hello_world ++BIN = hello_world hello_world.bin + + ifeq ($(CPU),mpc8xx) + SREC = test_burst.srec +@@ -122,7 +122,7 @@ clibdir := $(shell dirname `$(CC) $(CFLA + + CPPFLAGS += -I.. + +-all: .depend $(OBJS) $(LIB) $(SREC) $(BIN) ++all: .depend $(OBJS) $(LIB) $(BIN) $(SREC) + + ######################################################################### + $(LIB): .depend $(LIBOBJS) +diff --git a/include/asm-arm/arch-s3c24x0/mmc.h b/include/asm-arm/arch-s3c24x0/mmc.h +new file mode 100644 +index 0000000..d9178f3 +--- /dev/null ++++ b/include/asm-arm/arch-s3c24x0/mmc.h +@@ -0,0 +1,112 @@ ++/* ++ * linux/drivers/mmc/mmc_pxa.h ++ * ++ * Author: Vladimir Shebordaev, Igor Oblakov ++ * Copyright: MontaVista Software Inc. ++ * ++ * $Id: mmc_pxa.h,v 0.3.1.6 2002/09/25 19:25:48 ted Exp ted $ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++#ifndef __MMC_PXA_P_H__ ++#define __MMC_PXA_P_H__ ++ ++#include ++ ++#define MMC_DEFAULT_RCA (1<<16) ++ ++#define MMC_BLOCK_SIZE 512 ++#define MMC_CMD_RESET 0 ++#define MMC_CMD_SEND_OP_COND 1 ++#define MMC_CMD_ALL_SEND_CID 2 ++#define MMC_CMD_SET_RCA 3 ++#define MMC_CMD_SELECT_CARD 7 ++#define MMC_CMD_SEND_CSD 9 ++#define MMC_CMD_SEND_CID 10 ++#define MMC_CMD_SEND_STATUS 13 ++#define MMC_CMD_SET_BLOCKLEN 16 ++#define MMC_CMD_READ_BLOCK 17 ++#define MMC_CMD_RD_BLK_MULTI 18 ++#define MMC_CMD_WRITE_BLOCK 24 ++ ++#define MMC_MAX_BLOCK_SIZE 512 ++ ++#define MMC_R1_IDLE_STATE 0x01 ++#define MMC_R1_ERASE_STATE 0x02 ++#define MMC_R1_ILLEGAL_CMD 0x04 ++#define MMC_R1_COM_CRC_ERR 0x08 ++#define MMC_R1_ERASE_SEQ_ERR 0x01 ++#define MMC_R1_ADDR_ERR 0x02 ++#define MMC_R1_PARAM_ERR 0x04 ++ ++#define MMC_R1B_WP_ERASE_SKIP 0x0002 ++#define MMC_R1B_ERR 0x0004 ++#define MMC_R1B_CC_ERR 0x0008 ++#define MMC_R1B_CARD_ECC_ERR 0x0010 ++#define MMC_R1B_WP_VIOLATION 0x0020 ++#define MMC_R1B_ERASE_PARAM 0x0040 ++#define MMC_R1B_OOR 0x0080 ++#define MMC_R1B_IDLE_STATE 0x0100 ++#define MMC_R1B_ERASE_RESET 0x0200 ++#define MMC_R1B_ILLEGAL_CMD 0x0400 ++#define MMC_R1B_COM_CRC_ERR 0x0800 ++#define MMC_R1B_ERASE_SEQ_ERR 0x1000 ++#define MMC_R1B_ADDR_ERR 0x2000 ++#define MMC_R1B_PARAM_ERR 0x4000 ++ ++typedef struct mmc_cid ++{ ++/* FIXME: BYTE_ORDER */ ++ uchar year:4, ++ month:4; ++ uchar sn[3]; ++ uchar fwrev:4, ++ hwrev:4; ++ uchar name[6]; ++ uchar id[3]; ++} mmc_cid_t; ++ ++typedef struct mmc_csd ++{ ++ uchar ecc:2, ++ file_format:2, ++ tmp_write_protect:1, ++ perm_write_protect:1, ++ copy:1, ++ file_format_grp:1; ++ uint64_t content_prot_app:1, ++ rsvd3:4, ++ write_bl_partial:1, ++ write_bl_len:4, ++ r2w_factor:3, ++ default_ecc:2, ++ wp_grp_enable:1, ++ wp_grp_size:5, ++ erase_grp_mult:5, ++ erase_grp_size:5, ++ c_size_mult1:3, ++ vdd_w_curr_max:3, ++ vdd_w_curr_min:3, ++ vdd_r_curr_max:3, ++ vdd_r_curr_min:3, ++ c_size:12, ++ rsvd2:2, ++ dsr_imp:1, ++ read_blk_misalign:1, ++ write_blk_misalign:1, ++ read_bl_partial:1; ++ ++ ushort read_bl_len:4, ++ ccc:12; ++ uchar tran_speed; ++ uchar nsac; ++ uchar taac; ++ uchar rsvd1:2, ++ spec_vers:4, ++ csd_structure:2; ++} mmc_csd_t; ++ ++ ++#endif /* __MMC_PXA_P_H__ */ +diff --git a/include/asm-arm/arch-s3c24x0/regs-sdi.h b/include/asm-arm/arch-s3c24x0/regs-sdi.h +new file mode 100644 +index 0000000..9b5b9d1 +--- /dev/null ++++ b/include/asm-arm/arch-s3c24x0/regs-sdi.h +@@ -0,0 +1,110 @@ ++/* linux/include/asm/arch-s3c2410/regs-sdi.h ++ * ++ * Copyright (c) 2004 Simtec Electronics ++ * http://www.simtec.co.uk/products/SWLINUX/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * S3C2410 MMC/SDIO register definitions ++ * ++ * Changelog: ++ * 18-Aug-2004 Ben Dooks Created initial file ++ * 29-Nov-2004 Koen Martens Added some missing defines, fixed duplicates ++ * 29-Nov-2004 Ben Dooks Updated Koen's patch ++*/ ++ ++#ifndef __ASM_ARM_REGS_SDI ++#define __ASM_ARM_REGS_SDI "regs-sdi.h" ++ ++#define S3C2440_SDICON_SDRESET (1<<8) ++#define S3C2440_SDICON_MMCCLOCK (1<<5) ++#define S3C2410_SDICON_BYTEORDER (1<<4) ++#define S3C2410_SDICON_SDIOIRQ (1<<3) ++#define S3C2410_SDICON_RWAITEN (1<<2) ++#define S3C2410_SDICON_FIFORESET (1<<1) ++#define S3C2410_SDICON_CLOCKTYPE (1<<0) ++ ++#define S3C2410_SDICMDCON_ABORT (1<<12) ++#define S3C2410_SDICMDCON_WITHDATA (1<<11) ++#define S3C2410_SDICMDCON_LONGRSP (1<<10) ++#define S3C2410_SDICMDCON_WAITRSP (1<<9) ++#define S3C2410_SDICMDCON_CMDSTART (1<<8) ++#define S3C2410_SDICMDCON_SENDERHOST (1<<6) ++#define S3C2410_SDICMDCON_INDEX (0x3f) ++ ++#define S3C2410_SDICMDSTAT_CRCFAIL (1<<12) ++#define S3C2410_SDICMDSTAT_CMDSENT (1<<11) ++#define S3C2410_SDICMDSTAT_CMDTIMEOUT (1<<10) ++#define S3C2410_SDICMDSTAT_RSPFIN (1<<9) ++#define S3C2410_SDICMDSTAT_XFERING (1<<8) ++#define S3C2410_SDICMDSTAT_INDEX (0xff) ++ ++#define S3C2440_SDIDCON_DS_BYTE (0<<22) ++#define S3C2440_SDIDCON_DS_HALFWORD (1<<22) ++#define S3C2440_SDIDCON_DS_WORD (2<<22) ++#define S3C2410_SDIDCON_IRQPERIOD (1<<21) ++#define S3C2410_SDIDCON_TXAFTERRESP (1<<20) ++#define S3C2410_SDIDCON_RXAFTERCMD (1<<19) ++#define S3C2410_SDIDCON_BUSYAFTERCMD (1<<18) ++#define S3C2410_SDIDCON_BLOCKMODE (1<<17) ++#define S3C2410_SDIDCON_WIDEBUS (1<<16) ++#define S3C2410_SDIDCON_DMAEN (1<<15) ++#define S3C2410_SDIDCON_STOP (1<<14) ++#define S3C2440_SDIDCON_DATSTART (1<<14) ++#define S3C2410_SDIDCON_DATMODE (3<<12) ++#define S3C2410_SDIDCON_BLKNUM (0x7ff) ++ ++/* constants for S3C2410_SDIDCON_DATMODE */ ++#define S3C2410_SDIDCON_XFER_READY (0<<12) ++#define S3C2410_SDIDCON_XFER_CHKSTART (1<<12) ++#define S3C2410_SDIDCON_XFER_RXSTART (2<<12) ++#define S3C2410_SDIDCON_XFER_TXSTART (3<<12) ++ ++#define S3C2410_SDIDCON_BLKNUM_MASK (0xFFF) ++#define S3C2410_SDIDCNT_BLKNUM_SHIFT (12) ++ ++#define S3C2410_SDIDSTA_RDYWAITREQ (1<<10) ++#define S3C2410_SDIDSTA_SDIOIRQDETECT (1<<9) ++#define S3C2410_SDIDSTA_FIFOFAIL (1<<8) /* reserved on 2440 */ ++#define S3C2410_SDIDSTA_CRCFAIL (1<<7) ++#define S3C2410_SDIDSTA_RXCRCFAIL (1<<6) ++#define S3C2410_SDIDSTA_DATATIMEOUT (1<<5) ++#define S3C2410_SDIDSTA_XFERFINISH (1<<4) ++#define S3C2410_SDIDSTA_BUSYFINISH (1<<3) ++#define S3C2410_SDIDSTA_SBITERR (1<<2) /* reserved on 2410a/2440 */ ++#define S3C2410_SDIDSTA_TXDATAON (1<<1) ++#define S3C2410_SDIDSTA_RXDATAON (1<<0) ++ ++#define S3C2440_SDIFSTA_FIFORESET (1<<16) ++#define S3C2440_SDIFSTA_FIFOFAIL (3<<14) /* 3 is correct (2 bits) */ ++#define S3C2410_SDIFSTA_TFDET (1<<13) ++#define S3C2410_SDIFSTA_RFDET (1<<12) ++#define S3C2410_SDIFSTA_TFHALF (1<<11) ++#define S3C2410_SDIFSTA_TFEMPTY (1<<10) ++#define S3C2410_SDIFSTA_RFLAST (1<<9) ++#define S3C2410_SDIFSTA_RFFULL (1<<8) ++#define S3C2410_SDIFSTA_RFHALF (1<<7) ++#define S3C2410_SDIFSTA_COUNTMASK (0x7f) ++ ++#define S3C2410_SDIIMSK_RESPONSECRC (1<<17) ++#define S3C2410_SDIIMSK_CMDSENT (1<<16) ++#define S3C2410_SDIIMSK_CMDTIMEOUT (1<<15) ++#define S3C2410_SDIIMSK_RESPONSEND (1<<14) ++#define S3C2410_SDIIMSK_READWAIT (1<<13) ++#define S3C2410_SDIIMSK_SDIOIRQ (1<<12) ++#define S3C2410_SDIIMSK_FIFOFAIL (1<<11) ++#define S3C2410_SDIIMSK_CRCSTATUS (1<<10) ++#define S3C2410_SDIIMSK_DATACRC (1<<9) ++#define S3C2410_SDIIMSK_DATATIMEOUT (1<<8) ++#define S3C2410_SDIIMSK_DATAFINISH (1<<7) ++#define S3C2410_SDIIMSK_BUSYFINISH (1<<6) ++#define S3C2410_SDIIMSK_SBITERR (1<<5) /* reserved 2440/2410a */ ++#define S3C2410_SDIIMSK_TXFIFOHALF (1<<4) ++#define S3C2410_SDIIMSK_TXFIFOEMPTY (1<<3) ++#define S3C2410_SDIIMSK_RXFIFOLAST (1<<2) ++#define S3C2410_SDIIMSK_RXFIFOFULL (1<<1) ++#define S3C2410_SDIIMSK_RXFIFOHALF (1<<0) ++ ++#endif /* __ASM_ARM_REGS_SDI */ +diff --git a/include/asm-arm/mach-types.h b/include/asm-arm/mach-types.h +index 7d7888e..4e9c6d9 100644 +--- a/include/asm-arm/mach-types.h ++++ b/include/asm-arm/mach-types.h +@@ -424,7 +424,7 @@ #define MACH_TYPE_MT02 4 + #define MACH_TYPE_MPORT3S 411 + #define MACH_TYPE_RA_ALPHA 412 + #define MACH_TYPE_XCEP 413 +-#define MACH_TYPE_ARCOM_MERCURY 414 ++#define MACH_TYPE_ARCOM_VULCAN 414 + #define MACH_TYPE_STARGATE 415 + #define MACH_TYPE_ARMADILLOJ 416 + #define MACH_TYPE_ELROY_JACK 417 +@@ -457,7 +457,7 @@ #define MACH_TYPE_ESL_SARVA 4 + #define MACH_TYPE_XM250 444 + #define MACH_TYPE_T6TC1XB 445 + #define MACH_TYPE_ESS710 446 +-#define MACH_TYPE_MX3ADS 447 ++#define MACH_TYPE_MX31ADS 447 + #define MACH_TYPE_HIMALAYA 448 + #define MACH_TYPE_BOLFENK 449 + #define MACH_TYPE_AT91RM9200KR 450 +@@ -736,7 +736,308 @@ #define MACH_TYPE_ADSPORTAL 7 + #define MACH_TYPE_LN2410SBC 725 + #define MACH_TYPE_CB3RUFC 726 + #define MACH_TYPE_MP2USB 727 +-#define MACH_TYPE_PDNB3 1002 ++#define MACH_TYPE_NTNP425C 728 ++#define MACH_TYPE_COLIBRI 729 ++#define MACH_TYPE_PCM7220 730 ++#define MACH_TYPE_GATEWAY7001 731 ++#define MACH_TYPE_PCM027 732 ++#define MACH_TYPE_CMPXA 733 ++#define MACH_TYPE_ANUBIS 734 ++#define MACH_TYPE_ITE8152 735 ++#define MACH_TYPE_LPC3XXX 736 ++#define MACH_TYPE_PUPPETEER 737 ++#define MACH_TYPE_MACH_VADATECH 738 ++#define MACH_TYPE_E570 739 ++#define MACH_TYPE_X50 740 ++#define MACH_TYPE_RECON 741 ++#define MACH_TYPE_XBOARDGP8 742 ++#define MACH_TYPE_FPIC2 743 ++#define MACH_TYPE_AKITA 744 ++#define MACH_TYPE_A81 745 ++#define MACH_TYPE_SVM_SC25X 746 ++#define MACH_TYPE_VADATECH020 747 ++#define MACH_TYPE_TLI 748 ++#define MACH_TYPE_EDB9315LC 749 ++#define MACH_TYPE_PASSEC 750 ++#define MACH_TYPE_DS_TIGER 751 ++#define MACH_TYPE_E310 752 ++#define MACH_TYPE_E330 753 ++#define MACH_TYPE_RT3000 754 ++#define MACH_TYPE_NOKIA770 755 ++#define MACH_TYPE_PNX0106 756 ++#define MACH_TYPE_HX21XX 757 ++#define MACH_TYPE_FARADAY 758 ++#define MACH_TYPE_SBC9312 759 ++#define MACH_TYPE_BATMAN 760 ++#define MACH_TYPE_JPD201 761 ++#define MACH_TYPE_MIPSA 762 ++#define MACH_TYPE_KACOM 763 ++#define MACH_TYPE_SWARCOCPU 764 ++#define MACH_TYPE_SWARCODSL 765 ++#define MACH_TYPE_BLUEANGEL 766 ++#define MACH_TYPE_HAIRYGRAMA 767 ++#define MACH_TYPE_BANFF 768 ++#define MACH_TYPE_CARMEVA 769 ++#define MACH_TYPE_SAM255 770 ++#define MACH_TYPE_PPM10 771 ++#define MACH_TYPE_EDB9315A 772 ++#define MACH_TYPE_SUNSET 773 ++#define MACH_TYPE_STARGATE2 774 ++#define MACH_TYPE_INTELMOTE2 775 ++#define MACH_TYPE_TRIZEPS4 776 ++#define MACH_TYPE_MAINSTONE2 777 ++#define MACH_TYPE_EZ_IXP42X 778 ++#define MACH_TYPE_TAPWAVE_ZODIAC 779 ++#define MACH_TYPE_UNIVERSALMETER 780 ++#define MACH_TYPE_HICOARM9 781 ++#define MACH_TYPE_PNX4008 782 ++#define MACH_TYPE_KWS6000 783 ++#define MACH_TYPE_PORTUX920T 784 ++#define MACH_TYPE_EZ_X5 785 ++#define MACH_TYPE_OMAP_RUDOLPH 786 ++#define MACH_TYPE_CPUAT91 787 ++#define MACH_TYPE_REA9200 788 ++#define MACH_TYPE_ACTS_PUNE_SA1110 789 ++#define MACH_TYPE_IXP425 790 ++#define MACH_TYPE_ARGONPLUSODYSSEY 791 ++#define MACH_TYPE_PERCH 792 ++#define MACH_TYPE_EIS05R1 793 ++#define MACH_TYPE_PEPPERPAD 794 ++#define MACH_TYPE_SB3010 795 ++#define MACH_TYPE_RM9200 796 ++#define MACH_TYPE_DMA03 797 ++#define MACH_TYPE_ROAD_S101 798 ++#define MACH_TYPE_IQ_NEXTGEN_A 799 ++#define MACH_TYPE_IQ_NEXTGEN_B 800 ++#define MACH_TYPE_IQ_NEXTGEN_C 801 ++#define MACH_TYPE_IQ_NEXTGEN_D 802 ++#define MACH_TYPE_IQ_NEXTGEN_E 803 ++#define MACH_TYPE_MALLOW_AT91 804 ++#define MACH_TYPE_CYBERTRACKER_I 805 ++#define MACH_TYPE_GESBC931X 806 ++#define MACH_TYPE_CENTIPAD 807 ++#define MACH_TYPE_ARMSOC 808 ++#define MACH_TYPE_SE4200 809 ++#define MACH_TYPE_EMS197A 810 ++#define MACH_TYPE_MICRO9 811 ++#define MACH_TYPE_MICRO9L 812 ++#define MACH_TYPE_UC5471DSP 813 ++#define MACH_TYPE_SJ5471ENG 814 ++#define MACH_TYPE_CMPXA26X 815 ++#define MACH_TYPE_NC 816 ++#define MACH_TYPE_OMAP_PALMTE 817 ++#define MACH_TYPE_AJAX52X 818 ++#define MACH_TYPE_SIRIUSTAR 819 ++#define MACH_TYPE_IODATA_HDLG 820 ++#define MACH_TYPE_AT91RM9200UTL 821 ++#define MACH_TYPE_BIOSAFE 822 ++#define MACH_TYPE_MP1000 823 ++#define MACH_TYPE_PARSY 824 ++#define MACH_TYPE_CCXP 825 ++#define MACH_TYPE_OMAP_GSAMPLE 826 ++#define MACH_TYPE_REALVIEW_EB 827 ++#define MACH_TYPE_SAMOA 828 ++#define MACH_TYPE_T3XSCALE 829 ++#define MACH_TYPE_I878 830 ++#define MACH_TYPE_BORZOI 831 ++#define MACH_TYPE_GECKO 832 ++#define MACH_TYPE_DS101 833 ++#define MACH_TYPE_OMAP_PALMTT2 834 ++#define MACH_TYPE_XSCALE_PALMLD 835 ++#define MACH_TYPE_CC9C 836 ++#define MACH_TYPE_SBC1670 837 ++#define MACH_TYPE_IXDP28X5 838 ++#define MACH_TYPE_OMAP_PALMTT 839 ++#define MACH_TYPE_ML696K 840 ++#define MACH_TYPE_ARCOM_ZEUS 841 ++#define MACH_TYPE_OSIRIS 842 ++#define MACH_TYPE_MAESTRO 843 ++#define MACH_TYPE_TUNGE2 844 ++#define MACH_TYPE_IXBBM 845 ++#define MACH_TYPE_MX27 846 ++#define MACH_TYPE_AX8004 847 ++#define MACH_TYPE_AT91SAM9261EK 848 ++#define MACH_TYPE_LOFT 849 ++#define MACH_TYPE_MAGPIE 850 ++#define MACH_TYPE_MX21 851 ++#define MACH_TYPE_MB87M3400 852 ++#define MACH_TYPE_MGUARD_DELTA 853 ++#define MACH_TYPE_DAVINCI_DVDP 854 ++#define MACH_TYPE_HTCUNIVERSAL 855 ++#define MACH_TYPE_TPAD 856 ++#define MACH_TYPE_ROVERP3 857 ++#define MACH_TYPE_JORNADA928 858 ++#define MACH_TYPE_MV88FXX81 859 ++#define MACH_TYPE_STMP36XX 860 ++#define MACH_TYPE_SXNI79524 861 ++#define MACH_TYPE_AMS_DELTA 862 ++#define MACH_TYPE_URANIUM 863 ++#define MACH_TYPE_UCON 864 ++#define MACH_TYPE_NAS100D 865 ++#define MACH_TYPE_L083_1000 866 ++#define MACH_TYPE_EZX 867 ++#define MACH_TYPE_PNX5220 868 ++#define MACH_TYPE_BUTTE 869 ++#define MACH_TYPE_SRM2 870 ++#define MACH_TYPE_DSBR 871 ++#define MACH_TYPE_CRYSTALBALL 872 ++#define MACH_TYPE_TINYPXA27X 873 ++#define MACH_TYPE_HERBIE 874 ++#define MACH_TYPE_MAGICIAN 875 ++#define MACH_TYPE_CM4002 876 ++#define MACH_TYPE_B4 877 ++#define MACH_TYPE_MAUI 878 ++#define MACH_TYPE_CYBERTRACKER_G 879 ++#define MACH_TYPE_NXDKN 880 ++#define MACH_TYPE_MIO8390 881 ++#define MACH_TYPE_OMI_BOARD 882 ++#define MACH_TYPE_MX21CIV 883 ++#define MACH_TYPE_MAHI_CDAC 884 ++#define MACH_TYPE_XSCALE_PALMTX 885 ++#define MACH_TYPE_S3C2413 887 ++#define MACH_TYPE_SAMSYS_EP0 888 ++#define MACH_TYPE_WG302V1 889 ++#define MACH_TYPE_WG302V2 890 ++#define MACH_TYPE_EB42X 891 ++#define MACH_TYPE_IQ331ES 892 ++#define MACH_TYPE_COSYDSP 893 ++#define MACH_TYPE_UPLAT7D 894 ++#define MACH_TYPE_PTDAVINCI 895 ++#define MACH_TYPE_MBUS 896 ++#define MACH_TYPE_NADIA2VB 897 ++#define MACH_TYPE_R1000 898 ++#define MACH_TYPE_HW90250 899 ++#define MACH_TYPE_OMAP_2430SDP 900 ++#define MACH_TYPE_DAVINCI_EVM 901 ++#define MACH_TYPE_OMAP_TORNADO 902 ++#define MACH_TYPE_OLOCREEK 903 ++#define MACH_TYPE_PALMZ72 904 ++#define MACH_TYPE_NXDB500 905 ++#define MACH_TYPE_APF9328 906 ++#define MACH_TYPE_OMAP_WIPOQ 907 ++#define MACH_TYPE_OMAP_TWIP 908 ++#define MACH_TYPE_XSCALE_PALMTREO650 909 ++#define MACH_TYPE_ACUMEN 910 ++#define MACH_TYPE_XP100 911 ++#define MACH_TYPE_FS2410 912 ++#define MACH_TYPE_PXA270_CERF 913 ++#define MACH_TYPE_SQ2FTLPALM 914 ++#define MACH_TYPE_BSEMSERVER 915 ++#define MACH_TYPE_NETCLIENT 916 ++#define MACH_TYPE_XSCALE_PALMTT5 917 ++#define MACH_TYPE_OMAP_PALMTC 918 ++#define MACH_TYPE_OMAP_APOLLON 919 ++#define MACH_TYPE_ARGONLVEVB 920 ++#define MACH_TYPE_REA_2D 921 ++#define MACH_TYPE_TI3E524 922 ++#define MACH_TYPE_ATEB9200 923 ++#define MACH_TYPE_AUCKLAND 924 ++#define MACH_TYPE_AK3320M 925 ++#define MACH_TYPE_DURAMAX 926 ++#define MACH_TYPE_N35 927 ++#define MACH_TYPE_PRONGHORN 928 ++#define MACH_TYPE_FUNDY 929 ++#define MACH_TYPE_LOGICPD_PXA270 930 ++#define MACH_TYPE_CPU777 931 ++#define MACH_TYPE_SIMICON9201 932 ++#define MACH_TYPE_LEAP2_HPM 933 ++#define MACH_TYPE_CM922TXA10 934 ++#define MACH_TYPE_PXA 935 ++#define MACH_TYPE_SANDGATE2 936 ++#define MACH_TYPE_SANDGATE2G 937 ++#define MACH_TYPE_SANDGATE2P 938 ++#define MACH_TYPE_FRED_JACK 939 ++#define MACH_TYPE_TTG_COLOR1 940 ++#define MACH_TYPE_NXEB500HMI 941 ++#define MACH_TYPE_NETDCU8 942 ++#define MACH_TYPE_ML675050_CPU_BOA 943 ++#define MACH_TYPE_NG_FVX538 944 ++#define MACH_TYPE_NG_FVS338 945 ++#define MACH_TYPE_PNX4103 946 ++#define MACH_TYPE_HESDB 947 ++#define MACH_TYPE_XSILO 948 ++#define MACH_TYPE_ESPRESSO 949 ++#define MACH_TYPE_EMLC 950 ++#define MACH_TYPE_SISTERON 951 ++#define MACH_TYPE_RX1950 952 ++#define MACH_TYPE_TSC_VENUS 953 ++#define MACH_TYPE_DS101J 954 ++#define MACH_TYPE_MXC30030ADS 955 ++#define MACH_TYPE_FUJITSU_WIMAXSOC 956 ++#define MACH_TYPE_DUALPCMODEM 957 ++#define MACH_TYPE_GESBC9312 958 ++#define MACH_TYPE_HTCAPACHE 959 ++#define MACH_TYPE_IXDP435 960 ++#define MACH_TYPE_CATPROVT100 961 ++#define MACH_TYPE_PICOTUX1XX 962 ++#define MACH_TYPE_PICOTUX2XX 963 ++#define MACH_TYPE_DSMG600 964 ++#define MACH_TYPE_EMPC2 965 ++#define MACH_TYPE_VENTURA 966 ++#define MACH_TYPE_PHIDGET_SBC 967 ++#define MACH_TYPE_IJ3K 968 ++#define MACH_TYPE_PISGAH 969 ++#define MACH_TYPE_OMAP_FSAMPLE 970 ++#define MACH_TYPE_SG720 971 ++#define MACH_TYPE_REDFOX 972 ++#define MACH_TYPE_MYSH_EP9315_1 973 ++#define MACH_TYPE_TPF106 974 ++#define MACH_TYPE_AT91RM9200KG 975 ++#define MACH_TYPE_SLEDB 976 ++#define MACH_TYPE_ONTRACK 977 ++#define MACH_TYPE_PM1200 978 ++#define MACH_TYPE_ESS24XXX 979 ++#define MACH_TYPE_COREMP7 980 ++#define MACH_TYPE_NEXCODER_6446 981 ++#define MACH_TYPE_STVC8380 982 ++#define MACH_TYPE_TEKLYNX 983 ++#define MACH_TYPE_CARBONADO 984 ++#define MACH_TYPE_SYSMOS_MP730 985 ++#define MACH_TYPE_SNAPPER_CL15 986 ++#define MACH_TYPE_PGIGIM 987 ++#define MACH_TYPE_PTX9160P2 988 ++#define MACH_TYPE_DCORE1 989 ++#define MACH_TYPE_VICTORPXA 990 ++#define MACH_TYPE_MX2DTB 991 ++#define MACH_TYPE_PXA_IREX_ER0100 992 ++#define MACH_TYPE_OMAP_PALMZ71 993 ++#define MACH_TYPE_BARTEC_DEG 994 ++#define MACH_TYPE_HW50251 995 ++#define MACH_TYPE_IBOX 996 ++#define MACH_TYPE_ATLASLH7A404 997 ++#define MACH_TYPE_PT2026 998 ++#define MACH_TYPE_HTCALPINE 999 ++#define MACH_TYPE_BARTEC_VTU 1000 ++#define MACH_TYPE_VCOREII 1001 ++#define MACH_TYPE_PDNB3 1002 ++#define MACH_TYPE_HTCBEETLES 1003 ++#define MACH_TYPE_S3C6400 1004 ++#define MACH_TYPE_S3C2443 1005 ++#define MACH_TYPE_OMAP_LDK 1006 ++#define MACH_TYPE_SMDK2460 1007 ++#define MACH_TYPE_SMDK2440 1008 ++#define MACH_TYPE_SMDK2412 1009 ++#define MACH_TYPE_WEBBOX 1010 ++#define MACH_TYPE_CWWNDP 1011 ++#define MACH_TYPE_DRAGON 1012 ++#define MACH_TYPE_OPENDO_CPU_BOARD 1013 ++#define MACH_TYPE_CCM2200 1014 ++#define MACH_TYPE_ETWARM 1015 ++#define MACH_TYPE_M93030 1016 ++#define MACH_TYPE_CC7U 1017 ++#define MACH_TYPE_MTT_RANGER 1018 ++#define MACH_TYPE_NEXUS 1019 ++#define MACH_TYPE_DESMAN 1020 ++#define MACH_TYPE_BKDE303 1021 ++#define MACH_TYPE_SMDK2413 1022 ++#define MACH_TYPE_AML_M7200 1023 ++#define MACH_TYPE_AML_M5900 1024 ++#define MACH_TYPE_SG640 1025 ++#define MACH_TYPE_EDG79524 1026 ++#define MACH_TYPE_AI2410 1027 ++#define MACH_TYPE_IXP465 1028 ++#define MACH_TYPE_BALLOON3 1029 ++#define MACH_TYPE_QT2410 1108 + + #ifdef CONFIG_ARCH_EBSA110 + # ifdef machine_arch_type +@@ -3541,9 +3842,9 @@ # define machine_arch_type __machine_ar + # else + # define machine_arch_type MACH_TYPE_RAMSES + # endif +-# define machine_is_ramses() (machine_arch_type == MACH_TYPE_RAMSES) ++# define machine_is_mnci() (machine_arch_type == MACH_TYPE_RAMSES) + #else +-# define machine_is_ramses() (0) ++# define machine_is_mnci() (0) + #endif + + #ifdef CONFIG_ARCH_S28X +@@ -4501,9 +4802,9 @@ # define machine_arch_type __machine_ar + # else + # define machine_arch_type MACH_TYPE_M825XX + # endif +-# define machine_is_m825xx() (machine_arch_type == MACH_TYPE_M825XX) ++# define machine_is_comcerto() (machine_arch_type == MACH_TYPE_M825XX) + #else +-# define machine_is_m825xx() (0) ++# define machine_is_comcerto() (0) + #endif + + #ifdef CONFIG_SA1100_M7100 +@@ -5658,16 +5959,16 @@ #else + # define machine_is_xcep() (0) + #endif + +-#ifdef CONFIG_MACH_ARCOM_MERCURY ++#ifdef CONFIG_MACH_ARCOM_VULCAN + # ifdef machine_arch_type + # undef machine_arch_type + # define machine_arch_type __machine_arch_type + # else +-# define machine_arch_type MACH_TYPE_ARCOM_MERCURY ++# define machine_arch_type MACH_TYPE_ARCOM_VULCAN + # endif +-# define machine_is_arcom_mercury() (machine_arch_type == MACH_TYPE_ARCOM_MERCURY) ++# define machine_is_arcom_vulcan() (machine_arch_type == MACH_TYPE_ARCOM_VULCAN) + #else +-# define machine_is_arcom_mercury() (0) ++# define machine_is_arcom_vulcan() (0) + #endif + + #ifdef CONFIG_MACH_STARGATE +@@ -6054,16 +6355,16 @@ #else + # define machine_is_ess710() (0) + #endif + +-#ifdef CONFIG_MACH_MX3ADS ++#ifdef CONFIG_MACH_MX31ADS + # ifdef machine_arch_type + # undef machine_arch_type + # define machine_arch_type __machine_arch_type + # else +-# define machine_arch_type MACH_TYPE_MX3ADS ++# define machine_arch_type MACH_TYPE_MX31ADS + # endif +-# define machine_is_mx3ads() (machine_arch_type == MACH_TYPE_MX3ADS) ++# define machine_is_mx31ads() (machine_arch_type == MACH_TYPE_MX31ADS) + #else +-# define machine_is_mx3ads() (0) ++# define machine_is_mx31ads() (0) + #endif + + #ifdef CONFIG_MACH_HIMALAYA +@@ -7333,9 +7634,9 @@ # define machine_arch_type __machine_ar + # else + # define machine_arch_type MACH_TYPE_ARGONPLUSEVB + # endif +-# define machine_is_argonplusevb() (machine_arch_type == MACH_TYPE_ARGONPLUSEVB) ++# define machine_is_i30030evb() (machine_arch_type == MACH_TYPE_ARGONPLUSEVB) + #else +-# define machine_is_argonplusevb() (0) ++# define machine_is_i30030evb() (0) + #endif + + #ifdef CONFIG_MACH_SCMA11EVB +@@ -7345,9 +7646,9 @@ # define machine_arch_type __machine_ar + # else + # define machine_arch_type MACH_TYPE_SCMA11EVB + # endif +-# define machine_is_scma11evb() (machine_arch_type == MACH_TYPE_SCMA11EVB) ++# define machine_is_mxc27530evb() (machine_arch_type == MACH_TYPE_SCMA11EVB) + #else +-# define machine_is_scma11evb() (0) ++# define machine_is_mxc27530evb() (0) + #endif + + #ifdef CONFIG_MACH_SMDK2800 +@@ -8305,9 +8606,9 @@ # define machine_arch_type __machine_ar + # else + # define machine_arch_type MACH_TYPE_SCMA11BB + # endif +-# define machine_is_scma11bb() (machine_arch_type == MACH_TYPE_SCMA11BB) ++# define machine_is_mxc27530ads() (machine_arch_type == MACH_TYPE_SCMA11BB) + #else +-# define machine_is_scma11bb() (0) ++# define machine_is_mxc27530ads() (0) + #endif + + #ifdef CONFIG_MACH_TRIZEPS3 +@@ -9193,9 +9494,9 @@ # define machine_arch_type __machine_ar + # else + # define machine_arch_type MACH_TYPE_ZEUSEVB + # endif +-# define machine_is_zeusevb() (machine_arch_type == MACH_TYPE_ZEUSEVB) ++# define machine_is_mxc91131evb() (machine_arch_type == MACH_TYPE_ZEUSEVB) + #else +-# define machine_is_zeusevb() (0) ++# define machine_is_mxc91131evb() (0) + #endif + + #ifdef CONFIG_MACH_P700 +@@ -9402,6 +9703,3630 @@ #else + # define machine_is_mp2usb() (0) + #endif + ++#ifdef CONFIG_MACH_NTNP425C ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NTNP425C ++# endif ++# define machine_is_ntnp425c() (machine_arch_type == MACH_TYPE_NTNP425C) ++#else ++# define machine_is_ntnp425c() (0) ++#endif ++ ++#ifdef CONFIG_MACH_COLIBRI ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_COLIBRI ++# endif ++# define machine_is_colibri() (machine_arch_type == MACH_TYPE_COLIBRI) ++#else ++# define machine_is_colibri() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PCM7220 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PCM7220 ++# endif ++# define machine_is_pcm7220() (machine_arch_type == MACH_TYPE_PCM7220) ++#else ++# define machine_is_pcm7220() (0) ++#endif ++ ++#ifdef CONFIG_MACH_GATEWAY7001 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_GATEWAY7001 ++# endif ++# define machine_is_gateway7001() (machine_arch_type == MACH_TYPE_GATEWAY7001) ++#else ++# define machine_is_gateway7001() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PCM027 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PCM027 ++# endif ++# define machine_is_pcm027() (machine_arch_type == MACH_TYPE_PCM027) ++#else ++# define machine_is_pcm027() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CMPXA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CMPXA ++# endif ++# define machine_is_cmpxa() (machine_arch_type == MACH_TYPE_CMPXA) ++#else ++# define machine_is_cmpxa() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ANUBIS ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ANUBIS ++# endif ++# define machine_is_anubis() (machine_arch_type == MACH_TYPE_ANUBIS) ++#else ++# define machine_is_anubis() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ITE8152 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ITE8152 ++# endif ++# define machine_is_ite8152() (machine_arch_type == MACH_TYPE_ITE8152) ++#else ++# define machine_is_ite8152() (0) ++#endif ++ ++#ifdef CONFIG_MACH_LPC3XXX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_LPC3XXX ++# endif ++# define machine_is_lpc3xxx() (machine_arch_type == MACH_TYPE_LPC3XXX) ++#else ++# define machine_is_lpc3xxx() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PUPPETEER ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PUPPETEER ++# endif ++# define machine_is_puppeteer() (machine_arch_type == MACH_TYPE_PUPPETEER) ++#else ++# define machine_is_puppeteer() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MACH_VADATECH ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MACH_VADATECH ++# endif ++# define machine_is_vt001() (machine_arch_type == MACH_TYPE_MACH_VADATECH) ++#else ++# define machine_is_vt001() (0) ++#endif ++ ++#ifdef CONFIG_MACH_E570 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_E570 ++# endif ++# define machine_is_e570() (machine_arch_type == MACH_TYPE_E570) ++#else ++# define machine_is_e570() (0) ++#endif ++ ++#ifdef CONFIG_MACH_X50 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_X50 ++# endif ++# define machine_is_x50() (machine_arch_type == MACH_TYPE_X50) ++#else ++# define machine_is_x50() (0) ++#endif ++ ++#ifdef CONFIG_MACH_RECON ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_RECON ++# endif ++# define machine_is_recon() (machine_arch_type == MACH_TYPE_RECON) ++#else ++# define machine_is_recon() (0) ++#endif ++ ++#ifdef CONFIG_MACH_XBOARDGP8 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_XBOARDGP8 ++# endif ++# define machine_is_xboardgp8() (machine_arch_type == MACH_TYPE_XBOARDGP8) ++#else ++# define machine_is_xboardgp8() (0) ++#endif ++ ++#ifdef CONFIG_MACH_FPIC2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_FPIC2 ++# endif ++# define machine_is_fpic2() (machine_arch_type == MACH_TYPE_FPIC2) ++#else ++# define machine_is_fpic2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AKITA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AKITA ++# endif ++# define machine_is_akita() (machine_arch_type == MACH_TYPE_AKITA) ++#else ++# define machine_is_akita() (0) ++#endif ++ ++#ifdef CONFIG_MACH_A81 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_A81 ++# endif ++# define machine_is_a81() (machine_arch_type == MACH_TYPE_A81) ++#else ++# define machine_is_a81() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SVM_SC25X ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SVM_SC25X ++# endif ++# define machine_is_svm_sc25x() (machine_arch_type == MACH_TYPE_SVM_SC25X) ++#else ++# define machine_is_svm_sc25x() (0) ++#endif ++ ++#ifdef CONFIG_MACH_VADATECH020 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_VADATECH020 ++# endif ++# define machine_is_vt020() (machine_arch_type == MACH_TYPE_VADATECH020) ++#else ++# define machine_is_vt020() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TLI ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TLI ++# endif ++# define machine_is_tli() (machine_arch_type == MACH_TYPE_TLI) ++#else ++# define machine_is_tli() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EDB9315LC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EDB9315LC ++# endif ++# define machine_is_edb9315lc() (machine_arch_type == MACH_TYPE_EDB9315LC) ++#else ++# define machine_is_edb9315lc() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PASSEC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PASSEC ++# endif ++# define machine_is_passec() (machine_arch_type == MACH_TYPE_PASSEC) ++#else ++# define machine_is_passec() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DS_TIGER ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DS_TIGER ++# endif ++# define machine_is_ds_tiger() (machine_arch_type == MACH_TYPE_DS_TIGER) ++#else ++# define machine_is_ds_tiger() (0) ++#endif ++ ++#ifdef CONFIG_MACH_E310 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_E310 ++# endif ++# define machine_is_e310() (machine_arch_type == MACH_TYPE_E310) ++#else ++# define machine_is_e310() (0) ++#endif ++ ++#ifdef CONFIG_MACH_E330 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_E330 ++# endif ++# define machine_is_e330() (machine_arch_type == MACH_TYPE_E330) ++#else ++# define machine_is_e330() (0) ++#endif ++ ++#ifdef CONFIG_MACH_RT3000 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_RT3000 ++# endif ++# define machine_is_rt3000() (machine_arch_type == MACH_TYPE_RT3000) ++#else ++# define machine_is_rt3000() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NOKIA770 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NOKIA770 ++# endif ++# define machine_is_nokia770() (machine_arch_type == MACH_TYPE_NOKIA770) ++#else ++# define machine_is_nokia770() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PNX0106 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PNX0106 ++# endif ++# define machine_is_pnx0106() (machine_arch_type == MACH_TYPE_PNX0106) ++#else ++# define machine_is_pnx0106() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HX21XX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HX21XX ++# endif ++# define machine_is_hx21xx() (machine_arch_type == MACH_TYPE_HX21XX) ++#else ++# define machine_is_hx21xx() (0) ++#endif ++ ++#ifdef CONFIG_MACH_FARADAY ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_FARADAY ++# endif ++# define machine_is_faraday() (machine_arch_type == MACH_TYPE_FARADAY) ++#else ++# define machine_is_faraday() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SBC9312 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SBC9312 ++# endif ++# define machine_is_sbc9312() (machine_arch_type == MACH_TYPE_SBC9312) ++#else ++# define machine_is_sbc9312() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BATMAN ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BATMAN ++# endif ++# define machine_is_batman() (machine_arch_type == MACH_TYPE_BATMAN) ++#else ++# define machine_is_batman() (0) ++#endif ++ ++#ifdef CONFIG_MACH_JPD201 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_JPD201 ++# endif ++# define machine_is_jpd201() (machine_arch_type == MACH_TYPE_JPD201) ++#else ++# define machine_is_jpd201() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MIPSA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MIPSA ++# endif ++# define machine_is_mipsa() (machine_arch_type == MACH_TYPE_MIPSA) ++#else ++# define machine_is_mipsa() (0) ++#endif ++ ++#ifdef CONFIG_MACH_KACOM ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_KACOM ++# endif ++# define machine_is_kacom() (machine_arch_type == MACH_TYPE_KACOM) ++#else ++# define machine_is_kacom() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SWARCOCPU ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SWARCOCPU ++# endif ++# define machine_is_swarcocpu() (machine_arch_type == MACH_TYPE_SWARCOCPU) ++#else ++# define machine_is_swarcocpu() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SWARCODSL ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SWARCODSL ++# endif ++# define machine_is_swarcodsl() (machine_arch_type == MACH_TYPE_SWARCODSL) ++#else ++# define machine_is_swarcodsl() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BLUEANGEL ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BLUEANGEL ++# endif ++# define machine_is_blueangel() (machine_arch_type == MACH_TYPE_BLUEANGEL) ++#else ++# define machine_is_blueangel() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HAIRYGRAMA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HAIRYGRAMA ++# endif ++# define machine_is_hairygrama() (machine_arch_type == MACH_TYPE_HAIRYGRAMA) ++#else ++# define machine_is_hairygrama() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BANFF ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BANFF ++# endif ++# define machine_is_banff() (machine_arch_type == MACH_TYPE_BANFF) ++#else ++# define machine_is_banff() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CARMEVA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CARMEVA ++# endif ++# define machine_is_carmeva() (machine_arch_type == MACH_TYPE_CARMEVA) ++#else ++# define machine_is_carmeva() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SAM255 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SAM255 ++# endif ++# define machine_is_sam255() (machine_arch_type == MACH_TYPE_SAM255) ++#else ++# define machine_is_sam255() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PPM10 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PPM10 ++# endif ++# define machine_is_ppm10() (machine_arch_type == MACH_TYPE_PPM10) ++#else ++# define machine_is_ppm10() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EDB9315A ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EDB9315A ++# endif ++# define machine_is_edb9315a() (machine_arch_type == MACH_TYPE_EDB9315A) ++#else ++# define machine_is_edb9315a() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SUNSET ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SUNSET ++# endif ++# define machine_is_sunset() (machine_arch_type == MACH_TYPE_SUNSET) ++#else ++# define machine_is_sunset() (0) ++#endif ++ ++#ifdef CONFIG_MACH_STARGATE2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_STARGATE2 ++# endif ++# define machine_is_stargate2() (machine_arch_type == MACH_TYPE_STARGATE2) ++#else ++# define machine_is_stargate2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_INTELMOTE2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_INTELMOTE2 ++# endif ++# define machine_is_intelmote2() (machine_arch_type == MACH_TYPE_INTELMOTE2) ++#else ++# define machine_is_intelmote2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TRIZEPS4 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TRIZEPS4 ++# endif ++# define machine_is_trizeps4() (machine_arch_type == MACH_TYPE_TRIZEPS4) ++#else ++# define machine_is_trizeps4() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MAINSTONE2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MAINSTONE2 ++# endif ++# define machine_is_mainstone2() (machine_arch_type == MACH_TYPE_MAINSTONE2) ++#else ++# define machine_is_mainstone2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EZ_IXP42X ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EZ_IXP42X ++# endif ++# define machine_is_ez_ixp42x() (machine_arch_type == MACH_TYPE_EZ_IXP42X) ++#else ++# define machine_is_ez_ixp42x() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TAPWAVE_ZODIAC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TAPWAVE_ZODIAC ++# endif ++# define machine_is_tapwave_zodiac() (machine_arch_type == MACH_TYPE_TAPWAVE_ZODIAC) ++#else ++# define machine_is_tapwave_zodiac() (0) ++#endif ++ ++#ifdef CONFIG_MACH_UNIVERSALMETER ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_UNIVERSALMETER ++# endif ++# define machine_is_universalmeter() (machine_arch_type == MACH_TYPE_UNIVERSALMETER) ++#else ++# define machine_is_universalmeter() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HICOARM9 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HICOARM9 ++# endif ++# define machine_is_hicoarm9() (machine_arch_type == MACH_TYPE_HICOARM9) ++#else ++# define machine_is_hicoarm9() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PNX4008 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PNX4008 ++# endif ++# define machine_is_pnx4008() (machine_arch_type == MACH_TYPE_PNX4008) ++#else ++# define machine_is_pnx4008() (0) ++#endif ++ ++#ifdef CONFIG_MACH_KWS6000 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_KWS6000 ++# endif ++# define machine_is_kws6000() (machine_arch_type == MACH_TYPE_KWS6000) ++#else ++# define machine_is_kws6000() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PORTUX920T ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PORTUX920T ++# endif ++# define machine_is_portux920t() (machine_arch_type == MACH_TYPE_PORTUX920T) ++#else ++# define machine_is_portux920t() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EZ_X5 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EZ_X5 ++# endif ++# define machine_is_ez_x5() (machine_arch_type == MACH_TYPE_EZ_X5) ++#else ++# define machine_is_ez_x5() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_RUDOLPH ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_RUDOLPH ++# endif ++# define machine_is_omap_rudolph() (machine_arch_type == MACH_TYPE_OMAP_RUDOLPH) ++#else ++# define machine_is_omap_rudolph() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CPUAT91 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CPUAT91 ++# endif ++# define machine_is_cpuat91() (machine_arch_type == MACH_TYPE_CPUAT91) ++#else ++# define machine_is_cpuat91() (0) ++#endif ++ ++#ifdef CONFIG_MACH_REA9200 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_REA9200 ++# endif ++# define machine_is_rea9200() (machine_arch_type == MACH_TYPE_REA9200) ++#else ++# define machine_is_rea9200() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ACTS_PUNE_SA1110 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ACTS_PUNE_SA1110 ++# endif ++# define machine_is_acts_pune_sa1110() (machine_arch_type == MACH_TYPE_ACTS_PUNE_SA1110) ++#else ++# define machine_is_acts_pune_sa1110() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IXP425 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IXP425 ++# endif ++# define machine_is_ixp425() (machine_arch_type == MACH_TYPE_IXP425) ++#else ++# define machine_is_ixp425() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ARGONPLUSODYSSEY ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ARGONPLUSODYSSEY ++# endif ++# define machine_is_i30030ads() (machine_arch_type == MACH_TYPE_ARGONPLUSODYSSEY) ++#else ++# define machine_is_i30030ads() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PERCH ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PERCH ++# endif ++# define machine_is_perch() (machine_arch_type == MACH_TYPE_PERCH) ++#else ++# define machine_is_perch() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EIS05R1 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EIS05R1 ++# endif ++# define machine_is_eis05r1() (machine_arch_type == MACH_TYPE_EIS05R1) ++#else ++# define machine_is_eis05r1() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PEPPERPAD ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PEPPERPAD ++# endif ++# define machine_is_pepperpad() (machine_arch_type == MACH_TYPE_PEPPERPAD) ++#else ++# define machine_is_pepperpad() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SB3010 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SB3010 ++# endif ++# define machine_is_sb3010() (machine_arch_type == MACH_TYPE_SB3010) ++#else ++# define machine_is_sb3010() (0) ++#endif ++ ++#ifdef CONFIG_MACH_RM9200 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_RM9200 ++# endif ++# define machine_is_rm9200() (machine_arch_type == MACH_TYPE_RM9200) ++#else ++# define machine_is_rm9200() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DMA03 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DMA03 ++# endif ++# define machine_is_dma03() (machine_arch_type == MACH_TYPE_DMA03) ++#else ++# define machine_is_dma03() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ROAD_S101 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ROAD_S101 ++# endif ++# define machine_is_road_s101() (machine_arch_type == MACH_TYPE_ROAD_S101) ++#else ++# define machine_is_road_s101() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IQ_NEXTGEN_A ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_A ++# endif ++# define machine_is_iq_nextgen_a() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_A) ++#else ++# define machine_is_iq_nextgen_a() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IQ_NEXTGEN_B ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_B ++# endif ++# define machine_is_iq_nextgen_b() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_B) ++#else ++# define machine_is_iq_nextgen_b() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IQ_NEXTGEN_C ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_C ++# endif ++# define machine_is_iq_nextgen_c() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_C) ++#else ++# define machine_is_iq_nextgen_c() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IQ_NEXTGEN_D ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_D ++# endif ++# define machine_is_iq_nextgen_d() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_D) ++#else ++# define machine_is_iq_nextgen_d() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IQ_NEXTGEN_E ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_E ++# endif ++# define machine_is_iq_nextgen_e() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_E) ++#else ++# define machine_is_iq_nextgen_e() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MALLOW_AT91 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MALLOW_AT91 ++# endif ++# define machine_is_mallow_at91() (machine_arch_type == MACH_TYPE_MALLOW_AT91) ++#else ++# define machine_is_mallow_at91() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CYBERTRACKER_I ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CYBERTRACKER_I ++# endif ++# define machine_is_cybertracker_i() (machine_arch_type == MACH_TYPE_CYBERTRACKER_I) ++#else ++# define machine_is_cybertracker_i() (0) ++#endif ++ ++#ifdef CONFIG_MACH_GESBC931X ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_GESBC931X ++# endif ++# define machine_is_gesbc931x() (machine_arch_type == MACH_TYPE_GESBC931X) ++#else ++# define machine_is_gesbc931x() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CENTIPAD ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CENTIPAD ++# endif ++# define machine_is_centipad() (machine_arch_type == MACH_TYPE_CENTIPAD) ++#else ++# define machine_is_centipad() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ARMSOC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ARMSOC ++# endif ++# define machine_is_armsoc() (machine_arch_type == MACH_TYPE_ARMSOC) ++#else ++# define machine_is_armsoc() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SE4200 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SE4200 ++# endif ++# define machine_is_se4200() (machine_arch_type == MACH_TYPE_SE4200) ++#else ++# define machine_is_se4200() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EMS197A ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EMS197A ++# endif ++# define machine_is_ems197a() (machine_arch_type == MACH_TYPE_EMS197A) ++#else ++# define machine_is_ems197a() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MICRO9 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MICRO9 ++# endif ++# define machine_is_micro9() (machine_arch_type == MACH_TYPE_MICRO9) ++#else ++# define machine_is_micro9() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MICRO9L ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MICRO9L ++# endif ++# define machine_is_micro9l() (machine_arch_type == MACH_TYPE_MICRO9L) ++#else ++# define machine_is_micro9l() (0) ++#endif ++ ++#ifdef CONFIG_MACH_UC5471DSP ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_UC5471DSP ++# endif ++# define machine_is_uc5471dsp() (machine_arch_type == MACH_TYPE_UC5471DSP) ++#else ++# define machine_is_uc5471dsp() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SJ5471ENG ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SJ5471ENG ++# endif ++# define machine_is_sj5471eng() (machine_arch_type == MACH_TYPE_SJ5471ENG) ++#else ++# define machine_is_sj5471eng() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CMPXA26X ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CMPXA26X ++# endif ++# define machine_is_none() (machine_arch_type == MACH_TYPE_CMPXA26X) ++#else ++# define machine_is_none() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NC ++# endif ++# define machine_is_nc1() (machine_arch_type == MACH_TYPE_NC) ++#else ++# define machine_is_nc1() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_PALMTE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_PALMTE ++# endif ++# define machine_is_omap_palmte() (machine_arch_type == MACH_TYPE_OMAP_PALMTE) ++#else ++# define machine_is_omap_palmte() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AJAX52X ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AJAX52X ++# endif ++# define machine_is_ajax52x() (machine_arch_type == MACH_TYPE_AJAX52X) ++#else ++# define machine_is_ajax52x() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SIRIUSTAR ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SIRIUSTAR ++# endif ++# define machine_is_siriustar() (machine_arch_type == MACH_TYPE_SIRIUSTAR) ++#else ++# define machine_is_siriustar() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IODATA_HDLG ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IODATA_HDLG ++# endif ++# define machine_is_iodata_hdlg() (machine_arch_type == MACH_TYPE_IODATA_HDLG) ++#else ++# define machine_is_iodata_hdlg() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AT91RM9200UTL ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AT91RM9200UTL ++# endif ++# define machine_is_at91rm9200utl() (machine_arch_type == MACH_TYPE_AT91RM9200UTL) ++#else ++# define machine_is_at91rm9200utl() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BIOSAFE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BIOSAFE ++# endif ++# define machine_is_biosafe() (machine_arch_type == MACH_TYPE_BIOSAFE) ++#else ++# define machine_is_biosafe() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MP1000 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MP1000 ++# endif ++# define machine_is_mp1000() (machine_arch_type == MACH_TYPE_MP1000) ++#else ++# define machine_is_mp1000() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PARSY ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PARSY ++# endif ++# define machine_is_parsy() (machine_arch_type == MACH_TYPE_PARSY) ++#else ++# define machine_is_parsy() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CCXP ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CCXP ++# endif ++# define machine_is_ccxp270() (machine_arch_type == MACH_TYPE_CCXP) ++#else ++# define machine_is_ccxp270() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_GSAMPLE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_GSAMPLE ++# endif ++# define machine_is_omap_gsample() (machine_arch_type == MACH_TYPE_OMAP_GSAMPLE) ++#else ++# define machine_is_omap_gsample() (0) ++#endif ++ ++#ifdef CONFIG_MACH_REALVIEW_EB ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_REALVIEW_EB ++# endif ++# define machine_is_realview_eb() (machine_arch_type == MACH_TYPE_REALVIEW_EB) ++#else ++# define machine_is_realview_eb() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SAMOA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SAMOA ++# endif ++# define machine_is_samoa() (machine_arch_type == MACH_TYPE_SAMOA) ++#else ++# define machine_is_samoa() (0) ++#endif ++ ++#ifdef CONFIG_MACH_T3XSCALE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_T3XSCALE ++# endif ++# define machine_is_t3xscale() (machine_arch_type == MACH_TYPE_T3XSCALE) ++#else ++# define machine_is_t3xscale() (0) ++#endif ++ ++#ifdef CONFIG_MACH_I878 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_I878 ++# endif ++# define machine_is_i878() (machine_arch_type == MACH_TYPE_I878) ++#else ++# define machine_is_i878() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BORZOI ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BORZOI ++# endif ++# define machine_is_borzoi() (machine_arch_type == MACH_TYPE_BORZOI) ++#else ++# define machine_is_borzoi() (0) ++#endif ++ ++#ifdef CONFIG_MACH_GECKO ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_GECKO ++# endif ++# define machine_is_gecko() (machine_arch_type == MACH_TYPE_GECKO) ++#else ++# define machine_is_gecko() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DS101 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DS101 ++# endif ++# define machine_is_ds101() (machine_arch_type == MACH_TYPE_DS101) ++#else ++# define machine_is_ds101() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_PALMTT2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_PALMTT2 ++# endif ++# define machine_is_omap_palmtt2() (machine_arch_type == MACH_TYPE_OMAP_PALMTT2) ++#else ++# define machine_is_omap_palmtt2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_XSCALE_PALMLD ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_XSCALE_PALMLD ++# endif ++# define machine_is_xscale_palmld() (machine_arch_type == MACH_TYPE_XSCALE_PALMLD) ++#else ++# define machine_is_xscale_palmld() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CC9C ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CC9C ++# endif ++# define machine_is_cc9c() (machine_arch_type == MACH_TYPE_CC9C) ++#else ++# define machine_is_cc9c() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SBC1670 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SBC1670 ++# endif ++# define machine_is_sbc1670() (machine_arch_type == MACH_TYPE_SBC1670) ++#else ++# define machine_is_sbc1670() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IXDP28X5 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IXDP28X5 ++# endif ++# define machine_is_ixdp28x5() (machine_arch_type == MACH_TYPE_IXDP28X5) ++#else ++# define machine_is_ixdp28x5() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_PALMTT ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_PALMTT ++# endif ++# define machine_is_omap_palmtt() (machine_arch_type == MACH_TYPE_OMAP_PALMTT) ++#else ++# define machine_is_omap_palmtt() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ML696K ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ML696K ++# endif ++# define machine_is_ml696k() (machine_arch_type == MACH_TYPE_ML696K) ++#else ++# define machine_is_ml696k() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ARCOM_ZEUS ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ARCOM_ZEUS ++# endif ++# define machine_is_arcom_zeus() (machine_arch_type == MACH_TYPE_ARCOM_ZEUS) ++#else ++# define machine_is_arcom_zeus() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OSIRIS ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OSIRIS ++# endif ++# define machine_is_osiris() (machine_arch_type == MACH_TYPE_OSIRIS) ++#else ++# define machine_is_osiris() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MAESTRO ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MAESTRO ++# endif ++# define machine_is_maestro() (machine_arch_type == MACH_TYPE_MAESTRO) ++#else ++# define machine_is_maestro() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TUNGE2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TUNGE2 ++# endif ++# define machine_is_tunge2() (machine_arch_type == MACH_TYPE_TUNGE2) ++#else ++# define machine_is_tunge2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IXBBM ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IXBBM ++# endif ++# define machine_is_ixbbm() (machine_arch_type == MACH_TYPE_IXBBM) ++#else ++# define machine_is_ixbbm() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MX27 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MX27 ++# endif ++# define machine_is_mx27ads() (machine_arch_type == MACH_TYPE_MX27) ++#else ++# define machine_is_mx27ads() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AX8004 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AX8004 ++# endif ++# define machine_is_ax8004() (machine_arch_type == MACH_TYPE_AX8004) ++#else ++# define machine_is_ax8004() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AT91SAM9261EK ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AT91SAM9261EK ++# endif ++# define machine_is_at91sam9261ek() (machine_arch_type == MACH_TYPE_AT91SAM9261EK) ++#else ++# define machine_is_at91sam9261ek() (0) ++#endif ++ ++#ifdef CONFIG_MACH_LOFT ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_LOFT ++# endif ++# define machine_is_loft() (machine_arch_type == MACH_TYPE_LOFT) ++#else ++# define machine_is_loft() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MAGPIE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MAGPIE ++# endif ++# define machine_is_magpie() (machine_arch_type == MACH_TYPE_MAGPIE) ++#else ++# define machine_is_magpie() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MX21 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MX21 ++# endif ++# define machine_is_mx21ads() (machine_arch_type == MACH_TYPE_MX21) ++#else ++# define machine_is_mx21ads() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MB87M3400 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MB87M3400 ++# endif ++# define machine_is_mb87m3400() (machine_arch_type == MACH_TYPE_MB87M3400) ++#else ++# define machine_is_mb87m3400() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MGUARD_DELTA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MGUARD_DELTA ++# endif ++# define machine_is_mguard_delta() (machine_arch_type == MACH_TYPE_MGUARD_DELTA) ++#else ++# define machine_is_mguard_delta() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DAVINCI_DVDP ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DAVINCI_DVDP ++# endif ++# define machine_is_davinci_dvdp() (machine_arch_type == MACH_TYPE_DAVINCI_DVDP) ++#else ++# define machine_is_davinci_dvdp() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HTCUNIVERSAL ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HTCUNIVERSAL ++# endif ++# define machine_is_htcuniversal() (machine_arch_type == MACH_TYPE_HTCUNIVERSAL) ++#else ++# define machine_is_htcuniversal() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TPAD ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TPAD ++# endif ++# define machine_is_tpad() (machine_arch_type == MACH_TYPE_TPAD) ++#else ++# define machine_is_tpad() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ROVERP3 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ROVERP3 ++# endif ++# define machine_is_roverp3() (machine_arch_type == MACH_TYPE_ROVERP3) ++#else ++# define machine_is_roverp3() (0) ++#endif ++ ++#ifdef CONFIG_MACH_JORNADA928 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_JORNADA928 ++# endif ++# define machine_is_jornada928() (machine_arch_type == MACH_TYPE_JORNADA928) ++#else ++# define machine_is_jornada928() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MV88FXX81 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MV88FXX81 ++# endif ++# define machine_is_mv88fxx81() (machine_arch_type == MACH_TYPE_MV88FXX81) ++#else ++# define machine_is_mv88fxx81() (0) ++#endif ++ ++#ifdef CONFIG_MACH_STMP36XX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_STMP36XX ++# endif ++# define machine_is_stmp36xx() (machine_arch_type == MACH_TYPE_STMP36XX) ++#else ++# define machine_is_stmp36xx() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SXNI79524 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SXNI79524 ++# endif ++# define machine_is_sxni79524() (machine_arch_type == MACH_TYPE_SXNI79524) ++#else ++# define machine_is_sxni79524() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AMS_DELTA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AMS_DELTA ++# endif ++# define machine_is_ams_delta() (machine_arch_type == MACH_TYPE_AMS_DELTA) ++#else ++# define machine_is_ams_delta() (0) ++#endif ++ ++#ifdef CONFIG_MACH_URANIUM ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_URANIUM ++# endif ++# define machine_is_uranium() (machine_arch_type == MACH_TYPE_URANIUM) ++#else ++# define machine_is_uranium() (0) ++#endif ++ ++#ifdef CONFIG_MACH_UCON ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_UCON ++# endif ++# define machine_is_ucon() (machine_arch_type == MACH_TYPE_UCON) ++#else ++# define machine_is_ucon() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NAS100D ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NAS100D ++# endif ++# define machine_is_nas100d() (machine_arch_type == MACH_TYPE_NAS100D) ++#else ++# define machine_is_nas100d() (0) ++#endif ++ ++#ifdef CONFIG_MACH_L083_1000 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_L083_1000 ++# endif ++# define machine_is_l083() (machine_arch_type == MACH_TYPE_L083_1000) ++#else ++# define machine_is_l083() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EZX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EZX ++# endif ++# define machine_is_ezx() (machine_arch_type == MACH_TYPE_EZX) ++#else ++# define machine_is_ezx() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PNX5220 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PNX5220 ++# endif ++# define machine_is_pnx5220() (machine_arch_type == MACH_TYPE_PNX5220) ++#else ++# define machine_is_pnx5220() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BUTTE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BUTTE ++# endif ++# define machine_is_butte() (machine_arch_type == MACH_TYPE_BUTTE) ++#else ++# define machine_is_butte() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SRM2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SRM2 ++# endif ++# define machine_is_srm2() (machine_arch_type == MACH_TYPE_SRM2) ++#else ++# define machine_is_srm2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DSBR ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DSBR ++# endif ++# define machine_is_dsbr() (machine_arch_type == MACH_TYPE_DSBR) ++#else ++# define machine_is_dsbr() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CRYSTALBALL ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CRYSTALBALL ++# endif ++# define machine_is_crystalball() (machine_arch_type == MACH_TYPE_CRYSTALBALL) ++#else ++# define machine_is_crystalball() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TINYPXA27X ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TINYPXA27X ++# endif ++# define machine_is_tinypxa27x() (machine_arch_type == MACH_TYPE_TINYPXA27X) ++#else ++# define machine_is_tinypxa27x() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HERBIE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HERBIE ++# endif ++# define machine_is_herbie() (machine_arch_type == MACH_TYPE_HERBIE) ++#else ++# define machine_is_herbie() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MAGICIAN ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MAGICIAN ++# endif ++# define machine_is_magician() (machine_arch_type == MACH_TYPE_MAGICIAN) ++#else ++# define machine_is_magician() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CM4002 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CM4002 ++# endif ++# define machine_is_cm4002() (machine_arch_type == MACH_TYPE_CM4002) ++#else ++# define machine_is_cm4002() (0) ++#endif ++ ++#ifdef CONFIG_MACH_B4 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_B4 ++# endif ++# define machine_is_b4() (machine_arch_type == MACH_TYPE_B4) ++#else ++# define machine_is_b4() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MAUI ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MAUI ++# endif ++# define machine_is_maui() (machine_arch_type == MACH_TYPE_MAUI) ++#else ++# define machine_is_maui() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CYBERTRACKER_G ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CYBERTRACKER_G ++# endif ++# define machine_is_cybertracker_g() (machine_arch_type == MACH_TYPE_CYBERTRACKER_G) ++#else ++# define machine_is_cybertracker_g() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NXDKN ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NXDKN ++# endif ++# define machine_is_nxdkn() (machine_arch_type == MACH_TYPE_NXDKN) ++#else ++# define machine_is_nxdkn() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MIO8390 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MIO8390 ++# endif ++# define machine_is_mio8390() (machine_arch_type == MACH_TYPE_MIO8390) ++#else ++# define machine_is_mio8390() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMI_BOARD ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMI_BOARD ++# endif ++# define machine_is_omi_board() (machine_arch_type == MACH_TYPE_OMI_BOARD) ++#else ++# define machine_is_omi_board() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MX21CIV ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MX21CIV ++# endif ++# define machine_is_mx21civ() (machine_arch_type == MACH_TYPE_MX21CIV) ++#else ++# define machine_is_mx21civ() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MAHI_CDAC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MAHI_CDAC ++# endif ++# define machine_is_mahi_cdac() (machine_arch_type == MACH_TYPE_MAHI_CDAC) ++#else ++# define machine_is_mahi_cdac() (0) ++#endif ++ ++#ifdef CONFIG_MACH_XSCALE_PALMTX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_XSCALE_PALMTX ++# endif ++# define machine_is_xscale_palmtx() (machine_arch_type == MACH_TYPE_XSCALE_PALMTX) ++#else ++# define machine_is_xscale_palmtx() (0) ++#endif ++ ++#ifdef CONFIG_MACH_S3C2413 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_S3C2413 ++# endif ++# define machine_is_s3c2413() (machine_arch_type == MACH_TYPE_S3C2413) ++#else ++# define machine_is_s3c2413() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SAMSYS_EP0 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SAMSYS_EP0 ++# endif ++# define machine_is_samsys_ep0() (machine_arch_type == MACH_TYPE_SAMSYS_EP0) ++#else ++# define machine_is_samsys_ep0() (0) ++#endif ++ ++#ifdef CONFIG_MACH_WG302V1 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_WG302V1 ++# endif ++# define machine_is_wg302v1() (machine_arch_type == MACH_TYPE_WG302V1) ++#else ++# define machine_is_wg302v1() (0) ++#endif ++ ++#ifdef CONFIG_MACH_WG302V2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_WG302V2 ++# endif ++# define machine_is_wg302v2() (machine_arch_type == MACH_TYPE_WG302V2) ++#else ++# define machine_is_wg302v2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EB42X ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EB42X ++# endif ++# define machine_is_eb42x() (machine_arch_type == MACH_TYPE_EB42X) ++#else ++# define machine_is_eb42x() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IQ331ES ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IQ331ES ++# endif ++# define machine_is_iq331es() (machine_arch_type == MACH_TYPE_IQ331ES) ++#else ++# define machine_is_iq331es() (0) ++#endif ++ ++#ifdef CONFIG_MACH_COSYDSP ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_COSYDSP ++# endif ++# define machine_is_cosydsp() (machine_arch_type == MACH_TYPE_COSYDSP) ++#else ++# define machine_is_cosydsp() (0) ++#endif ++ ++#ifdef CONFIG_MACH_UPLAT7D ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_UPLAT7D ++# endif ++# define machine_is_uplat7d_proto() (machine_arch_type == MACH_TYPE_UPLAT7D) ++#else ++# define machine_is_uplat7d_proto() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PTDAVINCI ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PTDAVINCI ++# endif ++# define machine_is_ptdavinci() (machine_arch_type == MACH_TYPE_PTDAVINCI) ++#else ++# define machine_is_ptdavinci() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MBUS ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MBUS ++# endif ++# define machine_is_mbus() (machine_arch_type == MACH_TYPE_MBUS) ++#else ++# define machine_is_mbus() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NADIA2VB ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NADIA2VB ++# endif ++# define machine_is_nadia2vb() (machine_arch_type == MACH_TYPE_NADIA2VB) ++#else ++# define machine_is_nadia2vb() (0) ++#endif ++ ++#ifdef CONFIG_MACH_R1000 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_R1000 ++# endif ++# define machine_is_r1000() (machine_arch_type == MACH_TYPE_R1000) ++#else ++# define machine_is_r1000() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HW90250 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HW90250 ++# endif ++# define machine_is_hw90250() (machine_arch_type == MACH_TYPE_HW90250) ++#else ++# define machine_is_hw90250() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_2430SDP ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_2430SDP ++# endif ++# define machine_is_omap_2430sdp() (machine_arch_type == MACH_TYPE_OMAP_2430SDP) ++#else ++# define machine_is_omap_2430sdp() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DAVINCI_EVM ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DAVINCI_EVM ++# endif ++# define machine_is_davinci_evm() (machine_arch_type == MACH_TYPE_DAVINCI_EVM) ++#else ++# define machine_is_davinci_evm() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_TORNADO ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_TORNADO ++# endif ++# define machine_is_omap_tornado() (machine_arch_type == MACH_TYPE_OMAP_TORNADO) ++#else ++# define machine_is_omap_tornado() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OLOCREEK ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OLOCREEK ++# endif ++# define machine_is_olocreek() (machine_arch_type == MACH_TYPE_OLOCREEK) ++#else ++# define machine_is_olocreek() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PALMZ72 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PALMZ72 ++# endif ++# define machine_is_palmz72() (machine_arch_type == MACH_TYPE_PALMZ72) ++#else ++# define machine_is_palmz72() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NXDB500 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NXDB500 ++# endif ++# define machine_is_nxdb500() (machine_arch_type == MACH_TYPE_NXDB500) ++#else ++# define machine_is_nxdb500() (0) ++#endif ++ ++#ifdef CONFIG_MACH_APF9328 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_APF9328 ++# endif ++# define machine_is_apf9328() (machine_arch_type == MACH_TYPE_APF9328) ++#else ++# define machine_is_apf9328() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_WIPOQ ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_WIPOQ ++# endif ++# define machine_is_omap_wipoq() (machine_arch_type == MACH_TYPE_OMAP_WIPOQ) ++#else ++# define machine_is_omap_wipoq() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_TWIP ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_TWIP ++# endif ++# define machine_is_omap_twip() (machine_arch_type == MACH_TYPE_OMAP_TWIP) ++#else ++# define machine_is_omap_twip() (0) ++#endif ++ ++#ifdef CONFIG_MACH_XSCALE_PALMTREO650 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_XSCALE_PALMTREO650 ++# endif ++# define machine_is_xscale_treo650() (machine_arch_type == MACH_TYPE_XSCALE_PALMTREO650) ++#else ++# define machine_is_xscale_treo650() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ACUMEN ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ACUMEN ++# endif ++# define machine_is_acumen() (machine_arch_type == MACH_TYPE_ACUMEN) ++#else ++# define machine_is_acumen() (0) ++#endif ++ ++#ifdef CONFIG_MACH_XP100 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_XP100 ++# endif ++# define machine_is_xp100() (machine_arch_type == MACH_TYPE_XP100) ++#else ++# define machine_is_xp100() (0) ++#endif ++ ++#ifdef CONFIG_MACH_FS2410 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_FS2410 ++# endif ++# define machine_is_fs2410() (machine_arch_type == MACH_TYPE_FS2410) ++#else ++# define machine_is_fs2410() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PXA270_CERF ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PXA270_CERF ++# endif ++# define machine_is_pxa270_cerf() (machine_arch_type == MACH_TYPE_PXA270_CERF) ++#else ++# define machine_is_pxa270_cerf() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SQ2FTLPALM ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SQ2FTLPALM ++# endif ++# define machine_is_sq2ftlpalm() (machine_arch_type == MACH_TYPE_SQ2FTLPALM) ++#else ++# define machine_is_sq2ftlpalm() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BSEMSERVER ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BSEMSERVER ++# endif ++# define machine_is_bsemserver() (machine_arch_type == MACH_TYPE_BSEMSERVER) ++#else ++# define machine_is_bsemserver() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NETCLIENT ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NETCLIENT ++# endif ++# define machine_is_netclient() (machine_arch_type == MACH_TYPE_NETCLIENT) ++#else ++# define machine_is_netclient() (0) ++#endif ++ ++#ifdef CONFIG_MACH_XSCALE_PALMTT5 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_XSCALE_PALMTT5 ++# endif ++# define machine_is_xscale_palmtt5() (machine_arch_type == MACH_TYPE_XSCALE_PALMTT5) ++#else ++# define machine_is_xscale_palmtt5() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_PALMTC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_PALMTC ++# endif ++# define machine_is_xscale_palmtc() (machine_arch_type == MACH_TYPE_OMAP_PALMTC) ++#else ++# define machine_is_xscale_palmtc() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_APOLLON ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_APOLLON ++# endif ++# define machine_is_omap_apollon() (machine_arch_type == MACH_TYPE_OMAP_APOLLON) ++#else ++# define machine_is_omap_apollon() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ARGONLVEVB ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ARGONLVEVB ++# endif ++# define machine_is_mxc30030evb() (machine_arch_type == MACH_TYPE_ARGONLVEVB) ++#else ++# define machine_is_mxc30030evb() (0) ++#endif ++ ++#ifdef CONFIG_MACH_REA_2D ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_REA_2D ++# endif ++# define machine_is_rea_2d() (machine_arch_type == MACH_TYPE_REA_2D) ++#else ++# define machine_is_rea_2d() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TI3E524 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TI3E524 ++# endif ++# define machine_is_eti3e524() (machine_arch_type == MACH_TYPE_TI3E524) ++#else ++# define machine_is_eti3e524() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ATEB9200 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ATEB9200 ++# endif ++# define machine_is_ateb9200() (machine_arch_type == MACH_TYPE_ATEB9200) ++#else ++# define machine_is_ateb9200() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AUCKLAND ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AUCKLAND ++# endif ++# define machine_is_auckland() (machine_arch_type == MACH_TYPE_AUCKLAND) ++#else ++# define machine_is_auckland() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AK3320M ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AK3320M ++# endif ++# define machine_is_ak3220m() (machine_arch_type == MACH_TYPE_AK3320M) ++#else ++# define machine_is_ak3220m() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DURAMAX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DURAMAX ++# endif ++# define machine_is_duramax() (machine_arch_type == MACH_TYPE_DURAMAX) ++#else ++# define machine_is_duramax() (0) ++#endif ++ ++#ifdef CONFIG_MACH_N35 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_N35 ++# endif ++# define machine_is_n35() (machine_arch_type == MACH_TYPE_N35) ++#else ++# define machine_is_n35() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PRONGHORN ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PRONGHORN ++# endif ++# define machine_is_pronghorn() (machine_arch_type == MACH_TYPE_PRONGHORN) ++#else ++# define machine_is_pronghorn() (0) ++#endif ++ ++#ifdef CONFIG_MACH_FUNDY ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_FUNDY ++# endif ++# define machine_is_fundy() (machine_arch_type == MACH_TYPE_FUNDY) ++#else ++# define machine_is_fundy() (0) ++#endif ++ ++#ifdef CONFIG_MACH_LOGICPD_PXA270 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_LOGICPD_PXA270 ++# endif ++# define machine_is_logicpd_pxa270() (machine_arch_type == MACH_TYPE_LOGICPD_PXA270) ++#else ++# define machine_is_logicpd_pxa270() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CPU777 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CPU777 ++# endif ++# define machine_is_cpu777() (machine_arch_type == MACH_TYPE_CPU777) ++#else ++# define machine_is_cpu777() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SIMICON9201 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SIMICON9201 ++# endif ++# define machine_is_simicon9201() (machine_arch_type == MACH_TYPE_SIMICON9201) ++#else ++# define machine_is_simicon9201() (0) ++#endif ++ ++#ifdef CONFIG_MACH_LEAP2_HPM ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_LEAP2_HPM ++# endif ++# define machine_is_leap2_hpm() (machine_arch_type == MACH_TYPE_LEAP2_HPM) ++#else ++# define machine_is_leap2_hpm() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CM922TXA10 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CM922TXA10 ++# endif ++# define machine_is_cm922txa10() (machine_arch_type == MACH_TYPE_CM922TXA10) ++#else ++# define machine_is_cm922txa10() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PXA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PXA ++# endif ++# define machine_is_sandgate() (machine_arch_type == MACH_TYPE_PXA) ++#else ++# define machine_is_sandgate() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SANDGATE2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SANDGATE2 ++# endif ++# define machine_is_sandgate2() (machine_arch_type == MACH_TYPE_SANDGATE2) ++#else ++# define machine_is_sandgate2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SANDGATE2G ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SANDGATE2G ++# endif ++# define machine_is_sandgate2g() (machine_arch_type == MACH_TYPE_SANDGATE2G) ++#else ++# define machine_is_sandgate2g() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SANDGATE2P ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SANDGATE2P ++# endif ++# define machine_is_sandgate2p() (machine_arch_type == MACH_TYPE_SANDGATE2P) ++#else ++# define machine_is_sandgate2p() (0) ++#endif ++ ++#ifdef CONFIG_MACH_FRED_JACK ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_FRED_JACK ++# endif ++# define machine_is_fred_jack() (machine_arch_type == MACH_TYPE_FRED_JACK) ++#else ++# define machine_is_fred_jack() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TTG_COLOR1 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TTG_COLOR1 ++# endif ++# define machine_is_ttg_color1() (machine_arch_type == MACH_TYPE_TTG_COLOR1) ++#else ++# define machine_is_ttg_color1() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NXEB500HMI ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NXEB500HMI ++# endif ++# define machine_is_nxeb500hmi() (machine_arch_type == MACH_TYPE_NXEB500HMI) ++#else ++# define machine_is_nxeb500hmi() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NETDCU8 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NETDCU8 ++# endif ++# define machine_is_netdcu8() (machine_arch_type == MACH_TYPE_NETDCU8) ++#else ++# define machine_is_netdcu8() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ML675050_CPU_BOA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ML675050_CPU_BOA ++# endif ++# define machine_is_ml675050_cpu_boa() (machine_arch_type == MACH_TYPE_ML675050_CPU_BOA) ++#else ++# define machine_is_ml675050_cpu_boa() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NG_FVX538 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NG_FVX538 ++# endif ++# define machine_is_ng_fvx538() (machine_arch_type == MACH_TYPE_NG_FVX538) ++#else ++# define machine_is_ng_fvx538() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NG_FVS338 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NG_FVS338 ++# endif ++# define machine_is_ng_fvs338() (machine_arch_type == MACH_TYPE_NG_FVS338) ++#else ++# define machine_is_ng_fvs338() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PNX4103 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PNX4103 ++# endif ++# define machine_is_pnx4103() (machine_arch_type == MACH_TYPE_PNX4103) ++#else ++# define machine_is_pnx4103() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HESDB ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HESDB ++# endif ++# define machine_is_hesdb() (machine_arch_type == MACH_TYPE_HESDB) ++#else ++# define machine_is_hesdb() (0) ++#endif ++ ++#ifdef CONFIG_MACH_XSILO ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_XSILO ++# endif ++# define machine_is_xsilo() (machine_arch_type == MACH_TYPE_XSILO) ++#else ++# define machine_is_xsilo() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ESPRESSO ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ESPRESSO ++# endif ++# define machine_is_espresso() (machine_arch_type == MACH_TYPE_ESPRESSO) ++#else ++# define machine_is_espresso() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EMLC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EMLC ++# endif ++# define machine_is_emlc() (machine_arch_type == MACH_TYPE_EMLC) ++#else ++# define machine_is_emlc() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SISTERON ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SISTERON ++# endif ++# define machine_is_sisteron() (machine_arch_type == MACH_TYPE_SISTERON) ++#else ++# define machine_is_sisteron() (0) ++#endif ++ ++#ifdef CONFIG_MACH_RX1950 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_RX1950 ++# endif ++# define machine_is_rx1950() (machine_arch_type == MACH_TYPE_RX1950) ++#else ++# define machine_is_rx1950() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TSC_VENUS ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TSC_VENUS ++# endif ++# define machine_is_tsc_venus() (machine_arch_type == MACH_TYPE_TSC_VENUS) ++#else ++# define machine_is_tsc_venus() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DS101J ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DS101J ++# endif ++# define machine_is_ds101j() (machine_arch_type == MACH_TYPE_DS101J) ++#else ++# define machine_is_ds101j() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MXC30030ADS ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MXC30030ADS ++# endif ++# define machine_is_mxc30030ads() (machine_arch_type == MACH_TYPE_MXC30030ADS) ++#else ++# define machine_is_mxc30030ads() (0) ++#endif ++ ++#ifdef CONFIG_MACH_FUJITSU_WIMAXSOC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_FUJITSU_WIMAXSOC ++# endif ++# define machine_is_fujitsu_wimaxsoc() (machine_arch_type == MACH_TYPE_FUJITSU_WIMAXSOC) ++#else ++# define machine_is_fujitsu_wimaxsoc() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DUALPCMODEM ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DUALPCMODEM ++# endif ++# define machine_is_dualpcmodem() (machine_arch_type == MACH_TYPE_DUALPCMODEM) ++#else ++# define machine_is_dualpcmodem() (0) ++#endif ++ ++#ifdef CONFIG_MACH_GESBC9312 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_GESBC9312 ++# endif ++# define machine_is_gesbc9312() (machine_arch_type == MACH_TYPE_GESBC9312) ++#else ++# define machine_is_gesbc9312() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HTCAPACHE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HTCAPACHE ++# endif ++# define machine_is_htcapache() (machine_arch_type == MACH_TYPE_HTCAPACHE) ++#else ++# define machine_is_htcapache() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IXDP435 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IXDP435 ++# endif ++# define machine_is_ixdp435() (machine_arch_type == MACH_TYPE_IXDP435) ++#else ++# define machine_is_ixdp435() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CATPROVT100 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CATPROVT100 ++# endif ++# define machine_is_catprovt100() (machine_arch_type == MACH_TYPE_CATPROVT100) ++#else ++# define machine_is_catprovt100() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PICOTUX1XX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PICOTUX1XX ++# endif ++# define machine_is_picotux1xx() (machine_arch_type == MACH_TYPE_PICOTUX1XX) ++#else ++# define machine_is_picotux1xx() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PICOTUX2XX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PICOTUX2XX ++# endif ++# define machine_is_picotux2xx() (machine_arch_type == MACH_TYPE_PICOTUX2XX) ++#else ++# define machine_is_picotux2xx() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DSMG600 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DSMG600 ++# endif ++# define machine_is_dsmg600() (machine_arch_type == MACH_TYPE_DSMG600) ++#else ++# define machine_is_dsmg600() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EMPC2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EMPC2 ++# endif ++# define machine_is_empc2() (machine_arch_type == MACH_TYPE_EMPC2) ++#else ++# define machine_is_empc2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_VENTURA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_VENTURA ++# endif ++# define machine_is_ventura() (machine_arch_type == MACH_TYPE_VENTURA) ++#else ++# define machine_is_ventura() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PHIDGET_SBC ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PHIDGET_SBC ++# endif ++# define machine_is_phidget_sbc() (machine_arch_type == MACH_TYPE_PHIDGET_SBC) ++#else ++# define machine_is_phidget_sbc() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IJ3K ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IJ3K ++# endif ++# define machine_is_ij3k() (machine_arch_type == MACH_TYPE_IJ3K) ++#else ++# define machine_is_ij3k() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PISGAH ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PISGAH ++# endif ++# define machine_is_pisgah() (machine_arch_type == MACH_TYPE_PISGAH) ++#else ++# define machine_is_pisgah() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_FSAMPLE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_FSAMPLE ++# endif ++# define machine_is_omap_fsample() (machine_arch_type == MACH_TYPE_OMAP_FSAMPLE) ++#else ++# define machine_is_omap_fsample() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SG720 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SG720 ++# endif ++# define machine_is_sg720() (machine_arch_type == MACH_TYPE_SG720) ++#else ++# define machine_is_sg720() (0) ++#endif ++ ++#ifdef CONFIG_MACH_REDFOX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_REDFOX ++# endif ++# define machine_is_redfox() (machine_arch_type == MACH_TYPE_REDFOX) ++#else ++# define machine_is_redfox() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MYSH_EP9315_1 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MYSH_EP9315_1 ++# endif ++# define machine_is_mysh_ep9315_1() (machine_arch_type == MACH_TYPE_MYSH_EP9315_1) ++#else ++# define machine_is_mysh_ep9315_1() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TPF106 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TPF106 ++# endif ++# define machine_is_tpf106() (machine_arch_type == MACH_TYPE_TPF106) ++#else ++# define machine_is_tpf106() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AT91RM9200KG ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AT91RM9200KG ++# endif ++# define machine_is_at91rm9200kg() (machine_arch_type == MACH_TYPE_AT91RM9200KG) ++#else ++# define machine_is_at91rm9200kg() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SLEDB ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SLEDB ++# endif ++# define machine_is_racemt2() (machine_arch_type == MACH_TYPE_SLEDB) ++#else ++# define machine_is_racemt2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ONTRACK ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ONTRACK ++# endif ++# define machine_is_ontrack() (machine_arch_type == MACH_TYPE_ONTRACK) ++#else ++# define machine_is_ontrack() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PM1200 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PM1200 ++# endif ++# define machine_is_pm1200() (machine_arch_type == MACH_TYPE_PM1200) ++#else ++# define machine_is_pm1200() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ESS24XXX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ESS24XXX ++# endif ++# define machine_is_ess24562() (machine_arch_type == MACH_TYPE_ESS24XXX) ++#else ++# define machine_is_ess24562() (0) ++#endif ++ ++#ifdef CONFIG_MACH_COREMP7 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_COREMP7 ++# endif ++# define machine_is_coremp7() (machine_arch_type == MACH_TYPE_COREMP7) ++#else ++# define machine_is_coremp7() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NEXCODER_6446 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NEXCODER_6446 ++# endif ++# define machine_is_nexcoder_6446() (machine_arch_type == MACH_TYPE_NEXCODER_6446) ++#else ++# define machine_is_nexcoder_6446() (0) ++#endif ++ ++#ifdef CONFIG_MACH_STVC8380 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_STVC8380 ++# endif ++# define machine_is_stvc8380() (machine_arch_type == MACH_TYPE_STVC8380) ++#else ++# define machine_is_stvc8380() (0) ++#endif ++ ++#ifdef CONFIG_MACH_TEKLYNX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_TEKLYNX ++# endif ++# define machine_is_teklynx() (machine_arch_type == MACH_TYPE_TEKLYNX) ++#else ++# define machine_is_teklynx() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CARBONADO ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CARBONADO ++# endif ++# define machine_is_carbonado() (machine_arch_type == MACH_TYPE_CARBONADO) ++#else ++# define machine_is_carbonado() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SYSMOS_MP730 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SYSMOS_MP730 ++# endif ++# define machine_is_sysmos_mp730() (machine_arch_type == MACH_TYPE_SYSMOS_MP730) ++#else ++# define machine_is_sysmos_mp730() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SNAPPER_CL15 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SNAPPER_CL15 ++# endif ++# define machine_is_snapper_cl15() (machine_arch_type == MACH_TYPE_SNAPPER_CL15) ++#else ++# define machine_is_snapper_cl15() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PGIGIM ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PGIGIM ++# endif ++# define machine_is_pgigim() (machine_arch_type == MACH_TYPE_PGIGIM) ++#else ++# define machine_is_pgigim() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PTX9160P2 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PTX9160P2 ++# endif ++# define machine_is_ptx9160p2() (machine_arch_type == MACH_TYPE_PTX9160P2) ++#else ++# define machine_is_ptx9160p2() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DCORE1 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DCORE1 ++# endif ++# define machine_is_dcore1() (machine_arch_type == MACH_TYPE_DCORE1) ++#else ++# define machine_is_dcore1() (0) ++#endif ++ ++#ifdef CONFIG_MACH_VICTORPXA ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_VICTORPXA ++# endif ++# define machine_is_victorpxa() (machine_arch_type == MACH_TYPE_VICTORPXA) ++#else ++# define machine_is_victorpxa() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MX2DTB ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MX2DTB ++# endif ++# define machine_is_mx2dtb() (machine_arch_type == MACH_TYPE_MX2DTB) ++#else ++# define machine_is_mx2dtb() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PXA_IREX_ER0100 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PXA_IREX_ER0100 ++# endif ++# define machine_is_pxa_irex_er0100() (machine_arch_type == MACH_TYPE_PXA_IREX_ER0100) ++#else ++# define machine_is_pxa_irex_er0100() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_PALMZ71 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_PALMZ71 ++# endif ++# define machine_is_omap_palmz71() (machine_arch_type == MACH_TYPE_OMAP_PALMZ71) ++#else ++# define machine_is_omap_palmz71() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BARTEC_DEG ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BARTEC_DEG ++# endif ++# define machine_is_bartec_deg() (machine_arch_type == MACH_TYPE_BARTEC_DEG) ++#else ++# define machine_is_bartec_deg() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HW50251 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HW50251 ++# endif ++# define machine_is_hw50251() (machine_arch_type == MACH_TYPE_HW50251) ++#else ++# define machine_is_hw50251() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IBOX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IBOX ++# endif ++# define machine_is_ibox() (machine_arch_type == MACH_TYPE_IBOX) ++#else ++# define machine_is_ibox() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ATLASLH7A404 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ATLASLH7A404 ++# endif ++# define machine_is_atlaslh7a404() (machine_arch_type == MACH_TYPE_ATLASLH7A404) ++#else ++# define machine_is_atlaslh7a404() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PT2026 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PT2026 ++# endif ++# define machine_is_pt2026() (machine_arch_type == MACH_TYPE_PT2026) ++#else ++# define machine_is_pt2026() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HTCALPINE ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HTCALPINE ++# endif ++# define machine_is_htcalpine() (machine_arch_type == MACH_TYPE_HTCALPINE) ++#else ++# define machine_is_htcalpine() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BARTEC_VTU ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BARTEC_VTU ++# endif ++# define machine_is_bartec_vtu() (machine_arch_type == MACH_TYPE_BARTEC_VTU) ++#else ++# define machine_is_bartec_vtu() (0) ++#endif ++ ++#ifdef CONFIG_MACH_VCOREII ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_VCOREII ++# endif ++# define machine_is_vcoreii() (machine_arch_type == MACH_TYPE_VCOREII) ++#else ++# define machine_is_vcoreii() (0) ++#endif ++ ++#ifdef CONFIG_MACH_PDNB3 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_PDNB3 ++# endif ++# define machine_is_pdnb3() (machine_arch_type == MACH_TYPE_PDNB3) ++#else ++# define machine_is_pdnb3() (0) ++#endif ++ ++#ifdef CONFIG_MACH_HTCBEETLES ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_HTCBEETLES ++# endif ++# define machine_is_htcbeetles() (machine_arch_type == MACH_TYPE_HTCBEETLES) ++#else ++# define machine_is_htcbeetles() (0) ++#endif ++ ++#ifdef CONFIG_MACH_S3C6400 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_S3C6400 ++# endif ++# define machine_is_s3c6400() (machine_arch_type == MACH_TYPE_S3C6400) ++#else ++# define machine_is_s3c6400() (0) ++#endif ++ ++#ifdef CONFIG_MACH_S3C2443 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_S3C2443 ++# endif ++# define machine_is_s3c2443() (machine_arch_type == MACH_TYPE_S3C2443) ++#else ++# define machine_is_s3c2443() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OMAP_LDK ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OMAP_LDK ++# endif ++# define machine_is_omap_ldk() (machine_arch_type == MACH_TYPE_OMAP_LDK) ++#else ++# define machine_is_omap_ldk() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SMDK2460 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SMDK2460 ++# endif ++# define machine_is_smdk2460() (machine_arch_type == MACH_TYPE_SMDK2460) ++#else ++# define machine_is_smdk2460() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SMDK2440 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SMDK2440 ++# endif ++# define machine_is_smdk2440() (machine_arch_type == MACH_TYPE_SMDK2440) ++#else ++# define machine_is_smdk2440() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SMDK2412 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SMDK2412 ++# endif ++# define machine_is_smdk2412() (machine_arch_type == MACH_TYPE_SMDK2412) ++#else ++# define machine_is_smdk2412() (0) ++#endif ++ ++#ifdef CONFIG_MACH_WEBBOX ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_WEBBOX ++# endif ++# define machine_is_webbox() (machine_arch_type == MACH_TYPE_WEBBOX) ++#else ++# define machine_is_webbox() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CWWNDP ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CWWNDP ++# endif ++# define machine_is_cwwndp() (machine_arch_type == MACH_TYPE_CWWNDP) ++#else ++# define machine_is_cwwndp() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DRAGON ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DRAGON ++# endif ++# define machine_is_dragon() (machine_arch_type == MACH_TYPE_DRAGON) ++#else ++# define machine_is_dragon() (0) ++#endif ++ ++#ifdef CONFIG_MACH_OPENDO_CPU_BOARD ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_OPENDO_CPU_BOARD ++# endif ++# define machine_is_opendo_cpu_board() (machine_arch_type == MACH_TYPE_OPENDO_CPU_BOARD) ++#else ++# define machine_is_opendo_cpu_board() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CCM2200 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CCM2200 ++# endif ++# define machine_is_ccm2200() (machine_arch_type == MACH_TYPE_CCM2200) ++#else ++# define machine_is_ccm2200() (0) ++#endif ++ ++#ifdef CONFIG_MACH_ETWARM ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_ETWARM ++# endif ++# define machine_is_etwarm() (machine_arch_type == MACH_TYPE_ETWARM) ++#else ++# define machine_is_etwarm() (0) ++#endif ++ ++#ifdef CONFIG_MACH_M93030 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_M93030 ++# endif ++# define machine_is_m93030() (machine_arch_type == MACH_TYPE_M93030) ++#else ++# define machine_is_m93030() (0) ++#endif ++ ++#ifdef CONFIG_MACH_CC7U ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_CC7U ++# endif ++# define machine_is_cc7u() (machine_arch_type == MACH_TYPE_CC7U) ++#else ++# define machine_is_cc7u() (0) ++#endif ++ ++#ifdef CONFIG_MACH_MTT_RANGER ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_MTT_RANGER ++# endif ++# define machine_is_mtt_ranger() (machine_arch_type == MACH_TYPE_MTT_RANGER) ++#else ++# define machine_is_mtt_ranger() (0) ++#endif ++ ++#ifdef CONFIG_MACH_NEXUS ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_NEXUS ++# endif ++# define machine_is_nexus() (machine_arch_type == MACH_TYPE_NEXUS) ++#else ++# define machine_is_nexus() (0) ++#endif ++ ++#ifdef CONFIG_MACH_DESMAN ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_DESMAN ++# endif ++# define machine_is_desman() (machine_arch_type == MACH_TYPE_DESMAN) ++#else ++# define machine_is_desman() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BKDE303 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BKDE303 ++# endif ++# define machine_is_bkde303() (machine_arch_type == MACH_TYPE_BKDE303) ++#else ++# define machine_is_bkde303() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SMDK2413 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SMDK2413 ++# endif ++# define machine_is_smdk2413() (machine_arch_type == MACH_TYPE_SMDK2413) ++#else ++# define machine_is_smdk2413() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AML_M7200 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AML_M7200 ++# endif ++# define machine_is_aml_m7200() (machine_arch_type == MACH_TYPE_AML_M7200) ++#else ++# define machine_is_aml_m7200() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AML_M5900 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AML_M5900 ++# endif ++# define machine_is_aml_m5900() (machine_arch_type == MACH_TYPE_AML_M5900) ++#else ++# define machine_is_aml_m5900() (0) ++#endif ++ ++#ifdef CONFIG_MACH_SG640 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SG640 ++# endif ++# define machine_is_sg640() (machine_arch_type == MACH_TYPE_SG640) ++#else ++# define machine_is_sg640() (0) ++#endif ++ ++#ifdef CONFIG_MACH_EDG79524 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_EDG79524 ++# endif ++# define machine_is_edg79524() (machine_arch_type == MACH_TYPE_EDG79524) ++#else ++# define machine_is_edg79524() (0) ++#endif ++ ++#ifdef CONFIG_MACH_AI2410 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_AI2410 ++# endif ++# define machine_is_ai2410() (machine_arch_type == MACH_TYPE_AI2410) ++#else ++# define machine_is_ai2410() (0) ++#endif ++ ++#ifdef CONFIG_MACH_IXP465 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_IXP465 ++# endif ++# define machine_is_ixp465() (machine_arch_type == MACH_TYPE_IXP465) ++#else ++# define machine_is_ixp465() (0) ++#endif ++ ++#ifdef CONFIG_MACH_BALLOON3 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_BALLOON3 ++# endif ++# define machine_is_balloon3() (machine_arch_type == MACH_TYPE_BALLOON3) ++#else ++# define machine_is_balloon3() (0) ++#endif ++ ++#ifdef CONFIG_MACH_QT2410 ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_QT2410 ++# endif ++# define machine_is_qt2410() (machine_arch_type == MACH_TYPE_QT2410) ++#else ++# define machine_is_qt2410() (0) ++#endif ++ + /* + * These have not yet been registered + */ +diff --git a/include/configs/qt2410.h b/include/configs/qt2410.h +new file mode 100644 +index 0000000..627f365 +--- /dev/null ++++ b/include/configs/qt2410.h +@@ -0,0 +1,256 @@ ++/* ++ * (C) Copyright 2002 ++ * Sysgo Real-Time Solutions, GmbH ++ * Marius Groeger ++ * Gary Jennejohn ++ * David Mueller ++ * ++ * Configuation settings for the SAMSUNG SMDK2410 board. ++ * ++ * See file CREDITS for list of people who contributed to this ++ * project. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#if 0 ++/* If we want to start u-boot from usb bootloader in NOR flash */ ++#define CONFIG_SKIP_RELOCATE_UBOOT 1 ++#define CONFIG_SKIP_LOWLEVEL_INIT 1 ++#else ++/* If we want to start u-boot directly from within NAND flash */ ++#define CONFIG_S3C2410_NAND_BOOT 1 ++#endif ++ ++/* ++ * High Level Configuration Options ++ * (easy to change) ++ */ ++#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ ++#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ ++#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ ++ ++/* input clock of PLL */ ++#define CONFIG_SYS_CLK_FREQ 12000000/* the SMDK2410 has 12MHz input clock */ ++ ++ ++#define USE_920T_MMU 1 ++#define CONFIG_USE_IRQ 1 ++//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ ++ ++/* ++ * Size of malloc() pool ++ */ ++#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) ++#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ ++ ++/* ++ * Hardware drivers ++ */ ++#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ ++#define CS8900_BASE 0x19000300 ++#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ ++ ++/* ++ * select serial console configuration ++ */ ++#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK2410 */ ++#define CONFIG_HWFLOW 1 ++ ++/************************************************************ ++ * RTC ++ ************************************************************/ ++#define CONFIG_RTC_S3C24X0 1 ++ ++/* allow to overwrite serial and ethaddr */ ++#define CONFIG_ENV_OVERWRITE ++ ++#define CONFIG_BAUDRATE 115200 ++ ++/*********************************************************** ++ * Command definition ++ ***********************************************************/ ++#define CONFIG_COMMANDS \ ++ (CONFIG_CMD_DFL | \ ++ CFG_CMD_BSP | \ ++ CFG_CMD_CACHE | \ ++ CFG_CMD_DATE | \ ++ CFG_CMD_DHCP | \ ++ CFG_CMD_DIAG | \ ++ CFG_CMD_ELF | \ ++ CFG_CMD_EXT2 | \ ++ CFG_CMD_FAT | \ ++ CFG_CMD_HWFLOW | \ ++ /* CFG_CMD_IDE | */ \ ++ /* CFG_CMD_IRQ | */ \ ++ CFG_CMD_JFFS2 | \ ++ CFG_CMD_MMC | \ ++ CFG_CMD_NAND | \ ++ CFG_CMD_PING | \ ++ CFG_CMD_PORTIO | \ ++ CFG_CMD_REGINFO | \ ++ CFG_CMD_SAVES | \ ++ CFG_CMD_USB) ++ ++/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ ++#include ++ ++#define CONFIG_BOOTDELAY 3 ++#define CONFIG_BOOTARGS "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10" ++/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */ ++#define CONFIG_NETMASK 255.255.255.0 ++#define CONFIG_IPADDR 10.0.0.110 ++#define CONFIG_SERVERIP 10.0.0.1 ++/*#define CONFIG_BOOTFILE "elinos-lart" */ ++#define CONFIG_BOOTCOMMAND "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000" ++ ++#define CONFIG_DOS_PARTITION 1 ++ ++#if (CONFIG_COMMANDS & CFG_CMD_KGDB) ++#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ ++/* what's this ? it's not used anywhere */ ++#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ ++#endif ++ ++/* ++ * Miscellaneous configurable options ++ */ ++#define CFG_LONGHELP /* undef to save memory */ ++#define CFG_PROMPT "QT2410 # " /* Monitor Command Prompt */ ++#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ ++#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ ++#define CFG_MAXARGS 16 /* max number of command args */ ++#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ ++ ++#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ ++#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ ++ ++#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ ++ ++#define CFG_LOAD_ADDR 0x33000000 /* default load address */ ++ ++/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ ++/* it to wrap 100 times (total 1562500) to get 1 sec. */ ++#define CFG_HZ 1562500 ++ ++/* valid baudrates */ ++#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } ++ ++/*----------------------------------------------------------------------- ++ * Stack sizes ++ * ++ * The stack sizes are set up in start.S using the settings below ++ */ ++#define CONFIG_STACKSIZE (128*1024) /* regular stack */ ++#ifdef CONFIG_USE_IRQ ++#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ ++#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ ++#endif ++ ++/* IDE/ATA config */ ++ ++#if 0 ++#define CFG_IDE_MAXBUS 1 ++#define CFG_IDE_MAXDEVICE 2 ++#define CFG_IDE_PREINIT 0 ++ ++#define CFG_ATA_BASE_ADDR ++#endif ++ ++#define CONFIG_USB_OHCI 1 ++ ++/*----------------------------------------------------------------------- ++ * Physical Memory Map ++ */ ++#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ ++#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ ++#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ ++#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ ++ ++#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ ++ ++#define CFG_FLASH_BASE PHYS_FLASH_1 ++ ++/*----------------------------------------------------------------------- ++ * FLASH and environment organization ++ */ ++ ++#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */ ++#if 0 ++#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */ ++#endif ++ ++#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ ++#ifdef CONFIG_AMD_LV800 ++#define PHYS_FLASH_SIZE 0x00100000 /* 1MB */ ++#define CFG_MAX_FLASH_SECT (19) /* max number of sectors on one chip */ ++#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */ ++#endif ++#ifdef CONFIG_AMD_LV400 ++#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */ ++#define CFG_MAX_FLASH_SECT (11) /* max number of sectors on one chip */ ++#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x070000) /* addr of environment */ ++#endif ++ ++/* timeout values are in ticks */ ++#define CFG_FLASH_ERASE_TOUT (5*CFG_HZ) /* Timeout for Flash Erase */ ++#define CFG_FLASH_WRITE_TOUT (5*CFG_HZ) /* Timeout for Flash Write */ ++ ++#define CFG_ENV_IS_IN_NAND 1 ++#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ ++#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ ++ ++#define NAND_MAX_CHIPS 1 ++#define CFG_NAND_BASE 0x4e000000 ++#define CFG_MAX_NAND_DEVICE 1 ++ ++#define CONFIG_MMC 1 ++#define CFG_MMC_BASE 0xff000000 ++ ++#define CONFIG_EXT2 1 ++ ++/* FAT driver in u-boot is broken currently */ ++#define CONFIG_FAT 1 ++#define CONFIG_SUPPORT_VFAT ++ ++/* ATAG configuration */ ++#define CONFIG_INITRD_TAG 1 ++#define CONFIG_SETUP_MEMORY_TAGS 1 ++#define CONFIG_CMDLINE_TAG 1 ++#if 0 ++#define CONFIG_SERIAL_TAG 1 ++#define CONFIG_REVISION_TAG 1 ++#endif ++ ++ ++#if 0 ++#define CONFIG_VIDEO ++#define CONFIG_VIDEO_S3C2410 ++#define CONFIG_CFB_CONSOLE ++#define CONFIG_VIDEO_LOGO ++#define CONFIG_VGA_AS_SINGLE_DEVICE ++ ++#define VIDEO_KBD_INIT_FCT 0 ++#define VIDEO_TSTC_FCT serial_tstc ++#define VIDEO_GETC_FCT serial_getc ++ ++#define LCD_VIDEO_ADDR 0x33d00000 ++#endif ++ ++#endif /* __CONFIG_H */ +diff --git a/include/s3c2410.h b/include/s3c2410.h +index 86495f6..913521d 100644 +--- a/include/s3c2410.h ++++ b/include/s3c2410.h +@@ -38,12 +38,6 @@ #define S3C24X0_SPI_CHANNELS 2 + #define S3C2410_ECCSIZE 512 + #define S3C2410_ECCBYTES 3 + +-typedef enum { +- S3C24X0_UART0, +- S3C24X0_UART1, +- S3C24X0_UART2 +-} S3C24X0_UARTS_NR; +- + /* S3C2410 device base addresses */ + #define S3C24X0_MEMCTL_BASE 0x48000000 + #define S3C24X0_USB_HOST_BASE 0x49000000 +@@ -65,9 +59,23 @@ #define S3C24X0_SPI_BASE 0x59000000 + #define S3C2410_SDI_BASE 0x5A000000 + + ++#define oNFCONF 0x00 ++#define oNFCMD 0x04 ++#define oNFADDR 0x08 ++#define oNFDATA 0x0C ++#define oNFSTAT 0x10 ++#define oNFECC 0x14 ++ ++#ifndef __ASSEMBLER__ ++ + /* include common stuff */ + #include + ++typedef enum { ++ S3C24X0_UART0, ++ S3C24X0_UART1, ++ S3C24X0_UART2 ++} S3C24X0_UARTS_NR; + + static inline S3C24X0_MEMCTL * const S3C24X0_GetBase_MEMCTL(void) + { +@@ -142,6 +150,7 @@ static inline S3C2410_SDI * const S3C241 + return (S3C2410_SDI * const)S3C2410_SDI_BASE; + } + ++#endif + + /* ISR */ + #define pISR_RESET (*(unsigned *)(_ISR_STARTADDRESS+0x0)) +diff --git a/include/s3c24x0.h b/include/s3c24x0.h +index 71f35a5..557b91f 100644 +--- a/include/s3c24x0.h ++++ b/include/s3c24x0.h +@@ -637,13 +637,7 @@ typedef struct { + S3C24X0_REG32 SDIDCNT; + S3C24X0_REG32 SDIDSTA; + S3C24X0_REG32 SDIFSTA; +-#ifdef __BIG_ENDIAN +- S3C24X0_REG8 res[3]; +- S3C24X0_REG8 SDIDAT; +-#else +- S3C24X0_REG8 SDIDAT; +- S3C24X0_REG8 res[3]; +-#endif ++ S3C24X0_REG32 SDIDAT; + S3C24X0_REG32 SDIIMSK; + } /*__attribute__((__packed__))*/ S3C2410_SDI; + +@@ -1123,11 +1117,7 @@ #define rSDIDatCon (*(volatile unsigned + #define rSDIDatCnt (*(volatile unsigned *)0x5A000030) + #define rSDIDatSta (*(volatile unsigned *)0x5A000034) + #define rSDIFSTA (*(volatile unsigned *)0x5A000038) +-#ifdef __BIG_ENDIAN +-#define rSDIDAT (*(volatile unsigned char *)0x5A00003F) +-#else +-#define rSDIDAT (*(volatile unsigned char *)0x5A00003C) +-#endif ++#define rSDIDAT (*(volatile unsigned *)0x5A00003C) + #define rSDIIntMsk (*(volatile unsigned *)0x5A000040) + + #endif diff --git a/packages/uboot/files/u-boot-20060807.tar.bz2 b/packages/uboot/files/u-boot-20060807.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..7b35fcfdd1a92139d29f244e6d8bfe4e13be873a GIT binary patch literal 6446218 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πHHA zB8mw$R7_(6T2R4+$r#3?jAKu6V=TnEMJ$K*S{mI9=KUxM2?zh%O?C_U=vqP!F~SUK zvA3xe(v)pBonrRaTCg&vm_N2$!s!pXNYY_2dhsfu6aa$z$$U<2{jIcV;UqjRO^{Pa zP++2AEyza=zVpfND2@5=)qPz^b$kOF8$x3~-_?X+MoArTxS011g9Q*x@JGIs)l3)D zp9prCr{3ctH`B{|)tw4>;?en6Ej1C#d(YlpKr|f%1`$aUAV?$^L+nOCn0)IU>ov%O z^VQ7TH=3`==hw;4Jk8)eh<$o>w+d>Yj`__Wb9$q+uq;uOWgZU0PUGhE=ko5!I)oK} zlZllPOR6+Cgt@j>55H-)LA>D9o-F}LwJ*qSJ!pzZx! z9_n;WvqTXDN34t{in_;Xm`hPb<>TSc5nm2&KT38yl4QWRBx3(yg-;>!N@Nm22Ld*c z&W!A2%of!n;m2b1@Dm9MIC~ftycjy;q8c|%`+w}_%P<%WJ)m%{B1b#>Ij1ghr=W^J zhTfZ|5#yWQ?PXSdjR#@Ce0+w+S%zoef&&4ALu}$kHaG6#&~3gXHS3l2+wZ?|5- zDyc$$;1ylDb|lthAtAmkApwX-x9dM0roGlTK$O?LwrOn`vBD;* zA_$CO3_z}29EFerh#izzgT569tL>Cp2nXqiTgIE)q5bDxIDTBfi`ir27(`|m7+Dld z%`=mz)axt@3-9Bt<`unIXsU||YRd)mY!g2!D9|$*G|I}x_B95^6z_Sa11k)snry>2 zj!;IdHLTFy+cjjiSXNDClh;N?5gO0!Ns*{X=M0KUb$==oAk|J;+hr!0GAy$r3L>T^ zC<>;E44fh*B96T1)Ke17TeC1R!v4Nyh$2Xe2%4mf#@@A5(UYOJR5;XasUwaSdg_@! z14ZvKsti*MVrb;dHC35z#*m4sZp#be#Rfe$BTQi&K9z+WbB6|-td2)&D=S=5CNi}g zXv#vx6K&W@6NF=BVvR;Pq-0>myqN)(L6R(_PRKFH*r50906iNY;Cgo@)AB;?HIxKHhQ1<}aWOO{ZpHY{If6LPikO6kyrkv7*P==9C|ehJ2d22_2)h#69`u*9e6u zWO{jnP8!^asx@SC2qX)Cyg;XChs$b^SfEfxY5xHMh#v~m!!er=C#GMOyz_%`smr^I z4o|1@`;Ei*a|<8i%`49V&kz3g!Jl`S_a2NoA9lY)Y_U|L`PYpCsvqP>{INg%XN&$sYh<-T zr9VLSC&cybesF&)CVl_K{O;t)P<~J!*!jNL7uq0RQ5L?9z0A z@bleone*+rSYwLgAhI1Dt$6bfiE~6X5KGBXGITiYVo|wd zs*yd_;Va1<22$(po)u~=I+cy)&zJNpQL=uzL`AA7ios$NaDqF96SGLR_|Ro07wol} zp2BL`p7b`E_uk+=lOxztARjysPd`aQnM6Y5BtRbi2c?dFR$DxI3*Mc!kdcuPi2#Bm zgp;_|kTgI=bAB5l`?;_{K77KGnhGfCn5e{_xiU{E93Wt1^!vH+ZlWrKrn^td_&?O= zf2W^|?x#Hk_`h34;mm;GCzKg3$rJdhfh0V5PnTwHB#__wK>Rba4WEkUNA%60V;77( zAo@UeM2#sZhsS%m!&#Dlm4+2HYQh-Yf2lg=R^bVg%xai^b$~PTjJ6R*C|i~>fdYV` z1^ns}<0W^Lm+n_LjgHLROUmglqIq#3(W`|Qvs_$Mi4umobue;-s)c1iv&g?r#RSPz zdmHLEh$&EZJ7l31T2Dm7B~)6Ci$K(yqG+8~(l6IuCOu#lFd_T}iuX?MZ6B}d$h?F; zJ?GV3$2=23`QREy&L5g!!~l>MMfJfJm=C~$JNGuQ?8bx8?l|T0Fxpc9_F=TC7z0Dv zM-o1G25bX(l{3vkd0J$v&lk$1=SPM+T5DA8z;s8--D%Y}rtIrltA>n1Q)-qXAkm6S zAJC`}-_59kznZRc#sKH6!Y)wMdEidE#z@dmMMC}0&*A+|oIz_m{8RJSU^R($=_6_F_++{7zhZk6?6c)~V;&ewZ6a#vnAi<&9s%Xi;B zmfv3cXm(Q6wNgT^8KgeW>Q6XpCnh7DTiTDbVjZGj#m( zm!oI8xuuaY=!}Ik8Jc!4Zl2IKtafUyiTvGoQT)xkFV=?%#8E;k1OX@-GCn*Y3J8?r zy8zK2W)HU-LI{dNBuWFe6A1!{7=Z|X82}kc1{dc@Xn>%il^*LMe$)YkhmUWsvu*Kx zIyw|pKznSEC{y)_Odu&KIzZtF5h)Uc5Y+)ldp`cO8vm4Is9Gw5DI}qxs!9*Fm?y_L z!dad3dzcvx%iXd9k%%G!kthm6rlOW0Xdq%5B$_A+0Ej9dWS;CAf|?elLWv||g_e|{ zD5KN$eEpjaD29&+e5WMU+)hP)9!|?kvI$8_X^1`?!4CuE_<7iHer_kt?7$7MQ9k9E zMpZ!&l>|gg&)>i@WQdh1s-{Q?hGd3lDTtsXV4>*_8RHt!BNucSKy-o0DI{Q)8ki0x zGE$FZE0UCfpMwoe5Ht#iw3P(gRH^qtqkSTMzPq@`Rr7%;6ey6DVnI)s6wFTt`#Ac7>CNtl?v_rJaV4h(@Nfsqf?BOb^;_ON1v z{g2Mj_sOyRvJ9y*0;34BL4z0%JGkzyw>x!Ac{|QNsfH0`f?}ib;o;MIi_>680sG4e zpWa|(-7_gB{XXnHk+C8U@80W4MAY5Y{0$D736W}sU?`*}X$p#h2rL)~Nb<(|`R9kf zYy|1%Kj-1_FdKM)(c1gA*LC!l4(Q~QpF21Zr*e-0`b0%^$3-PfyKj290*4g;|9 zF*R-&j>6PQ%es^EXH0$6C;$+mF_9Yc`aLlFr$2d87s`*_DA9av>#pAfD@X zwHhj>uQ8*x^=mv1!8TYCkt1(#D9op#5Fk|drljxtm&Ei9&L*ONkzW}%zm7_iyRsA{N`pNIXvQS14>|K69)`dj$VeOP2FS&xh* zAJ*0kvZzS}s^6?%q^#)zKOSR|_BDyF9qB(S(}!cfnxeH)2!wtrDXH~0_@t;zlx_Q* zRqR6sCEW=^VW_;=z4znabnzk0(cdU~`xYGO%DkC6vOPF9pT7|De%1!?jWGAop`zVn zZQD;j4!^s>r1(FvWsOGE^YVrbHq&FsY0LYSe^SOd2$#!0ib14&tdwK;RZxBZ*3Z(E z;bYN@jMETN5fIXnLlpdSIDZ6$^ivblHotHWIx{&GX=;oU zNEQ0xfHeqIkIWbkwg;po36iUpLR!G}eqJAP2bo?Nu41!3eJ{HZ(o510*&n_9G%0xL zBm<%QW$b`skA<|AHS=17RY+cWo?iA2qNe#iyj@j9q|y{c_T|ZZu=0??9R#65W_NxJ z4Z{;b5lB-pUDj0sNz9rp%bwkQwi^Z_VF?0u+qLCpGn>A59cXYiONWbWeGG=^PW_+V zVULJUK(SPTp$ho3 z8iJUH)4#EO6gqllCH!&?aOmwTK*q=W5fLz6k}g4g8IX}@c5CF`hec*6nHTug!p$*n zA3K*`Md>*>?Q24b3sSrx62ycEl3*@<8L23uE4MPEzbh&i*C3clR1r+VOw$Dc@P1z= zg#W(&{J+y*vjNRn4yaT$%JYSBs)qrhG=)QCjlXP>kq$V==z;sJtqW(#N`r&v74>A? zX8y*tR7qZlOzyI*vCLlB6J0O{z@5LgrD^_XPq>|6n*p@_)PlAiNmDEMESP;*WXUm9 z6<-bX`W@zG^=lGNzd$4}_!QRULkaVfhG0f~op4 z?3AI%Qc&zs{O5~-1&Ux(uj}FA$HTAU{)To(qL8ABA_5^PC}zDl<3Q6j3`;qQiTS?v zI=_B&)6dE60MIc-=!`0g{ES!JwRiEY1z$#BHA57`1jtiCK|;w4MHDO$RKxCBFiZ@{ zQWIapvi>)AYDuOAd*Mn#fyH8SaDopkFfWe`X&@qrXhx|dfPjIiS_Oz=WRi!ADC{LZ z6lf%bi4fsC?(4?w_I%q_iDPuH7Y}$Bv?OpG-o6te?B6f`n~ zQ*&VvEfWkBOraG8p6P~)A|{e3kddfm3Sy#Qp@|46s3?xH`D7Z=kKxt|e4lgf>u1Yk zO$~h?gIX#`pq4LHl0gJOL=_VS5k%B16(uP!lo2ISB@t9i1uHO86eR&kB@seP1W7d! z5JOc#K@(9hP)FFY!vMjeB8mhEiV9^YMuvoFf;;eWB8f_TFff>ih>2<3`}+*s56ukC7Z~J4O;r5^V8l#FMd5~D zE*Sfm8AS;sF;GxKLd{Z8Ohr(U5f4Iel!`ku0tep?sfMEl8bH7(C3uXYsJwB)UxTv^ zRFMTz9ZEvX!w9gjgp9z&D1z!3IaM(b#KcWR_+z_7Q3TA?4K!Eke;e(6tr}DGzUk`I zxn730Xm|V5rTFx0?CpCYm>+i>34$UfYM_{bl!{1}B#|H)LIQzlN=S(rAqq%C@@%=o zA&~kr(V@y}BBG(GAeN^2;WQjtu%~dKzMMNb*2||q&v@xYBfoN6fQ&U;<|{tNXI4 zq=gt%BmzMK2j>BX1O^ZoFd#5sz<|PlODbqmB==#@UO&I>`q(S}kNZ#7+5ZvZ{r?~G zHtHpUqc9SC!Sd<0tN%I<*Uoi+L-c>I>witv9DUq$I@rwfi+DAsor(+O-&^0jW?9VT zV{)6<;b$z95adl86x1|t*qCy?S4@46v`t1atXeEc1GnO~aCpVxDm zfgj1+2DJscZI~f{cKV(x<5ja~w|(}y5xSPfLa3%JwPdMW@c<2y5GbHCF(NaciXx@+ zH(>#mNcsuM=ek@Lj`nA9@j0#zn@ZtuZr8O`soitPyc(G3(IF~;j*Sl-H_m5cz~Rjp zlf&Wxbz3N~m>`e#2cS+-CNEbEM%={N2O;Y3_GSS8-!%@Ry!!JDq}0k_43?oJpa)_n zb#^5%@>8Vg9&NaZ=GBBqgbm$Y@Xr9|LH`@?|8~KTA93~3W0v!19Ro6TM)RLCfkpJu zfb6}%54*P@Cq2K)%6W}YN1vV81g`VXGbW}A^Cdh1~0+KaF?2ncZMY|LW3d#*P;@<+?OG=P1M4aniPkNXP$iatH zgH@f&U_?ZfO<8z)1;ktA6nea9y!4NE3!PuU1}LooMHAEJ)sf}YB3ovk=-S5p-Clfk z$s9Pk&i8;~rs$BrMFe9}%O(GiTvu6*&)B%n{%55sK+u9pWS*u~MJ^cIeC&&r629^~ zF28K^#0k=>fF+=>MT9j0w44-nD6%$I^whEgr^4-Dkix6ar{rHhO)ms^`4xNYUBBY@ z9m`%?ECGVbE|LZ9nkoq8evfxzZS4wHt*FPIiOoQXuTKR4!$9+uRdqpBS5*x`roW9P zwpc-aD9wtQI5bpvQ7C~72#6p|T2jN^%)BS<*`>$Q;Jq(3mvgUJCOs4ih{U~SB=*VP zxG@nA!cO9?*(UPGb{zAbCfO=nd>G@o|73*}Z4&t`zmuQ!-sg4AMP1Vu!S+3x-N*aP zKk9L`+`FiF!@pm|@CxF3mXC&nfk04*#wcM+TZz>wIpN}7+vgke}(^%BmzbP7G?&Za`>+@N2UzyGG;;{Yq1dR{^v_@_VU7FQO$3 zXSw>=SB;GgS$`W0&Q6U5ZF?sH-)GwLeb~&--j9`9qoV4J2*~Dt4@l?uKTl%C-ivy?xV+V zkWg3X#b_OyxrV8qiLPr3EKvcd8FHYldbIp^_H4xCdN6^HFV(A_SsXLL4%ne0kTl#K zm}9^3ZaSAy7)T^yAv-pZr4*vD%myeF6s#C=e;&9#1M&p?pbAG=icgqjUnE36B zd%L+%Z{@%yFUNa?U=Jl4Wl222L303(X@<|jVPu+1``aW2CTB|zTJv`KT4H0sqU1aU)7QB<(^R4k;({6g zQyO;NWFX3P7`yLS{Klk)6xl{#V9%Qzxv7?OXXuWt3B7Rfe`<=5k&dzl1{l88n`TIo?-^5pIiwzq6`Ei^5-aOjyEj6LR4x=6H zCzm^SUw2pK&p+aQbM$vfj@@xkMf)thE3&A5$Sl1*b8*Fm4_8D-4qnVW zQb~1l@i>k`gI-V%dJ8B6n*rdgz6VK3f>k9g5aX0f+3#zlzl;TS7n^FMc19o{61wi) z5}51>v$SLAK}9}#0WK;P2YoQZSNFPPz+f`*hZa+_YmJQ|x}bO&6mOS0`g~b>&SUw) zdJqmLLyaB34zGvL!>hyKk3CiDf^mpi5*>CtzE^cz&bS7w;6q3=0jNeGk*nNMX1>Wl z7d1R&D)NWw=@G49B3E7_=loST5HU2yJ4sN=B8)+#U<6C7(^Rs{Er1KZhgJHz!{*y0 z3E&;k^Xu}xc@%oG*9{m_X9R&BB!4VA_v-HBet5l{u6rh!93b^}t#OnbWf1mQ>c}#3 z%rj;h(71lpL4^Ym^2R~MoHiwxV;`FumCZuVgm%p2Q%IVt|CIOl*VT+MLi9Kl2nGrZR)@jGs``Y;qQG~uF z1MGfe`Ze{yhm3^^jT?fI8)AA0@!lWrBdu8xbH=c(TrlRc(Q&=oezFd+q}@SOQ$-au zRRIxAk%crwoirbj`#-|hh+PIuFkfoUjDqepb>!Rfapax9KOQVrD17E-WAtP8CNDXQ z>}zds=1T=OuRRUcruvlT;~`r3vf$0Mm8n zHC0tvtqU*oX%Igw*&Wm`XJk|2=AAys2*;4>3I>b3^2daGfZ*X72+cfv8%4vN9U&R+ zqm_pBoU9mA)80Kj3?F z{Ev58(RksaSRndKUc6@M4$hxPy>r0hM&3aM`pXM-K)@2j0swXl;qn;hG3e*&DdK;G z@$B}=ZEPdrBXJY$@7+D4{?~A1MnF)IICn1>HTNoCr!Uw0&OT2AiWq``rkzbR2Wgtt zLq1w#DTQ!2hJKOp_4ymd$Bmm=+ESl0jue=*n13 zZV+lfl0nueI?30pDBoX0bmQn-&#m!6k*)FGY2-wUwN4Xp$nne9G;2+j!#Ya$2%8%o zhM~4G&jzNN2=o!SNGoD`mAb+h!nYGEmn;fGIUG6x%+_jd+m2GRDAqXUQ}1BwrSZYj zyR)vYk%<)?Lyn1hLEW%b zR{b6v_x60d509R$^a^WCBX7emjLqWg z%D`ojMgj7Y52&8ew$CR{?3Np5>hqlVd+GTvsz=rlT z%bESZ8@U8QyLR)!2o9*IH}dzjkb{9xNYIB2DB)aycK6BUISY|YTcrH>+6H6^g3{Uy zJ&+qDH&rR$h9xv6tb=emhf$FCcUr?Ba$;PDCXAevh+0&kXry_Jmr&s(Nsu`Sk&&nj zlGTGlL6cdS42pq>0xE!&ir6`em#f0z4TX;x)TU#k+qkzEm$}A=>tjr2O3TyQxQo$f zUV6A-L_`6_xyxIvPOB+XV6Tmw7pymy>IBE2bnJBJ()jhc5X-S{UB|QWsJsrWHAC^{ zd(dGU7f~hsrBoVWS%+_@b*6^V!LRJ(!<%Pq6qo^SAOdU@MZyrb5kWr|&g`cZI_G8= z2TuSW3HoF%Kk6@>u}g9H!ww%$M!98K)^uU?Yukl=B~pok7xb*EkbFh0s&0v^z?+$m zS)IMMZLMt30Z|6;z2GXpEAmIW7{eRBSK+a3qeFil_#11@-qaSt^7oz*uKpGqo<-c1 z?{Esuoa5bEG8qOy@`R_^VV4+2*rScKzTsmrsK0{i{uJ^2JnP1e(o;bNWG-%#vv6whKafrq! z!Lv84#OdQ2vl`4ZRhSVvvWTgMBPFKwFSYXqZYD{4hRbP^*hrgEkf~wH-sw~qk`-8(5fDj4PMy24JYL6qkwyXt;SEeABm@vi{$3XjM#NvxQlL(cb-Rzx*y7{aoD`(Av_9*7fmyDe*|| z5?N*aRjr3@ksBNrBFTLbGkNuL4LYsTYjbKgmSy^jNZJ-qcUG;h=%Fxhr68_73I*|ALnxJt6+yZh*;=8JV5R;i*wZ3kU66N(Ny` zoZOVuqd<#c0V@Lya%X2E?98k6K%@tODo8+bt9eJ_>Yz!=XE3A&m*jZ|SBgClQk=z* z0p^s@iU~KBFzf$A`)BUFkCTh@_ph&{(m~Hz{+X*EEIAfFyVF>?sHG;!A5@|K^NB`T zu!WOMnJi_(8Q|_C(D_<$JpRY{?G;r7g*i~^4(`|#z@=oToI6vZzl2q^ zqs?82Cu@C%SV&%#tIa`Ok-8|LKRZ_ zy8vA6D*XAZxXUf^?{nBl8VCi86bF9>e}))75@F=yAk^BdPf<tgHxIQmp z8uU=`wy$EvGW<-f36tDvW#DWW?WcBGHL_Q}#tm;5o_JSms3TgIl#HOPN#)G2#nxtK z4rZ*gQ8Xd5Wno2w*S@#W;*(r{+@4uUgNMQ+Y`hO9q=|V0ubHLQ3`1<$zlQ1T+l}7v zqa&tq;D1!G(<~laul%urvPx&#tx}?f_&EC^{hGD8@wIkxc}^95Q)b&PHM2mD^J=|& zUAf6-QqA!=5H?q>enW zoWD;BWc}S9PKz0-8}@C}4iXc6Na-(;+3zokBbo8i3lG@uDR7cDF@Eo4sYQ_38l4Ye z>SyH^o&98zx!(+IZMh&YRtTW*T3%D>dSFkt1{L z)6s-yZgXDTb)xLam`LT#U5}kBg(PE*puOAhv%OibA@5%&i4D!smu#}dUzu;a-fT3( zr+jy19%l=jmkc4gWY}`&c|gmHxh^lm;`z8wuC&h%&$l?1l`Bl+*U{&us|1r?;=!$_ zKN+=s=BGa!Fg;GVIp$d}!~5hRJB|#up6OZTJDrbNE@h`!VTpnaBCoaU#!)8Rw8s|H zywT<@BQRBMkW3nKkwQ0acC$WYM_IfiZFFx z1@Ke~d(AnkS0y1)O1hB^oy4Zyh~i;x8iom1EC4ViPlC>KOZ#clxV-~S`rSTd2K}-; zmdTQSgw04}RMduIuGY`e{XcJ~=bLtOy&%|GaH6<~`<06=F`HY?*f_#VT2wW_Tp^~% zj$@J5+Jh?_<>LxuQ_=BwbM<|H7lxPXZw{#LSwH0QKXLK$3-+30`Ul_Z?Tj<-BCt-M z%aeQ?dt3A^1;o|A&}JlV!-3cQI5zn&9vz&(I_|^_z2(!wcJLlj4-K9IL#_HOH)o9o zgT9tL^?2iF#S39 z`E=>@c+3wBZeedHwUekvxGyN?qN1X}IM@n%M zq?IKM>hi6)ew#3*+l_d;t%)xwlhYb*YLvEBL_^@*)TC0BtaGp%N6~Fai_2a(leS%G$4w*piRa@nkxHP8vwCBA*)HXZ0X^kM=brHY}(b- zab>5&{Ly`K>}Setx9XI;fcn74ox=Uk_Vao=F|MA^HQ}EGarw7G{4g=+@vi7!=y4~( zs?tU-P+O*cWb9g6EZg+uO4T=0gK;J+q`rFc7sEDoj3X~Qr=wRArjAX1RC=2z>q|hR zdJ=FzFkZnLI3kP9vddY^FZ>yPe_D9DzYT+;yMb@&P`f-X~ z0y=Fy6|;9ngYY1ZCtJmNJ{^P7@C0!#qa^B4_O|wVYAs%hDR|CRQJ%-6nTH1+8gT5W zPsE=5lQCsFTDtPs3XK3*PuvnvtoW>qeKZ_5l%)!Ai>8A-|@bdY3@x8&EG15ji*`JK> z)`V+Xgz|?C8X1A8Q`H5Ge^x4u+QzIBB#v>OT)e(-Zx%@p>U?Xue0;rLGrz;=C!Nwg zMx8YkQlbX05tpXFi_c#Y6tFf0c#E6+S$V5?S!GRBp_PyEH}uZ-&)2&RG5h9ChSRJ# ztB_MDAW%}ffn~P+xOTW_N6(tNb7x_%W~)K2AtDBvpf$meO6b_J7&p68hetoSROO8Jk;swmgdHSgf(hHr=HQSdBM#bJ2_RW0>)fFr5%F+qS^)DB zLPKMTySMh`rWLu)9hh1|bJHo#?-`9WNf=a&HT81x>gip1;cmWJ>8mJ06O5{&l1F5r zV_%Ckao5W>^r|4HD2b?m_`Mm}b?5ecx!IuF*&-$YO+d20|2(pZ#MPs#iLBS7&hNSB zwt9JR17OE!>2)HSwr8JAcYThBE~X&J**c~sh=Q<&OT;lSW}9$ibEl?e)J%Opjn^|w z6DKSuMrDchvbN7Bc!F7930(8>xVE810KR?M^zoo;tqRSlgz8Ns9wqRr$j4U0pN;jz zT!{#y!t-r;SWyv1vB)B*2?ep&;JkuBB#-q~M92iwa)Gx_X*ixaWj&fyCeS-@cO@r; zFS`bz)DA!t+tSi~Kb}X6<`6|h(L% z8Fbr-)-_-oF`}lD*p#21bA9y)_*#=#SOv&VppG1d88}O8NV;qdEeu)~)!PydW-5kQ zo@$E-!D!vJAx453)M>xJxrXC-8Fn-nXZQDKJK<2M)TmYdbM7h`*_v1Kup>*j{JJo& z%0%1sf2an{o-IlqVVA6K(YLna8<)S*^X%M5YMg7s;6E2#yF;A1l(TB;Rf_pxp~B=w zQ}OmzA6qtqyB4M^Dez3ZeksHXR|gJA{faL6{JFs5XX(qw?fCES({5@yPocik#r}L( zfr0SNnO?3iBO?44iqJ4~;ByX2>_5o!x{g#0h1aau&OuZk?vSGy9!*G62t8aBF{rZ! zB%Bp~cUutuo5sykQq!L<$PXSi@Z7PvZ)E}9TGgNUmN1d$VJHeUAx_KfY8YQLFqVur zvfd~8>>xakW}okx4rMfD3cHnQeJ=Q#Z9VNWG%hytbiAmdO>4k^6s09n;FVO!tLV=L z9m9n>ZJX##rtex+hcEk!duS_Ta>r$?$S^O8__bNc*EKh-<{4e4=B$ci#;?ioSMl`i zXssDa$>H$cxVNtXpNq?Dn8!BQ=qG|!{W!Uzi(735ix|@iIP))W2bYfOC1}Of*mt;c zMb~+wq{WrUB?A%7I>grv73Q*LJ*?Y^f+5y{R2wKiLrWa!@+iwOx%z1A43LmB!FZ8J*llN0<7qj-i zC{OcfwiR9;^WDRh`b}5g%V*K{YTK5lu<-*W{S2HtyhFe+54#Xsgain%BG@WV-=pz_ zQ{e-)7{S%D_T4LYf zp&_$M!*&?Iiu_EXh8p~fD;{d}Fabsjd>44bou{=_k`8q&ff#@RoJxV!Bp$e$r(6?s zF_Q|dC^o>h{g@kdtYo>h2{WrEZnvU>!ZC4#XAVeGf zgX?jth2DJaqaJQE+Y*vrAiJF)esU@#?eP%WF7<}}ehbV*5Mvx4r2ElwI2X{5Riw!R zq&p8MP?V#5i3)m1_qM8i(L!3PqO#?JZS9^k-7bE`fL(D(1+Eo^oQ-8ioYh1()I)Hd zbfu=OUaN3L%P3kMl+Oo~w<(C*_5Ij9`|Q39+Uc_grAf(0k*DHkC_ID>NED-(%8Cc4 z%&^612`AE{i6xCJu58SKi@>qh!-llK0|aqqxb#~1#{Ue%4C#T$A9xsuM4=!M7=5qe z{9XPoolbQL=OaUqSkD#?dIcanfVBw0yrk@;CTakRmld$(NegPjB?VMR@@!V}P;juG zr<*LEG<`-{{a8N9{Mf0rxGNviwu$JlNFs}uGNWg1g~DT9%YlP#|Eu)Xf6sk?&vxU{QJgH61offFJ~O~iO6eYge@@F)`} zEPHq^p3g4q`pB@iJZ`avU%ztf@a+h$0=mHSYY0UO)yi2J||xAqzt!H%FEAaA^R8Jy3eZYYxz33 zY>r9erJ>@{*Qd!Eo!j=kf=<5vYkZffzMffNE;VD^_ps}lk8L&oH{n@9=L??uTybuS zbI@6+20PnkFdfgQDes%zWdU%;{N9;Ne!hJu_SeH!ns5#`ojkd-;}+tPj5P z>%R%}rof{QCv!sV9J~zj>7C2`oyw1J3yN)Mrf_MqXru2Z3?G*SUKz2UD}4`phUc47 zZkXOVMIYJxUoU?!U$=j1E|gz}ucFm+Jn!q(U|+KufGo?I%i;yYVb){i$35@Z?eFeR z^G9M1f{@vXP{K6~TW`xh(E(v^Obu=z9&A6fV;SHXF~zvP7I734@hGIcqb6olR!H0- zCHLsVH5*Y}j-`=9l;eRK^dLDW0{OvnyaGoG(~e^dFjB`{pc{5P4(Kp&M^H0^SUNYf z?Sr~0v<}AU9HQegA#Yxha+8XV<~tkNjb2S@U8Cv3q)7udklnvtSaM*(B?d5|$4_^J zy#uuYkwQj5kT8~d^|5bPH5c>ayTePxxcmC_+-Pwi)sz__5E-Zj&v>L8M!Apb7|@&$ zj(?VsyQWxSqy_;}YKl*gsr3~yQSl!%_vGSdT$`}$cQ73#FC>Cpws%|BnVZ(TI(Kq0E`CTt`Uj8 zS*LfqWID(?6xk_Zz)c=mts^zPh?uPR;Y}(aV1p7#1#C6w1redUyoS?HY=&3M@86BQ zM#-srUk*37wHS1J!%GYW``Xu`86S(4{@$`uZDHIRJ5Jl_kOyH%vYL=(b< zO+X0#7!l)~Q1w8Fr!apa0S^#0g~P@RP*@;%!9m;^yrNYdwAc?jak?9Tfq-}gK7j$a zZNN1T=M6!ab_QVmer|I{$XhqMzV`&!iV4?<0npm1n8s9iYMviYcPr_UAr1Wbu=OT* z<(A$1yy%$b^QbpE6;x9q)D*!!#84R|MFB%an!wQlU_+kfC({UO0*BRP9c1i;J@OaJ zPP0Aki|`?PlvE~PbnD|&$`vvz{stPwEfpY-vB^)lBH&J(u@F1srWEdwd4#}$2u25T zN|Fyt+~OF)zn*CE1vzzf-76~{GKuR>riJm5?J^*g+6cUOK!544;PstSZbi!mS(^Ra znzXAR{s63R-{uhiwXq_o0Z~+bc~Vq1YLyKLEomjI=1-Qry2WU z`~_~dR{mvP1Pw0>;^|XbZM3NP+T_$al;mBwVf~ktW+=xt&>Zwx8RMhpoMf|uLm1%+ zuqT=Pd)*U|Bf#6PJ@-MhAY{*2e?qN1iJUy+$%X7!^(Q%$dg3@3yRB9EESHWm=GW7f zhpU!fz)d8Ok}K36O<+LT5rhMSIZ%n%ecS^~Y^R#UO^Lhb^DXU@**419J>fhH2PPHh zLFY>ZlYWX|M1*Y<(=9>vuYDgg z9BVi6xgc888r!kP!&KiZjJ%r7Pp;7~jiIIObsql@qhv3eIuEr_VnEc7jIkRD4rV(I zvI$kG0l%wvVK!&fcMA_dv-GoZ{p&kei60!*|WF$JEisXf30cqJCEYG%Xh)RV-h1qRDRSOspbPJw)C|&s{HviACBkk z`@UajTTswj!Df_V)CV98Au(G|W*}qfS^<-HVbh=&R-1+~!m19UIu8j2u}&H~_~Hn{ zJ;x)*yM?Q~d;JQ@OO7lxB;TgjlKhg>&5L+%?Z{@3iTQBdjfiN#0#nYRMzWPhZCz&K zyx*n%deYoQWz;}VV=8Rl%PVeN=rJP2c`d-d*Ilu;YL&v`!}gPI?x|Br=E?^UNIZ%* zeI|)Fjk~xq2%ZZwh}Flz>el{0#og16I>YZk5i1`iF;SFRnUEPlPmXI?U`=EgSXnfJ zrBIaYRp$gK=8>bKCq1>+T2E~QW%gnHf(0o(dHG}HT@3R{PpTA=R$#ca>&zKf!hHj{ z&-M+?vgkR%RBPAl|24s%=xHAt*vxZ@7}{(-zHl*_AsR?Rs-*bAscQ1+kH@a3~DC5_>P%s($UnyRX*n$?^p8C4j~WHn6>#Rn9X!(I0t?+**+ zrnNF?J!McnHKwksVfzoXD~a5nZ|X`ELIV*(K{s%q8w9vTc`skt!_P3)+dIrR88-5Y zM! zB99flrlq|SXpy~Mo9HU>LxL1KWGF++4z#qx3Kbfkq;*U=5Quv# zRoc9M$YV~Z`-B98Xx!n^cx>A2QF`1&GE8r@@D>{bsVpVuZkc$aT@*`5chDWXSoX0a zEI!C{PIi{Pi;?_VsW^1kwK3N-X==2$j|tp)Y}fGrhyU8?f9vKu_7u89-0LWRy}+#qZ>oQ#PZ?~mG_c`r_R^0aKK?Yd5PD^% zL&pFFa8UrU3P7Pi-K#Q)=s>2bM`TQ*UT=X|vm?sJAA3`QladvM?>(e7>tPI zEK4a-ymKYJNrp5trJxLf<+ltn5K_{X$?6|Df&Wy>u*Drxr@3t1)le-&DRXo}s*cD< zJx9DHizFcCA6_{{(v!daBJI6y=`@E$i=bmtCKfvX{Tz2VOnGU3)r}b9NJmi_82`+E zYHIlTDJaDvAiH^t`NfJDu^bi)iH$^In@b6l;;9s&F!o>x{=jc0IPLpAnhy4JCGq`j zjmYj0lBYZ6RY9nm(ZYH5qVn)D^)TnLaQ=m3IgA28=11hs=wS{nwYe(8>}fC{Hc%gR z?qOmi6ac(Q!Y`F*b-kS)c7>=fYn4JAM9+-z^obpwt^u;={U>-HM~nJh;BT9c{P>6T z8E1NR2bes8?0deazJU222g1x;TM{fvM1TZHM2r3$zu1-00fEnVy94?k00*T4N4p(> z*(UY=yE(HB81cpsMAqW82wKh?4!wWO*9QZ~!wfhAXp3D(Om9pBv7eg=I5h$EX+!lK zKe^Rork^aYm_Qn6)Mt8d*n3)w8lnErUHrW!9C|k4c3cX8a)PY;PKqrJy(D%ta50?d z-;M^(L_>j|Y%1X46{D1+!RPh?1GQ@MIbdR}Gl1%m5iQLNKiuq3=r{-be60ra@)$?H zWU@KEIGP0-PQbw40PBnucqRp9Tk^mwp)Z+FskRrqPO}VrTU+nL#(%i=uL#MLo1btg zmkY9NwFp8L5fKESJ(Q=|pFYM<+_R`Wf%vEVAIfeHy3XUG$};#!`2^jJgCH>v^E+?Y zw{Uf&;^tmQszZ+cytr5>Kmwo&S0~6Uy8v~ zu@`FvH|UIrar8Me4o-74^fbS&+-0bKZPULf4%)UHI%DuP4#@UBCH1 zWbG-T0SH70f~>1bXX%!4xXm`D@d$ zL*?Or^OYRrjTVAOtPV8aJ21!qfe{iM%fR^OOb=AU_9}uLSP1XA417lYC;q4X?gTt` z0k($Q9mWHgpnVG{*r>`;!zRTXGXFW-{lV|=12VMo4~zpF-AQUt9s_b~a-Vm}eiR2( zc11z|g7K6#$?J$FufPA#o7H#0)$Y80V@s@)uZPu{G~s_0r=ia=3L8JQmo1XF?3uXz zMIoOflwY*qm{h67QuhYS>Y+DYVgB9LfH=lG3p?~RPZ`U-p%GHd< zZJb}BvuFDktd9qb$VEYllti&KC{Td|n8_as0-y+oAX-|DV#@UVoipU4L4>_pu%Isx zH<21S0FZ_Zz`&*jNox-7F-qSRndZP}cgfycyPce9F^>TBt@l&KU}}0yQz+wG7E7O< zSEl$BPG?H8!vI78DI9YET>H8t=g-?e!13pZaJPSdy@#fh03dgr$MH%4SuWS0RIZ0# zliCiMwPge09Oqqe8X-gh@Fkm|STTF4p-baZp4H&G4LQ-BSLQA+2$4W`g&M|);A2Bn zl5C^ai_Vl)2~j|i1#8!T(Erx|?|&`-eg3n$`;Ue5bh?!R)=!7p>szfb>K$XP2{=v` z?+8-~0(z8G=^>ov9Tzu89&?x|k`hXReRdeOX|R93%n1w3?^C#c(_qd(VoT+Ke_i1} z9rHh>`JOkI+TikfxTXV|H{7SLZrtmOlxI0xWLZ=uN-dn020hysUpT2~A;-(~$^Y}O z$KTaVt&s=%vW$OPc>QGq^UkEbFJf~+h;T~|e0Llv=MMQu6hTgEh0nuJ%%5A9)R}>A!g&hHl2=Mq!N>j4$L{W*HNpN#o_X${7o9 zDdBO!L1CziT@E5(vUC#^67F>`ZTamxefdmV2H4R=rrvmT5dfe{1NR_B0kmVIFhb06 zB^o)!Q>I!-9Mn3bUX>e^8Y7GWr$9Z~1StPsN6+@s_uB{I14>hek~TnHpcBvw-8Shj zfI1oaUi4TDIvRxj7&wBtug9x-0fJ2+Z}hkDP|y03H0tJ#a0c+vJ{n*!qCy`2cNu^` zu+Dd{?Ef6mR{+te*E+yUNd{X^S^Xk{Q6O)#jlDkTu-__QhkJTY;Oqxa_kXEl?DQ9` zGk%x8hyV^R>(c-wG+UZ;jP$O&YXw}9*HdWK0S#4%oL8tzmkjz(g>83nVU!Bw%j|5^ z`|#FGqrv(g(f_{9-o)!b{3)}ZrpZ#?Wv}Xu+&3>)hU+LKGcXpgp?s!k9td7(o`{BV zK!B&K5gDLnkHh#lUjLZ)kwfe9{r6KRIs#(%_s2M^$f6*Sin4%8Y#i-lz|gOBZCyaZ z;Rd@%cDqzJPbOoLn9|k+8I#4LST{u;qsgY1zMaUtXA}sTaH|ILdXPi6<>Q|(Z}^** zPt3_(EsR1@;rA|Vx2J|xGUEaCE)k#%4>W+b%>trbU2q2d5jW1er5X|5a9`NQ3q)z@ zp6uF4hGhx%#mmW3a1qd$1r|;LTqwkv$y^xn)XgkHCLxD#&OPONGo?YUj2LsDaWsF= z_5B8k@d2*-F$O1vniH->@EpC1dEAulqe0)x|DRtAZe;92;kL}rq~O`ziG>^Da_n$l0>qV`&?2DC zbR$qHN-0brSODOfI*X8^Sn(oCdQxyf9lSY8#%7n<#E zv8}bf^5;}0v}$*SV>4G)i81syyY=T~+ri<&u{^UI)Xn>KaKn#OgGLykfYXT?xKVk> zw$YGKpT3_`yvredd!3ZM{Ll%bGYs~ z_l6}Y5QYbz3!M<8ahVF@y)G--k75Y`oT)4bX5uR1-Qe; z9QLPQ=5_Xa2ZQF#uj~5uLxBW?AMOZuIhEP0dtwlwEJyo;=M@k?;v@wPrujO3RS_hT zI(P=7eGamrxBD!@_`3%NF+wO=kn41&bYjpg4v)j(`Izrk(Vk zRnNRph1J)qEe?Nz;1)Cp#GQ3$;vYTQ<%p&SR@ zb{Rq-I}i}f6!)=L7$fi?1Cp60|LkDCY^td74t{nhjUcF7tG*Ti2E;)?_FyVC6hc7} zG^huxne!OlJ?agZo6l-7$?HZ09SyHO@G-p9=7;SG_X8U@Fp4ews}CbW{@@^FCTaoL zr5g(2)1~jqi=dLwP68RLz+`h#)tUR}A$#)p?+GdB3`70vJO+K8i)-QEGBGj#ZfUug zhI`ldFsBT`(zIt`{jH+G(Sf$jwANL>z5zccOSyn4^Z%^xSlfaon4*gyqJh3BkU>Cu zqr~yS3W7yJ6Z-S&A>#gN2qmoBm%)&7VslQvKlfs?c0c~7?0!t!%wICm1%JgBiFzxS0>8&e*X8wk|ApTC ztLNDLBSZN&3P@y9yYWv7cM&W`K#`F90Qx>V>>l7fpDhaaO0=Ko8jaCUR4Nb4)0LC{ zeZdDp#NsHyX`*7Lm<#hWA>#iYc%Snl(tptXq%;8akYAqzC|9HvN?{Qx8Hi+*5iJoU zNYWIfln@?tO5}t~KzG>wwUp2l5lJ;cGElS!NgRZI5tBm$1prV)(g`F5GR-tl0|N{c zOHD+~L?#o2tief2P{33TCG8AE$x0R^QY9pel*me?haN)js&tVTppA^y^S>`RJJ zqE0}e>vjjeoyHy~SF1Yz=KGz_t!x-bNeDrbNDyZPqop=2-ZPgA>`R5tS99EU|6aGR z$-fouIx?0d)1MFVFzg@zVgXbQIJ?D60QMvTOA5Id@8Q_YPQSsMgp_0|+33SrK^H_t zK%|9Q9xfkN++0_5)V$GZ2BSRTo)3b!B^3Y&5R!-jAnqD3@g?BnvkI;j78Wl@E?^J8 zDN~i#-0z`|995lrpx+M2P;n%Ga3mEit24VY5)o$0Y}8Ek#BIiYu5>F z(co7zfEQp5EyB^f7aoJz{O#vv{m_G1gh}koDvFj0kCNDUOrUFN&Gec&47{*z(j0}Jt&eN`yF$JUYvsCUbg`~Q9oLkJ8DQ}Xj-llkl;b@9iaYsIRNqq(m zo`@FK@W3>HSpt@C9+;y^1#~ao;SGZ(?B-1uHn;ZHF?5q9${A4sZ!-ZaOt)MtK6>{; zB@1Pqk(k!7viTaRc9X@feE~Ej=A|T*qKSzTS*tvpSxG=yoa&L8)0P=p3U6seuE~#7 zoK$D$7y=O`;gk+AI`f{@1}1nGivbBY%bAuMHID)VfFn&|fx?(U9o42?VW`zvy=B%V z>+>x#^>+I`FI}pF>iTA1T@^udm1F{O()Roc$Sy(zpR3bYubk5=TMO_;G_Y>~enr>M z0`w0DrnRbxXaWXaVw`ax2Qr70F${e^gWxx^7=|N$j2#tyQ_nbu;^c5(nYg*xmExls zA)W&T{8}FR8**Mq6A@meSU#^kbr5YM3FL& zF=u>m0r*}g!ae;46cHCRUb9#_BNhWc%agt@t^8Oj{oHYgi$bVUs*+4dH8jm6RL~1Y%?1zzKvIeO zMPrXh6Cm7cSOXBH9z115SMSiS1}k7XJM`u{Z6m)~SOI!|IJRu<{EfP>!YqRy0Cl&BgoU)^l++5G3XY~>q}z$L8`Pu_ zG&uunaT;XP)hjhM_s?|^r^AP(iF2IZ?JkTC2u%Nn3~2j2bH-f|`hd!bgwCE0H~V<) z3=j8)fL{}`A$m>vMP`Yy<>4Xg8j3rfD|KIyqs_PNMG!)E5%5tj|ErSz0ybD|^ z8Za^&mf7DzJ`Oi2QGr_TYDp_3 zL}!)bvo|M#N&432lH6bep7vn|y)leIn#6}ujSpmH6jYr84X~AnMnmv@tbd7aPoi+% zXH4&e%^8&`k$*GtD!oZGM<=EKHw>d6#=@~yHrX6xXwJ+H75G1MG+V>(M@V)-L0=3% zrFx@n+ae73onOG{=oHh4dXf5O1CE?LV8)FR5ERpd5D;V;bj=!YjJ%^DAJM%JIeE?( z-$_~FWh9e#sK)mkO?7C#8P*XDV^Mb<+c3E9NG31?NG8y=Co9&3#kdVdV`f5_zdJvj z0iaHvpQ!t%56A5tspQ+P=R~mtsQ@ti-hkgh0w&LsiG%&JtpIU>kFp24)9Pg6OPgC~ zENUmVY17yCwrz(%@v5sb6aWX$59kJd>QRyz0A-R;85I;kEM(&ZPES)`zw~f_oBAc; z{C*D~Gc4`Htv;h6A{94&6zc%}l9Bi21^&LR|9_=(CEV z>H;A7KJA~PdE%oADo8j+IcWoJGnt?1)(woI_0pBFo+tv$dM3AZ`r5hdX$#GCcg*9f zl20UK0L^EgW#C=)=gKO3&u?lO@SR{C+?Y1UK*nI`p+^i$PeB%OM!{>7tO zrE;ig7XCSg5O4k}XSfCXGS_9*v4~{DZY*gt!wq2-m)2-;C@E}TZP#g@QqLHitED&z z0kaS`fv{4}cwBHWW+X`frmeK}WT27KQ3MVGF`a`-du0!e1j}wM^eB{wG=2_TUTwkL(7;p z0oG$&+I-lVs=CZ5oNQsXD9;KcM7LZrSW3icoMkbX*!+LT@AF@k#j_Zh%uLNSH*MIF$xM5-*T$ z=G)X+(O46J*#L_scmy`mjQiW`Q7cnRU1N28QbI5d*G7*DuUe01qYQ%EeBFA7WO}bN zbPA|>E8KUIb5g2Hl~PG1jN6G_XxpNE4WhsuA`gYn_u)}s0=uwaAy{ZKVX=D5k4z*J z>k$hEZT8MskUlTiAIPI{!;q1IWvV2trh_1jdjsuMu?g2zk3K8_lv4xeWAW@Ba}*M(O@N`yYvL4n~o1=;7ZcG1}JX;+i6ry%(!+rn$1H`tn-Y2!0KFbViH^>}TgyeFQ*= z)IkHIe>&$q#{@vClA{pqZMKs2gu)dCFm$3`GFW`YHRY5H{t>9gSlX{2!}D}pGqE7X z28g195o*X3ZQ)6b&j|%Dr=jM4cC`L6pzADxz@UNvB{^>&q7(bTZ4+eaV1v>;EwSe{ z`xW=`fvFyGP5UH-?)K;VlRu;D<4GbsAX8$8i47{vlJCZyv%By73vs_6DVD5$QLqp- z5)d-@&}p4wK{vB_!3Up3-l8#Z4BKps(?t7mbEtOd0Ox%D)Ef|wA*~Y?QHa@bRj0Q*_J4!l? zC`&`Ux2|X%#0`;n5eFh6mNe8yeBI~(4v*)k=H9DehdC$tn?Ww#8ps^`2UzTR^U{RA zbqWXVs<1>TByGJwYOO&@l#%tXzz`fPI_0Qgv!8Xs_vb|)?}Ju*hF4+w(6D58M#^|s zXYX&^Yv-^JZSmiyIlHLUu_%N{yggz_KrtvFe2agyGxD585hL5F&LVmeZ4i;NnlReY zKS2O^AZCC$v=;SBt=#1RJ}^hyePfJO2s862Eb%h%D6}fWO(45X&3z2HCY_YZIj$yR zwX{>G5j0Yd3cXhcIyeN$21b7RIrG**G7R$sb`KvmY&X?kWhliG1-3RIhUiNVk$-8p z46!aLlN{MB;S;hq;R*l{p+ZqL(0sJ%7QZoEeXPU#BbwvSu9#A-;yiKQ0}mSz6d*^R zlUsu>OD~6oBC{QN7|`g25iHk8aeyGor5mwE7r&J7x1bLnK>A;ryed7OEHhqR#B~Vr z1>$kywJd5Mgg!ilWCE~jE>l(v2z5+$WoJ`BIGTs28IRYZ92=~kot<*{ek8FA)s&Jw zrNOOs8y1q1!6c5JvcqiJ-nAnRn?eCnytnfzDQnXDgqqGpmh661DBh|^k6bs)j!C@c_OZj3pd&>UV&tfQa?2@~lcOb5!5+Ey( zSr;Ht2TuDzi4tl%nN_k*qz~8zA!ed0iAJ5f#EBcM5w(#QE%=O*RNF~jbm(6on7|RT z^oFGdZrCIi^Av;sItz_ayCabiDn6{|7%AP@GGVu?|}b{58s7EaI6 zCm&k*Qleh)P)I?q!%dnB{X?)&5C}#b+k0NIUuT(zJijPbmVE1mUgZ%XxisV&bo)B} z(D~2fJl2V>^bJm;>yb};2plgtbHE&pxq12OV5=?|;Zdlv8=J;@ITBqb9$FTIg^&HQ< zSI6w#ZoQj5T8}>COkaS@Ng5+jKP*7lb3nV?F5SR%5Z%AhiXy3`!Q z%ms&|vJi3Rp}(SBu5CJMR@jgP5%NqRRCNF-4pYw3WltLb!6T>9c!iAgUK-7%!>QA{ zE4KeI0B`G0Xc$_rQSIIQ{zOnbW~49}jE3@_KO7)zzAjc82Tuv$Tt3aYJd@=iISLGS zIw_-Z;ar3aS2ER%hF3M{7VQp#ehLPrg7{`agE6oT?ZS&clgjUjN()(mx&T2Nv_ZFD zm&P-z$9Kin|DemefLdw#uRfVHIgrFO!G{EVuMH32L>2w=bsJJVv62iQY zm4#N^H$l5{mJRs~+ad|kYzl-(G8TY^``h<^Ie^+Hz=Q5G=IwV{`%cW$9p85E(ebO* zSK;_)#vudpRY?$%BqUG>l7OTZsCXyo(UpaX`|ByzKD{X7L=aO%G7A!TM|QZ-sf0z2 zzkiL@Z&b)rC#9&h2x(xlUH}~@L<0Wx!+OB5EFoGVDww-_D7GX0P+&k*fwU=TAbNeD zgq8FDFL}e)y+{p>g|MfMho#_OMu{_Yh|#$>D=dUC(LLc zqrrjn3berd;iUR~6}rMpFT zK9PhnQ79+|e$Sko+Zwj&_{K(-R%Q^6Gkz`W1}6s8W}*Em99&pS}0RJT=cL_G!5vzviFLJ zaj`m?j(SSxZZSNDi{^QwzYCepZ5>3@3H4TU5J65ZyuYddf4txbwdv5He)~vz6+*qa zIrB-FX@{B4_1!Vp+-0HY{)o3as@hL8mGd0qREM#i8=_uqyj;3`ZuPxuquiizIm*2ivDA=+a@=}4+q0dgX+3)Rck~&SkasmwHO6Li% zW!*rdq7_&Au$v%LPW!VfvDX!0a*ApBPwd_CFJ}H$an-XE#bvrlfDi69KCbR&9{1zK zFn?qC|Gj8ZD%n6#s4oajk*h;ew+#7N7_NAF)3=-WSrpkXi zV`Wt|NMc#ri*b@cHr6}?lr`snw0zwFhe8Pa0RwK;ny+RqGQQaa6Kr?lkcKJGZ_3~#>Ou8VCHiirq85f{Tr<$2uuR5+33>;5Z#@a0L?K*33(xda_Y72mv_qPXR0u^!6#2da4w(cYh=pexh|)yuUoy3Vy7 z`6CnuFBUrGimFrR`m(RaB}60eT&Dadupg`;eVEsXbt|ampUJCuz|wYOHJh?8s{?~3 zRm;`~av{icVVhVQSC3CV0X-8Vv}-m|^-TyChep{}cv(q5N{v{<2!lAFiYGajovi_z zDPTiuSP(N4#P|fkX^a2}8&>OEuW1U2hoP--hCrE%I0RET=!bpgH zP<_+##PEu~F;COqT0{eaMevmc4k>Q1?L(!4x*dPdH&75qeMG@}>P={H>?la$9_o8e$!oj?7Tg z4eIpl8YY-N0q$tXj;QxJs6&c9D$)d zh^V(n6KlHo!X*1`VJ#H)m^ooc7-PQI!_Cyq%ITAfJTq zRo@iawt|2tCZ!_d1Y%U}$b1w5B|CNm!BrF{SiBc6QB|umATli_n-NJ&f&ie|E&GjW z$jFyyEEOPxB(B6kuOmsL8L;t~EIcWwdDEm4_xzR65MG-Y=%o-P?WV2yF|!ck#sID< zNSE5H3q(ms3z9D$0FdAj1Fxgc?z-9QUNz!t&ED}-mO6u8k0Qw88f61`9y9{3MFfHx zyKFsJz1_SqtSP-X(mrD0~(>AC?tmnvo7_)lIgBs#k>^yx{j<3 zil2fW~Gmmp+8@KXGw?32(zY^D5tr1T1q8Q8@jxzFPNf1cR<~J*S`V zpW;K`rohb96cQi4LL4>yqq-;bzhTc=j%i21AJPRpzq|##7x{<+zdcd2!}$XmYv#f# zY&^kRyMIP*-T~J~9_#3@e_kFg$A}8Q9tTR0${}fWMZEej(Hp}FCEU3*pUw7u`}OuO z)ouZ(JIO#r10n>0Id$7?dwO73ch|2jMv#DUn#hFim&3(Ce}srU6oQB3ig(2euq?qm zC#~diZug;}VYfux+a}im-CKiU(X#CNQ`x}K20s#&Jifr+`BY4k1r8kkd0RFe9*#(j zpa#T2$}g;2w*reHwck*uiRx00VC+wr_e1P_B0o7PNc?LK6jW0cQl%(N3=|DhR6`Xi z;oI=~A2J&cZb}|}DOXS7K8sl`C}!e$N#B zJa9aV^|;_%|Wu|crmaX*)kU6^=34+yBuoy+iGSTL>pey0HR-%GFXN;V_< z3R#1{Tc+AFnGm7imNgn@-TILA48T`GwVBnd>76knY@=S}IwM4xAxd!xs1Mrru-D}| z$Z3N)x&5|yLs9%cuS>v)X$`qF+|H z9n%5@!SbB$QKUCk+;o0!Voh5^gFan&(qRzL(IP<~;);Wy1BtJh-MG}Zmq&*vkiz#nJ#g?#yW?X{j z4H(&2m8jL=+-7BN^0UNaLR2abg$drmyY1~>Uk7kLpQ31henNl>gVu1* zT^k z#$q3meggHM)G6#djLbu~^E3Bj*k30-q(76HF$C2^FU4oqZ&^wf2ay?y{%a_x-G7@q zHWufY!{r|!tMhs%tuYuN-kW?4-vNNv#q&))Kom>TL!@cf1EcLx_kpKT{6x{hEX-D0ehDZ;nV6k800ZH; zR)92YCJZrtgCxfkS=oWI>SF00{L~x~x`vY24bt!p$QSCDohx-qdr(Y(`T_J-0?EEm zXis~!grzFpL5X=_?Pr2s7AmmOBG79R5+Ww$rp81Vtl8YrS%_5xR#sX{lVfW;I@OmgY?&wPhuy(t%cXXPoD1Eok(df&PpoQDwC0S4!Dh^POpxX-h)VY)MwNty)g7 z(C)^KP!d9f{80=IK!tUsUfbhwnZ(l5W5;#DDYxG-SH`DqVEHbvnWOzulO*A&)K)f> zmZC`IOqOpcttebFmLhHxnlOb6LlFcq6j2Q*YB_iS+Dk(yR}CsvqH~(7919k+D3X;G zp;jtnt0|bAgv^N$Nu-t8WXkI{Vw5vARg%DJ8bXpvJ48;cDiKI08syd*khUq48Izj1 zo6|CM=%$`?CnM-(SFIixF%*FIk`Pj2Z#l6ND?qYqQcNJx zYbSM^2zF&@yR%S8IHN%jvJ)!tIResHnSl{QIFyB5X5wt2rqpUuvnpO|DJj-=G@WL( zg|TY^HqPL76j~FU9cL8fg`{q2vNoF)VJu#H&AnJL?WuS1` zLhXq&@iY&;?f2Lhr>Z8)A<7|WsXgTY6&+uafNkORe+K-??4OHyzf_f9$%o~-rpT_4 z8W;$6_RXz5dtog?nAbo${v|!`zV-o7Gwy5j@Mijvcw=2P`u23o;vICK#!6^Dl&Ayf z_+~x+>c5<9yUU0f;TqW*pfBz%=jFfvp4E&+h%c^M;sKdiL%{(P@T~+Fevep~oSG-j z5u`HP1K7bk{tJ1<(yof&A`g`&6sKWn3TY%hb@{ZSCs0(+McczT>~14=67JLww=WPQ zACW$35s)j!^GYSm<(qGNT67>j1#2|t2<9yn*0QikN(JHpJ&0hehZ*&3QkkX;c-#@3 zr!oL2Nopz^Yf846))qCJ646Q1)4XlsI^THa)NCMv4&bAj*Tc_TM%*SP9@QPgKbn)8 zsHzle=aC0z46x8l_W~=voU{H9`ZQCnaXaPDAdNU?yH!~ob zEvQ|G&1V3%u{~{^pc06N+%`dAunQ7aTe|nw@(TM=u@D?#86b^B6OvWcFdngFMHy~O z9}I~J343Dr+t_8Te3uJM_2sRw%)ua%V4Rl3M$2}QYiurEwO8p+5y5JXmw6Nh2k&aQ zB?ORKJvQFF+dPDNv7##g%%mwQ;hE>HUSLUxL3Sf9pVx=97TU3EV(gKe4_3&IRea4S zg!(jR08HuYIFTe-341vA`l>N$o_#q>k2&8W)0*xxwb)f$9b@#;c;)I`TtT(uMS$%i zEK)c1>@gAfvC|PTmWI6f&{Ij%-;Tnp>-{mNOpsNjGXR@>fw)_h^L6L_6OBW@A&`73 zvY>mlhVT@SidUX>Jy+21JF^ilgNJk6_bI@Ytvue2=y<^cbPx;z&?k)|zaE2qB*oA^ zakcuvoEgSt9OYpymhC_UDimh3L#7QDPDs;ILGO&Nt5mdwDUeW^CJ{+yIb>y+Wd}&bP_UCldRzdaHexVGEL$UZN<>HvWGq1C!m!DwXk}^keO|{|ecfJXkk~&- zJJ049Eu9(5e##oll@?5fUGNf)+$tZ48&PEVd$pTRUR?SF)pL&SZXu@I)ZM;5rS-t< zkO}nsq4II$@v00+0VXUZEsp_yO8+2-4U!r@q+xyvk}uAGtj(c6kMUWN0E~#&_+@Ss zc`-!hFU0w4Ot33g9BMunpAZ9yko%JO{!l;o;UB3vaISKe@+x9pw*W8_Ak<#~!$e($ zBH;lLJ2%C^hd3!x5=Y40>6>8U)BlHQ=rlX$BGjMOVd- zlmuuPj(zmpl21@0&60qfZR0zIk2bHiiNnKiaj1IF$#?)%@1%)O!8L^(4aYDK!eVvN zDh2@;cpSP7oq?nA1z|iWdqJdVHW|;q`2as-biFmKz@T1;;fR9eCn;zhG!Ve~d~>ty z4OE%tIBg;rhdK^zgH1Ft>Z*+`J-S!o)w3O#+;vOw4LXHeRfg=;(_)QOQQsXvQ1(R3 zgaD1rh(Ix;PA@!T8vt2AroS=IK8K*ib)Q<9P-FdYfk-W{NATBkRw zH{m??CwVTQH?2k+0Yi#l$>i2MLC_;l0i`4@mOEGwN~pr9>-Lu+pDGJdlojGhG0bs}gt2Z}9ally62%;50 znG9r0sW#E^S?Z9qC5a-WG%nb7w0l@gj<4jo6iE!T#+XM>V8d)Rg-ZgFEP)wdsMH9d zh=O7(+z|Ui*Rr9}&CTW{p?70_E-h#UXIoUSiCOV>1-&pfan1plw&H-Q=L*v-u$gfs zq}cINY|%oLz*R1Sg#>hGZrpk*$IIL`7Y~liG0>2O1BFN*Ov1s}4tzFSG+=!`9J_E9 z5kfE$5q*#Y`RcGFgv(p-!{`0Kb}jFF4Zbwdd*OUB#<<_LB(|!O7fe!ca4(sd;NK0& z(d!rY9|K=k#}zy~OJpcrHqn;tS#%cqs*3KUG>}m^^w}ZI3^*x^(jHRX=!W(&m0j%} zO0LTTS}4OVIkpgqD@+#~az^rua#a&zZ8R3h7=nryGc+2?kJbpzElOISg`TKNbgCta zA>KcmnC&gg^=|w5x=sADrA4g`U z1du2yv>(_f8O1=r;7KHsNhOIYNhFfSPLuAK*-dBqGubuFKrc3B47SRea8qbsOm>pLoNPRikJF!hc!Y$a|NTQIyzWm}X8vkyux^GKeingH&XmHX3sx z%)&}5lQe3B3ZpY42*MnTEDVgR2$-TXFsCfD5{RNE%CMJNqd|<3RvB586HSI>S(y$Q zkuhZC;S*RE8Bo?y5sp@76`7SXwn>;#WmHuTW)>AuW*K2wnS@mxuJ@vLxlzTFk)n*S zwW+9gQ0mM^xcZP|hP)1OUSc4GKd z@Yy*qfI%u?sSIkVa867%k#s1gKhRj@RzT!OQ+0D?0WjCS6Z!hJ<#KMKpvXuex7rpo z>_pYV$MJ34@Ebl)l|B!ZycNGwe-C~i^|QID!EJsiYz;(DhYFbjgLy**7L@h+fTZg!JII?8qtT2@qAO=&6tO*O@GOS3CJ-=-I>2wff5*Q9FBnr~YA(pHJy;tUCKhAlQ+gK^6>O zd7$-GyGF{>u zeBbvO$(glZokI^m<2*OydT)cb zRNtSL07k{jMf`+es-lpSvW1fP*Z7t}W-AKJf!TC0)$*U_$2p|?aw!flRd`Dw?Q$G`8loCN!Na zCowV=RcrLjl`i0tgcPZAK@F*Ba;UWnKv<)cF>bCZKMvJFDBe2xBaA$VgYwyP8@P3Z$VZN)*=H3H=|c84unlpk$=rc^@Pp=vfpQ=&D1412L1% z0~}DJkx40PXj0O2kREZ;pjf#GuCzXCtdrwDz;OPIFq#lTZ$1YDGk+C>CdQKlawQ6#+Ox5$202f^zVc`WZkFkXA%dU>d4$)?|j~r-0}iM8OYDcA++qG z4QdqywpEaCx{Pv$rWM0Je(khx)#X#AFxa;=d|ZZiL7@}bPKL%e^jlyfw|SFb|26&H zVEn%B+K!U+RQ`dDzZ}5NJ#!A#Y*Z>INvk0;$y;vQ{&*vIC#OFL%+N@w#x&<#1P2Z) zkZ?JA#eW~VtS-aw=-aqTWQOQpWAkud-KXB$cPXzBI=HHN8;yr~9MVvT2T164m#@RC ze9}bm#TZr2msC^pL|}NL22txWoP<}QJ9=Nw4fX=m@I>G?bef9IHexfs9UmvR^)vE( z*FP_-uY++o<3nyjMn@Z-s#_X8@fr`^ZzJAH&G>gqx2$kW?LQnK9G8umg)D-iprUe(`%h+<(M3GcEoI1gvV1h_& z>mLtB6a*Z{PB!f`91wR^>aaPgli$`OgRv6$fS|Hv=J|d;h5I^N#lO+xH_29h zHl{p}4}L}Yx~!v}A#2ZcI15YO2s#P}<{?I(Hw`_&0N0xekDya=^=Y<)H&N4HLk_+* zY)K@NPST{3Nhj!41Gwvg$+(p+t?Sd^=H>3~zU?{~bsoI*VJ@J#Sg$(%ZSU*HcUaldPR5aym#W;)PCKk2fU`Pa^BBNe@ur%kZuWjnM z{I>7khi2zK90EreRAdrEf}I4hGoD_hU4Oa9=lcG?%B%al|FPk`pK8#!XJ%?UtI~h9 z=_gxdFIh^Dx}1vLk7k)RLP4FWSNxKtAw0ECgIp@)3< zMHfbud2ty-V5klnH-fx2#;+ zb$C8g7;CnobOLuoq>wumI1SA`;SswXh;~hV;E2RF3Dh&_A0zA2@Cjl#Y1%&xwKI;+ z9k1ft@=d3Z_u6sKZqdUGuEn)bCVXW`x~#DjP&Ohy*jno6n==(y9!WKNT^P?*ngxur z9j0!I%}WA{!5dPA8q{Uy0jUCj1&ADo4n&jTrf1RC0I%r2@u<0B_ZtTR`>Ev{0GCVY z$H97jH?1-Cjg}q*kD$}si5&ohZiLSO2fqxG9>d5W(eOaO3>G|)8x)Qp`q1r}U#0zC zxFopy{^kAT41@p%)E4W;S?)j~z#H@F6&r3ary^4B2V_grl{Xx>r0IiS0m}?y*@x26 znu|0spGjpajAMBX94tyT@=(&4fKjI`IzctBbMN8H*058ewJ5Uu2*dKE9QRv!fX^UABBE*wO%y>NGFPD0vB%hP|}0lQ!Cv zsEr{uVyUC#IOpT@?|w6*1yxm5SK`dympe90L_ZiXLLhHGkyH1u@ig{dhZ$}khqs>d z<%g-;Ygca-O*zMjhX4WTG#Z!h`+iaG`yE^{`+je=r8rg-mdHuSG^Fnn4?msW3{8og zOtj}R@`aTqjI~l(V1_FS-kU^HPH+M_Y~(;szo+15B$5Fnk^v|IK0^m0l7lRaWTzOV z$jEAsC)e|it5)n~NHIs(38&(q-S(%t+nG}RU6&7V?VpEXB6qP|qW>J$= z7G;>^Wl>Z>L=k0?`Z{I`zWXa6B!w!ds0kzxJ9vCp$E07|(a^`oKTbh#@d5e{2hBZD zV@3A}X9R)0kmu!1yQ@k^k3lTBg=XC=D`P{3OHQ4>s|t{~1i}C>w0b?g`w~WAAnx|i zDO@_LLJgr=+K%6WA*X+~zzFkWpRLCGq71(?+o41*VEmfE(2PEPGm=*LudseOF+q4H z=z^Nmd4mFrc5>bxt@xWw=6t=FZo*cZq9tz58g> zFsh%Q#x4T&sLZ9#FQ0CG!KJ$zAm!u{`8ui8Kp#Hw)shz+YsT7u$dtrw7`k%Y6(mL; z+;Av4oNg!_fpBU@`;P1r55wbVu_h{xIlQPD*xvjm0LvnO;a&q?T@JOEK3+L`fYXK_ zFJkPbqllm`A$?2J@R;$>r(=NlTCd5=BV&r7oRLpr{afWH7871J9K|0#8X5{%q6Om< zZ3R|_bbipYsDcOqqno+t7xW!O7WuVi(qWc1dqV}8XN?-_wLZlts*b*7R1dOG&0yO)%df<0XtVdxB zwiSm$6;%Y|k$=uW=M%^_M9tJUly@#hdgmyCfUf#J7Zv%r&&jrF{J|1~$M4<(?SxfS z%YMljmYVrF)0lI!}pby%h9;k5iZu?G2Vbh`Awh?tILQ5PkQ7+YNWv5Q$e2AiF za~j4HOuVegxi5eVx}7FfQDEa~7PRTwjhy@3^&45rEpN7 zjMc`(R|SsoJ^TFAS!cZN(7#O63f5m457DC_IV}aP3?{tT_G?|JKcs;Gp>MG`;F{&S zOR_ZeY}ni9=x{J$xCzax;L{t&FWTOp$bH{0;Hv1}Kf~skc>E!q5^z z87Nt;O!HQwTrum=JTX%6Cv`^5oi3IMv_HeRnI%{B$i??S%YVF96fx^!#u?}>Gr>uV}V682ZtpD%#{`Q z-LiN<23WrXM_%AZY9`=_K#JFF$?aL!8a*9)W}}P{W!sAuj#~=?2_dA;)y^D$n|wZY zy0!Tyz#pb1AqXkwu{swzlgj?fy}F7|VY9QB4|c^9ctjMECr~K?s7`yXW*aqH=T&lW z%9`Jl)!=!7@0k!e9r^1V`(D4lEnnL~_CQ-29xF205IFKXTOn=Nrjb~xYt@fAgMKI~ z5g`ro^W~UBY4Z>P6>g^*%F^ccg~T8ao(sF@$u=H=Dn1hyP6FR%bJB{4q#zr9B?uGC zk4c@e3Ki+3gGd5^M*XYhZLCCEnc5Ys;6h(Yh?%>dLfX_h42E=e=KAvD{-2|q?Njh4 z%02Lquo?+qIo%}0DNv+=C1uH#fn1eizmCHpK$4)xB06NA!|p5`SHFu;X|4d`BqI*c zoYSS;^UjXR$D!H>rvM_5JA3`DW#z#2I)}S?`a4I`Meo!K7FGJ2FOKgoZxxj&2S=-? ze$5UhTQ|2O<_@u+g0MC#*hMAO-hgZAb_`BjGrv>lsY%}z^EieejAphrBA5Z2DfB1@ z>hd#;i2KS`*JeK>%{#;v5SlI^vx{sGL8z+@&Z^;s2~b{DuxAnnt#$)J!J|p6q%f>Q zQG6Lj1W@C>aFp5!+v#Q#c{cfzi8Cxz>^)c?aOd+it$21aoj$#GWpupcH;en%Ej?0#4;=2;7Sn9Q$5=5WlHzZ~0(fi+h`@ShXC++i5+~w4E^$e$=Qw4o~pKp75-_z;%UVQY5P8}YS zRdMZrtn@MuG?UfZktrgncAC~6Vrx-JP3oa!(yOyda=Du6s9%4;UH6prdkvIJ+%@?} z%Af+r;BFy#w)K6Sy#z@D2oa?KI&nIv;@H0J?Y>5EI0;TTyUK}wxv<%H%j2p;i z7)WF-lH_o1v>qx{cP3ItcN!TX&74?{c=PMgRZJ%9iYXT7*1vDw_`d^Z#qxZ8zZ;j3 zh?N90i9ls(m72|=VkWG^dUo1?)Siqq*noM16;ACCD3}P_kFV?v#~&7$W?u*}+7%f9OQtjmv$1V7_42g& z`vG&dCyeI4W+c}zPGb;Mg9q#JVh&g8*^W8&^(Uvp)9Ca1AJm2zI=J<2hoqIE;)aCD z!CFbE#YD)6sZhj-iL_)JdST`94shNJyT=2fLwF&m0{YoaV~L%m`z>0C{k2}|c7O&q z9-P|M0%{A(kY!DWNgbr|98p+IguNh6SBrgW0Yp6_KlkJt*kS*CJ z;u}eCRHWOrUG{L~+5$w#`U}$&m?cCQ&t1UY|x6&yEur ze0yl2yfAvC#vd2V@`1nIWX%1BCadC{h+(g&O;|*|t@9qu$~lT*(xbSKzpoG7%SIiD zFItVgoO(q_thajGC(gbm*e`zr+AT%k>JPWh%x@Gnc8DsYrm@1~8-&GLi_C7)>FSG1 z*ec#`UU@B#Hk@f&g-i;5gHr-F7SU#Kq}@!Le-Pb~fX>@)7JOM0uqp_~;o4Yc+^@zn zpz!i404d@`+q?iBF@+-~%bk6@3eS3cS2$mqCk)?^GNr|W_8fqqjYHA`X zh$bQego%oZ5`v@%i6UwkC<+LWnW6%yX$X=Dg`$FKD5$6jnMfj$fRSL3qJX4nXjzgZ zfU$Q9!8QFqMRJf{;iu~VoM-HL75TbYToKszph}KE^Mkw zARi6lW8~t^>aMoo`9QJ)3-9gIjq%!8bwKs)N(mEYK%FB z;-y7oIRFpn<9foUv2nbRls3LLaaf8gGgJNHZN(|IMnP*ag`*3RY6eI zKnkIer>|L_8pk4qlRut=qC&taBYF)CzF*8YbC==$L!qXL)M9J87up|s2f`I9H7Zo= z_qmeQWNjG7dwcOeqkq=*XkQbklDP7Y;m=Wwgue02IOD_!Dm{AnIAmr%HQ~~|neF6n zb6{m_4~=Un73xCFEDp_f2JgP+q2}@~zi<8t0}!QA!^7mj}t^zff<_ z(;2w^BkS_}$Jok3{IT|ym#c*)OyugOkv0(|oR&eJD6)yrwH%kBhYY1%r9Wn$SBpMv z{`>RioWtzoP#y>O%NLT5-LMougmjcd$lgPIDjhlDzGQm-VcSlTUgsVpN{qH^^!W13 z40PnGo#HM{$ofG72Fx?_#*F*G!LvKve3;R#GwQk6lLM`HZvj)w@&G9Sog&*Ehbj1yn@&^EfU1xZ=ZtB9u&8$&lePFGO$akZJ;hC zB|*pYfLwTE;_@BXTHm7@PU~&4x5OjiB!ExV^!)y8$5j?!pS~*0SLve$B08sEQqC=Z zY;E@V^XA_oK2JE*VeqqG06&EG{Mt5r6ZKc@5q^A@IT<8}--S)Tq)}631TfoF4xp5D z*Odl+*EX1TE7QGv*l=ZdCOiWS3ocdu9N(gB1c$=v?ctrqhXaVm#b3>f$Z0=}SFlI3 zrEvs<>^{pl)rVis)yQ_vneWHG0lbTY&D@_A>$!{?B$og~A3Z6|;~FX|PqNNKUbCEp zftg8&d3Qqq; zW}Kk6F1&iV7SwOv#m}|w(XjY8v6eoLl#VpPjh~+g-$yY)jxs=&T}*^fcG`ImGX106 zOldg99Zu}dnULtL!mBUV-n2%{Xq&=Z(*(PMU;_lvERIQo9XrO|giDq_Md5x1JvM3h za}E6eUoVBPzH2mz8MN=<0g{u8H7LEzyBvOxCYkZtO68D176WMYaomlYYWa-EzEepc zNwZ(3+qu9$b3%qsczrdbGv8Rxgu{TP8k@Ct8r59M=Xy#!re@P#sF-%L!b_QGz0j_a zltRm0y_Rf)&l$crY12A{rDU9D8JAo#!YIts{U2i1nMfx~XW!{m^_M)AQwN)7)i zAWTRAP-R<|4fMLO;~pE`iZ!70c?jGjl1NF0V6hj_`23I8W_PgSOP241pNsQ(Sb9%Aq44YGmJ#3NRO`>U!1%Ma zanPQxP|te%nA;ogvxW{3jBP?V20?~l@z_%mRB8+}D>BIC=ib@GLV}7@LPQk7l?P9Y zUVgeCXSMrbX_h&UtoTe|*i243#+u#70y`8)#~-TEXr2<|UM zJn#gEIV25jYrFjX&JHV4@G{)TuL2RU;i@nF_{+)ck$9hvL zpv-1_zODGt%Jn2YLF?m5vITyESx0CvHu5K4-@3P5SE1F*3c6U$wmlQP_0+X@&IX?^ zXlUsu<*~yy;|@!vXH`0q96L2#;C|bDo`qok;jh2%DtP|CvAU_j`u^@(ZGRRV?D1ZM zEJ}DbwWfulz|aOokDYihWP}L%76+EqBtliPBt-UOhB@#0_+Jw^du41P8Y0SJR8%U8 zXo%BI42iB2ToiQQaYy2p@Yn4>kF?M1<;CT+{l6{dL&rNtNe$%!)KL4N**?zOLl2Q6 z5&%d6${>6G6R)`G(9bVE)B8PK@dqyBe*pDyr1*IQ%jbagqKJBa9sHZ`b8`;cxmnqV2~bLRyFai zB)LRI1rG`!1M*4R;aNEBEF-}{+SUWm>T*&GcPt6lOrw9vx_@RE&KErE4+CY_SJtnp z)^B;;!4&Ai)vn1^V(|2>nbizpF7J6?3*v8ho(AIA9k?arX(XOgX_u;uS=Qo#;RWxW zNb{+xikZ@?(JQa0fYA1jcv?bL6xSuqqFOu)2iF&|&hmOiXE_qpW{-;Y0qp`sjRQ zSf)`V68t@@>T|a77pLc zw>AM*4m_>=A%8dBEijizXaxND&_^-=D@(tr~?in#tcA&?Zvav1QiNGAsPDnhKxP~ zo@=rMO@!NoqzoYJ9Crublb=-mLqE}K-dO))yVMaLg1F~DJq4xfn3Xz~Jv;Brv2>D! zH6m)fJ+K@&H9>p+5iG8)!mY<@`(>Ldbo_1Ev@U=~w8=L0cym`BM8-XgG2k)o$@(0e zPJ82r0ihzfS1~&7*F2XV&YuR?(d+CzKpmr8vh!p-JjF!PCWq9o*Ev<*2Rtd_PZhCw zl!f{3ud)4dnaXpy4j`yL1h)*%za}0WM*wMIfdKTj(%`zO;FE1X!={#(DeG#se|q*< zW-wjWQ1xys;fpGxE)TK_Hcqi_;lX zJ(Pdm6mcLEq)sr9gqg!jc7Dyj(uVEcyE?e*;^o6~kMhBRi%)AcAKPr<#hg!Z_~fos zESDvNp4gn+`9kXPgdp|cS~XK z&wbY{2-vfR#vRyJ+15jqg=tYWlv4-hkbc&qBmJXkDbB(OdXkx7|FEM;BqoiKF4L9g1X@%Vi`j_OXovSX|*j-fJPtfGj zfJ?1$RR;F%d(|bsI-Ss)e`_;8bp(iFOzpGmNQ7&VIcVoGX9{)aTQ?G{_*J5MsHG|P zR#g?_QH0ud+w3_VnU=7%a3!|OraFw^Oll%6&y#_uJ@Ou(*SFmX+OwaVIks)TRG;b6 zU{6y{Q*FXt?hQVvETYunq6Dp&=zTd)Jg(R~2bLP)(=Hlgo{fGU15D{DEml}ZwpPJm zp=s6U+a{jN#ne6rC4jbmOSIlb_srEw}$LLF`RNrk9#l5 z(@k?)IVg;>Wi*g&nQ(gG7rB;8I=9@xg{;D4?i5xKtF(tb(uO7IceXFlEMep8TjC+P zOAH*eq>W`8T|}S+LHkRw##3FNfKlh!g-29cxBJ?0l%+}cD|js?(wr4imGF` z&DTAAdpWbs^1YyGVC)=Xt%bh{f#q)?_k#fR?>!%*sxcdeuQJz=JW)2oR0Z$fY!BY- zk=F{&m6a$fTQWkHjJn9(=fDq50qL&)=Qv0{?Mh`q8m|ao5eDXr;pVbW0pcG!;o@BA zPk#kx92rX8yGAEQ&!09OaZcLpm04v@@y96nu0JM=hf&8G1HqdR>O)U_@I1?T_0FPB z%~f(ZVH<6%r|evK+%Sx&tW9jLHSEMZ2l(1j8Zr#k*+n0rS-~2{9mpdOqGFzR({IN_ zd-lVEGfrXV!_P0t`T8TcKnw+O&Qf0FfyzQn;N6q?StTMxbr@}tRt8;f&nQ?>%4if8 zeu(__m|}iaTPXEYPW$1&f&m?wi&oh0n-1?lMsF;!Wv((;VU`6iAS*hl_N%pDWhz+C=xy2Cf_}`7;gT{CNdG zyzFIKss@E}RT-o9z;{stwdaJY399m$GLWS@Gi)Y2{g@@siYj^bwr(wBVf`VYI^k5v z)-)xJ1zSx_nvQ;Q^}o+cW6@6@oon$doOY@)M(3DQ^hP*tl)8D@ zz5eL;byQ!eXv0JC^S=(>^=ocsx%^#6lyR5bG3fBx-8IDolx${STxaWAC=9y|o#6MD zA(3hOrNV+JKvb$I6sRtNNv<_$kwtb=8Bt_>J_xJYPV+0`t8YxE21?`9nAq@+3}F;3 zEQXA%9hoH7NqWdj9-g;Vt~LE7sHcHf+fJe8p!`+B_Fx z;yfkr2K4UbT!{7ba3qtuW69O!!7b~d^?R2_Y=)c#HYB#w;qyi#5#QAK$1wSPHFLAg z;1S|3UnS$hk=+odI5xa zB#vXVn9Jz4Gr4V_8u*Cyo;>~jT1ychuL#J}+ogx?H8Uk)T~v+;P&|@b<=BT?o1pv- zjYfJ>h@OK>ZAWFOF20i4=eu^-#@YV$pNn`EuE&^>TIpDJ_gesJkQa-#Sq+_Uj~U0ZeNzBl11#?9Un+C4q32MoG+df;?b zd$OYWG231^W4Ea^#B$~ZM7^uvXTO(Q_XN+wqoy>+Y3hE->3$#4EyJmC&1K}-rz~@( znx1vT(~g|N+MHQ$?&|N`YhI)JXuVm=MrFQqmt?sm&ZW(+}Um~1oejXj3j-Q6_ z(c{E%!`eI-L$||qA_fFY;Pt%uN@Ksji{vFCKIG`;Qm=JlmCd!?TkA_VEUj^nugkeX zjc;C6b3R?gaS4%G8uWWT@wblA;+?PF!+Y->H}&_sUtP}*vuW?}F-BS(&L2+}5WzDS zNjj_ew<`u3iEOKJLRwj&0Zjs0rSoG!or3D=Y+hMgNGVivv%2Hx&ZF1z%gm?I(_cTT zuh&2%(m5Ty`+djF?OrEcyxlSHUh?w2^{JI`F;JI+^sFIO@jg6c>CGrJlc8U!kE=U)5+i(4(t@l zixiEU)rYC4*GbB>__Wcsu0Kilvf+Ds7GCLUm@BhrvXe;UJ2prUfb4%{`s1@1_h+4I z*Y1ClbYtc6ex`bP$8iLEuhos3k`vv)DJ2e&KP0}q^DGiQPrK2w&M9QoW@cpk2~M;k z5*Q+)^!DCXl`6(kUQIO>e-2Y-*KuI}}ocIwr;H5%1@rG$NLv%UKL zi;$B((XYuN^~`d)zP*q(8fqt>DcHNPJyjmPDNk6f{W~t3vv_%K5RmUs&K*|jq5O?5 ze##3+Gj{vmAEQ_n6q#-Rb~)0Dq)g)qgZ8&yJmXcx@gR%(>Z|t@iRp+q}{LV$4*szJM7^v_iMJZ^HW0YfVxC27dS5MBq5TNrBf3~P(Qx16H?OTlyNyU z96^vB&^ahYLqST{Yz9a~DM?CFnH<5X3Zy9lfuRSsayW-1HwQ=qP(`kA)Da3Bmn5c| z3Ic+nirxZJ9`vE9pb-8X36T;+DL~MiNs<%=BSTBiA@Lj6953Zg96A9s#{^1Y)4-aT`D|n@Ke_>yU;2|J;;(zCYc3VONN=9HCSZyT4V626$%-ON@Lt| z24JW-dqW_{R!z81vUGr>00{zWH*)P6y{f)M=K6bWrn8}! zOcnGoL$h znvRGRXpLRQW~Oguqm@zw+dZWdQY1tOSNf+YfXtvG0?L>Wm=|j+8_(%X`bIlWrlPgk zlYYV!?IRF6k1)Y*TT|w2yB8}3IBU$e-_Ek%)8uaO*VsxYK|!H1+mBl}dozs64VPFV zcSg6eANJz6`My?7`UpGnZWYB(55JwsPclpaB$sxwvX4gq6etA@hZ;ghvB_q;`AnfTVbyxQ>*@Qn5$uS< z1PF!%*D;A})QTw({6&3=8~xt*-NI?FZmn;n>1%e8s(Ow9LZ97M;0 z>D6Yy5VO0|8zmeK=%P#mO5XNbxcNlJpp3^KM(uZM>_hWv9-&Jf+7Qd23+k81-YUuQ*VCk!Jv;9hkGF9pDXNI2=~S~_lzf2 z26^Qk7s=;uuI>ejY2{J*NUxbj9h6~38?{#kNda?b4GN@Wn{*Puckg-a55Lo#l$Kc> zmwN?oy%m0?1I7IkW98@bzQ2<^vGH;1vt79r|~-4|-Cz##Hzg z%}Dh*Ze$hnaZd!oUygWO9o@^wax0^Ko%qDOJZ6{-2(Th|s@P6J*ZO)$??m&AfdlRX zow#9kR`&Nlm=Jhvl&M1~p4j<&ym2XG+dW)fczXXsKbzb6n@U$Lq8b+t_MGm+?$kWR zAQDNck13AV!b<-&>mu|)DsgWx-MikcZj)Pv--oJsq+YV=QQgeqT3SpEETiPSUfENZ zwpD?NQGQL!;fb;rZWDI-^IiGUUD90_IwK1zLuRAL-(Go6my4R~Y-uwtc(Z3kpO%Q*mw~{qlG;DJIq7UUWW-syGt%H1Ov8cL-s{pjJ}(~3 zuvWhYL<}?T*A82@4~JS~&9i<=xLApKO1TOoLYXhWe4zR(ryoY%{QPm`-+=g)>=aw# zZ{N)<_D|b9t2{RNvil1p#{ z_w$B?fU^i#O3)75#UjLD26VLG0s&+1lzQGNJ&YGeUyC0gx+#~{F+-NV#uxD^m>Phd5?s8ApVo9wc2%zdxMAGzhZ^#?-Hc)7F4u>pO?n5%R1l7j+Luvd;Vw>cfs<$$duZU^ITLDEB}m+ZXZl}@}TPD z;2cPMl{yu0+AYVW->AuS=^4WWL=e*C9Wd*9qme2*$Z6ZA!G+|bz5ug&!KotS-uUZ~ z@mAG-JN8066P%ng#+C9kg`~+Gsqzssyr(V|(atNx%Yu(AxrnBQq;%%|rP0rSDZw?S z8wcvzxdj5?PZdl!Ig0PSBF}BCNjFl$%Sm4alvRqlw&1U zAeCM%YFu9s5x%3pDobCjc>Qz@-Z*8T1P!AGQamYx`18)PPCz|G&4qC|0S>#8@|C*C zog!jinh6(A-lb#P5{{lWd0Co{uySl7o6{;_{uB9w=P22gPMbJj=-k>bnEp z;$w(msTi*?970}cVNz$w{+hj}nO#Q0YL6>3Ke=!{CVdcaR zrQi-vwX+M;&9|5lZ14gTq$bbZIRf;_4xGXjDwA@JjV6e9kZ0W9fgVt6!MUm5klgO)gZbwICQ!0d4iF~ z9&hJM*I99;9kt^7Zxo#VpO5lI>58*^*lmE|krCh@Y&8{A+W{NjS{NXbLa0|NQCn7N z)&38^5#OaMzFxuKsDh9lORy-B5*QE3qz|-(6!%Hb&lS($Yz7g~dMij!Jk8yz0gO^@ zQ|Alx#_W0Kym~k1rR>9RcHrX@Fd;s5M)S@EHYlM4u8Wrq^9^Z-m|8ep|0vG4+?j?o zv=wB}zy)m~?-4w<-H~tkcQ~;9-8dp07YQdnmfm@xm|vG**-%gvK!A*;*D=*Or4FQ# z%+bfIY=9?bQs;k;($NUl3h_$!hR)Tv9oW-iieW%RC`iT}K8PMGPz1M+BF%VuKAFAb->=i&KC8gNMEPIh)p>B>_};^Stl!K~ZRqsweq+-` z)=T8~x?Hz=cjvaIujbomNEr9A=SKv9Jb~x;=J`42?QVW&_dNjbr>dWapYP>DMU4=&tz#;_{kr=R`RA89uvwS11V}Bk3RWI zD<9}eH}damlD;)ftgdaZm@(UFdFdC8iF+i2?K@-8J!4{C**qe1-O1vk`qJ zHg$XBW*#NrM08fI?m~UbKKG&d6^LltY#-bpc!*;&YVCUa-eyV)1ta;o`9p=qO#LQD zVUL`1tlZ-^pWX9x_QeHp_g(#?3H0>zZJvV4Ip?#D1+%GIWLR6z>c#q1N8r7+_Tu27 z2eks7Z@c7Q1ebLs9Rg1-QuDYv4YY<|*-J<*v7z3$*e?D3%?n+D|2hvB$j~?4Sb`L& z*g75E)=$DW#=LV7`DexL?nL_nC#Q!AK&>-Ye2!?&Gwr(}GOq7#O!m8K%+0fQ#Mu<_ z)~+)M2SW4Sd@GKA_>mR?G+tb<_Frld4?irl|M+tXrKhMWjCjcPg>VqzM!k* z!d*w&WznwMi?G_@^a#yf9YNY0G8ifht4B#=DFFMZ3)TNOO1VcVBRabU!@DdKD2>LB zflZG=^ln+vQiVK^Q}$)%GZU7@%X;}|o{vl|t48PBb&MHDn#&_1ITQpD)R-H7-Fmge zb;vEnk3KUEf={1XARn;%N%xk854;L+$X|y6mmGX^pF5|R3DTFIC_WavgfXvC9zO26 zB`uwiWC~(fr+6XQS&+$@hs?5?lhxdUZ=`TTAA#;Zz>`X*}ulTi@^t%5}}hhdER`Mh-oYfTs>= z)Kf*<-Os;&#m!xo3~RkJ)+nY8H#5m6tkQ*0*p3_mbTEa+;#F5TgHdHI< zb{G0r=gT`~rq(k}7<#4&LO~!RY-Gr#D`+|!+U?{bhTb<0HX#z?Jic#l!NYF|rdv=8jQd`-1%>H*ooYrU#~z zr-vr&%yfN2_H{U?-Im)qlKdA}vJ@cqfCs`*B6x@+yPb66HxB)m*9xy`&3@(UMzZm` zyZZjkm^?Ev9X*PH0B^9I10)Y`E{krL@iPL7TH75LE7FMnXXc*mmgrxajLD8#D8{jAjfXZ@Y`v z<6YA)4mPooxtw0nM?bnEN+>X?noZWvds{HLaz^ut>YU5UhfULUa~ zjkYJnx4(=8)A`n=!ja}qyX?!6_E)E(!K~b6hLJCiC&+Zbl(nS()uIq^$6ChkFOf`@ z1NPw5ItZHVX;0G~n=Ql|VD-_%#`-Mhsn)An{A?Kk+-b?tWpiAK4>6VfGX^WtXFxT36xba5R7;`xGyNZ40-X!@cG|ri}q86sEp@064u^N^T>j2Pa`WP`}$Q z6~kngfg9`xAKVUUt*}m-=zRNY)nKeMKPgi6pg;*go61-+c>ptzSg(h?@8a~>K3+w) zez-hYd$w+_KKz>==2AsS+4cO>^-rhYRK)_fs9n=i`YVt zEQJ{zJ_Zm*ByS>bFvAa}T!Y-Gl)+QU!9rqS6uw?Q^{t0rx_}EkTE=BDs*Yw0C{(v- zwEYrk%i5Ktj~H+^=DiOv8+&tX^uH_dACh1jYvXI4jv&T{+wEeF`XS)!!>;o?VX_x5 z3WZU;v(=SV!-Uc;q8UedHcz^A;&CD)K{`VDMVZp+-qXw18`nr29P`67q|3>g5piEc zI~Y)m8v;4r2oO*UeQo))Sl=KO8s8|Z+@^Dz4Ej_^pcg2D8F~vEkoJ3r2(YOIv3Vog zG}bmSkDKfEOu9YU<)S2ymPe@PhYE4oCjpPc#Zd(&s3b>;?!nu<_K}qr$1&8{_;WCc z+^-$N8zu7|BuMsq3l3IMUZ_wfpA4Ay!t4_1?ugrqXjSnoM`kRkk!&{4k(>!3prZj- z80zD}(lu0YDp=xZVZNVNdwIAl`c8ZUt7VryAw4XqJ@ZgKgj2-fi1Kn^C||i5{H7kH=1HCL7nxjfV+)BrheaE&8-pAfKy>1Oun8 zGL@Jq`Rv;Imw!RbH%nhvKe@-Dkpcb@;<0dx$(Ev{C~$<)l4N@svsbO~ zEt-!zeyjpLQxLW%S?2DXPKQTS-DSwg>^t{|W*r`zX>LQiwh_0t%gllBah}IhUUqCv zE9YC3a61f}7FuR=%mhHTRqHV9j{Z{t!jPp%Z@qXwR#c%} zG2VE*MLu>=>8VN3!w)Mi^YO}@@(2rf7MF2}T0&29HJnUU@`@EyiPofN6P*0|yhLoI z27)8%EeD@4!#WJxGlJYh|22ZKUz{wYqKYiK822F@a`3EUuHaP zJo0OT;KTN3ng)5Szdl1`Yb?zcz}8Ow(#w22-dLUUA1kgS5pcMPwk5_Ez*9xoH*wm&!d_K z^(uWftp~Sk;b@4tXS$c>Ult0Mw#FC@iY5+`K~H3+e6(d+xLw>vAnSE*D=2$79;1kT zFmxNJ-;g+{x}XTJuKVeJ&YV7}YfDpTJexkYZ26sqgDxJ+HgeJE!`3@I{QEhNy@1^# zbUQZ%!dwfHxE^_ZdieJo0FR8CZRY0eb=7sr+fH)$Wqsmn%X44Em$qY@`@?Din+T+} z)h_wCAocWsq;^tU4LZ6%r&SsyX046B!)IQOpN28>PK`mwb|Gl{RnA_>3^Sg+B6P&b zTbiEn>$=d7o3;GdT0jhG^xfZVZF^-|IQ3{B-}7l8A7*X09C09!CtWA;5ai+}v!@2) z@D3X@lhNv8-f-P45O{@fP!+g~Gn`f$hA;+^Hc>ZFz2&I2Du@tmm4aoHNLgh@4>(dD z>=BwF>I+*Op?Hien@>^O+0E#*ZtLN+J%KZ0Ki^Y51T{OsNCrnK3!-+XP zMh5*(<2C>Sl+Dm-6p|(7)PPVNpK5BA>}kJc&<{ zIBXq*0wI>W1PLfqN?H$zKMBT($Y~SWhv`%yhnwpz|4h_Sl2DRR_S9y=Mr*0Qp`Q^! zTH7wtFNeSv_TO*6&u)K2k5*j7d#%I(He`TbM#pwLG6ID8y&usizQr=rskyC{c(&S| zu|x!0=f0n(9D30L40vl%PT>C@GShCmb>T3%OJZ%)=8&EKxe6YIN;kbejRd%E!kBvI z6#LExF&K^^1~Rpe52~B3OI0AR=s#~pZQJkrGaGbF#$ZfEUJnalhY}Nnf1(eR4s9(ZC%dwpoSeDj%Rz#db4J!uhH^_ zv-T7k^^92ebkcu^M!M8yUex5?^lgWdKW4DNA_s~UY@p;kq~!R&=}87pyPK7<=-Zd_ z*31pEmv=4PBOEuE=}M0i(;gL6nB};iiwqz zbm-3*C|s)S_!XDE4S@J%cKVLAk@F}hn`UfAR5INLq#@!n* z8*WsF`{ax?fJ7|4PVWgOVIpM^8TXHCd*0=rj(eY^;l>9MkS^ICb{XMCF{e6;QBL}? z>s)TTReemg$!(J4xn!*Cb!(~A%oZCtsXQenY5mpPF+DP^tr*CN^1j)X##vQg^R&lD zp>McRWmc|vN52{88V`b@U1V1aa$!w^jML|=vm<*7WOXKz89S=?xld ziri8@7kcQma#<^mAaJ=3J{N1uL@s-jO>o*8h-wiw@Py81hvu6(DVTRrBwE%ww~5GKmV-%iK}&sOx- z!rXdr#k21^CoZ*IUibXC?JMCi%wtJoKh;E$3BaJ_!9ZWq64}BJ&WSEAgVQQ*^zMDz zw(fHYNjM?>EiRtcsi_=nulm;IjHI7|9Zw^NyWsNKMJV1BuV&6(e+GIAQ}oku(J|=r zS8*K2k>qj2d3=FWb!k29@G+qd((Uo>?2cuW()YH`R&H;e^X!zb7}>*qx=St;-<9{X z*!(cBil3(cwplmof=e zz^fJ~cQ9{;AoByaZ9oh~$WIOtn5V!nf#=^|xXbn9^k;y-mzk)1oG`<<+D9Uds?;jl zS}5AKpiv-e#WoFxn&)&1nFb}hbP{6Z!qsr3TwrF&qh=Lg!D^bTOcREOowcJLIL(28 z93LOk>x#Ax7<_LJL7DPr(~L$rE=r0(RK;OeCmp^;9_*?$zn()QWk-{&&I{2fB+0k8 z9#)X+ibWjl(j@a6@{V!&PWGVc>u2iSCn5KlEO_IuqwJ`CI#_Sxcyo2EE0rD|IyJPA zt=HdcO~9Zt*SJNQPD{eVR)1X0ZBEQJaHv<&#gKKvpwAARzCDsHteueX~8bCH9#W$yPp5yJ14cxs=M&{Z#KNR(AMAzxJ4Au_uZujxa zPOk69zN?!59$E%h$3Ed}3l5LXvxz~+E9k*S@lT zzjlN1G5wU7qqHAJ=i}Z2AoS7sTTjor;oe>^znkfMNK6`nGsC7bBQOyJg2bDx8QJW- z)?Uw|O)6xgxBAvKmJC*34$WwhDUXb*E zz=;->9h$<;G=+(~pS4u%=g)DAOJM`bMFAg=3eaKOp6I4KCr?ojdN!?I!CAdUQ|ssE zJie&i*FeMK@^J3g#`D6QIPN%sz)j?KAH{?cBimP@-QPbc9dl6!=g*aUwnull%K0U)$0BQ`wN1&pq7wM3PLwyk7$bETwY#m1Nr&)GX4! zo8&AWU@k7$IQE8?+&og2t3hS>(QPTboYIT}AYwbNzd)s>x)`J_;$j~K0Ia_hp1M6r zk;Znf;c%k4UD@(sgMLjZjB{<$UOeoC-xJ7&ynsX-Sy@0t6=Z>J{D$lzDdSw2IKt}8 zsSkF7nHkk*jUFouqK@l6xk+f`-FVX|=o*I`vZ@yUZ~4DTU*Mo`9FT+~YJl5%YEJzy z)&SJnJZhtq>%KKAkDBc?;lZF}`0T%>6Yu_YBleHx1Iguv{D1>LGcRkvz;jE0;y)D! zXGm~e!vcgd6<|OtIfyHrM^5iQbMtwI3Dc)x3VlgVuS7v0`Vn`a_j(u&vcbIk25TdK zM5jdq6EIPT8b`>%egAiokJmYUK91581GZtdlojf}>3y;qnM=Y*Tyv3rnJ~n~F~!BU zE%|A`s~VB#g1BW2{rUoJEF0_;(n;Bqk(4j_Kj-w^pG+;l+gS=KLloBrD^a_d^xC5p zV6*_DHpDDog#*k}H-Ks@SF@4aE>cNULRXhbS`Il}eJBcBRm$1y9RcN+)%oMT2J#s` zK}Rc+d+EGgsGuhTuiTnmYQCbUOry(}Ka+=xG#42l)G}U>BD9j@s>}9)(JwKo8@7cp zbSN@GEH`uH2(Qz~`M82MY4YG8rnu?yItJ^*Pgc-5!P&5yQJvHhhUZVqvy%wA?eTN_ zTfQb^yGAdf)A-4R377;2N071RKG^q5XatxOQr6ecA%z31vjR&=a4moY7g4Rymo&V9ZmRxq7rnYT1%2?~UK>q!Li3%#HwS6id zuko1cqW-KqaL(cHzuLTpobvVV+x=f%aO)GuA=s~>9yyK72r3WscUBELKWx;Bj`8(3 z+6g!z#Hw*{q%wx)e28a7id&pxo^oF8pbROccGIdmJiPdIZLM_Mo&P%sj>}`>T8-W_ zjy1P^IE`iS47xc;%`Nq>@H<<9ZeLH?*pK`MKJ%Ht*~8S|9~_!zmv3Ktg;3F~BaD`w z#}aqRQ;z;<+%T7Jp_pp^jvrS4D(u(^8xt!$I_eizmlCDfHnN#U7~!d6xu$0|T80!B zW(yZ~^(mz4l3YNx%{)wtWWk`eQG;fpTfA$snv`$?;U_x@BGX;iW!D(XHO{t)8`rv; zJV;gQs$}N)de_;Ft$yBr);}l3mYYy%>+-nUjJ+GS%UK?w8y}mn_vhKyv!0n_agSGA zK57+VftHAz5PCY4hD_=Fu&qtA2AFA>nL#N-B!ev6jxsO#e(C4w<%6apjchwG%rE7O z%WsKXj^WUwyhlb8lXid|Fykt+zR{a{Jh9}J10!K$h2lejP3my->+@TFT|Rq#IA77s zyq&zBY)rQ`w~k{3HMg|FdHMiE?g0o3w!Z5H6Xr&>zF#n0`U3r4USDHI21gQ|kk88d z{F2ZXoWOk)6%MR8@C=Re4B9q8qbN`j2Ay&{{dABN<G1FJNmv#gtk-ZRgIzv8Fo78Cj4hZvwHk zMq?rGa8N2YXdp5%Sv=23|5QA+TYIw_7uJh)U~D7BE#NpAj9BqwQ!_(z$C<%!Wt zgTGMw-aN_h`jrzR5J>t=wsS_^PcNSr@hkia2?UERO_fVo0p+@zC-^df^ssBMS37lF zd3bE|D~&vAAQQ}2wiH`cuY~Y$FX&e_8S1?A;7&9Td`Jeu7mExCL-YlU%WJ9W%~&lN zb&4vb=1i(WrvSckf^VL)g4b)bnZ#R0J{Pd(FDadYjd0tHB&d9IPc%y>xdW((hx7XI zz7nH^d7_5NlrhlkWX4)SEh@DH>kGC}7#+(?+RjfUr#YC*6Fb_AX{|DrSabJIb-M0# zG?-YxLU0OlJ;^5bAw=szF}lYbG*3sEbiOFa(6&p@fOcj#t)UaRb`xoaZdQ*I1;-f5TTirzVQ-t ziAqcM=_!DV>w-)Z1i^;GcyRfAYuNhe-=mp$IZnZ`iOZT*ZfdeWDXXo5vcOOcRoBMx z06z&aCKX9B3uWtQ5~<|O#QY>qg(pQ~c{~ZdEDLtF`A+ZSY1DpLnis|JZn@3yqhzj3=*n0_hOHbyV9prA!3?7ofzdfs z%=Od=LFeTTCtFO!1D=cqQh|Y-7-wdrnWUu=vU^e5CR|nFsaZ>ot9ZGY3$L{|&bnsr zJmbzMw>Q=-IGjQu0Ww-jekm;FG9GGDa#w~B%+@d2EU7~wDacUn)4s;mZaeDN$(pC( z9`9Gm$Zx@$NJf%Kb(*`079muWnY`II$rb~o=G9}uZYMRWOjJ9x^c^7Iqm5li#&4vf zCmY{Q5v9EnP8;?^&s%>i2%O?xl$V+{*ZJDP^wjg6&T&d~;6W!M@x#nH?(m{(J3itX z%c+lP^%)8(2m~v5)TQ`PFG~qh6z^DPrQK#dZ4G)gE6V}|r*_6vLWR-U&Z5AO!|C3x zA*lW+d<7*XgVhSo&9pxOFYiuwb5QTzdgG0{@>xe)Rv+8%$HSHBhJ0C$IAI=!@EqTS z-){`8nj8a`^FNlAk=8MPv+3q+RA95Teh2j7ymVLD#VthQ)V$Z{Sxz<_zfO@ku*>Pk z&86u@Uy)ly!!Ellh93&P&W6KHi%pt07kxik>16px>)oChEGMqL*zA_=Yqisbe1c=h zA#&!nc;GF|%guHv;6)Cc-b}ENdoCHXwH7fl*x#qekEi=7wt_uh3Z_VOJxCd3R-E~r znsIo4IR>xu@0ul&k=faZ;~26Vw~gN`G!#$ zv|HhvH^ieXrLtIgo@>n?5122v)i#le9FgTzpXiA51D5 zm7?Eh=%P<;LW~mt)2#zxTV8mytY^roP-TCLkB&+psUMMa-EF!bm|kumsSLRm&pOPv z9=y9qrDj=lim*H|rb&SUIbeS4Fco6Mn~9~Q1(0A1SuB%1RpEE?9sQ#^oy#&M_lxs% z^mS!!3uD>ORp?c8h*8Y=4Ao9hfKbvmc%mhr^gN(j0byVf2I0a@8Mae^qWf8H=E_{d z`S|m1y>XpnsFyi;Vy$cF(ydyoLJ$H*_6*bl+1QsiRfRAK5>w4j)aNYAr=PJxzGhW* zEH#qZEm#$ajb&OQKq2N{!|C~yOV3Iks^mtLz(_nll;d?$2RYf_S~#wpGY?Syfh$N< zF`fefL~oWbBzyt$JI(_MmOA|He`VMY(a!@8d>0*Q0Y+^Rj5<HlrMzc4U;0z&0Kx zUl|k}%rIz=nfLsfaJocZ{zHCRIg?Yp(kPWowl$1!rDzEI}+g~>k!n>N~ z?e3QNsd zV+?#;r4$_vaanoSbp*Q#7gWThhh?&PTGyY!hfw;38OWUPh3c0i2HnPWoexWJu;@lH zxISUI96=!7;%(6bZ-M9S+-I5d_FaY(udC%~==I^cr|b9qXGa-aa|T7s5HTI7HIqv`quTVPc)s6N^sndh!x4F0U%VzxjvxAob&e7PtdUF!h zs;`QEOgC@G`Fu9+GwPo3yzIe&M~pi*DB0&>)5gP)HJu9Eu*zyEPBLMSlOOJQaROdp z+JulULgS~i6>+gt56F7Ibwqp^o_9LAFIzA(d`eF44T;NvdAW@%r!_87LpaDFemE}( zJWTsKy#4}hh{&sk`*ii&bX(x|dH-mB|9x}E*@ZlE-HNBf1bD+!+p+3=+4-+5JM-nO z2A*tboeF7})i4!?UdyuPv2TAu7hu@B(3IFkZPkUT8!v@`nXv?cil_%w3Q!i2T$;pN zYL0)5Y7t0z`gnGW+;2E@`x|s&#|R0a!)DA?v6tIUIjy9^Tvf<7BZ97TjY~Jjvo3Fw zPl@%>XK=ce7!+cGRZ}cSzZNprvxMHp$+cToMLq6 zqxOTI<2a1%P=X1pR>m-)gO7jaH@k`zMA%pFi{Kf@~_O*;?SHS`(Jq%xE4O zgWmr00}3e{U0KJCq4#|uHat(~^!-~0s~k2uJ$TD^2ROUpeOC5%3?G0VSC|$`;(Gf4 zL@0oPho`rxw8)XM4{I)^R(JyX-tiVPdDB4cSLrpI1_pUbDQ}o1juYiY^YL1J6t2mNgGEF7H=q z@k)gdAY+pizE9ry#w54Pk!BRC!~8BI<%uN$`n{9H1VNOgJ%e!Dx;~9nIT7(4cFr79 z|6ZH=-DSwIzh1i;LFkho6v1!8-QqFByp!>H2dBIWd1sZ61K;_#ayfI)*+`zg_llCj zEI15nEF`o(lO9=i^+fwWM6mKp$M9%m?VXA0mq7wF-{b~j(6B8%o+&>TCfFQsPTXl5kGaO<`1z$gR^?% z-nJDpYm0^NT_-fL!o1BhuHLLhIZSl?oI7@AoB49YeEj7Exzsm54EB6+K>N?bD{T29 zd|);Mfce|kD^qfq^XDCnvj^WC`6RRN>s&H6?in+1%Gbuq&-%!-j_G>syKv=}ojc|w z;AAuqZ}a>(X{g|xw%?+peCmlTBXwRgKNUtBaFN@>gBQcf?~?e|jFpRSxw(}J4Gn3f zpR?6(GwJJpqn`c~803Ik;&K2aW!2m^yg=sN<>MV$<#)D9RM&Ii6C8vfuZhY2lb3(z#c8rk%IJwrtDC^gwiZ7#0lQhE z7c#lF$j>;{Hi2zwCFT&cc?AkwITShZHHWJLI>_jrBdtZelYT2gi#M&LiG{5J)={}* z^2GGONJ$8r$VuT(lrjuuLFvcIKsOw=V1%VxUB75shTJ%6_rTcI1%9^-6QylfOk(bf z)O_Ah`EBOzuu*PCEX#dK4ts6REhwM;~WBk(Qd9{RG|S#p~MJDRTOvak@A;iHYp&^7uV+Y zz?Da$jZ8=b0Y1P9Kas~)6$9+$W*#`NSZ5hq@XxMRVe3TaATI_C&UTf4s9$)*r;_2{ z>Ix+*Dv!vnz33DLkE6LnRBtewlHyAEdLJkPW0?XA3BEHI~)w8PV$bmpxMl0q^J z^RD0;jPzM^#?ei*1c}vi1?K)j7kC4;tZ*Y};ckcF?x$ndA-$Lhl_1o9nP%~t*`8^< zt}DfW+F3mM0ngL0WBCl#m?%el#aKTm10?}R)k(Ve@>JIvxE=@5m8LE6NO!esmkF&! z;-VBhFgS5~x+5X%=JAB!If17D5HD#vrzBpf5`*tGKyCZJO=CZ zR=P@helQ%ImcE57F`s9G=pS^P@Gjk8h~?|UD*;@K`oCvz#@vkXWr9POrRC>H`jkV2RZ)EyD5s$yJ-LtX4=hq%#T2LKn zrGVTyzJS4i0}37!wPSp9(!LMmGNo%vd#oy$M;~`^mHNOeS8pDPd2Bwm&$D8{xfd2H zQ(-0qNyR*rp7AilEsNHqxplpBW>vsb1{oRTh_WaEPXetyTvv;&7fLKa;`M+Z;BH}) zrki0WA!oU9x?3f=r-$&i0yWOQZ;NA(i*(0M&Ai*%n@(zXF70p=d^N`wy_VIkF97r& zzD^}dOVm&eMs-=@FSQ<)>tKg4J029}V!INFrr_1s|v4P#l29q)115HeFl71ZC>j%Ilwhhs~bL z(F%AsWsgSI3{Chpr>CWDc+s?0E6$IQqLdH5Xo}!l2V~=bCfJ)crAPuxyJZ^eABB2eHQn44xRl41F^hZf{dCcr0(vt%bDQH+8Al>w{KH?QA{{mX7{I z*YR3O(M^Mf)yvPgOg#jK%X7`nPl2U6BW{&hI{>Nr!}B9}h)-hY@|F>HD- z;`w9Gx#F=cj~{xj?K&1neU~p1-Q1`pb0&eDCb&=H1QpUxpS> zsdoPT*juYsuep?ZG2GX}Lm*UuBvU^P%oFM$4m{Isz^EhnF`G<+CCuyK123JiC?3aD&g0Pb?@7B<+$P zMC^@6gbo>HY+!lA9BpB*8tj9V8iAxZ>ZRun5ZAXG1>k)V3V>p&6ru@k%Lf*c;!!iz zYH|h-0x>I9Oo|MOW<^LrnMENiXhvKYppHF$Y;E0=bo1`v-k61##a>^-RfWr6vv*r- zwv`+HoPC^^tGn^82PO6Y9{3q^wsX^JuUgALV|q8?DaRJ=;d$Xc3_RDziP;ClyL`>X z`@dA!L4e33Yj_9nKPFy=H^YrvRy|c(;$Z-&4M(nfE%Hll=6z_rzxbr-e|SOoev#$Jbv&CD_6?x#Uq;=2jregJx12ofLUBO@rrdb)*fSU=>V_c@A(-hH zILzhc@l1Nf1Z{CX3jk$lX$v({ z6=j#%lnT>LkkeZznQ5rj*zYr)_sWq)7X%CwzDBndN}+&gjslo1tzE-Hu+ zLWD#MCVdqV0tK`%ftC^^y2_$WzEWtVo^m&)Gp3TE8LRNkQ91F;HUSg)0E7s5!#2VW z3b0LCaB}O312|Edti@E&D^bfPg0KS#-9sdv^}HOmmxK?2eQUha+-+?Qe!s) z*fdqlgaS7JQakeDs09#z?|Kh9qreH$aq{%A3?XH z3e8lRYT=%GYbK~%=%)*8Xkn%onxoiYmBR{Fa4yv@j;mo=Qc__|D3uh9mB8MrjHi65 zTJfRMq9)d|*C8P}%D5s?Wkp&n!NW>dG=V9Z)~#x#Oj&L$lg^8CYS>Icq{`TfWt?Zs z(+`a>7*6dI*8wu`u6CQ%gzsH6NDpa92Dz%pjGq>i&G~MfaM5bq3l@z-C{TP8Sbn`y zRMA%@8`hVRNllf5>UPPPN^*Ar5H`h|XHmVU!SlwjT!4rvh4K_zVOPcNCyFwQ2w6>X zEonaP7oC8$Y%`P8g6)doRTP+aVkb2*j>yU70E4@7@RUn1z*`V+eijmt*K$z^g=C zHxfK|#**wghr4EQcg$S9 zs05_Xjq>d z`b!%{ursLBveukZi;G#o$>(`vwB%>GrM80xn65LaFi-%IHk{8h<1A_#g2fm5PJ8f) zV6~GSZ1Sj*%byr{trnPgbar6)(GtmIK!L1A z^DXX-!>Tx${K1+;li*!qcUurSQRo-bxo# z4#b^ixC*T^RTV0~+*&x~jK&VS-XaH!xllJyu-7+f15yS;fpp1AY(?cdS0ju?$Fhitkl0}M9v9i_^6GF6P=XlA;QlEu9{oc2!K z04m2YCBUm(hOYP-OPRz-T$W-*G?Q9Z zYC43O3tKjF6|Kx&PHN5wlA?%ewne(-*_!^kPhol+{+4~u`e!I{Eq`+4@1w^0?bX9y z0D0*Z>=IF`7@GFYL4Y?h#iR*|wXY;0@qD&gvSU0%bu{0Wr6wtEo03OZ=i7Q2>}x!u zt7X|HPGPc*OH23U%%`$>Q1w}Z*cAjyRqTrSVT8a{S$499Ts=%X@zsTB4Jg|I!k06h z7xzs`{L1>ebTFWJzpa} zrU+t3KIiz^M;q||Ec8mr(!Rb;FC5g<%0tVZW4)~|ZTN=4CRg&~47Ksxce?bShuXI~ z$XH{Lk3_@9em&5?X9L}hO@g`3uxYg4y|>of%D16SO~Kc8 zfydPq_Rq_s&vy*sxX4wCjECelX|!trGcqs;(!PIenm}cJ2X2?|!DxgWjjrKyhF^Jr zc@idgOaf}uajfl(hd-@R&Pyg2E_}TX*_i-{ChKKz{qZIrQ$(Ga8M0TJz~3#CXNjTG z22_bIycuYyF`V7DEvt<)5?WDdIWXAS(o&KH10ZQx%E5tL2(VeJc$J1r`1mW^s{Qag zWt(^50}&u$D7@?+SSuGfx1MVgVg!a=bmsc$F)(LJdSWBX@%<6beEILD8amCw{=db0 zA1?qZuy7ZEfrhf5ZXMDY3(j3q$_L{m%Juv_H~5F9OUFmnzVxsVqlgN+(|Q6fXMj-M zDjR3L9pYQ*yWXk^6i?52SBH=&;#TW<`$ajp>^?bCT)xXda*C@mCDI?VzR^PHISzV` z>r6gf6z(c9@XfNgw*N)jEPT1Eb@q5LO-b0Gd}l{cHuZDu>59xM?;7K=0_m+V-W5cY zRxBILtelG3YB3KnoOeGWgN}VH2XWM3YS@}EU952ln8|UJ!6Amq24&sPKPz~;?O#XB z-RB$fnImcR6S;pMq%4n`H*g!4I`=No#fKdSj+u$Vejqe-wS3m+@p13kq1o_inFY|p#rKB_>1 zq@f2Bb?1t>RrtC3pWyeirhLmA1W}Z40T4iP*Tyb#i~mb-mNCk_;{g7h_8lOlh5o;y zmF(Zs@BcMtzi#mJR@Liu;XE!OJzkItMV9+VTkk!0!f54%CG|lAc;nCE7fi6t#zLAe zH8CBOS$3#~CDvevC0MhvW^{EaB9Jt|ey)o|jJ#bMdsks39F>bF<#tY6)%k<9y!oaT8q^Hx2Av z;fQVyEX%Z18GUa2~PpyoMBm6@id1Fe@>V*uP=H1 z%tWP;JJuWl0u@Fxp`B*^xB4%XYuhXGw?xCwMabm&+AD(1o35-#sh{i5<$2oykvAV83>*x>E>gk_Y!mj^1;#9$a3iD&O z1sY7-D(^#|VvM0RPiMW}(vOMx;0&tP1#6M#n77ORiP;9w~HXLdbT=lt~Mn+{4K zfpKL;DC7&5>Q$Y#tBJCdAd$~6&EDs!?lHL8Cv%(*zo7~6MW!A8mHPRs87I)Qv{5tW zDIj)lUXC=V^bP|lr#}ESV50t_Kd?3ZGCfKI;{o}Xz((ZT%+SlvKvvBJFLHp0GL4{l zcL2hDlhfPVfR{#ti&^ybSoynEt7_t2>e02X=n(;jX~$J&I`YCpIXtrqy=}><6_2r& zQnQC`$`eOYAdfx}!H6XjNfWBlj-LO`(NsZH8gL_?fy_;F8K@lRWG}QJ|qpIpdtm|w|?KRMPF0wxXh*wl)f~5%$K*1NhtPOL*5I$9vnVqe)U;cHimEuPXbT1VNS+`=0dshFMILTvYx%0e6h6o1groc0 zdv7l`wS1ERFlFQyR~YK+CyZ3hUSGYO0u+11OwrU!$?!4?)zwUhX|HZop*( z$&+zKATbqXm@X7;{InTXJLaU@o^x?G#(#9UQ}|(( zYLMFIxX5ob!Prq(8>nU;`!L5!8%_k2b!2Z$UaUD49?TchWyaV&_UyP@E20DkJ!q+V z=G|?CCl{;{%$wVP430e9eRSu(TKa%Q6{iJ|;Y`!uHj=4a#ng-(F#_6&i5DZpFcAb$ z6yratLUA?y&b4z@p<}(F(n^Fw^E@ZC|EpDkMD+9~k!9nDnA;|#0 zvMAbJIq{J=aZ4~&oH>Q3X>Iy#O?Lg=LZw?y-j@&AJs;1CQ5!Z2ED+Ry!z6QwFzd6$ z@APk!N!w=}_@=bsEwS1VWw3n1<4v1`kUpm*H>J@jvqOeo&A2qS&v-5>iQ_@PoM96D z!@+y$DRIfAfB;Iu|QrX{k9@-D+J#b@GRgLn{duJ*uqv;_}`( znQi9*5KTL{-=k$lM=7$&L$ZuCfW%m+u}K+_;FtnVxtTa}tUft~)A|bPcmk9J)SBFe ztb|5bEV$cOs#t?n3-&83@EqR^^TM(6R7J#5QfIr;eX!#*L#)EIiau{d)Ckje|vHiKvfs=-AxG!&FXK`7M= zPMC5^q_D!W46ulkMKB+&bMK!AxNpbz=s1Owxj zpA6Hcu1=+|Bq$%2oa+j)7{MbZOjkNeqTuz9H1d}#E{!Bf0208TS>e-=7!1Awh57_g$f>&P$W~-X!W=9GltH< zNi}W)IK`-B3KTZNf;fDy!QtH}a#iZ_kr>UX&gq5QvojsbCunDqWuQQSh{-@mBw`=i z(LMGxQ=WWCfjE7ad-FHgT_S3R_)RaD8QYXpwS5@Mwtn|Vpa?<=XmAq`nT~;fW(ZD^g9B3t0vXSN z&oo2<7$V+sybu9^fB-9@0KVPL&L;uE{KjJRJpLu3-Bxx#s`>exVBWomK?I($QGm!W zV8Me3NJ0rC!q$&te4t|CJrE)Rjd&%@!*FO-gCswgaI`dDeIQ^|2u3&~98Ck@>y9Zg{EWNKvD7|RU0Iwv zFe-*Lg7qdK%n4xxwNQzo6e#8Zr&jjpy>u;l5pv6GD{XLvl+@s$0FfzhFtFvf5srR4 z_%^`=%$WsPk;12Iv4k z+l~Q0A%efr*4>^Pw{PN|m;VE<-uw6Cft32EX3#mJ`)1rK^%SW#)ggMIB=I7j0!Z2# z9Jao$&IfNS_Ij{jeg(~&w>mfL-28X~EUG>g^ptPdqLNTN2;_w}9iVXI<<^6I>S|Pg zFFT-XiTUHc5sn(IErwgICO)!$O94!s3IkySpkM?MclY~V<4w2UJbixK*qfaP%yih#pZ4A`cqVAa9%1 zUIzBQ{~6x-ou306_vOnE*IK{1{%#(7{4&3c>Dkt=WD-CC!arw?4dDnL{uugRX0y=N zL%4^h&G1|k(bAxIa9qc^Yh@ToN)b~FyK{W%1K@*xC@rr`c|A=Z4S z_Wv}tr0W%pQW0Vcu2-%gK@!YU}!gNS!1Mt6apWZCkiNjAdv+8 z!9CD=zSYCr!80a`Sevmu{iyKCLxQms4*SBle}@(#Tu|JI1e>rbno@>DFoz++N>hZC z10*{qVk5oDh^Z2xS|kvlLH=~)3rMD+-e5GQU^XZe1VD~LktGEV5t)h^SFUP;p8#Y) zo4*V&5|noflR-re$X@@Wv@Hi-Ai#Uxf5J1YMieMmqTPXZV;hGs5uPA~2QWImm(1|m zCGh-+IIPv9SQQw73TF?%mCfotdS*RUJ;td(K7`KOKdS2iy7Vv?z`aqx;41=VMSRbh z)T>*x?L!=q5%BL_^k7S!`X4^6Ndv|S`xu2Gl)I8+KpXclgYj`KXTS)PHCg(QG-(6( zWIImj#OuE83FjdDFmj|y0)(Uou{*T7ZVg5nn=?Zvx2dVrc#2L@1%)-dvM*WPY(qKh zT|u}R&4($h&Q0$XI$RLYCnIYbXh$59g|2HOH?(2~J(^I`%Xsq)M>uBVM+I^&Q3Mu% z^U9f|0faHpJgd+2;?GGhH{HB1zU=BCQWJoh8#OFO0lPtBfdS$+>V?`p_l(y9@rCXV z1GLD*OFzHgUCpzswid)TSlo|NH;ZB?fIk`sKkIa_V+>;^A>&bLV1D|GOfD*Y#@9Sw zg9F?!NoHbh*(3#r@HP7T*o5CMIZCl4AtV@v3!ZZ7SR8%*RtxH#Syqc$Mn+D}_0Aah zXa8k`7|;4{4D>1DeF@W1v$5P#ymeS;l?#W$aJvFY0NaV55{dB-d4Yj zy$=R_r|X49K}P(KCQO+ya)O!nsJM1uWhMYM1{_;h!h6}e;D<d z&9Pn*6d*(-iBgKomSw93GR0785{|;`^=5I$xv@U5*@s->t4Ty<_p=E6gL*W@L1p~s z9nR0F`8y8I+)uk843^a>jX`A#18r!m4Adu8=JP!zP<)hx3$&G-mj;f-7;agmQPFnY zzK!VbF#9Qxktqjc&emsdfX1$z3S4E?bJFQx;bIIDFm2^OR*ibE2q*Nt$bfUHVy0=8 zt?aI8q37VM)R77ssuY$!OS!4dG%c-=dKr!nR!|-kSweH_@}TD}*&LL+1n4YYkg_Zc~SO z&~tj zx!ny`_;7gYXIsA2>}iH_));%v0!$l1glg;B+o5jc!1&Qo=jRMJIokFum&b&U1Q7If zRFmUXPaXw`QW}o7q@+KPOb}FKhBCPdYVv7*#1pf#NEcxDaC^MPDUN8v%Ijx5d^fnS z?DzvNQ$%5P#O4Ow_oNq+Fl(EWH)}jRHkwt68S*BQ!_7biDk^sHt$9)x{QXyj@|0(O z{0#B#fzsRlsU^#B(F z00wkC^SXa)+WwuxGe8WW2OYbD2q`g)n<&KRDy;XA8h{JHutN;`4@oPrs-9cj5DlPY zQxuS3K&3vpbDVS;lA?%$ZVEIWLcx|Ej{nL%KKG}hBg0X;LnO6L)~n) zgm&&TxO;fz$NS!Y*PoE@uc{wlepn>bG?FNOfKR3fsQ|yTCMkZMfrs@ms3g&u62<*u zM@yk>$)=O}ZWxkLmJXuCty0vCv9!nm4;RiQYRD?2x2l!+xG(u9+Re4IjwPijKC=hie^jrDn6H!gAXzpqD5E@EGYIOn zAZaMA))tWje)sS_B{VkB+0Zt__pC!NY{1v?<04e7D;VwMo}9R!Q2bmJ{9EXrz6B6r z`du&Qf93lf|FQW!>b2ji*F?X?6i#x@mhza-C57hfa*^V?v~akX;T(b;E;8|g`33W; zj4l{x&HhBP$hzZ0MipGc1tm_{onp6bCF; zhWNSNd#0D8D0H0IPut&3D8~A5y7&I^g^fe zs4ty(83A+}g)#!h-r#&keMj!1e1-$Cz#Ksjk?3;i(}RvHGcz-f4l}?G-8)3njv`Ei z!!XP`alm%z)8zQunnSsXAbeO_75sk~XtB)7+hSZ7@skmv5??VPW}!xoZ#OeCN>Rso z*J9pJ`kxa?Al%!6Xw#?-5(!f01W^(>=h1nPyy5{YC9SfPk8HC}D8>o#Tl1cHt_~Lh zh<+Z;B#h`eoSu_rkkIIHpl@y>X@F)Bm4Gt6I^3WK%8 zaTa^|;E*w7I%6;kY+8W&L_(rq#DuBe3gS~i^`Bk52#;PAAK2IwTH!+d;1pns2r&`^ z3B_O*NqIavaEaW6d>pGEwFxs0k~e2WG+BmKc~XRC{bY6bIj*t%V(udPI(+hCvUNAAAoUbB^|~4D7_7q|m^MZWX!8uNRAS3l+gU9$iYU z+%>1oM|LI_6v8h(l-N_XX&Vr z&xBs0ZofHX`9rQeh`&?=32v%>iCKC1dEvE!ABW-NVcihxt~P21ACW_-b`l3=RCSeH z5rtONzPx&m<-=ycw){x@U}A+|2m}^#>Y$JmRk|lJFpeY?35GbNLnb_a0z{JDoj7pr z+#6ik2e0R#*%Qwy0quy~h@J?~NWg<2dy~2K2g#Lp@XB>*QOFd(cDA-h9t!e$}H?dyqh*u_RVUbUD4(bS{~v4h?4@N?251tmsU z_wx9LUpxuIK4*}Pwgp^FfzEelVNHSGy{vHOXEyXme|{mffsecW97MSN757=+V>-$D zkYstzecV2IH)NlZaAQGV+rGzUY7VRp>6020#*Y?WUKgAPQpn{Lyd(^9qTdpe=!2LS zeBnuweO~qKGXv$|IOFBS{QGkjP-LbK;|=&Of^K2e$&crg2ILUP^R-Tu*Sne}RcVG| zt2Mj;EF+%SCATL-4v<+xiU((z#TmIR{)(0EVq|wmaAJO!u)xuJ{J{`pFBU$pVU_z=NQKm_TtT zpoEKa*cU+|+6>xpulTe`l9nh75iD3L*(|naTUI%8v?|{B9@JjfqIf-y{PXUmW&rUr zfE&Ng$Ob^-2Ir0p$L5y?3JP?$X5j2!N3k^$-K?G={i?giZ(#ixkuhUkf#Aee<1syLKzVmi`6)U8{EkATNT} zY5N^&pLrj=uiB;_&{clTgCA}k@;_c+-0lGRob~u{p(s|f3g%I(c6;uOwktFc+6L#CB;1ej~|b~iQ#H*vBO5m)*e%I zoXn@tWiovL(+S3dd3TS0h?Fkw;B9N@Yf`+c%Zisz3tBCSJMn^|XN7?VHOqH&?%R0` z%0VBMQI9>n5C~3hCOd*-V95a8w>iihdt9u`_i0XO9UKFJL&820AL{V~%-8l04uB=5 zUhKs|$@~#@VL-#g7h z=Srg8;J>-w;8uqiFmb66Rh zF|}~5)-jyAj0-HZ>{($w4TyD+=!5J)NS=OE=W$kmS;!64ix( zvk#D%1?UI{4f}?bE7HBm%fE|3?Du;7xJtfHi^d%9_ot+FRyw5@@Ip5{U`36#J;C62D5N>dYtBU980u<0e6hCSs zxJr<-l+57b-us2R%UaMqT~JxuCX@JY{m(Ln}q@}kMqb00EYlN`arM8f(0Lp zc_tMwK!-#o05N;JvMt+ypa=$x}*)@P!+j`Sz?FVotnYH8Y3efez z?Wx1$Zfy8)+B!b++^hGeT)Dj76+&Y@xfy|i7&V!Nq%>GE>m6TK{Qob}hd%>(WcF+;JgcB7s||bp z`iJ^al0+X3T8k1gLh;CvC*H-Y)M%(_VT=nJ6``tdx=Q%~pun{Suc+0fv`^(V12%H5e%$F;+nS;k49-nbZuF|%byjb$F?`I7*ur=@*zY$=*CP`M zYJ!Ms*?Fmcydb#F2ip{fl!=hQvTPOS^ov)4ld6|vBn9<)tOTj0uBwM1HRBuu)k z3wlp0LntJT%2j#Kr)Ub|a*+Elg^4HZ2M^6)C+`TMR_rOY!*yBHM4(b9@@qtFz6Fqw zS9l{TNjO6AH-{`G{Ch{3K)k|Z^yJdGed7%h0!O|>YuB1zf&t(G185b^aO)X$XKAz| z;LMqyB$6HgI?`mv?yS|LT6{K^9~K@DBkx-Oo8lD&mBD`F`97MA20$Sr0OvE}A3S+$ zj=PzdKHk?DffmlC{y#FH$d1p^vms3OsN$Zx-~=oL&ti4% z8};rp0Br-BV*uXi^LhZ}1&j0VqWd<_*RC@HOf(P9uB?|>J3a-}>0vg&27z^28z2?B zo^2nz4VegFP=zdkge@$#z0~Y`nl}OJj6oDCF)l4b?tYqJK~#zWT3Ty010p1i;ZgW= zF904i!W0l5cL0i+w86B&rEg8(nhVKV>lk%3)-N=GOQn~f&RNX7xpvZ715<;B5fa1L zGsYP}K&DXAC;>psF#c0G!#Mr7PKH8ZlxAiiATZ{&h{RL@0sx8#h12EWi<7v3zyZ}KR-pbSLNHkuiiEd8am8Nwo+It$7jF0vTwJiJX<)|$>XUylkeZf znr3H1POS=;m{#)JTwtZZhO*OT{B*RJmv)x&*=vSuXK3PAp*p)NVMg|f+r@pb*v@Gy z+Uv7qWHMs_P^IeERN90f530O?NCFlaR&<~Z7RxdQRa;FUr;BSz7F!shD!f9u&nROs z1npz?#8AxKRI{gb=)JNfw)&u`E^Wjn?4-=}hdl65mm%>8Ye%30k{%s{)%ZuI^aJe3 zaSRYHpPW-M(XKTd2LJ|mFd>gg#ye;?a{btM)C9v#+kY9Nd5b1z^9qGYr+&Izk_k$Q zl;9uiWnvuP$sHXXvfv`05ZtIb3LyIaMIO_t3sFInrKvPiOdV5KJWEC!Gbqb!p>1v~ zTkJG4Oq~d2nA9p(x|gRxpq@2Kj&M_=s5{4JczOHALC>YN1Y{luUSr7LX6Jr(pK#P) zVO`#tbR2gM?teCyr3as%=)OXkPE%^}+`xTcYcW@^ZTI+L2vrfN2yB+q#qFq5aU08-+DE3t2ti;C7 zYPWs^E9}mU!MI%mr{UywPfWZ`uZlL@Oh_l%dwm}f?HfiT2Vi=*KffEfNUHWbVb#kX z8gv<@0PR1mS%INc|B0~dqu-rpGpAR-6}|q`%EL9u0w3TwDwS zih$QPay^yEb-l#LlZF1AzRA8qgi+VG(xO?fBX6&sT-tA+VaLfHtgY8u?4HJki*mra z`J8Tu#$wdv%b(L-2UYm-->0vBlNSQj@9(z)Em}$ z&1>WI=s3S4@_VaahpX(bwzA?c;kQT``tddOz|ZFVx=!P?b@^!5kAb(1HI#syHfE!R&!4~9N($}Ln-Q@Cj%l}BENT{EZSoj6y_^Z#d;ryn^QXyLHrsre&| zWU$y7iK`Lw^WS!o`?m4%aqJmc0m68t!Xysl!=l?%4Z7CWGPhnkm;}0P2jaf&joKB& zwtuSQ$}?9ppBcN@NRDI;!ms;2k)Q1^TEYV@ZH}H zKFg z@#5FFoyNiP!Id1)%uh6xAz2g2;Y&Yf=t9~!dlT3Iy zxHoq@+qkxKaBy*WII-g5$2K^*As7yg$6@=y&z_y16SMQZ|C{#MJ$$6lsVDZ9ACGwO z1>zs}pVku(W(MUy&1V3zqAWpFP-m|&yK%7(Uk9TD17s6xmTx9Eyet_Q^z6-xT2may zI?bEv@}zw>Gv@O2ycYBwA{wFO<^T`o{4hqa7Q6o={KND4XX*s?=E4W;{{!RCz> zDfiy%+i<{dH;RamdjF#^+)=?12T#^ttM=0dDoC1l2;mG#Q33lf1_3b?6-zSAQ&f~i zHA=8REE23T=rRT*V1et;wYGq94Ju#9Wy&s4%pw~IBp{Yww}?Smjx~UOwWUlT76h4) zWYD-6v^hXSR!Dz?Iw&=mRAXUeuM?ZYR9nD7a%@EF5-MT)@XfMgMS6M}ng&7%g_xbt z=AcN-%nCBzDi|?E1W}NN!XtPZU{b}P&_o(z(HkB>C6R-Y*;+D?7}z$3F^#rkGAPWz z%naNo5N@G5a0ss(F}EZwgtZ}1-a`m1jz*&x4AW)GuyyLkCHt(63v4x0ak(2CO@)A3 zErf!smR2xI2N+OFgV8}K-jp1OQwmBk$f9OaGLfc?PLGBgVk(K$EyfxmL=-JEs4&o0 zS%o>Qc(xFfw3`5&V6e;}w-`iasHC~tjA%6tYB|;fX0#I~VBlI~GEI=-6%Y{+$4n`( z$XrCMw27G1V3Y<4Flw-R$E_U3D6|k9 zA~wmmKx2CRy+WGO64+HBoEM!U{H7JGY3g)xoEI`AzX%IWz^q2cBZ))v;Y0GF4hWX_ z5kCg%3-C7I_E5c=jd;j5a|qG~3KW_}|yhiB&X>?=S0my1se5X@s-_Yy|`e5Fjyu0U!j-QviU-Ffw)n2krb{9)pvXVr&kP zE+Z9GMj5mZ`>*x??tjbwOaEuHuv0b+p4sh>j1bua`Ed|Afjkik2%&+IV}Ri~Kzpzq zrtmTYWaJbElN=0{hzwvb4I%E!{m-kWlWa)vq2bURK-rBaa71t^yBj&)k>)iGN;8fCJ;1~!e8-Z zJEvdJ_4sT*>-ls2<&ouZ9c0v=cHt=+_q#CEjNKxsas(+uf(Dp1Ar6cT@%oVqlQ+en z?_#E%4FG9^P*A93_mN7kY>FD*c0<-ccj3ShLl!~^91&U~8KmXuu3Y+Wf7d<%>k51k z$+$<7d8=rVpaGbhBM!_kO<@6M%K{0`p5X9jbffBn<>kN~K>N4(V8N*k8;rnv=PB#i8&9e z2#@#pl?9k|92}99d99KEU-jMX7Jv4ud&&KTkxZXH1rk62$<3)CQz*nYsxqyxGxPwW zGob{G43D8%L{Oa&M3{jJaZm`20Pe#ufFm*N+t@Sv8Pp&Ut@E~_=hX?FNf9v zm&g+_sq)~P&@({f<Y+`KrPIoeZQ+*TP0T>w#`DkaghQhi=a^?n{Fz=I6& zbc3=%WnDLS%o1?WV<69vZE=yj_(vA2*y^l!JDOg82C)nfDMl)>LOXE)$mjR$c79nB zAkFjzOvwR6NHKb8CJ2$|l=!dew3Ox|A|eLT$H(f}IvR~ghZss!KoG96fEhs$VRgXP zy8lSjjEKaE%nrJM#C^&>3VoBqDn!5(DH<8?q^_aDAcC@JGd*qnZE7t^bc3JhKpO_@ z-&P0JQEQ>2F=^}+7KSfQh^p?A(K(t#F{+4&#Uw1Dh*<00qeOKTqW`P8iV{J;0GF6w7E!<#0AZS!@VEy7 zgtnZ9rcuL`E@et^x4~9~)abI3g&%staTrg0_Vns)zz%B9x2Xn z)BS%lx4*)F?Fb$&;d?@eBgYfdOfsNz^@`Xq>mh8k{d1qVhuLq7C#caUA%I+jNC`Z_ zhk_XGogw3V=>*HQaM6u&f-W07K*Q&gBbv=jD)dh`92OPWun(9Ohb1t9oe{+*RN+je z16fIwPNA0LtEZP=Pgh(wf1X}ltb@fa6!#w`ID98eM@8x-?w z0=fzgY&K6U2I-3~M)l;}vt9lDa^HM5s%9({OPW*I7;59^SxaUN!`L)IvCA{!BO&Ij z)6rngY8mm2Rn#jm6%t+;(H{$RIO~K2Nx2h%P&FOim_5StUL=X2$sB>C`Xr2E&;o=%pr-;o+WrtKREsZsp>`Qaw3W$H{4iZvK^1C(!YIyA6Ci$I2<< zfr35@)`Mof5tz>Gbg_FOV0{1AErzIqVNR26#>B|0o0XWu9%US>J8-U&vapo>8@Oo# zhGk7>Hnz#vh4Fi;h1sYc*>rJ@^RCdgYJaxLJ#`ao-Gx?LPl&%I-))UxS?u_&^Hn&` zg@lf)aWZEq2Ak3=D1vlYoDOR{3q+}uJE;!gWhpi&T+G|Qrkv6oeB-G*d^h=c{r<+cC_H%&r%Rx+bVS{xwb{aZNTPKPz zu9$JtO*rxH=BSqLvz~Zi&Qy4|V8LVcDz$uq*ZVcoEdyVkEXwWPno*F<5?P4sD=PYmu9)WqG#F&#-vb+EbDU! z_I@J+aNl5JtaL-!aNk%LVq#yV9PX9RPoI}MZf4Bt!A0l*T3bp4SwH~RV!ua^^T=}# z8Udlb;Z>8MeU)pGD%$9TjW~>=gjw3Zg|a-vGIR$u|bl#SFTvdg`nbs?7s7ZnABzpA$_Y zFpX(b@~&mTx##YXzA%#1Xl?EBUvSD}ng$^qfS_?G3c$#PqK5_vj$T*-5Dy(VcDF4Z zK?gI21k14zTF>KTvp(Ml@J%*o)P#@aJiryLoQI&o_Rrugjl>aV?EBk9fA!q3Pzzy_#0M6tuY71JL|= zV$_d*8N-9Fxk>RHDV|6l;IG$u;XX`0KPqd+$I9!d)kZF=~!_m-D|LXFWT*r6*`z=AurW$Kct+*m`qNeFzi_W4c#MXTkulemA|iF7Z;J*hIh_ zCjeOp4J7TDnC<9EzXiX{h<9ZB?P`qj`>|-Ji(G6rWh~#Ct_Qb2d1Tk?UIKBROgzug zgYH*xPe6wthW1a>!EY;W3jY>;obDiCJMvrM)Uz?MR{tXBd+WXk-|nY=tN+Y2`zoaE+(Kc_55m{_juW+8Y$s`?HKcJtl&&g zK)_l26)({O-ZUMcbnw$zvjJ_nu=bsu82?VQlzQav(058FiVQ%?abIZZ4Dzh_$1v=c znPKGO%{kFM9z37dToSu0z%Y5gY`Vu-H=729cLI`aqy$0o5h5h8zRBpazrF9)>71$) zgTwG`0mMBpQpx1U;aNQ62WS-9d3ASv1Ow$?81C{35V0^BDUM?_>>hcI2gOP*eZtK$ z9*)I@0xU8k%?KL>!-i`NG_y%eGT|svivI_#oFoV&w5zD@2~eT0!?n~8M`Lu)42r)T z1lm~oygYW@?G)HlX22gg?AT(eIjA=)qGla~TR+Xh;B4>%k0$ej<=^b+)33W@=toJT z%%5&sc)Y31t%2n$bV`b{r*zkzd`$DC%$2~=!iJAK4)aVzP5uS>TwxC^nh=|pF!c_> zzm_cS1Sprg@4jF>Q;wfBZ1iHY9SqS^3jEH%IL{uiXFG<^qwr$Gs>SU163lv3pHRKb z&dF4wsCjRVtrAoRz584aU@6gMmX5HAV3uUWuO-?xfJOeb*x6(%Kv8_chV$NhGC&6T z9ex9Mndk7MzuxWlaN8r2*!1-CRD004@RZ>=m$L>OHg~qUNTP5V)C57m>GkP=EQZ!p zqh^G0TFj|D%&NJ@D2~x_qiDdAUJ|$_h!LuzMHGT!LQP6ds;2#v^JtO(3g{&XAz}pxGlM=SPtxAOeM3EjDI3|=uMFBPRkk!>iTQeJwqVx0M}yNUDpZy3bwGb-mtA{VUktHP&p^wo`!nZ^%6c zh->(kD4{oD4O!Rh0Z@j4X527jgfH9GV8K8G=b9)10Zrh&739Iw;AJxNOIIfURrTYp z`SZ4#_Mf?lYq>xb0VG(i?>^MCOEkT0h3KQL2Sm% zrkZx}2YwC@4l|B3kL%8v)4~|zrv`DvamPUE{TNL%Fo_JzJzn>hZr6mArFftMo zIz~cafu3F-9lJw-9{07|IP`QgrhD1bFzubV&fPn7?T2ohbnJA@?c29+FD%T=!!sd+ z3^2%Y1n%R44C9% z0P_B}*=;gzv^Dh=&A_HJ-Y%x?`=Ey#6km)46Ji#zZcR+n#&C!N8fV!XJkv9y1^ieN zfSE#^63gZ#8tY7FiEHiwV*^#D-x>|84;yo{tkYCoL5~HZ*sPE0^>6*$-dP%5Rs{`) zCPvw51p?;LPy-5I1YOPQB`R^}ZZ5I4BDkyPZRrJV4D0G(NABGl}Z+ z^57oQK%$0%V*?UW=9tC6h2hTOOZR#0=f9l?A(AE*R9%yYNSyI%T`VjGPyxl2(QA9W z9rBH0Aw&c|G@<6VFG2rZx2fiTtxu=TdX@dhx$r&L!nXH*55>FpohQb`>pIV&+4i3g zLF;!IK;e9Qc=+K2*;cXArAA$~Ynw}3Yif0^t?OLfUEN$<-Q8VX;N74YUUG&EJGH++ zy%S%-aN(mL=-+*gBg;YxKA=L;qLI0hdaw}uPlH|@J-I$7;9U0Q9{yqm_vU`5?OYR4 z`cLqRa%zNR5hyf5WSC6=pQ{2j=O7v(ir@KMYixnFl2St^#|1J_jD(J~E&+xNV{0I* zR2bUgfz}yW`4rPTj+6u^rU+Uqu8E+dX;~;^-k}$+-tcKm-RiHZwUe0h07NFuy!G%xr%O>hr6sFnB01{y9A&e7ZBLvcr(O_Tkq0vcHUhABxan^xZSFOPEB$<=g=rZn|Gw)69-( zLLgei0Ko26w_g7!@au4aBOUjrb%9keO+Jx`0V2TbIyoFo0Dz919DH+uDaa=asALj_ zKAb-8^fN)w{~ia2;urT(11ljP1rpY< zQf5|JE0KVOq6=b(#u&L*5d6JdR>$|eFT?wSCg=dBBIKsb=WmAibhj(I<$KJ>kF{TK z`jyp=&g>fW_5^9o!){<)$6)YY@f*D9(deOQKTr<59v%}$3AXe(j>ISu=0q(h6OQ}f z8+3prs!4Gape76Fg>JtC6Es2XA&S-A0IEBEd0mf{Tb$aR$blMDYQ{|WbL7o8Z?$9x3_-UWS~MK0LXxz4d{yDSy3KA zE1*4!hLFaX1sTuPjMAL=7Q$dqiEUBiT;H-c@ug#nu^4g*G`BFy(FrWq zu*}F{eB|R>ky8f#{zxwciB*v&T~0Wuvc;{spkWY$dk`|%lEcG4cWNy_-K?YH?_#Ga z&3cByI2eVlrE3hB<=;7J#U!0>9IP2uChdNnIrQma<2de!XNwifotHDDbQCZE286E0KQ@{BVuj%}7e zc6xI++W6kYdzDSh=IQm+;Dx&H>U$kOBT29Pq#4SHBCg84ROW-f_}?Iwxc;05tURNZ zBcdfNtei+5)G4x9{kf=PzbvFA|H@bo?yn=5uB;_^C2Yv!7iPqb8GnM#f>YZO5(ZLP z7(PerlTIu6V!!3-Uc3WMFoomN!Tgyh5~B7=VmMW|Zl3#B`HiDr@}3tr^#~O z@KB#OjYQ)L3C_5VeC3VvX+s*kZ(_NBeh1CEI6g(TV7py^NyUPv`Tk~;s0Ig>lrpFy zn|N+#3m~ALCFP`ir#&}jwJCk*#oBzD%2 z*}G|i*xZ{c$<+UD5_h#<2&rex7Xjf#l9N8mMCxYqwX*N6Kfu1U@?9h4q@}}P0 zHf)!x`+OnfZBl6vRYS}oDsqmC>7=28V570j*75;dPY-gSPU7v zEgF!bMP<&_S_lk$M#giN)@D_CisIHCh~tvQb^RZ}ZP?zgr3PdfNW{36#b%7H%(3s(deed>%78vwsG|i1lmiK zqXb#WN6!k&r>~}~;&)b}`QgK3eZ>KAaT9Jp9AwcUkHx2Sl z;4tXN8d9Qcb8M*MCcVTDynR^em~?rUy*3FEpShN9F8-e1<-6dY`ZK3~=yg%5?+h@> zXfHNoe!s`p-iV1JMEU59N24m=$pTIfB5_3nMG-}Q<0G%SGWOdWp}aEYp}SAf?DV!+ z`=B!Dn`Ve|kAYvWO(DAz7C=5UN6!w=ebnmmxU|@1hQS*Op7!ax^z?K}kK^!MbYES% z0{j}awiK59uEY+6?)Z@edhI=*+q-AuD9Zu8YU)>r*MlT*!#31tvG6|MTy&m;Kf>Ql zI;H2G=C84O5=(~`>`}HKg$w0rbxZs=r@fcT*RLv>Y?23-bQ+gUOGK*pmzs29^>TEO zDH9&gaZ24;Q7zN3a;Z754|Na=?ffUoj%vK$9YQ0(A_5EfZU*96qc52&d z*J}g_A?4w!!Fb4iaAaX~{FB$i_|4bNMC;mfwcF@q0Pkc3J#ZhUblT-hURHTveLprQ zru0dHcZLR30SgRB9;`9@a)EW8=DWa%{v;QnqOd%FM7)pD`+DE#8uYu{@YOn8d#^;f zsQ%uJ-gzDFBuXL|fcG4}N#=7`(=g*V^zcw@MR$wp>S%pLRd7DMq>Q; zp_=is`!~bBlo~Zm43KcE3g%QQ-uDBE_&r!>k}P@mpau`T`Tae9Z`wV51Fcj{`APVr zw{B3eoSz5DwrKipfald$y7hpf!?4wYMpt}l6XZFd+GE*wHbp{giSGb zX5$O7*O!EDZgX|UZltz}My_v6SRigoHv??4paIu5tdK=2H=Nh>ED&Bi@P!mC{eTsA zp-iP6^$2anSHZC)VOb4WBa&1S1-3xOExstVQidQcfM6L)7y|&%5ipZ)dp{n2VvT6u z*1AjjnTEyD%-qk%_IuFD%8HpMGId+L5tM?Cyq+8*yRs`5WJYFS8CWnyhV93#>iX-? zUw!l0k%BQ|`L_MJ=Dw?2BWcAoh^ow;m3?4m=(Q#}kHs{#_C5nso^^8L;qv2#$w_&s zhX|GQvrfW|JTtVn2`(pFQYl=F%~_i&aeh5tnUdgwBEwH=RJx1oeHG}qV;~@B$2)D^ zmR#!;)G18LE%>(ml&1L9)0<2*Fq7~=iJrk;OQ|{LHl+{&C*YmO&_y_6QAtFbi%9Id z(d@!fHCbUv3qIuvEu~f`MsX?y7-PyL9`vS0jv2HpXM-(6IbJ^>U&^t90vjQtPW9uLIKH+x+-bFr)$3gnh=O4 zcf}_3Ac7PlNYy+6zzo74Xl28&s*sc%!%m-2_6J~U4FZA(U|b*&E)*0L6d&YxBdwfq zamCx5oC8@nEg1$ukav&?^BV^~dkbKO2Bb5ZDXcey2oN=csO;x8aiPbE91o6O zA3vMH`P`au8XK@_&5b(CsJHRLd@<|y@Z?dJIaKAQ{vQmp&mOqECM0eCIsk|gqA>DZ z+4HSwoQBU7{NJ*}N+`tWYP{Qqn1&g-=5y&(89b~(b>z*Zy-weYW1i$Z_bsx@E5Tar zQ{;d>H5J|#wiS(>mv&~V$6~ie?MA&ZhBOR8B7_oy0xfj{(v*17JHYV);03^@n9=wG zHu{Hs`n|)rdjkW&AVB9qpwM`(?_%=jtI_CTPn(NLHkA5zbHJDgWYa(adZ6DM0?ljk zS|JHYL#?VU<)Tlj6tWD6VajYd9R7mGX04oU;BeZu(vD8w!{!G$P6ECAd#%nyG3R)P z5-=hp<6!RdXgW4ykD4$`2aPTtYG6LMnM#i_LvQ1Pybi4{*3&Zp<%j~ksWh69fCa+gLE1Uu8N}K+jozORvh@Co z_&m;r_p5+usNTqXI3gRh`1^i==5qc=z7ij^=dfDUb0mNZAHTM<9K_8iW|Dj-(d(X1 zrChx{9UZ?X-|vRpq=hhH5lW%vxr-;)5rRaeED{03w-GRSl8BmOtBeh634$fEBGzkK z%P|NU8bFKvoXi;vlT-{SuxJ|m;QkqzAqFk&Nt$jwAU)C>`}j&O6gjJh=xD7bntFzY z*;wA22t-yctz$7XU}?g_6kv6cjaFri!Hi}W(YVpkq-d_o9ka!#+-2JV{-5{mZXU}H zrUe}JOgkqnM+BX_waLZ6>KL~N69E>NGRO^(6%a@DiN=z*8@UabZ!OWaQ)2=RHu}Jf zeNNx-X~DwWhf=E5$pVoB9ylg+&bW+fk}%lUe4k?JaXh zG4yd^r44V#3>Yw8Og1|>*j3k26@(2)n_$3WT7+wuqSI3vqp~Ywxhn?A4w{PLPBBr9 zJH(?=^}DV?q;In}Tb;HSCSki1ESaXk2nhj3j9W2*q2wh|EZd5j+yXgd1eh>!fQAjb zIc+7#WBfH2xj!pxr)R*@|-*C&u$2qRDC`HuM>T zYbVdq&4zDh(eQoU2p)eT{C~dAHW%Vx&k|zV!iLL?zDtmL(-Tvqn>E)lkY`$29ekUX z3=24XvqY9AE&56pClDy$f<`IDp5jRs1NZVtY-LoaV!EY!TJ9Ng0i>sjIc$e>fPixH zjs3p9sSF3C8x7nz?A^ESBnBZ8gj$X=g)-<(7t=_1y2Ol>CcBc?SbI@K!x0n&!1ehF zbW(mTupno?SseC&K28oY8cjZazg>CfmGS&59P`?QfJD&d9h_bJZ^z+k^J=pDqKItz z9?AeqK(xQ~G8phP*Dt2fGK%`iu+;%~L{8X;bo^SMyZG{VlwAe^s z2iy|DIk%>xl#|E&J(61q)unf9*!A4%IE8Xy?}sv9=<{{N4H!LmCOxiJt$RjixpH*8 zN3#vx%<0Q0H3viGzJOpB2=x$CAvCu(TaO;{y4@&|!|Rxw?KMu+0dPp}o7 z@weBru+3`1 zdNh-8)1qC@F)e8EMP4wb$%sD7>Ke-3yo8JpbSg`0mBYAk&|9H z*>+wW8j|2a$>e@Aio^;R_;}qnfy``%FdKUy0s@O;Tn+Hob!=e2B4 zL^#f29}$?UmY@4YG4{m}x*%N}`?OnPvPrAL#AGQn4*v-f#;cnv*uhLekpQZPqqjwh z;6%-;s2GH^t}NE3lU|rkbo+CmW#a8Nq}3SE`%^F=q8W%xBrt#{DF96;#Sg!IIiqSl<}z)xU06nX+K^F75J{UU5lM%`RjAf2YFcTb34j(9 z+6LgDLU|xQuLA@@;!qai-r?fHcA;iYlG>)<$P#P3W zsoU`48i$DSNjeqS=T=+Yw=#H;fg>~<`41l&KHg~r;y;2P;5X5Qk6v6QfXPWwoYs6N zQ`gH)5api7>oFHbb&p0Mr|!A=8YjLJlbyEQ=eGDY!FW}TgKgGiP4PkGZK))KX@g^q z=D^_{*lTA5ZOx1-;qipIscn!Olx*tOx2~@6`gFV|b-eytM!9=~-No$6x-&_KEWYTu zc-Gj>L+Yod5%HGHd%hEnIJ@tu&oCxCre_k!V=?LJsx)brOvjlrTbsz_jpU7|sHAh{ zA9k~vUk!Dq9{*WRjdksHtqf}?=h(*g6UwV3MiWtnUz@lHef604V6rlTQI#%E^$j@* zLB=_z^_sGZkOL&9Sb$wglFQ#BHj7j_Gm3sL1*H%{Q72S8qT~mI2b4er`pA_7$$1!J zpK5^2KHW>hT5KO@9x^cYIcCa1$MDof3+NlKDh?xc(0v_U58!wK0mm$K>$UClJt>Aq zFA`?e>?OsqDR8L_I=wqTONSq^LuKme`FQ-8(#Ug#5JCo4XCRdB?38Gw-w6TsRYfO3 zU`LLv{18&=?>ePWb>jOYA<`x?bgcuQjBv1d-~)Qcydo@i{9~J{0Dwuvfif0>RI&A) zjiVwIA~6cMsDQ?-dMD}H2Ufsk>8)#I{2vbuZW9fp%1(LHa_L$YEwHHqx8c(1&kCJw z+T7D!Ct;|~v{jhsP$JndurdWn+Irb89oeh`gLejLM!?CymQKNZyX6K?D!8(YrsR98 zUf64e@^LfMzS{>=i`dzxhYK_p{K({mppG3?{r&)D!g3S2Kq*xT3GpSXPxio6=bnrP zDUrCa8A1@jNl>L({@Zpo&nk!FCwrs}_U?gkh$Rp=y4wqbDu}Rr!kmll@U{fSMBU<>!hX#wN z3>kb12mp<_NII{_H03_9^dkVyf`H*EC@6cHDdCAvXCc6@h){TCG-<$f3hqNr!)}=p z0fuI9B^@j5W@cf;QXvq)fZ5K{Cy(=gE&fCMlS7uw)uh_kT~^n5q^`cNPf%>b;&Yxa zX8!R$V@Ga288-wm5MW4#bbdIx7jJUymKYFE(nii2j&a5o;u`Lbrqf=2e=XLjrM$+@ zJTM6Okhn;w#5~WHAXI*G2|efk@p@Aj>eqIL8dlrV$&>(ms&NG8h3e! z#yv^6t6F@uEqi!%VZqWF#LEaKaPu?13bDE{?_z#2WA5?o^UPV46{AhG-szY|&#Kkj z-s7wyWrBw6!Q(498q*McibO>8w51gmn%1bsJs6ixcVwIJI3QfLjRimn1&x$?lMpzV zp1NAjS+V^-od;g{IxcCfHz+<%g>JPRyqNzJ^*wLla=plu8}b9DskGIJzdBo5lB=Crn+Dh zwF@X%bCn)dbNBP1+(GOGQNn@5$S^fF>uEg@SuEtgik17fc;BX*>nFJUbXvG#5g0vPWaD67BX`}r;(gncSb^xC zJq$XJ8F$?3QDY5`kP*Q(E>e^vQv?tfT{(FXi~F|-f)hdnnyvdN2n$Y-Plr;y1_Tv+ zziQnkbp5}mdUjRMJ(-}-)N_86sIW7GBi9ACWlL2gkhfP}3T1J6F1y4vM++(VwACYR z>PMvXB(b8;M3*EFk&?(icDhwI=C#mTinJlsZuEPBtPs5fhMKZ9Z0rN{`2sz@1>5`6 zMiDJua^(f!;|UV+2w6@WF(wzcw8-2+H$cK8QD||>+Wf&EzH`Cdzq(#BNV+)c21Ddt zi>4b#PgSRV=_AWU6&V3<0;0K~z({PN+W)ZMbiZN5eRW7 z9v7G_eOlJeQM1h!93RIv*n3Rq@$3>_DO_Bbq0W7c0SV44E zDDE$Mqp6pA_jQM_l*0DAY?P%34C;d>00wav0}a{l%@7L|M8qHp!;J+1HyBfd3_7j2 zPtYXx!@SwY+5f#zZ~)XrY7s=!N5HDW{Z-4{^*F{tBs+BpXqZ6__!vR=m4HgF6Tg@2 zKq1&Ez=%jz%~tK~G2^r-HW%GPr?T7$s#@bPVf(4LT|cUSUCG5^*^A1QT0-aeU;;kk16dCX;Ts zy{#)?&ys%5q092{=7-MF&|s@XX|Uy}Sb&xj!3L|#9mPL{`ugd5R3Eb(-or2s&M1P1 zgq*-DTr?w04<<$V;RyT(^7IkwLDB@(b1R)!Gk8JtU%Had zH1@X`^W8L45kOFlp|P?fEe>$d($G(Q*0gN4m1-H7q^809Po!%&W{n56P|QgDntM8k zUuhb_GawxrbQeU>(`cX(ofLc|muTC&92Diawc-ah1xDK zcsXvQWWqw>tgl#VYGY*7E=skTlM$CpbJcZbhI%$m8qvdYHpoI!5%FwF6{Psi6OO$i zvqL=4U(sDWop3&`6mxRxL`7K+h={3^c&MCbI4|v>7>IwBKt7-Ic=Y9@(0mX!XxKxa zieKBIN{SkjATONFeVmG;B3ehd_?6l6{eR_bPS_j)`rI*x_2kLj zXKA2+e?61Me}55P$=94pJUYdht#b4uRysjt%*Az9gEKhRw9|11^fN$pV|64^K?`w} zSu61>+Y{8g;C-h^ge%NY=dbl;8Rd3ROx=t~zT+45KX9U#AG$Cav zJA#Tsl+cWWP>MJtOqVT5o<$g50mf7^WRtTi1{zSwJUokT@6yP_w@Z3V?tiPY zq&y^I>mm+``d*BPgBfH76^)^@nLHAB%aOEn_VlZI-4{cLyN?-NYTww07_`E$BT0M> zMw=rZL`KdETG^4c^d6JZ<*K%1eiViCw(o_hQQ@cq^GpvLAfU<0yko<>&axcGFcq<* zkAp2Qgq@qf^1~95)MVqCko>C{SG5vUD031!QXx4#kD%5z_77dVT(Ho^u7^r|MsA!9 z<7TcjxM*w;!GJj!fT)6Ci4O}T`MqXpQ<%#tuCRAmIgT0V)}pE_I^eXvFg?*A<|e{~ zXz}oLxts#R{~a=%Sc1kYYlK2UP4LE8gVY=j`mCGY*ZMjEfPR0c1G5|fneKZHSIK}N zII$&DPoQJXBHbzS1LN{ZZrriCe@*9=)1c9aqYM#566`Ylf9vMT?>o$EXEpo&vN%#4 z_s4VS)kiaJ`iK6t;0XfgZF+H4L#yuvEg}K!AxrCUCF-8mkQtZb$!a z*HM8yOO zYts|FrqQ8~DGborIfkfgu6>b-d!1h)Z1AC{SD#%3rAkT1GFlSKE4RB|U~66o85=`I zRyH&Yeg-nD;fD1IUA=dfyD?yBL$eom^_CLkCM9G|Q7R z<*H*Vu9)Lx`-l0TN`{R-E*b;U0LG*T`_huT^gDyKz21vMlJ z0WWkH*3BJ32~HJtuo%IbJIyB7b2C`S@vkmZDeG1FR_pdp0dbw^bj;B(l!++Teo~`) z-}M#ahR==jn`708H(sPb{+VEQgPETxg9S5hBrt9hU$7%tkRaORgt8-1@{k^EZY+QV z2B8E!bpMNdM#_y|AN3_eKvGVsK=aICM7N-n z#bW{eF1M&$9Go0jF^&v*JoRhtKs!SL&_N`KHbmG61lhBL&z3L(Ljn6!)jZP*PN* zXrth0^=FKq5Rw>L94yw~Cr6DnueaEX*yxTotl5zYQ^R}#QMVP_ zk3hGJy~y4jgucaKxk-eV)V4or`fD~S6p{jqffJ!n(b=F^f~qOc=b^-GY^IZp*9}~O z%p9O|&BEnOEPj`t+dn%DZH{=&WQ(E0ggICk7KFs zge8Um-{k;El1T)RFilMx&1n8@ITaDgz`;2gg6Pf5%J;3(( zAPuza*f(elLBT4r1vt|6;=n!0#2yszZ6H-=3|_w+gsMTpdHepcu|JPC zl7wbvCuUHExfU@Jg@=idRgvt#g&u~M_xWA))#!Z3?ZUU=UuNz%QP%t_h%byy^1)K5 zpT8D~;p4^u9y9{06KDc)CTj_KN6I+JbA3t*hYc6zTs8xA$D@rIc|M(3_@mwqn}>G; zbQ$1xwQOsM0|uJufM$!=k1d&C(aq4W7&btR)lmp>0a;}vlc&$=7Zf0HQ4qBoBD0+} z@CJDlPAzzAkCuYFl>_9hLwf^-s-Q38sDcdX58c=k-9FG&iqd^4){w+tfo*o~LTm>S zO~yy&6ir`Yd!2@=GuMY+{WamGXW>Sc06xCD(tcvc3qRcX&PZQD6mZ=SAIJEMPE>ib ztv>i164+N|x?RxI^+y5+g>ENwdPVKORkr0h+deXCJH6EFAP_%gYt0bYMKITaV~SCE z%!XIHWb9S750*lgn;t%G?pPd5_Qf@!sNZWx8P7C1o}XBL2`AnmQcb>(t<@e-Jz^hb zM!fRhZt0F6Rg+dr+H>jhK8cYUg3_0P+#%#^(D08#T}~I4poC|a$;2NrIHeo?vz&Sd`k}XQ zuM?<{jO5ioAo=da;@-Xr>)UfNb6S!wg=%*yKz$CF1h_kcqClcv6NT;7voG(|%RnV0qyw8d4On*| zXnB-%jiCbjdy;szF&&s=*7G}X83s%shE%lyE<{Wa_%)ZDO`)W@#_v(Q3F*o3*(nd~ zU^;ek$~`5t{!54XzeULU7{9NLW@&YeHgS==Z6Mj($L4xjS3)rSNtOTpGY|jcAGMqE zbKUyzymldmf9Z+%_-ugPfI#!+iTNnT0;E@T>rwBz2H|eAKiAP9edLRrf@JS*lFAlx zA2xrQe*2-Kuo=>e0~7p%tqdH$|GS>DHy|D9{pYMW1~Vr!Dr^SrwFAQVc-6VrIB?2u zqn94YMRdi3ko&*z8R-F!!mI%=eYtjXunxWU#SUGo^AF!yOj8WGtj6+G4)jO@^LpSE zlai>X^B^iVgKMnSrxmRY8r9|l15t|fN1wp8?4?Wtjj@x5vEWS;2L=Je;_qPH(t;F; zoF=z-DqOyXYy5rOsp7FP%$Y7e2NQ)>0Y*7FW{vEtK)6ZK!A5rrnOg&OO;+ukmoZtP zAgd)VKtsm3vuDI`v@H~RbdQy8zDMKZRPs4~G&H6X#w^~2NFrrvImvdyUp63MeSysk zL5Qxe$2eqi@KcAZQ+zE`4d%lumo|rZ;(G)QDe4l?idUy-WZE@DS9w^zJJ(}cA93>ftqJ5hu zE9NZdJ2MZHgca#LF&@`^^^Lysu!3wF0pah86MHInZPkr}P5vEF)5Y038yUACbRg+` zw&IZcBr{DiP7i8)L?eET(`247M8lqM7!EeIeAG0PWnR);|F$w{H-n%Eo*lG5SM&ryj|9$dbRZ@h4LwB|W9#t(M3 zo3W!--RKqy_eqT>MA>O4*ZHl7Ng?mxYH*|Yu$@J9R4i}obH_9M^q}nCwz7SY!0I-g zFS6cqQU2iIABToH_e0ZP)A%PO{Cs~C)3(M4abp<9G3MWX(+=NlzVX@puZgqI8*>#} z?(p1Iz_8HYfQ42C1_3I@VZ`{rRVAt1ry=hHmq=pMw)k^Gn+o77~U!7nwF&(Jyw zIbF@620yrXO<`hlKV)Ul+3ROqEnOh5Jvw^klV}rNN42or2{fX;9`}bkhM!Ft{ae}B z`0fpTu{91ldsOzbyT88>&g@?qD5ff;gIR^yk4s7FB*KU(D^hi$Ih?4XEzQn%8ZIzl;z0HePYh4iope^}MKbIEo0q=~FOl1;xBI4@Mq(OgTk}oh z%o-pad$iSvKau=|2{4=~-fkN3&TBsz2V6(%qkuv!m<>}2PYunxW&t3Y9X@`l`5bX` z9TazU;4A~oKC=IgH(@}5IS5p#LWXUNdx-^!(4{)S2zWybxb?W;{5xoF!v4U9dja(cfe=!KBKJZj5Df{xh{{ij7tYs$9w_Sp9J(T&YY$TVYlN3Ic)$W6HP;-bg{}U4lwV`EiAp{`;I*KXenPt9Td z`=Rd*->gN-Ey6xD74JVg43}QzGb_F@^tSYSYcgH5Hw|m zUDb&6iPM3q^a~CA#>J0E)eMgBqsMoN?gKfC#&%QQg>7BDiFcv9X6K`5ZL-U#2tX2! zY)c3)z;R(<#0K4lqr&n1ovo%U$fBHw(AF4zg8+XRlW0M`2R~Sx!5Ti6cSN_D};&?h{gu4cU*onQOp{g0LTvbMl^LGc$fnX%JklZpdZ!sekTiPS`V zU5p%EVFai1PG1k`bsi_-|I6N@_9-$QaF^IQmgio1$k2@~4stc}_|%%#9p8*L>0}wy zBR+!#C1T87>vmB%G9C1eL@at`!!{5U-reiUff0Z=Y%y4pL zQGGq5zGFAI6mBP~V^jZZT^mTuHMMqH|sHMs8JHf_a{yRBqy2_hq;M6ej z|B3YbJNp;Yo{aN6_JcW%s(hrlA(s(w_)Ib?q8VUp?ch-`y$2t`(D7eqyw&?eDgpE1 z+1YhGE|+DGMT#J6g!SC}NuRs)gb|%u`rUt?U0F|H5~qPSC;ZA9>)l5dLyZC=GLhR& zKgK1XzgVZ7C=+FW7{%`EGZ`ej_lR8eyMGq|#mKlgQE7m55$;*|D5xYZp-zvFbrJ9`$i2>0HbM4W0vO>j3# zqaalE1YcYURDdLloArb<9Hu|Pe=6h{Fk0Ogt8UxnuNjQ;vKk!1JZDq`Jb{v^+hipf zCy1&J36TzgPw7>)?T%rnm+cKqvL;8}h-?GD`0tJaPHh0%k%>dT+TAHQ=8MyiGhh zzDd4C$cZAlujz)=3vr#G-*pFvaD;s6={GUe?lZML-5a)TY9LRS-6glWTbB^AxIzaU zSqF@B=E$%{AsD#Ii5N-Ee+Tj9(!hMb2Lb&W@E^qtxP%=T1ULqsAAGBHcg&MXIaN4- zAYlf43}fCk4{6TePy>0n@+g)`AxF^mEB=o!+y{%$@42NEYl z7_w*A*1#vpb@?{aAI$+uox~&i^8Q~vBkrESt4uaC3|@$?!6mGaDnPU5tqG^Uie{dLEMuw0R*8pQdkM>%&A6)=d9TVzpvoT*SHN{w1DE zU*x7o-T>xe6OWAJ%V(N$>}z&PNpm@*YHW+j;&l*(F`Qqp{O4VXA5MI)#Z_F z4g}I#`(!G%-PHb9km_`Dc3rr^v8K~SJHMlifzow-TTchw4VE!+xl;oG$heo@?WC|o zK;%ss%imn^_5ZU4xX?qxGc4$$Cpe)G zF)lI?CNhE?*i~6 zY#5Ka!`s>iu2krjF!xy7B4#~#m1}Lbs@rU3@!5{qt5olyH!`O7V`pXl0G{qG#(wlkQW=A*0+xU zMCV9o818*p1>`$(@YUJjj6QN?9kJ3iAr(b^W%u1hs@ECObnj@wEV3@Sx~AIH;%aX zCBq+#IhtY}Z5#J1d@w^|*}Kb`eBF%M@E=-29KXebnTW)jV_kf?JPndY+#6@d3b!YY z1>}qFsAL^8;%Ot?9Omq2Qcgb)B3##S?3U@D02-#DMIkW|h0^Cu*vWp-APTo;cpH@0 zA=cY>oW9`M-Qf_HlyX+gxr0eWohp3E#WCEWsFE8X=6;C%8O(z+G0aZx0^KnK zW0~|$KdA|&G|^z-56G|`DaN=lTXvj#W858pR^4q+BKa)f9=VQ9t z+WIEpv`<%ZgP3l*cXHk!<5tS$lEl((Rq-DA#fyQFw%MjbC8@^0IPk*_HsPrxYO=aW zW<{9fgMqe}?rw9z#k@$^$l%5?MvexdnuX~0#J20r!)F^NwIK-qvft^%SW^qSPNQa3 zM;pIfK!5E(p%7efQJ6q0Y&JbwwWq$q{~g^arL{P3M|T~=7m?KFbg`r(Yy+3D-e?-_I}cHqo$w4EP(i>wS3_+IUhc=hN}C zr(SMxbY*Hb7DXn$XLXxr>#nefqMy_JWBp-VKPTK5XcmJyE?GEMSS^FOf~xKz+L++O z^K+xpn^Azptq*|Q44-m_aWRTN^)?@%V8Bd;A+Xt|srQ2<-)Xwv*T^q7=(vFIb0lbW zITKlDx~S!z42pY9t69m0A*gzN6SxYAHxyGq5P(1(BqCc#uUP%qxy^Sbvr52zTBIe@ zfS1a={a!Ks&MzOu`MTwFra!W;&_GuTXsX=S!wJtyqNLquNTQ;Qm2j=w zA{$I;M33C|cLMS&M@kkw1SupEhVoz*29PLa0!gl`p+c)5h%Qwi2nR7lgm-W2h}O${ zXQghRX4)o!2?@XEMj)Wo$aj2(S0t@HK@ zxzTS{>9cz-wx>{5zMgk{Rw>lH$Wx{wjZ*zHz-WNgNiU!wrNp7Qr=uLPl z-T5DHue1^ET6fhSwTD+U`ET2Qe_2eofe6tTpRP zmZ{YuVP3~#iPhhR-#D7=A0O#V{-ihY49v5X6$E=PmuP`7URzb+HnmYv$nFq?I)h>a zE)Ci#^CLw4?i_v|x=$7>{%L`-8zH_i@%6Q15C?X_Z5lAyszK61@7X{Cf?i?OMjmPJ zScI%*5Q(0WB64XO?0V@(v-v|o>VRjj4yEOue{}9|8`^>(Q(&#T&V*adqYm6FJTfH<4Qc{Aka`ApHg5NB?0dP_;MaEwEo|>6c+3Tb(=pAtXpeKd!%LZv5g6L zijO+n3}gWS6!v4|rvxaH{q>0yLKUdEqDOVQ@Wdjj#Z0UW1@$ld@(~2 z%nWuNP0PT=XQ?#s%ZP zSQC9z>wrNsIfYHLh@69Qj8aC6El^ON#eW95LCT!QA{humfQib0JZ6AY!_TqKh#yiKVL8n&wkH2Q@3H7$tZP5O<-*)L5K&=8Ic1 zxSj8=w+u}9{wZ2Q8~9MJ&Yg=klxxDj7fCRq<{A*e*ACZ%-lWl$=95TZ^-2@ESx3xz+tg#e2J&4Kf+#a>+zbs^`@S>ZWKAkT8X6ZBd@* z-g|D(>-Jxwc^fi8#8d-fJdg3|b{cPAL*aN$pC+2 zEAjN=I&}R6KTUEvx4)p~)?j-hMxu)wV{a6?++(Emp`Z5#^Da(2|6qAP_|Av|A!akM@8MU2RZ8`uCv7J~BWB zi?l2L=~Xec&;n6`S%QNjG#UV{TrgNtgY=1X9PFobexP@Qpkfeh+sn3GGU!Z%Q+t^b z8TZWQkkAsIK?*Bhj5@fNU;;xs`0$_G=j&%Dewu|6bvS21wq-&Ym|}CnwYx3S*UUmU z80ur|*`~SPX^3Hlu>8^7=EfDeWM`4Jfq7kr!3pdc@keKC?SY%sF(#sSoCmmPJiE-s z+KYGw#V^}A!~~>#=ASCz^pu~|i6yU%iYp(z zeMa+_*8bin?S;%yJw|*D$2^7Fh3bA6I@3U7fsi~6XjU13YllUo&*`80dB?|MP1ba% z0B!r#BzIsW&!}dBU&j#yu`<7zP4>jE0J$1$!mcPqQJxu^?*h;q{&s*70Xr+6d}*W+ zsxxTRK(at(!>P~avoGo+lRknh<3@`i66{Ku(Vv)zDlfER{PY%ww7NVPCeF|sS)lyg zebgu(IEj_)V~Gq*|Fn4p$5&3xU|^@|@UhrFZ9DpYL?48aJ<37(Or(+Jp;Tn8kr|nd znjqC?<1dQK_H4M$YK)x8qr%2f!LgBzzns)C!;dh~&rhRReI3?xnncwIR9>c zkSrHB!W>dwM&d$NK}3#Gukk3pIZ({KPebtZYtDSXfSJy=l?fz}BnUBBMoEXRJDrZk z{?^wOH8Fw}Tpx&UI>KV)^S3S26pGozvPVLYikp&XsNo6}zJ?{+`m0lH5vDv-41geX zk0?c0EL}5dH)0_^;s~NtCNp|a0~w?rmiXdYqTIan6cH z%0gu`Y!$Vq)sjgk2k-m8mLJfAqF`vwy33a9Ujj$ycNR{N!qwbc@l(Ghrln+OeQ)(M zwu)`ndBxi24M=TT@_P2m>q#WaL^7LDGv1k4@Eo*G?J#r9kKw(Ur@fH4N{s$QZ}V`^ ze>}b2w;3^Gb|d^&Ya9%h_p`yj<)42>H?LjW%W33zW6WbiNMt_0W$PXu49UZyl=ce` zoFWA(NAEqf;7{gt?ntD9y%07iJ!@QN==-5Vh(32FYgmG`NepH%%wr%!Cvl^k5&Pkh zuojSrX=|7sIkRI?g31tF{Z9g$U`MY8O306pK5?v#1f=P~954xCDuRJdIgRSRB0PS& z(#l9epj3&ojNrL$nNecVwTbpLn&5nQ?~-dB$AMM8%Zj9Gf=IP&XI_Xrw)3USEV79a zq*AbOY5GQ`!l_~_jKVb(#s|KT_SG{{Zwwk_vbl;zpwnbUXWAtenc{=_7H0HwCYr_( zw{F>(q_nsxAmJ2~Iga{SMtZNx9RuTDwe)>t`tl5NKfZG+#CUFX?8o;cw*&1w3*f%uf;_}w7 zmySWaopc(4KCQelIzlkTIM;Td+`#KA*Qi9m2N=OHLTwgA=XWuo={&O|ECY`m6gRnK z09dV+9;P#EQXmCFjfn2?J;tgbVYB7GYjBd>fp&Rft+0;0txX$qm1rOm$jhv}byafU ztA^!Z>Pap_1wHTQ`^TSvf{E$DnHUWh0E51&BNCKhbx^@nns&FiwvKm# zdi}$rY}!6XxO7IM;X%HQtjx?{=I`))qluR2F~fWQZRsU7+QhKEL? zQhRKh;(`OXaGnYP*O4>2&>Eb7=9zDY+siJD2f`#l2M3crkF(J6z5}kn<&Xg$tE<4K z&W>(JCOQzoKo3ih+aN(Ji8EQp4LCqF8aP@V4gQx=$FnV5AF=qoVY?LSdS066zom^W z3M;9e(im}QmH^tj9g{^Mh=_<$9+Z)}2sg}%G6a-h=)a)LTzP3Cf~?G_Kv2v-M=Jn` zIp@)yHA_--?Eecft~c%SpYb2`(^Kt(!C87|A*W|(F!)#p4Q4O9rL(uaO_;|9obHz6 zXKwX}2-CV~*N6r___kBG40)N#>ub=Mu3^M+H_z&9%sOd1=Y$NRSkom)PjR`|%%hHMAujhO;S%(ZR$T03TA^how zX5P3$YYqL9xaVsgW}5>7=k+<3jjOyrEzPh#?<4tT^G=YeqM&F=@CS$Q^mm3BiJ*~> z<=PXkG5vh}Z~pD@9S-1smRQYYIk-d$tXL~BL?9Z4YV%Mr!Sj%#9CO{PE^VXCd0m{* zbPj{H)an{?b9KfDw-G!FOVMe)acg8zZF6Wp@aP+7j-zb2mU2`%SI)~2T_j`$oAjDbQ=;n&Fg%dm0V##&syc{OV!(fnTgV9g# zI;}6?jES#~2>0LT>+{lo>&J7^>pG71M8hova!5qbL%D0U2&(iT4X(%3=5K&os7JU$ zDInQ#5c?k=@|SmT`xytP_qpF6&eGf+M!|N{NJ3-=U#mV?w=hW~ z0zfx2(LP5OJo?vwnQr~f2QyDL*%LP9s>-X{(kvXqDlsMx7g7kF*M41t?Kau61L^tp z$NfCTD^MHkaQMs`DRFfHsH5iZ=I`h6cwy8j%l{x8*8K znDdbSU-K})^wE8|_b-OVahQ^A#Pk&2Y5t;x41ciKf`}mnNXWO1d783ZXw;dl%ys)2 zHw{+QV@}ES84=mO4o;aKpAl-2?ZNpt+F# z4W`inQfp4vR#XIn!L^nW+Z$@Ij3X_UL5yQVO_ezYwUoBA2q>!7Wa|!RQ5wXeEP{rz z!!stD+-0fE$0oN&T8xZ?X_+@|9#vB#cG1!XW~vr@`=@W;El*MsM**?6--YGYF}IQ? zB8mzrijpcLvO6?*=+0v!B-@QhM%h^#Y1T%4sS|!Wl=71y7aS~F(xgcf@(0eq_%%PG z9h~)V9=<-gXCKF00!a*e)6k02XUNxu;Aj9MHzThvWNxyF8-x2C~1j7O-0MSUsV| zq4w1WJp#@#Ow%@MPJFfNt2g%(d=tLJ*QaL%4%7lqe+Ad3gSgX3CS;%}{Qj$xy^g*8 z$@uA}NhD39dv;rk)!_C+{!Nb49 zs|5(<;9@bZV80bafsC6V6z{6s0Z@As;0HDO%in(vJ||Y1za1~p?zM(%C_BBb(r91| zaDBmQR=JxOm1y-$4`Nm-8kgXcu^pOQ+Td#}u610Mx})MS)Cx4jB^t^2}i%jlY|j#u*HR z>sr*$0j-e}dFvZ8kX<227+@#oTfdz{=x%5I_3zV0v)2!Lokkw)1Wep*UuVrz*8Y!O zpJ(6Gb0)Gp1)t1rVR_a@Fh~9WUZ^ckai>I^m3kR17R41`NI2xpkh^?%!^b z61E#?_uSb(95P1PEWA-E46?S4DW`QE6YU~FzP4k0TUQ)#glcbotucJY+Sd}AkjI?e zqw)X) z2jMvr$V^E-I=4>28=`_w>pB`~Tpj~2ad{>Q}a@E*$`!FUNV4?Sh7Gv ze|?S!l-a?=Lp%upBwIMNHiXI7{V&@6Uk2ZQhq>_M;u}#DF~%qbYq({u@$ALbyaxzp zmJA1`2S_orL-RzCX6jc_7)MBqU0if}tVYO(-9K)%1$ics(Hq3My{h-^-k zQb?Xntz$ZE}&YVVxU`8rkGYIZ`&F~h8IN10qS`- zBW4a{qxmoxN)LfkT5({0HeN3V^Hd8Zu+CnhSBzMR@(WS`gY6(UYNA|-=ukc~iD6=( z%ab_`{cOlMEEe%#iU;$xOKcx|`_xG12Bi>Ud4YZYKO1-$Uc=aZHGsi1Osck;n|S+c z2;tM|f2%GB4+fZlqP3OaW(7J8H=!VbC(vjDY8ylhA@D&M`3;zYvRujxD1dpIM;k96 zOWVsaAub!AW;~RylgC+iuWsx~z(_zDkcvmE%pHJz-NLhYViUiT+=U$Lz>rjeQ;yE2 zM36Non3@y}aUgk4S;l_zFFi!`N>sc%eYr^ImSa2qZ0?6B`{%8fpKsvf@;3Tnujzn%y&A&{pU85iE|H^5eTX1LIx|HcX8$yngsMm*xP>(?#d@tTjMZh51jfW>Ow~ zlnf)8lEvyVlvQ3uq`qnMJji&c~VY3UX>0;;v_}Q8CPPU z#|M?ATn`z`eIJ;I9`cX(E2v1S zrbP!55c^gL9s~gAflpQ|Ux%rH@5kY&^Ne|+>+uV)-8;@|n+VzLuSsz})g9z}h!~Wi zncQ$Qek=owMr<=8rLl3&;DIm~fWscH6_D`*R0Jny6`>d&jG2q|FlABFdwxX;{$ElK zO*$$CCjt~3sO%e=oybs~<)*)R6!Y_RIR6n#T!AJNEEX7G`F6V?9MxdJsTkQ&o8mmZ z*vPh(^=+fU3)Z4SV*|1wtG_EdV7MO6Szq1^?6>Y&=7BZ3aWQM(hY6BTlpdqkSP;&6 zkuB0vxqaSwHzC!e%euH5|4*|_y6I1OGoA56VSz|v6|@4f@VUj32K|P=Li)O3TYkG+ zu5aAmZvW2QI1>sgDx#oA&F6PABhe;z41J|K3F)hEB18ceP%3^8Wga9o=Aia|Oxrc} zux3%@KFu+3G6E455cr#0hoC?)$MQ=Dm{1fN!^gklpI+Zjf^iKqGoO<4(B4?kH7>G) z;U?~+H(OSH@ma5qzP3%gl{M#(WCP@S0-^@^{#+?KaIH2_JEEsj!S1i*_4odsA5T?# zF1nwEqxc@bkHbCo07hppt~k#*2kMK`)B9Gc5H*^Cz#meI)8$x^L|9ey){gkk!KD)P zIAodUC-POUbB7_cDMF54>+@tQ69BN)NdS^U5J3!M_nG0L$m3 z@3p4G94%r>l*kY^1yn?(9QrocduxK6;2IxII!O$oCda19m3aHEC+3%JJ7)9a$C=JU zh*_os5DcCj{jlGN0MRLiE{ae)v$gBDd|kcntiOe$c6|;+Rtt_IKEcq48vxhf@cDHu zy{VECn-8MW`Ta3zuca^MV)Y(nI1-i)6?>QYy|%H^ZROKM>Gtg=+ziK$R=t|w_{BQp zEqG(VR3znRQpd;mSYw#*-Tw}S7da$Q{W(Sy{9?bZ{lcFHJtgj5^C6?bdpJ)RpEw zd+vMBdVYpG4#JFJhRPB7mptDS(B<5)Vt{gWx&4m5r)%|mJp5izdbte+@_@CC1%{fO zSwl~OxDTIU>LS=%TCm`7!ExnF0B5-Z{TJa+55>sSXfO(Qn*Jdk%iMpMQt+7q1mu4v z0*+zBQ5gQjA$+0b&wUrT$M3r@Moy2uft0ShdYUoffk*@4xW8xlYgGf~!_w|3-``3jOpqREPvgBm6t@}Csx50DEV1X?#&gk; z(eNwvQvcn0n(ROF{JKEc`|2c7IdJ~70RB5Zj1EmrC;KkTUseaF^zK{Y@~8_DNeAt- z*@BcL>}seY*dPRPI_+BosDMDEfuql6<#XDu71#wAQT_8^VX~Q_MOM++~|I13RoMoIr0I;8Scij153RW zw$Sx#IfY8h{ThX>+`=2Y#rEG}!N8_a_hkYh6FOj8CbWQa<&U60HO}oQCVkJwh4gni zbSwiIiLUIdBS9bGhvP~(Bw#1_poR>}tN2hG1PKs*atC3?1CSXiZEmtA*<;fgpU+BjUd6H2l;IP5qAh19>3Yj z70C(`>xNHZ23<2LCN6U+sIxOc5H#0jA`D9y4Qj?#^wny}LPrMz|EH=9>h|xV+K&d8 zLPcE$j;(Og)P`AFQKhMc#wdcu8I=WKrVPr8zsYVOtOt<)1@vLVNYK}9k}x?M6K~nZ zJvcfez7qqA2NyK~f=&(w+71RPvM%jV8df;E5*!eSY-3KH299r5*FvT8Eee zaV-(%`ZK8yBOq}Sd15^hbru*1|0+Q{q|^i7CvbC(A*oCxX&B&2UAVLkSE&OSpmmW< zB8jveZ%QVo4G#qd(}l=6yq5)w+;GQXYsoTJss=j`vsdYc9eb4) zl_8+(_M@mBlsuT^S&zyRNCxs<#<1VMS_dvC5_|ISR7M(rey-n#&z+wC5AL9NA?(%| zhbV@k0qusPYk*wlnlQV0EttaqkkQY?vZuTVoObBF!w&2^I3&YR)QyxFtNSk=2lKj~ zkUMGbDiG6nR}!&oD?NgMeuS$6zldPER~HP167=9pa3O~Ox%RO>&m!+Yuw!aElbv8r zcqd9SB8?KdCjpw=t%}`Y(7i$?1Obl^4m>&W`5M4}I)|4Z>w^(bn+ppn8-@T04a6u! zHwYQc9nEc>3dzPYCzA?1W|AZ-l7bYniuw0BNvb8mUUzPVv*yCO^JdHD^R71XSRDl{ zRz2B5VHK>X+=3OFnO~o8j}wP|4zEj<(d+g)m(F@ynHF3MJDplFhanEWVCN~y?LaW) zzB!{_9nNviAa$rYn4d?@aT9s?1FpDl?9uvCI2)h013T-yNJuGCzS9ChZJ-~3ic9C{ z$Z-4d1G~F&NTxq$M!f0UhSt2>n0R5C>|h(GLHwhq-|r}zt5ZZUk8)O`LzJeo#`vbADeZsUGP{?ac8h4b{24rGfBCvhBaiX_? z3M3C`fD?R=hos}0ORxhX*06)-aQTF!Xe=E{ZMS!u;2`;B$cdUDVqk)a2ndo0Vxp2_ zz`OPM{arkPb^$1SC;F}chi>WzvjE8!Q4Az0Du_u`mQ><`2QnZb%y=lbY@NR+An+N&cuKQo{&3)PAdz1&3_sRx?phJ2#VWV`zMl#(2(4u>w8B8GUJs-=^H-UMJ z<$-v8LmST$0Pn6>o5D~P0n(rc9t{95>Uew+E^vkvvk=a(oME)<{ooY`G-iyDh=v@F zt1}o9fPepU8Oi`_kl+Blcs+4vegUFn1FiTOj2OW5?x$-1Z{>JE5ik_h*L)2_K+2p4 zdIyzG&wfPU25{>A(w^6-Q1ieJ{KGDR1;nZhKk#6CPCw2&uhz)NK?1Y~eHagnAXGw2 znfqQY{wj;yec(;J^PNfp6kE0WdV{ac&)EF_|F!~;pZeQBl6zkVwsy~ue5?(V;RPOJ z42uS0iynq^&n#&(9@b!iK_#Fd!2GNY0JTT>MFgrU1kD5iRIrekm}~uba1aN>;6@-^ z5p4c|5=oBv|A+I?R{De0+~FAVyP1s)qY=O!@bO!te<0w{R8ppyAb`eV*Q_dA4n#7- zg0P=(9@-3V={&v8mNKzHtp6XcAqs}uN>leK|}$NgbFDJhid}` zN(PF@Ojig7s)^x+f?lQhZ zgm6+*EsJ@_TeD$=naxkbn0`r#?B0ZO%<JY)}1K zmmU9`^gG!=R|Ba*M1=knadhAPw;FND2uBBz@8lhw4bf7EcBM)oPW){y5fi{n@0c+B zXFuDn3ETh(eduyP4FLd<$~hoTVd$GUPgR~ddDEFWvfX3f-nFEHC;gkq{2D7@&nR$D z?ROY&o1jD-0^9_h5r6L<=Li^A`tGqTq$Y_5#3U7e?~nQF9!sR&+vH)Tpn$Tg2}>X` zW^phkggyq0u=7#yHw5H=-=z19wCYwHNPyAgpm;9UfMoF99I-$PNJ_r6X(JznSu9*= z0WZ@5`CKM3&(ZYEHQ`(|e`hq5@0+0wKz%GEHDrG>tyZ;SjzeIv3mn{ExsLbp({Llc zKV(n8+EL{M44Je?HmhjL3V>Np=_JWn{$c5Vr zPJs-EeSv`w2zcvo*+03<8Bo{QF`bNzZhntScNf3F2mP1D<6L`gH9arcYPoj#UF71yRZOI_B1DpT%98SF!iR;NDKsi`Hs@X? z>$%QKk`NaC|iO zNuXgz@t}&*iu<2}iX%y2j3NXgLnTWdX-8MwY4D1s(=cgG!|d0{x(qagL@g8Nt++PR z!6BYzHmg?QSmQ3@Sa*jTI3li2hfY!v-fRL*qy0}?s5)1UHzWcP`{o|#JI9B!hgiDZ z!MS*_IAR5pWP6^G0D4p@Awl8i_vvCZ2V@)weTH}!=Y&4?kPPTZ@?>Z&2dI#V3of!j zc>t6#Og4?~*7`W=#&Fo)AgQ=l-#vbuFO2Ng9#9)i@p#3<5h;>|QBWllXl7k)1(AmF z(@kg=)iNRjai9kw4Fnxx6qt}RfsIX^9__rslti|`p;dLk#hn02CLHsWqNoLjh#@=l z!h--YIQcvILOhX3yL@Y`A=GTxS5}_(bzWkbr9qL)MSTE#1A0;T4$^Dh@LY9=7fDBl zSFH7?lAqP|M`sx0}CB_XWZui+v7#xh1m_pw6L)3b`u<-(&Qhd1NBxr<4{nRaF+;#s=_ zg`+Q&^}m>X{Eo2l4fIOZ*ql)eTi)c;$vn%#OQh3vOIMD(!;)9XJyM@J8&Y(DS_&mc z&eb9zXd;0`KnW5Z^FkRvnizt z8W;S0&0bvtDxj!8=0U{tP%do}fsj&u|F#eTJdzwYxciJ-)o6bvfu6W~i{f8e^0QiI`y8!HuHzx14 z#dau%7^s_>^a<*~YnxF$@wP5G6d8Ns z0gZwMCE`(Xice0xPsnlWDfsUXY{bvxh;NLASEbp*9H~&Z#ziL^pJT(4mr? z77GKD-IEb%G!Q0WqbA_i0@FaHEIGu#!X%%yHgTi)eXaf?GaI-_4F>sh020t5gJ@~j zXo}}m-@Ysv89{Bs{7H}7(bh1GQ;_;?(^NHLKIFq?-=Hq~T*`ODlwjD|SXGxmnr?1z zQ4))7Fz$EYk8`V?w1IE(`pV`x3PJmp-jW9toHp5eKTmNRnOaKeqyou;gz(V^Tc*^H^n3B2dCGqZ+ru6jLz#z53&|hJB&YO5MisrkUniiavfo+FKCrz!19$sZ#)A!w8W~R+ z#BLL0Xu3T~&2eg0W#GFeVyWT4!01G-abCf#0q%Y`dDT9--R&9K4LroNVonWx4ZIg@ z$QL(6$8)L~5UI)IUe3Pnr8q3$g(0u_U%>WPrayZE_6&ZfL_U5ctv#ZIik$~5ulU47 z_9DQw9SS+0Ck5ZT7TA{cxP}4O}jYE2k&P?NWY^f9#S_MN)0Mf z(0h(1aLxieNYr2K#JnHWL_LvC5PpGS(C&x@eCQiylfo?`lo220eeRns3^mO&%FmwB z6#%w5Z<=gYkORS@+GhYnI|_{~?|54-yIa9}gfVWOs7}4f1kN54ZvNW<`va|X!etZ) zG4voXH1W&4Hz#|$1FGKzrO?3(bkXLXXS=vi(aA97)Q0=pHnvp~`U2g~|B zK4OyKQ(_}p#dhUf=av1-_&TcE_&L{6NqWhTO9ljoKsXF;hF82+iV`V#HzChakU-Ky zKvu&3X>6U1pcRN0_vht*gRQj;55v%m(!kUcqH!jRcR;p0%Grg~D9&z=`(lVh0HpyN zT3^!xh#y^B2UkWNhdR_mtZIKYo%xxgV=9T2lWV;z8<)gM;RWo0CPY&8gsMoICQL3` zX-;K0SV&8uaCn{s6Nl=aR%nt?fb(XkB#Mx-bz~??V~xpuMUq4U>w-hgRD=BUSmOrvDMoiMLvJ z1^4E%*zOpox?63~sp^|{Fh=a=z$>u0=kgvPSLE`Bfu#hjIX>C!e5b~g+cqs=+&`y5 z)3pa2^a7Z|+yf{Ig8eep@}CCb`esn(7(=fw?r`<~$Mh~*u*0r{QKlG)T~YYAx&u&Q zGj2bZh7&p7X!m_DVLqbAJ2as=pUFIa1li~w4v=A4n#|hqArMi}NCttlbM0{J9l4Tn z;l`|=Dfp zKtJ8_Zsx);j?U^)xMRkAzrJ}k!4&WaGcH*w(F4NO_6GOAB13p{7UKmHxi^Rm3N8l% z_Blb!;(-EmHzG<+Ayf8J(kq6&!`D6F#}GNxjdhAfvV!VHh;<|#oT zrVZBq%vI;~TW|)#w1ox{{fR67o?$^b%m;)j29)D98ZrQb^);%9r>#P6DLWMrYaTH|=3!38uK80#~6G{|HWA-l4FoM18EgoK5S_0$F=6s10sr~vW$zlRP! zhiA%%NbZO=5F^h6EsZo_ieXclA%&w$qvswK!9QcKZ4lB8B?T&!P$+Le#67?Tlsl)o z3vabBOCh^;0*_%*FhUa|lMw`kAWASthoR>(UpY*qAT@BUQiKYIh%}_ADFOWDJ;Bv_Y4`A<5i>1-|ZW!jD5m6Lx3|&XDu^lwm>QZ1g3A+AgI25vqN<9RSO}hMGwiQ;}}TryhJpp)OPlQi*}s!7f|aJ9D;WDv$1P zc5Gay64#u>=@%W?6LwL<3aEz;_I+e3Cawh~a;B`{77CIi4zrSmhJTaUmPWT{x9E9r z@82U3bEa(O)!W7#QQu+)@?A=td7mB<7Kq=n5TWRF=oICe=fo&uE|?9U!$k;w;K?4W0R>b@_z)&s6Ae;c26t`RLLDi^0~rH zB{xBk{Z3#9p@Qwi3A$9PLKSE+n9}SU3?83X?@89|&bId^$fwxQTVSBhMD)Bgq!{1B zYo8PGR!nemfu1s`5!vbOMst;TFyk-ra3z3Y8ol5rqmNC{-8)s>mG!tCy6-=l-PA0YMBQQh{O! zp0ENLNS5ml+dXH}C4o~z+}gF{G*jYMHt+0nT4(&eV_OQ(9t zjGXIzBZ*-Ig&0mS5*4(fwN@fa1yO>|V8X;vXhg?+3cow*8uej96FY9Kz4kSMV_wE4 zs~7gLLqcQniUT+wo(J~qqablSoJK@R0|A2yz9W%_AdbtbZuGIg;OZ=Imn=9z>)115R|&S_mpcx#i>C-r z1`4GE5tz1KwZM~1CXEK;ykY=g1Kj|p`Fw&WoCy3x4`^sQ!cvq46jCKn&=D(51>zrT zK#q?vwHje+7M3uZhc7ZHw*z5`&fT~pCM zsMt0t9&&{wDId80o_OmM*OAqF0Nu8hdeA1sxHSlZLqA&pm z&O#r(VMdcEoxQRl_VlEEtWdEFkrMD36qNtq;cgrmZ@M#(J0fNF z?Gd=85vBt;04-tz2O8L&(ptCDNt=HD&b?uUJ)ACk@xC}Z(IV7>sS?3|SeO}NcnMul z*g%~>o0rgUNX`G}TmfkmmSUN^)Z<2gBwj^vhm*}TCULf^WT-!Sg=+8H*3v>mieyuB zCOh$*lw?>!y&TLt3>V8dOO%ME-IuP=6o=ndEg+#c03F?VvD_;tkzc-|Xf89FVvnUJ zETUOEa5VviwA#s;m3vfA_O7HM1nHwGN=PnJ?^WuPKn^PP1PTCQaU(D6hZ}#bl_fUi z5C*b8hv@e6uKoLT(s1|)UbD@(^@32JyJJZ&n*bz{7$|Q6?>Fw<%^Ugqd*OEGjaIZx zJ2PxZi$qwwLMD=Q?JNUQ{_LBjzNgJ5X*AG4o%a&{+ZpR#o(oj37x zyu*5wrTjp=cp8mHWyd=xhmoEn2?)i_lDSYDu5HZRB4BzLrwF^&mb~A1aM?7Xx(_3| zzB|)-r%X8Z22n=omLxdM#-6ZM>pe#Opivm=HBwt3x^YcQ)vUanC~@0(ng~L!n&W?e ze5{v!`K&SvW=Vl##na6Ej&7Pc=i<#Uy?iFzms$I{vpyR|TVUE7#uW^c3cmq$=4;+G z?*`#Or^Ux2!F>&cw_<6*H?y0QJb#tsJb7I`;=av<1CnGxF%fzPXc`<)qQO*D7KrbR zc}h(fCVUD|r%Q)@_gwQna6ee`=eQzz{{%DT88A?lz~b`*{z7$PVCnrAh=*55r5-)d zmeYT?(`BzH0@L}w=T+~wXmZ29vGhIOs-3nYIt`4N9bIo=IeP=l=bgqR7Z5W>l=3>f zMnXzU99RPb)!=Wh3EoR};cGJkjP7?!MuIHU%4g7#yyR#=~Tz(%Z zGeF2Y;&kiiC9{YmjrGg9)>pmn}4%fvV+W}<*a%fhvB6XsiX-h%~ zL|y6Z$AN)G+r+=H@#8U`I`cDP5!7qoZN^8kiWr?_D~6O=N}KIKMhpOnvu*<> zY}ZN52?jsJ3FV`;q^T-CZK_*kRYrE z4un?j)2!JJzJY@m}%hK)CVsc8CF4}F5Spu?&urz%lfm)~0 z_KP^{B*^rEJP?V3_Cr~%QiT(=U;~6EkTFMWG1q1?SroZ0RzW=Gun zljc=v^XkO*>c3UsvuKbZ4^B_nZJa;l83X)DnlcuOw4pyPK>qoEJ^Z+i5&MeYEG_7N zO?1$I##4I?T=29V_pr|$95&s%LfgJQ0|oG9Z3>%J+DPSlX1D|g#ODKEYQzFCNT{f5W&f~ zR%#szTBVT-{Ze%IxMAyaymcOnMP@atRVMTrZvf{){>!(CG#ufLG7?f9joYkQO8|J+ z9&h-|_zL)rB-(_2>bHI#o#-};A(di1`wr(3c{hjHAbJL2>|oiBUi z^J(2RYSZf>>q85C2jui}E}6ZWyiC=~JhLMLvcmLB`}^s>-qy%`y{&3RBC;t75+nkZ zJHYRU1=KWQ*}GTE(44qoR||U<4m)#srez)4D*7_51&CU`3c2hcTnXs^ zEFoj?n1%}j)@iT&F#U!;c69yP(@}lrg;KrFCeFwg){vtw!18}d!@s@X-fPvpo7nlJ zkuAB7V|;4efepi9lNtv{E?#@tXjM^ST8o*LJ@uR-n44d1w*z`U5f)W%^OnShvgE8u z@wW^A4_5UH1O`O+5gigFmKD+BeBs!1#pQ{cQI!xqzE$#?NH{5p@ZeNXv8PtA z(u!b?pP1Jzh+n5txjDT(TZ^FM(L~HrQ%jvXwLc4d8grI{7x^Wi3)y7wa6bG0_$Lzz4 zbUECw4+h7>&81loCt<>a2;~;VtLup`@@TOTN48N~P!oO~K7Ie66fp@}ha@uK*0faF zeXPgbl7K$zlJ^`jsJd^ z2XRo0)`>vf9$~LzC*NQp^nZ__by_OE1*ZSV;OZYEN37c-qUp60_6w?Z^?<;V^ti{= zDwVlxHxtp+Z#xx#NVk)B-)b~$>O2}pqxS_3whzlJpTzyEqm9Vn{Fr*OV&)su@Rc)R z00Yr4m4!kDGU7V)VgwpuLWvH}=7j-BKa03sKsF*F#qd+ulb^D5Bd~uT;&L|d^?E&h zBkG*0Dj^6GNE7VBwFPjPCmCSCPlfOUfgV&(H)%n+;RE!x*m~TFHf`N2OL&*3;`!{8 zGx^n4Bfg~tS{C*={P*N)b{XPPLYn})@-2MGK$F++Qk@sSjW-rh~4A3?(dH`06$`umlgmV|q3=V}*>ED>L2EDd`@ zV9-wVfU_v#Ohbf-0u)36=%;Z`m!CdKQ>N^Uawl=B%>X+xTG@*AUS+#M^d?|9+gch3 z#=wvGs}YXwEktO!SCUn+2hr_ilz)ln^|*gi7LUoseuDToCdCp&NywyXo2KmYQ5A}) ziWpH57|zR+O;8^fL($b`=iq!;lune}`R_Qn-WLo&--&z@g-ax`@ApA<<7|uKdG&q= zhDbAJm$_BDPq%lX$yBjMcQ?CDf5ztI>7Dc88_k1RHX(}w5lH>WkQ$$$%=C%y&wxsJ$^5Ag>(99%?!jhsV?Hj!NwR4juM$Fszkq0$i9282 z*zoZ6$b1;WK|b@xu;-ou1I~zRd)|MOHn626KqMqUFNd?)C_Fd+*uRPW3_d0tFZ)Bw zV~b3Kzm}5HK`g>|>=?)bCZ9+~@aj+>A4;wGZ-E*^1s9g9bzl<2Bn5^qd%oxV&w=lG z1#7*Jl8H8TDHc@OOEm&dR**tG^XOahJ?^P-QEln54!5;uPt(6rtoh%qu9Lrmx-|Tiz?_QhG`3nA__oa$3 zhP2L7;obp2F%USUGt?nqeSkmJNDL6lM3oXYMGjZ=K;b#>n!!{Aix8lu9+}$d%DXV_ z!LgNYvc?BY%+)IjC`Ew%!>wb1`VUqqJZwYaMw?H1p-0idi=)j*)N6ilE!?6%ePDXC zU)p%Xw>{KjjC5OGGZR8(Tg-NMOKxU@1_nss74=|42Y`4_0U+>vdQvn2OEMKOMAJWQ zx6MVe5w_q-4FU)Kcl_E4U{sIoh;V*Ror9d`gpiCi#Hcel4qrM3#<_v&W;_!UN~(ZD z+0d^2MGy-ifI&btJn%?8=yn51Bi?8@Jb|gI4i-MTtjV}{IP(p?92!#q0%GT`+EQxc zyvUWr(G;<9F^ppwuNVFi{&s&`WK8g6BLT>G(v%6LY4qzH3$pS6<5Fag^JG1IYye=a zE*}SH2ZQ9FI>Krqgd`@jH^ksAyd16cg}x>pg$!z{b+S@XHWNpFgbB~WH&E*#;6iCn z=?;l1f;-VQhQcydf&wRw-ADAHN2w}GbhA;|JZdm2Lt>v#B^EOt4O7$#BKl8Q=y+B| zkRn9nt<)e{{C&^{+*~*gT1>&|M}&jN-X0`Reoc;Waz#ih~d{*KCffTLO|5b5mc!Uazl@` z1IDLD#VeM2$@?Ue6n~xpa0G-{{9H&hCBQJ^J?$?Lat*=gK7WL#imA-Bf$M zrv0cKJw*Y|0dQf!jfcw@o&$c)C(QYK5d{R83)6d0!Us)WBM!KeAl+m!%ebA!D_znO z9j=F#1(X9YcYFOutUt%_tR|6|XLFVYE*3d#a*Ws!%*EM&hlE=OM`TqjWt|hjig%)$ zMXch91MD^iXbukII676V)Qc8JFKAOyolv&BjTn*b@_xa`?Y6gVEV8;d?X|mUWqwG} z?&_uL;>Y0Ji0T8O4p?0d-(bt!XFQjgA7vn zNr5$xKWYt0N@^=6hFXIxD6GdLCH|azR}B9!`7uM8dNm|N6;eYO5B^r4>q^C4q#GJB zg40|uQo=V-W)?07pV)ggkI+h|LMk9XT@e0}1<1gX3&E(;4h94_31Rj|0gWU-U*!cK z>r2T5#z+Bv&&or*cX0Z!b7rmC(+FIIX+kCh2!+TBpc{*iHIj36xQ14^2yIw0&a>C` zxqr*>J?q~M{e%%7pQxBQCXSP+>GRGTCC{4YBf04r>8M6(gXksmNWezBM}x4^q=I;G zEFpkrKG~RdQX(CUWI70u^r?ZCzjAr;n=>bg% zL84K~5gOx<3;gFZ>Iwf3&z|UeFU=gd1^#AEfBU-%U_vdAeZWLS9s(jKJ?;M1>vP!o z>8Ok~jYipB&-urP;hulbe`8Ph=lGwkJND1*Zb$h7klk2rC8h>rK6AIHw)vW0Us3s@@BNl+hgtIOi@h&Z;N^f_Iw=>r=Q#V9r}GU;dt&JD9+CT zKX`s`hhYSM_X0QlL-w}*g-ugMRaL;`Siwq>2|{59gZ&3xXTO2uW@WT!b!fPhKxHf_E`nk>O&!&pMDk z`afT{PEZ~=s2V3I2C2G00JjK8EI@gAS@(}Kv0YLgwagNsiFLcx4+k#u{djED_LqlA znq0g4#9;_fa;c6HtzKhEq^dcs*uX*+6(GwPCZkK0Df<(Y*X!`{4R+$J6I^E9+_G|ITI+Hg;+9wS)30g963N7 zq1+#6am+s){*km$C(|_IUbr_-zUaN28v;{~IIYP`v(cgj1L2hwp6~@5QM1zLPu2B8 zRnJvc77M9UYAr(Qpo?yFv|m{(cpXbZ=js&x^&(X?n0Tq*xjjg5O{7mhEIhhe|L@2* z!Wrf;oc{j;=GG@7sr16eH6of<^yQ)hP!)U#f)`Z%-9w570$_C}&hyx( z6BSb!{{Prj*O`LqW8I+mbn)}tu^-X?*J7T!^#>6#s6H%?so#8@}1I)}|TRUWV&CLOF_*}^v(Q|uoqhIV# zj|fR6RaI40RaS=_BAAGSQI_q#n=&+$WED6At_a$VvQ#QGUK&F1g{u+>G{zo0Xg9nG zcNkT?a%c;}KqzcsO_<%|_iE-G<5Odm?`1ntV)q|wJWq)TptGaLk7-2Jos&QM+=q}l zuxREVmkU^92nID!pxa2J)-7~~*Cv~q!x;$N9J`{F-|GAw>%k+^d1JLY`T^&L~#xr0^%FV8eVOmDsO{VAG9E1!Ud-0 z0fcS@GBNy>-^TLfw5xLVKwc=FDP)C1ekuI#sqVX7gS*7~$siw#^%l$G`g9!g)hoJ) zrqo4A6k3A*44;nkm%vgvng?-&G%M+mj4(V1CSnF51u*PAM+PE-dWKMpC7Vpb#_ z1r#4fY9X?HvXnL;ZC@jaxrb8rbVJ^CXp=CZ?s=Pl_dh0Luyt;}Xn6z(K*>ui)@e#K z1XOP@p%A8!ps1~!cliGZ4pD#1=dT&ptDCp_X8hr(?1#qe0E2mFm_*s%$R6cD9I75N zaFCLPh@gTKTU1)_Uu@6VNs?&6_un z9`hYnGMb>%u`{z@Z|9N4b;9eZU>#;0-t zx1$)g>IlSEHYOuuODCwm=OvLO5t+`|Bl@MZJpn+N|GrU=>r|PM?5Bpz_N~|udTyq? zsA2B?pLX$$bIfVG0=RRdmCPljGxJA{sPsekeS{jtsw?FxH>QNtf>_2lNI|3)%1d{& z90>CyP_v(Cf?yj1b9W`;EJ9bQi{!v`;ehG5Qg6^)Xz7XV4M_GXWff>I#E0stEBBjN zx4F+r*h}}J?GDsV(SlYLk$~ZWBLf5}Nr0piez`&Lj}KQ<&_|pGm3vR-QHE2p(+bDD zt{-)tJEDoO8c6OC=Y4S=P^lyi+1ea5Hn{uMNJs^`ok`qbf}Ep>Jz_#9s_G6W7J$!M z&5;7?vw(JpBkrEvaJQqbjAKq!IFXW024R5pwX9r|QA7xU*9Q$EaKJib_#Hb~9*pYM z<&yC)YZom{PyZt%K#`O z0-y}uvNSzpsB1knhn7~B0wio{Sh%t3L~h|PHhG3nzN zit<_whZJU3(OHa)N(*mPveCC(2bNk9xH35+E3B>*jl}C9W0?exX+c*;4{l^_W30!y zZsZKn069R$zbX?N7&t#Zw~hqa5tbc$cPJyZp=$!R&C!s#z8SA6?MmnGk``S7q+ACA z2L&1)Vcub5NSXt^6LN3VGZxOXfAL`dN*E&(5G!qY(DAg3bYtC99(ODHdD$?+V=IT# zjFP-xw^7y_8x9siJZNe}XLJ{F`4Nv1vx|M%9btgfhCsAbd?R7X!VOi9E_SL8Owyq; z3!tHNu~({rNiLU0uBLc^TjS&OPrK;xJojjTCnKlMd<#e-`V20^##&E#K~TII7Oh9V z!hrAM0@M{xUOa3<#6Zk@KF70hyAT64>g%vFN$Y@`xKMu3;@9mV)vTj@LKQ-rT)kHJ zoq~Zri6qJ-AfLsE=OP85Y)G1joxuR!L*bPl?xJKxdPFWwAzMWi3qb;iA<)LXq8duB z_T@-p5I%>2=koLQy}!pt?Eee(|7F$$7})G189g+aF`w~o^YGTDTG6lJft-fSe}i(# zPr(`W$Md5>cFBz$SP)<~(K@c6c_d+=@*w?yarXZ8(sSW|emT(l|8Zl(T+*9sQWdJ$ z`8`X{0Zr-+?f!^Md1+P^sUP!ohuiI=z9qvJ3@Mp|#^>J5$DBIsKTlnM2gqOs&UeCJ ze#w=!bLPF9H>yZYKJAV6PP6m*UjWo0(!gb|?K992Y-*7qHd!N0-TP9E>Dwf#?kKVw zSowGD-Zm{EHuGlmkiyRFMX3ilr$)+hm9}G(GH9NIg?f1w3)hHyN3wXMOk$je+i zO>k&#bCj$wx^Y1fydC4h0}s2=epYiZ42{blp(4VK)?aOYqdFD1Jk?tuYOa% z15ElSFhHMK_B}rjiO+~~9J-)cfrK$8A7Cg`8pD8~q`G5n+*0;T7}giJ>^Ub1;}JN- zC+~Z(zDFDeM3la{;t!HHuf3WbPJKop@4!zG(?d!#ALbn(y131$M;UdM)gc20@+XO`whn9E4z;UXHsU8sxZn2=? zq38P(H$BU zJ-x?Cvmp2|c8Vf)tE*5rTs0vPGl@|-j2APMCcZ&2QvyTBggeuo@Q1CEp%5VR>xiBz zaJIWCYnCsNlLqETY&xeYfy-9}QZh;33}x?Gbzw3z?v;;x-jWtJYlI}P&W?#_G;9Xv z2pfDfo44*o(kKQoQ>=!*V(!*!JfN45x&Z`YGhUt3RaS!5;txyy8_|(yjI^vO%T8}< zZKT{%LdAsCS-6I9xT zuoZioW&#wuuoqqUnxg>ivfc`rCfW*Mq+loN3pr|d^maQ0XJ~Oviumu*)f-v_)QWjq zE#PxxVaBJmmz16!_sHlx{5+$pAaDjL5I7LYX^CjE198$9)4u2`AqZd(gS*4QYaR$hO)M5v(>VxAT5c1jnJc zAN-h#HcGmUsJb>AaTBP3ttZ&x5fNZP42KdVLj@}zI5U`q`5DB>4h+(m*j7T5botIq zyeVM#*935A!3BsyNG3tWS;Q*J>zpFxp@KDlKK_FpR*T}P)d)p#2%|1(S)!g(&7R&I z*h&giLPj8z9n165Q+2mE%C?trSTuvd+?FKZk=+PLgiZ=ch!AY+iDa?4hmEW}Q#0dE z7l%tAG9w|&ub0hm66Fr#{9W|J`mXYw6Sy_!2_XVq@5A@8E|{4N@A_}CPf@md^Mq5- zZT^F&8boEg>oZ8wNQ5aO1uecRDBWwA3Ov~i_cd@BIM$9(h1j@nph2jg^OU~H%|e50 zVP#82Tu zAAS`z1Vh9I1f5sY7PX>)J#Ar`n3M!jK{E%CnPnMJ9{bx9`Or8)5E~%Ka)SCoNAjSw zV($!G5Beqsh+br~1~4UXC|)?r1Zb3e)lmb+ke)?@Up{?E2ag{*s;aM9(Q10)$om2< zFR4wNjrvjVwK0gtB=HElE)N?n4x?78A!kG~AZ8U0Dg)K#XT)~6JH$gvsO{P1^T^n0IVQMnuTT4YPo@ zqJ=tD(YJw-Kyj%dH^2vn%4uwgjrIk&>NH{4EFi0P0~!hd{Y(lV5P&DhH5h7!Trzb5 zFFg5DZRpV2BZNI@3``)bnqSEjn%>fs+IUftnj8CmV_(EzMiDyOp7>ISM34E7pGd-p z8%)y%FhM~jGR{fDYYz{#pAUc?-0WWtid>g)dJVa}Z2iV`2apuvmea12#P6`$y1yvU5=Fi4n|>dQ+?=ixA?YRc?Q}b4&yC6Z~-9 z_ulJnxo|!7E#Kh?eziCeJQY`@^2|N;#TvI&6flHfAhw7Zf&;;c-`^3z!ErdSTw(`U zGq}V~xGy#+wt|Hmes$Lj%Pfroe+Nb+ihggq+BAetPIyY zQPknI`aD||P!}f4!=Gor>rUA@=ii?cge(?{1cHbxpO|C&Blbpw*^n9nwvupA_K|(*B;}#K!hZo*4_)Cz=2NhY4{4W{ASQecaOel6g&TBb| zYUa9YT-AFaWxTYRNt`~Sh-7IiaYTY+A=2s<`p4HUEP9khJ`_#=cSk^E#)sAjFV;GR z%O~5=SAKSi0Y11y(I0)%qIT=E-{WBn4|_}M!zt+uafZnc+mozNnXEpe{DU=fAItZ# zH30OCAw6wPf?HK5V2Dw{Mxb>Y+U^1dm|^(8A8hG&-iKdDfMUPhMYY03v2?&5ZIIlkNM?%%?%S(~PsT!xzUl&5z$(}OpCO6Nz zShLDAy;*^&4M^XKA#yzxT?;l<=t3-*SKc=sduGrHGDym~pV6V<>5UAI)}&E*wydXl zqhPuJ2dI+og}!Q}kN7|RwEyhtBP^$vNA^a{rJYrmZwwwx&28H}Q_+-ZqSFuh8MsD%gf~&s~Sf|S#!v?1d@XCMszT>VTvB} zq5^sV7y!0OBeYpIB1DafCI$v|P_6R01Hyvxe5WCD+{m{vfi64*n>(8~KIgqTpoo@$ zMg*{wu~9gnFmxRHrEoD^pdhw$l^j}xkcjf`7zZH#d(0ccKNUiX$w+r+!Sn~ws*Kpf zlhOr7?}Xj;xtz)V@!iVqORsy^$BIGwq0vnT(OiE>#Rh)PE6OJ!A;YV(@EuAWB2pJ2 z0`X7@Y4A9x@nFqc06G3|xcomh+nS=E>xN}x<^6ZTRT=578NUu?GlMiZa>wtP1WHhl}A+=s7y0_O>ImhZT`)X-mEE- z*=m*`l*31%h7<1|X)NPgufC3fdTT8^Q4tvuXBMHl1xlxUbx}_3+FReUwN^b^fhr+* zDJ|H(-gemody$;Aku6oT*^oN5t?|omcygkzIl?5~7*YnMCZ4x|1gD@HWQb(KxC;`k zQGo}l`ix#$mplklWK4b{n>_}5ytX77_X}U&PJ!8a;oS0`E*T&6Eo;*;uS6mn$-%5# z8dA*3i4m&NMvR2XY-l)<8hUS7emD1A4&!AN5hWqrXG}V08+VvvD;Y3!=@vTVI#Mz2 z#a=X=)s6I7Ko4oz=sw%MlIMBJ2gt<)yC#XKjA>Py;A3b(G8apnByPko})j^5qDhFyQ75qJegZhbgLzvc*jdZ0Fs`gmG z!dX2X#vR$x1IKqmQTVhY6frcD2tlOlh;1dxO3HOnryani0lT}pI_~UfXD~bAHX{GIY?0Z&9Zaly$rA%cQ6NOFp5eBbJ~_RacR=4gF>-r+id#N2!Vw9%M_h(5X~qKY=)83-8|%+)w6UeaTkGjKvf(N#74E; z)eOAyay5CWk}ilI0ywlG2Tkjkf0fY^BJ~@G%IRREN~Ife7E7^wOWX&kwuow0;Eyfl zvA7~=YIPRO(ovXerG*#E4C3fo?W9za>%BzdFWmZxY&dPE&^n^@;#0+-mMuw@Aytn> z4}Zr$Mk9Hx30YEU%&Hh&rsO1eTUg+s2Kf*uG?7YyNd%%P7w89LFgf#(H-&S5p~v4R zjY(bhuXcG3PFnKR5^k9x3+^wrRHA9@jT*vj-96Zo>rWS2i7+-`{Axa7R_I|-=^FDf z3#$-dGvBA37n*mJQn*mvrReXx5r18I-qkWLSK7P|NtMghIEw(uFh z5aktJF|p@{0&dd*a@LWt0~12VTJ`IYuAzIpHuL2*p*xd_C=s`*`T z=jm#v1S{NkHJvwLvMhlj{U0~2V(>*|Q@9vT6gHlJf`qga(P59xLiex26-eoa$g zhI@9hG2I}=G4kePXhqdP-yJ$_>B~XFOfNLl^jfx4?KtxhG6l}oUL}~vSszlRjT7)W&n00Y2XywMl z0B1&yMtN-)kf|0WA03TrC3Q?5GTU$_a1bl8m^W`R;`6rf2I1GdOPBAEL>o^^bCj*Z z(Z=>T1q@`t9U0Zxxuv%W6wgaD_m5h(|_f)|LcWKl?L;%BFx0Yta6 z4ludxqskIY;Dro!hK`q9fP&l&El2o0TrYW%0`@+BWmN!!2p5x&M0M+Lo^@n}tTBa)(v1Kb+#qNNVNiRa+^2!;Mng#G(bL1f zdzu-^idMU@>Fq>XLz?;in0)>39mh2`XrdDK#dmo$MZ`yNGmzIvE6d ze9qDpA}E#<)vLezqyXL;rYLAZ&I}-igoIa8?XY-HeeO-c2|8pTxx^$z4>T_}@-7vV zmmuuw2bT>TUncuB8`0(_%7CS$-pVqlL&UXaOu4XnxfBqH5F#EV1K|up-RG&h$qvr7 zIP9t*1|(KMhLqU7ce62rQ?3)tkB5}^2=TT&8OCC0^y8HiNgUr2);XQWeU#}P`VLkk zls$BYfSh_|Y=C~}Pl1<{>F>rCTb=!E(WGJi2-X#RQM5q#jP;tmn$bq(>a(MXpglH+ zs@~H_((olQqF2uvkz65#=&8SDiB-fIY?v#X(2gbux&v|}1~B&f=dkU)=)zTfR*exs zfMC@md{}t}CanOL8~#o5Sb&-km_ShUvLm~yWMK4=mAY#V^X1GNag&!&g0h0SF-M`&P&S{FCC zb=$ekR{e3{97g3>A{#7L7ihU~1CKJsv(L0-%mZP^cUI2{%H{C^S;|OcwNQv3F^SXK zISSr%&WrP}!PPtH!f8;y5G3N^65dq$Q!lkmTM**lGgxZf7WR&e-G2W0qRu);Nn`P+ znfW95Cz=?L@goS=U$2Sn`7q1cXYyc;C)m{bd#gbPt}UNmchuz3_|LK5>!s#2ax5=X zuyyh|n_K{F^XtK};RDF0L{LXVkzmc);k{}bpcVR1X^8eK(gE^=;&iI=g{^5I0pKk0 zXLk_-A& z3W9Hu{0Y4zKP<|GC;6RPBli2_ehz={dtclB^X5Ci{N{Zm02GN5gXUOGd{VzzJ&ttlt2`b z83j)THmlrEo$Jx_$f^F<-0?Nv-GyYTWT<4ZBM`)(`eTTUUIRTTh&|B!fHoK{vxzG! z0WTT%yzgcQPC`SWuD#{jNd(r1PS!im(z9;FOT^K2g9r%x6;?(D3lsVArI;dwkR%XZ z`Sd(YwQ9xE_Fb&tCB$p^V?ke-zTnfaa2d{VXyX^D*0ov4R7x)X;10qRGm(tv1vZ6=Y777TP1-9|FV8DUStAx5WvtKhV*?KkZ z|2Lb@Ob1Q>`WmH+XmK>~@L@aCKl^CgHSRYw)s~7WN=%~uZ|(B4ro8+XfHTE(`1Y`b zM1q!avjryUd*?(ZT%eV6m)sgxkft-$5H=l=QajG~1MC?;`f0Z~3Gkn}sRy3Pm&CbqkQiim^=f_Q_1^NJ|5 zNG>IEi#Q|TXAf~JsD~;D#+8R)P*84SL!_Dzf27-`KzQbw$#S__wU-=HYeagmP$qJ! zEmI|lQcmD(!Jd=mpGYE60hU$KvVLod7^o8e>gA*$QzeMRmfXC1Ku0s{fLH_crf~ob zsts3#5i)uOMz2o&AQ^br{NTI!Yz;^0(W!JM zeYza3TLJYTemuX@wUSDfa~m#Y#?=`Q=ktvY85xJWfFC9c+ndoZ_!w7zP`p6em=As~2xd5myzhjtt@IOMIvE+EzCetQ ztsd5%CV$mc0h^(Rd!Z9-Vnde^L?C zPb3(;gUyrFQF#E@wLpq2^QwFf^BG?EpC7ND8}NF5H`{$0!kVNdm|3JM9l-GuA-G;7 zAXwwH)!AKeQ^awG4EB*r0#&Id8Hs9|t;R_tGNW3eiYlt8vn0$lrTWOXy&0H?x!V+y zLsC*mDIy2`zD#)-#t;4!jY1D`#s<=w!ZsVCX%N{O(w}hRcb78q3x%XQIYAS#*e@(V zzzg0;8I)ZLN(dw%X>$LC@VTTBA(X(oc!1~7gSx2g`V2Q@m6+=&@^+%UoXZS>z=A3qiZV=WigGHG`8v@Wpnk@*X(=5>q9m(W znJ*E!9TxKt$uc4pOot??x)G?PgdEWyS{TF4I=G)xJ|1^st@%S#5H%4A_P*7Fpwnp7 zn0U(4IcTTq?t;@JB#3Z7V!#ye`0~05z7k|03M}}j2D?j-u-GD~Kpj!#3eK^EZMA$rK49%b(LMxV zm>L?{b(U^c$*oTt{*%e@6kCCm1fk8zu71vo7c38%-~c=n1O!508sxxN?7%dC01p4y z`@ViTagph=N1&Z%g`&PE-%x?exk7e~Qz@sP)9F&Np&)dOuBdNnN zazRF(LTH9F+Qp4y{XgMMVBhdqyLdC&%kqIj-`{(}LK1Hc!XXy$4sVNDhbiuTDh3T$)G2+VJWY;*_W=#Z10c+1Br^;#5ZA`!86HS!2aR(n@L|BWzzx+6w6N`I5RRaT zYaoDTVdkd2G7(9&{d)5*g#rE=6dCoydg>lk%nT#{4yXwi!4$4Z#m}e(;BEpFV)mmG z&jYS_$J`L2&ajpM=gu4z*9RAThx>m#4$zQ%pfwbjGfe_;Zt{#jZB*SsPtJ`QntwlB z3`~iD1|5Z6xNH@w1M>qp{D)a!hWG`s&&3qUd)(3oP9QLVl3ALH5^xm6TfPAJ(Lnh9 zIzM6w(Vch|641&CXqG^N{SwenWIH6I?Y}lq`~U^HNy8kAHUiDNcZH8{uP4bb-uM>` znHlg-vznQhBr61auwLWM$k`NIkvb6r64b~$gd!Yt#B4kc0||+-cKeL`zH?m9NB%Cy zbV;V7M;+7iXZv4I;1~wIiWDo&D0WL13r4D?QAC-KQ`(V}3wXQutIdHTkAD>(f9h|D znZNi$UOtpfQb0CgL=6luNS2P>&pUI}`hoWlpH_`^LnV}>j=*H9Cu|}r{;W?{oH?VKDK+cS=wV242jnCNR!6Hc-*{rB>{|JT>}1*`S* z9D-t+Su4j3r$_l2{au(%bmY%xkY|FRhLIO-Ibj?Ik5<56+^qt^JcIe3Mc(R~!iE7XP#8=IHw~OY z&_S|!B%~hbJYt2?a?CXzw`1H}1i--Wi|HSH_>~%DN{74DCSeR?rU_)h)sb^7DGcUO zsj^yi7za)(Lp>SQBuJr1_&T<=(A!nQ>f#QrI+Aln+m$T>R6!V_MUuMo~d6811}TXX!F&dbj)~k+;l@VY|;4HT@}# zZR0|0jER96{SE0YV9vd|TwJC`qGr^K*UEt~sf8ViPvOn~m$|*Moz!k-Or15Wz$7_4 z;%nk1l2sjU_}LRo4an((+2fpKvWM+R#`mL<=?~sJmvIO{nzFTtD!vr4Y9sQ?T590^ zUy1R|0X?z_)fZP)cz)j}mA!=W#RKP@brgXh5BGvP-~;JB5dq`{We^k|jmR=^xcH|# z(AzvH1T@4XK-9sSy5_FGxpB_~M=tg2%y&GEb&7beT;o5rz;hs#dk3E7d2(+iGmr7J z45uKA7o-1AnoRV!iJm|9HaqTBje1+O!e=3y(Q4{1@1r&9J@#;&6W0X4Ds{8k7!AFE zp{dJ8&N?_o1?F>Goe2h@R?s3fNpmlvXk)u^Rce9nR zl&`dJ24{ZF5N-dX zp2+Qjc|)uK2hWY<^_=7TnA7rMois3&Yzaao|H*XbbCu`d1SGC{yxS)75jKfu9~nIc zxd&(BuQH4mRb|NyS+)h2B_;<5w=^?;;G@Z?H zSOITzK`ks$ddq38%FoT4l?L|@NV9Lpo4!!;2V!M-*bci)(91`H&&%;HpQGfxGAIO~ z*W^W&Dd(K_YhEttNG9%+#_@j}msC3Slupjxs82b#nzc~d!1UdVv}h3p`Z>BFjit5% z?o@f`j%X&LNW{ar<=|fzkC;P=0U^#1VUZDqVStc89@bqdsLAw?&bR|KH8SSySKqVz z-CSbi9RNfdLnr4C$UvLI!EQ_Q=7l}3)Awfm`y5TGCc>ToL16+HMBVy67QL;7$;6hT zQB}*a5G9Q%GCd+Vsp%F|ejZ5kU@zt`LYLx!Bt&W5u;6}sSU^)sL&k|?Dv(xA_h+}- z>T~%~e}6TOCI5;K1iimCwb8&SgP+yD`+&Jag4`Aff?LdfR+O8N^jc);#21n+8;0QZ z`MJm(^EWG>=Le|ZVS5I%V_@AiCNU3SL&789>wSK{@YcBh*!{W~9L#t4Ku=h4^el89 zwujN@Zp={Ava9leSIF%^}{x{dN^<%7b@Z)I`AL+I}_Kve`zP=Ai5rL`(*`(1Ss>K$mf`e^( z^mEmk@Q9rbdK8RyQlL6>b{iqEX3{q$Z?a%aG{7+_tO$`wN*)8c;>@N{HR3&zPMx6n zECL61M?0cY*GyYkH}1pg`f<1?)SMsn^nLoz$_mf z7=*LES0WD;A7h*56)nHW+}dDy&vQ4X7l{cvoaG&kwHCQ z|E+237$4!)GsFFB&MrG(*f(*iZC1=ojhkP&#sLtoe=^qS$H@i2O=pB z+)kW6?xbJrs6l2EO%%+YAU;Li8$bqTk)#L2x!{QYLTosdo<#5D)arI2=*PF|*T5u` z&JLr>cT?)+@It*}gXs2f*p0c|!8y!H06z`_j?@C&s!!C2A!q=#1kA~54K#Z{qgRju z09q8{4J8ae?c*h+foM{LO^X=X2FAy}YpDKz8{ZASGcz6-V~TDLM_Sf`3m`B;Ac1#f zQ&R~MWI{k>2mxvd3?|3U+vVoV^!>kg{asF4E9`so+D;*zAnRGuu^$uB1h70Py4L~8 z@EzO+#7`d6xKA~#6O+0x zk6D4Y9-91TTHNEr!yBi3YnwaN_rcLRBl(GD#fRQ0l0J{&A;^j5;N0`Nz&XT3L`VmT z%?NP-#iFYj5PP+FO4=xaqq~_Y)|(KIb7Hn=Fm_MjPm)(X3)3bdvZ#(5K0>_$yvN4! zd#$Iadov=z*+jr2rYpSX)*S09Br^HpSx8%`ya|H` z9?QaR6OcQI{1Ek94n!_Ya^9q5e5pGcN(SvWTXDDtt9{yS(R=_Cc2qSftKQG~R`LtP z5XdD6WP#C!$gi>Ke#Ji~P#N9t(D0|v@Pwc<1uUYGk(*W?*nmJ>q++Q9io>jU@*0z< z)I#>VOpa%dBiWbMKdsyjiQ+`>>p}WNeuQLE_W=>-!RKvz&0A*a?D>W^J^f|%%j6@S zHt)I5n!({Da)^KcSkC6m(Nuvo05Rnl$H8<{l5@=1#uh)qGE--uvjC`y-?{=~3cO4E zlX@-_cXy^iF?fkH+jx*##Hyc8{{9|M_4s&y4|crO{D*lRJCrfm{FUGYAZ+#;0E<$e zeEnGnznF<#pw_p9GQuf!m>MKQ4(a!vdW+yeN)Rxx*z%HPZLe!Ac-%7zLvez_1p^AZ z$|~jH21SUK{3ZPnh+)x^>wl35c9NJS?rI1UzMB+G4~M%c`O1~#5$#Je>#;wzPh zt=ERlPaCSLs<5)BsjSfwVDC2&@wl6ed2-@f*v4Hky|OsS$*7>pnA@ATAu}wsrhSYo zeqSFxS>jjuTE?<#ts4$DVB3^p^)(a6+i&Gi(kaJBrwD8?e0<3{W(Xvx=%k*s!gusY zr6sQ&C9SnA&Sq8A(964C-y~-<;N=uL;rI?NG}8uuzb-MV@cRY4!UKBNg7H*aVT_X+ zy?~++5It=A|BK;&pZ`xo6VTPE(rm)gdK(3(H~Bwj_5OA~9(~;f=336pQl`k1^A^Gj)GbhhY%Uow8Y@w? z+m@tpbK#TX-7$===a4WoCfM75=rk$sWTZuYTuwXj(^89W}`3MwP|=Z zcrq(_`gk_(72szPlQTRJp_C8g5dZ`J7jY6hKdHwAzS2pOPYZK*^!pUhQh|~g!1PdbVBnBxN}__~5y2G_K&1Icc_KqqqwNDaAmd=pV2pEy3HDLjE@;8M4@oqshF*jjL!lEuZk1f9u>fue9> zC4(B2+|fR4o)maF8bkf%s?3HVL0R_)P;)Q8Bh;DP3&y;CdK-?eGDtzj$Gc=7p?+Pm zE>6$wcx766(S|>1;q|zGZ+@;#Q+^=3O%3za-!6g(C_w~G1aPt7LpV)HZX!T~r87`W z<}Hh$@&vJN8&EC2YDoe>pNB-iVhyS53P?W2`D-SSZeBYv-ComK#n2)K!P%=!^_{9g?hw8IMk7$hRN9F*57e0x&=NO8rWY=s{{?g)nOsPg&h-4fZaLfTfKK$ zV6QaEHd%WEV8Tshbq8*KtD8DBrmq82DAoa8rUG}sbBV-*4wQ&!#@WhP5qfun#Oh0| z7lV%x9D1+9X^bU?*bU1C@72y;(YB;I{t2CEQM`neJ9@ga0}<(6S!!~-iQ!L^xu7>N z+s7@OgBv?~u+@NL-ZtT&iLa=5$49w>a^4$sTe{pgkc8Tm zAS!3e*~}Wws#Su!4F>Krp0&hiTPI0xBUA#z3;1WW3kB%c8MWV~!zWaL%yot;_vO}N zYmuh4T#kXbYt| z9$0|M-QK}~+Ab*WhHOw0doYc~C4501m;tdAAO?8&z{>!{><3*{*fUUj z0rZ22cFRI&kZq$jh%tfkGT$iU#nnmS#jZAR!g#i=(Vw3nF)IrTMD`-XU!S z5D5gCq9FtnJI9Z-l1Y7?bLCcPRcDyMm_*K?V%om=#G+O#Ibx+?mTqE?z5Iwm&G z=w2sVn`6i}?sA_nYtxo{7(?BER;dZI4pX?VF8D|iJ;9>w0OPLSHGR{cEKu;jTohI-30JGG~d zOSq4N-t4BP?98GHnyIf*uV-Zun?%GT*N)9xLcIGs>UGtnsI-vN&v?19Nf;7M&Y}j# zs#0w;b?(4UKrfU!|T=MmOnI)dh3~VtZ(I<`thlDlq}{Jg`2(~X=H+u!jB57C+Gb)I9iCA0_UqBr;Om09m$smDAG7al_1e{I zTi@0vo3zq#O^)>2KuYf}c5@t9exNt#f$tO*Xrh3!U4q~VzV3iUXFIM+gf<5XnAXISc#zy&pgDsHtk|z~Q#k<}H};dN+HxuzN(e|0^vt_}aRX2gHg=qLTUTF}eb%X_q?5P~ z@i%L^<=uPETV6c~=g(DTYZPEO*bTd;TvH^(+G&&b-qcZQ!-PdZW!)S3$w)+i;oJ7pta@DT&RdLNGoTY*8 z`565kR!;r61kfh)P1f&wxz7^bR!&@_t_%o2 zn$d`T%JVZ@6U7Z-?Dz%LVl|liImQ0uH|(5<%z_+IA;=WZ}9MDxSw1&=xR zF?@_whDELDdQgf{ltgVu8Gw(}3UCpr7c2AOanZrbhb@eQYf2izeDmDlyR_&;!Uvu` zUmuMW*bEJ3fo$BwKL=jW_>g!Sls~iSBnc#->}lD7XRLHC7R2F&N$2`F%D@EX9elCW z9d$d~ge+wV)N3Z@gz9@UgQ&T@k1IR7|DBvrv8b`X64nKqw8SI)wy+Mps$i$oUJ%>A zaGM@JT8_3EtF_s}olk&=A7H$9VM**a12he6z{4{GF(ed5F^vMbf~Ghmlo~ApScS<5 zM$CJ?k=Mx$`!RTo?-=ILM24CelB%f^s*0s33W%zuDyqC*T5+8m9Ge4P(+E9JP+WPP zM3*}tZFeE4z%Q&d%^+AUDNIC)Z5!hAcT1Yx{rw1E@kxb(jxpA}8X{VF(@-z-`KGf+ zr_WQ7&tYdYGR~JR8>68%)!L+3@Yu>KsD?KUO5epk$u92euQB-6M&SM3i}rrWW8}A) z-1+iY)P8Nlw!RyE{Ib2KS9;>RIABF~fSf5qpr zlZu-7uB&s--;54K{xz}hJ+;g$Ms7L@kaX;Qoo(#r$GfK$ulm`w-um>-D8%KrZg_9%!dkUu>7E+k__)_&qi3Onk!z zV)GXs2(9kz?J(UMtC^E(pkY*|*)OnC&9rQa;zwlK`tkMk>*0S?gg#$ym$#o;`1o+^ z)&4S~KVO8BBp`$(r74IAiX{329H}N^Dx{P10aP%O1)xJmd9d*aWDY@*_9M+5%}fb0XexZFC^7Z-?dfMR9_ zM`M$z;_Vz6_pjT)N9-Nrv^Z_?B>iDv-X(meH*t*~&??2LL#Fao4OEk?$U4n#?lzQA zNoo5pT_h)ncgL8t9%1@>_IhaP5ZD|HQ`?YSIUZY&Rl1(YXaTTJ(6DwCc9@utU}NeR zAUi`AF7U`5Tu>-3ezP}2TXS?)!3IKxh!!JIkzp<5YYjr{W7fHgv`uM=wEDd2&h>h4 zw31mSz6$CPI41Tu2a~;AU0r@|$qQ;<@{CQc!Gie*MxO5-ydT`{>flI15^_r;fneD$kl95yzQaNs%EBepq;C*4oZ204HEKvS(8v)U0s@|%>r_7u!dzTha$3b| zABHruMd&Sc@({TYP%7G~umzxyjFSNC40SYRyGCBo!n@BWaAN9)M%Zf?qSP2k(7DNc zoLIr`KB5%$xufbkIO~vWsNeYvw}%OPa)d8_&4o>ZPbmFHBAw`R5 zrP2YbXEWse;>F{PoC+h0?}YA6?hk2+sKD}ioAFa1fZNbEgR6!aXl8B*dK8(HyS7kB z1dwWqjD(I({a|h4YWENzz>L^-xS_E(XF5ky)ZMhbRZ&%#WIi5*^xgoU0Fr$KJQ~7% z9(7d_RD0)H>-`cQU!vZgIUd+?S90n)gSj_dvYy~Oq)QG52iOK$i?=(}d6U`R%kvLr zSR4aBPULq z_jVeo)e4epQ(kHJCcyIu;Xxc;Rn_p9nis zyALlQ?hZQ>U_EDZ#oNRV3DDd+8pskx5R=@Haqoal`RF`PS>$Xwbs>s*__{o2eQ`26 zqDbWOeh!8_hNMjHk$vWeqCo2LB{ASNHVz@`wsytuW3~s7bk0Z3yNSH|liT6b)dzU5 zDY7XN2@KwLXfR7sbRO~W$i?kPQ@uJ6FgBUnv38UlZvEU1dqUOUM-VR52&^q3$I*4@#q|TVv3Zu6>NEFCg zZj;Wf@HGcDaCB}bLcn0wr;!`;p@4A?$mx?ryk7P_gWrna_c*rQz}KA}ux+=AVGD** za;giWQkWV^A3D&zqxwh|56hPW)S;lUpH$xlt_JIRX4k~FnrWslx-N^AvB}BZc?RvC zbD6N_8@P`1cX`E(V;W%Mg+BmQK&rpEJ6zkjJQ{51(~}s-Mz-(m902O~E}&ss%LFV! zCT@Wo9>Cf_zoAx^E|Mb>9nCNTj5AD)$6HOqY3uKIYkIh=BQS}JnSv#QyR3^(toH+f zS^!E~-^YDML9iJiV*^)zCs~WA?I@UpDiFyxDh~f3Dfh9ALw0`P`M|R6zNb^zyG0`= zaMp9eFA{MYO&Q(h6&--gK3_G|V0zKXAjzv*THKBWktIq%j;C*!wivpIP{7EBHj+ss zlLXIpc$DwvQbgz?l;miIw1A-_f)+=~gm!%yE@Rt$%}SE0imt(2f03s^~26k!P7%|)%Agni|!`v*s!47p%5TM zGSgEP>~K4E2RzNbTqD!?0td8K>XZscXXy{lodf1-1I~h!kiZE9M9D71Zkw&M*S4H9 zf-pw_mX2s_Nbu#F1Ddca@BobsXo3r{561eupE%GVIWQ0dpx29h#;I36`d-=+|ljn+2dOjYyLO*4RX?Em-F2AOdm8M@OtQ#)E@k>C_ zftF9ZJcBrpnFHoeH{a3^e-|{2ezS2Z&rSscYWe|LQmU?OWJ(xnLuS&v(VD9HV?z&KCs7X8ix zJ{~<)75--DN9)_Z0B6aB53Q0w0(EE^iA8`YprA2L2Kz3Dy;zhQ?_V5w0*sxlVESQw zyk8I9=?$G}xE$Q}4Vah_Y4ddg|9Zn|TrGs!m@#}u)rDpNzVi;Nyk%3-5h-M$e zg}$$V#0?rT8V{|M4Cs1)xP&8vb$AJbg7Fn@FeI1H_K681492qG@D;@s49!B+Da& zV<$AWR-owE!}4Sb2@N?0<>}GJoLM$4SutgqiR}RUztF-vJ;SJfV1Ea3<|pk!0LCll z04*UAHQvTuuvoRA@$#4o)zz$KPf;J85fBc zf4QKW4J_yzNbfO1NI)?oq_hXZA3e-KxrXo?Ja+nqj$VoBh zA(`)^qt63|NUF#IqnR`s0)0O8{W3$t_zDF>)@)3}t5sT5H9|tvG)|`osW6K$C<>}5 z9E^-1%Bq@JqKOHzQ&GDQ>R@n^NW@VRafeL8f4#7v-?P^F{oU~Uv7aAntIkI^81Y=) zEjS~^4m>quVp{cw4Okg38j*nzy9-Ix=>@_DhIg1f@i8ReqEk``11i~s1LbOLZgNA1 z9{?aXJ3cu!UKxfua}41OnsdK!D?wq->tioUy0xrSt)rVF8$)9#NK<8<=l&D?!!Gq9O2cCr$6AeHQOMTIs~VVmKuf zk0g|siJ^B7W=CoWq~uH)kb-c4C@7O{Qy|G{mkb)toRxsiTp`dKv@SFC~OBJNGd^?fncDA;t$QndvpmOcIXE`;I@6W&=py*~Flra0EJ z2lMPI54UcP{LPh-7LQ>oZbPS1B~+MU~cL6Cy43=)&on>*9TOHrUy|%rn*@k8}ktL_ILs ztJQ1+#w3dV>{reN4n+0ddmqk8I)|y;VEz8!PohGQDO8dqkR^m@q?i&Re=nyphoR~A zuR`{~kP++q;Na>Wkbu=A_aqOR0eFcCqR^oR$VCjYDDMvYJ~!t+g92;~pnoen(jpMue_{ z{Yo2IJ^&IZ1H>KipdLvF>Ld#mwGt!+LF^o$$4aIK{Nf zBB(b+jEHQk6}MP68j0#q#z;EbQox{zof z3L5JUGes%H22?ddM1wR<2ZTK(?1v!kkUS*jihC@1WXL>V!eSx3d$7spTLkm*42x6g z2m=9v$5e*@uL^PSNUHl{zffZdO04!$AKzO>ES=pMZ zOyVZE3z+I8^&NL~G4Xn%;#@HC9p8-x<~()>=6o6XGW6p;+zg{KF)~UD1|piG5;Tx1 z0-F6)t7s#jXGGuH1-5ZGeUUp&dV|NI+vO-!5l@1_kx5T&OQ_IjG#UWe1t6*ETugC3 zgRt6IJ?t1H4?c${=G1>+y87T@t36y8!l6VNA2h1a{AW5)55yUT3yagYDVICj0%48X zn%ryCmP~rlIhuTTOhjFxe&su0Zs*&L}-US=&O`zO~kQq8VF$DW3ej#N= zRc8z$K!mI)1ETQs%*eZl{wSj={e#p{?9>Mm)iJ}e4}L>v9urCVFl4?G1nurC!a~Fj z^(t)xd_N{sD4SEu0+m+Vzz1HYWE)B$9#pB#MA($D2%CRG#cU;oV6A^jn1+C@C5Vau zu5tZ8l9_L zmTYwD_i)~bVGl-(AuT~!9gfZdTnC8UHi*CnarxqV@=%IUh|(kQSp!GhAjs4ytJFKk z3HbiA5YihYb0<)n*tm(rCR{*Lx{brnW+3FeVTx0b6jf3wkhvmZ4;K@-vjfu0(T7q4 z%pz(AloR&lMAQtNl%yLl3>V8I(72<75s*w`R3o^fC8bJJQ2Sni-y%{|d521&2i-8q zlk8)FA)v(02@It_1eilaNih&x49X~zb__oJWGgV-#w0_mTqrdeG%>tzs1xsCCKUpl zmI1{cDB*pIppGc?g zYNROv^!^M_#dWf9_;EkW)U#LcWlvH#N;GX&SgkRBx zNE*HS?)EsDK$E!N_q?_jAUcx7Qp85^E(fjC%j&P@#gGr1Pq$#B-w&@% zEM|@aqHj@3khKG4?wUQne>eCGBk=S01I2)B$_6NPOc>LG@V>b{ zO>K;h^D#sxBvo6E85rJ)H56b$ zU`0j+D?=@VENa%M4halm6H;q3B-0y*iQttPBY@3o5_kg~rPMA#My*H`)eEayBSw>E zjsw&Q1iwT-Wq=1zC_-McKsrW(_CgwkUh9%YK=?`SlgSvSI@p?!!QOV`A)u91wGc91 zE4_>D_g!15)dnDQV3L%ippcdqv}T7CEfV3do1B{iAqh5PM1<2>m}QjFn6EmBs|#>_nR$qqVpKvU1q@#&s_( z?31CZk3`sTWi;Havb7u^z{oPF#x)_7&?>Qq)XuxoI<>lSi>{SrBm0kLw>xJX1Z*&z z%Gsxbd~ZcK(G7fZ#_BzTv>_Knc-|s zlTa3rkmquNX;FYx2|GXMB@3+fUNbK8nCy8BnLg%bch`G(avE;ON20oEhfFfA1BVsZ zd-<5w!M($5rfT!wjyD#W#}zqOC36|lV5@LjVbXS~Yg1Z_8H^zD$BnS&k`7$5WU=E~ z409hr?;c(n#ub@3rybxGliHdoE{!g z3=1QAFrl)sw)$99#Efs4yVEWu0-?}Rq2eA5j&%KRt4eN;Fv6xvr6f;B<$8L@d+*6$b1gdl;a-;GCEN*p*|Ryj9M;H4+h(3qvd=jH35lmrn{0*>2{vE9)AR|4LTiv?LJ+f1-UKTMNPDMnqBwo>0f?!V>9dm)}i77D&D6F4ky4e3qYaPVqLFe z^9NNKq1)eFTHGC5i{SQ1RFNlw<|GjX5L*4;A${lD52*yv!HKjS}9*RswgQ}Y39@`?cQ3(>24~kQ&!ffujCq9{F2<_Dl z9J5EBCN#fbjEiO_6jXOf(pOW~982uU%P17OmH1>n?(t4;Aw#TzzPJFGSStngv`{u` z9f*ePNerfGe&j-c4j_AZ#HCL_!{H%XzGLBlFvbl+apSFBf_O`|F@X5wLX^uOz`f7$ zDJ&Q$Knc9gLsG#vL^nqG*1u=7{L8=2%BB_GditpIP6 zBoi!r0icpkfpQC=hanTcUyK=!ScZv6mD}Kz+F;dBYb3+d*JBEzs+HbfRv33q6RHwF zL*_6)O8lnOVV%b?a2!b|U&FihPO#eT?l09~L^IF~NPWB1kwUjzkh5Q3avq)3$eRC= zj{Chz{V@s>n}?>op0nXP1M5TLkUpso5>c!mMt}^86r?Evg=nURkWwegL^2VmfG7%5 zDjhWY8BZd!V%16g=4?Zta~y=2up^&zVrlR2k);M zs%*oOjmpMLVogaEF%+*zFef7jbqAa}hC-qsh>9cCAY`Q@5G5hUL#~QC%fxd&a3X82 z9!X0z2tz=V7MQ(3`7yt}PD%s~vPd}fN+9HDK0xr@_b~oWY#lnu3&CK)u?Qb%B2?Rm z4;q%Oh?~OFdhnrb)5$x_VQL{h(xaG(_8#u-V=iXumqd{ys+S}Ykfk3e#N1{|_;ZNE zJ>)q7ag-k(y68H`J25E(kV2(OlWEt&&f-{OphsXU1pyeFYwYuBI%lZ&N5oeQLt(BC zIu%rIuyBftjQi}wEim85VScl9kO7$aF&_B?ZweqAZFMBGR=yQwu0sGe?Bc>?QGNt{ zj0?+Pc~o>xo+XmFYNjzVZ9yWXr&3w}Oppx=fh7t$3>!S(JPK>HK3O8>Fk;`rW#%K z4(nZQMLR(P;bk=_IRr4x*5Yi{%6j40-;vlC+NS;*PVMhaP!&N#yI+f^+pYfQKb@zp z^0~Sso{2o9*CrAy#Uvp>K@r_yQInEO+dfj7kUhpZ>Eq7OH*i?94MK7e13ierl><%0 zbf_rU(&ur&}Kx71w(<;NJCmJ6Y&x{MHTOXD8M6C4K_KM>b{oNx&l2S|M3{600D zvxB4;=VTHF!{SI(EWWIOllmr~I)o#!#sXCFx&Q?XDK=HeFQcqPS`#LPVMIY9hzUeO zN)sXaAN41?Fh7@y__zae^!s{a!7$-LAXKhV&cpkhJIn*PK69&IL!z5iO$cR%l%})c z;gQEYnm@uRT%2hPoGxQ7o4KjW*v+|{Q{zrDR0lFZ5Ia!98O=WUlRju{(SbGmoWQkgbl##DNK(FZL#`(a>!*K_~;nZ*qw)!gRsVno@Toaf5`4$ z8ndFUusF&=Pdcn15i(GBjA$TY1_J}*j~|6Vq9Jrs_74!*$Y|}21pK%-Z`>Qbm0D}G zge?+`Wek(9H5Mq7k7-&>kE>E^)d>sls}eKeTH@OIcNGqYki7;W492u39m89_U0Iq} zIB$Av+F;*%dxhJu_`TjTzp1er)4#)a-yg{~_q}u&@>XmIfp>J!Vs9}V#fQ1@<-A>< z1Pt3|5h&dW?1d55!4TLFWvl>WpMS4L?g6628rEZmRvBbag&|p(3=qi5nnn>+B)M>N z;&%FkK?_v8#y zgmnSJ?eyl6#dbpB;~i4t4P4`oQDalkb&0(bJa~9qT?N>8npaBYz4z(3?>yCvE;N~5=cn>iqv75i5MBkVsPho6VuFw_?Zcs0)UDV z8rbrqDa2AWK}1HxDF~idHh04H0NIYEbqybauHJBZb}GY%+x%gN1QZUgvN-}B(tuZ3 zazNlI3IJifHkMQJLX96)mdr!@`Wjn%g&ZK4fN3=IaQ9Y)BiVjmPe@1y+Kft(kd~S$ zr7hu-6jcQx)tKuBh4056&f(1lsKyC4z0{@VY{Ctzs~1hLGWoj8vh=zeCY>fT}TY%vU97qzRW9 zA4wg)v(fIhA5Qg9eA?tUy}p?Fe&oMEbiN0>?djWj^Pg2DU_>Y-I?-!URYtPJ!Z55% ziX?R=W~%nWyvXD$s-_Y~LNcHsj|WKJHtj8=RAG)VWmyzp*fFTYDsDlQv5aE|Na+h3 zMIn*chhhlq8w-uJG1oH(?!^p|YeXoNGA1#!l5!8~88L!Gm{kFd7S`+;OIs6e$cxe| zkXTTTG*9~xA(1#X>@Z4KM?-m()R|##S=4>L+wIw`rLB?{R0)IRWteDyEW{!E0Qvap z(ilj_MnnVnO!|5vpFGBR3%fhU_@GM|R#oK{u4jf6GC3L7QjBcJWKE_rT}{6tQi+kI zDukdp1k4zKj3%gsqM?p+-RcgIJ+ynV!86z%g}VE6XXuze2nx~p#$_3pQJIi@)Ra(^ z;%Y8j>l7D(Af5^v{$+BxM+9(}xeAl8KGCfvABAQ7s3YemD|N&V9{~M{fU7+L_`T3L0ypD5*x_+2KOFy<7k{6%Pv~6Lawj<6|Nmt{ym4 zg3C&x4+uJgS6x?146wo(LI=iw--Yucy9&zl7JfR;r zr3}PpXgP-9-?LI~6cGMt5=6Yrp#mr7>ZeB4b(*xgjN-wGbxagWDQU@7?Qx$u2GFe z6IfYf6_#Z?bd-cL?lNB%n@-7w#Oo2MuS0^7{w%#V~M8)0fV7JUk={0w7+sazXk`$ z6hV=x@O_Kt=Wsn=%ByxziFl)^VX6`-vqa>!HrS-BOUV8(^%f0bP&Vw$Pap{-c$B-8 z$rRAIMtDs+ses&588Sg={?-xmz(5JRl)kTMDfhUQ-9j6(sJWJFV|2udXMNs%e;>)jXM+G$6%hH!a@x5T{ure&iW+O;jFW^@hG9h_TpH}K znF7#?9bqyNDFqwIY*7pxFg@mpK&(GD{6CeO5;~;`9*KQ&FJva5JusSteUOIX^UM>* zP%;vfqofJ#gz}Nu-G{(S+Z>-^z~&0+RUzQV&ryxo3@bFn%S#$2KpO*-1H!J%Dn1|F zx-)6qVpgXCglP^K(dPle0vQmf+_A$-F5|2LM~t{Oq;f(M3Iyg*)IRM&sQH-=rLLw) zBisGnF)rj+d<#MO`)2yGJ2g`1FRU65IJ~LSz~C*jJ}K6GNAuxrwMxqP2J?yc+kK8*V>XQJeZYW7VhlpnHXZ>ei0ll~h$% zLy*n>FQ5;#$EJFd(lmZZc7ev3AO9fDgwmC~NmbCblgR;m(-3MlQ59-aRz8wJDkHh7x*ZASufs$)q&8di&djw6j60x`2|Tk0nwE zFm4(cw+n|cgVt&u6j3EnRTK6vG%={wu;uvQEC&>0jgvuA%R%14WF3$WKo3~} zJ%JbuP=LTYSPR*!lpY0O7$%v}w4H$Ag;2#hz`}}Xog`&dba$Ne%dB!&XJ<1ApE?f^ zN-gi$NTf3&?7JZ*eNQ@rPtmYzW{j>nA6mSnZQ<0{_^sg#pkp;4AGUvxb=^9Q&wn;Y zC(uCc@)6~cSqMatkV(W!9#aEKIybpz7g+LtW3lhOnNmmmFaHmI^8wl4CcVrXw})7T zqzoBzbn`GnNrr5Qnh7DL51Dh93K|dZKa<(F^g!v+ZqtEZeERjByiXEsbZn4+8%J7c z&SFf;>}E12wP9QPQWVj7iDDZyI~3`e z<6@*FM_=v;;VQRLg-w8VL*J|zjqb$DPO-`iwmSZMDui*dz>TmNNP`$gHrY#KVBLx) z3|=nQe#hUnEy5?K5obPnv~3MdIa^V(G5YjtewlbHJCmNr=5^jL3mLNxw)-v3YRsz| z87Fp%i+eK+Q%@*HY@cXb<_lb!2vi%^xU!}>7lPL0xpIK{G za=voyB?+XV(52dwB_?k@!xk(H&b5n|wY;0o9>qkbqY=nHeJwhgi!LTbyV^yFL(STO7iM=yh7HdJ{jApa| zf()DEIz1t_X^)apxb?emcxjoOy@vBHWH7gEY}LSf7-rrW@OTp>L}hDmtB7JMi-$Pt z3UV>YH!JY5ahi9HQM2==Y2j%pc40BP)-~DX3{3NQ*Ky-GLtWnuinR^v3|LbFSsQsV zGPPW7kFHR(<5wGc8=HBCiV%(rCi3ZOC`dLkI8EjlP%)Pt4ZXynt|}X?E#)a1jBKnU zO30qaD9mMO8!r%zD8yqHwATbUcs67=c33_*yUaHAS`svF-OOPu+oLp-I&|rAVZ1dO z$-+|!u&hIf)kQA}1UHNTBVAfjxNfRDX5#z?vbZyd!?Ui z2`DH7i!(ApO0bSR$+l_W&6sAGu_(yVrWM-(lUDCFy;4cBJY{&^s)O9auBM#Rw%!?x z$T!%`r^YQ8Io2lAeHqDSp5FBE)-4SgR7tgLDCM_MBiPVkz0&B7yh*BS&W1BXIB_Hr z6yrAVHIqUIj2mMDvPR;KV_=B}>{4T@#gQ~xuAKJs&8aufClV1*jUrK7jX|kGiU!PF znx%+Xg=r`Pnntx@2C8x?N-BWK7{NA@qmWXvxZp}fF)^kYR~9xJg2AP?w8f{kT0vyB zL8=le#K^6zmPsQ~tw`LERgufr15Zr_)+b0gj3#YE#OfT8prC0v%rz!Jbd4}*g9tLB zlZ?QKH8{|1nDL~8AsE{$!*UrmJ=4wW2dyJ`6<9H@o2)2uu7NXdJmM}caR&IGRNiy7 zyUQrJDYJS@Z5v1rPKiMx98BpP?=}Sn76k<4G+MzrN1GwHP|VP9lVM0PG-DqWAlK$` z4aG2mb8t%?a#o-8GCZJd3rdC85hVYb0RLu=5Iu`co1=RB;=sdACd4dYHa4Kb(%5y@ zcpBw;!fIZUR|Ml08JU_7a@Fq2oWQx`QM^SvEw*)MxJMXil{CPu6eefnRp4q!#!Tu= z_qzOk8yi|^<~STCkQ~nqH<%wI0TWb8*^{Hm*&U*QT+^*vrs4<=Za@mFiDokTsV_A6 zpPMtR$I532JCD1D~HaucjV80kFv9N0vBt>-71?C+a_fxOFFe9JR~B zp)6EOM5*CH@BrmU#RKK}xY%ujnz!F(J0QkRo~@c#h(Zvd3De~r3GRL61g{HL4D>N_ zP0T9GNRcn}s<@{5JbL9!bJh5Yus4I75T6Y<-1vo%}& zJ^(nbBq32j+IOtd8nQ!AmUQF8#Y+Rl9RzJbl`7mjTsxSAA_1(ISU7OmEP!62$ZWxb z3}T5ybrTFA@mIkTBd2aU6Nc?j;SLI!VBk9u)}5CI!-IvuLXUtopg8oR)ND*zD36p; zcg4cjRBEm$l^872Pd?5DE{Y^*G#!zqjCN_4?BL`X7xS<6s zP!=G0FPE<3HPd?1SV}6C=avj)3kW!A-Fggq!a6#c2PLpz3@?x1laf<4K6b?z6)D#&7m(wg42o_I92E-ooJtQW0 z(naKLm=2zGpqfJ*8R|_jG{WSbecJ21m&~hL{88o}Mh-#qP#>=%A0^u+oLPikj)b&PDVyyj%H9~P|{LF z6%bHn0VFK&`%UgZz2P=zbZ(}E?wlp2x#^+MF(oLJq>>Q`tq~AFsR=7VK!pVW6a^?! zfkHF_NXSxwM9Nhkj5|b*D-$FSc!|~uVmjHU8bKvYB|@4<5_chu0dXuz~>k}!-I z!A2CY0>VZRZM+i!OtK8D#5Jr66D%d6%*CPBV;MEAE~8Z>%0!hO@j745Ab$Qh{jzEP#?pcv?~o5jHSAY&uvA2%lM0ZZ%Vrl2UJY zYD(5%F)bMy%pFB6Mzw|#NyciWLm~DLcQ4HOr71ej%#Hx+3L1b&@uBmISquoL5+1`$ z?C!92yY*Y@pM#SyJ?$BU|t~+R!(XU|^+4aGAd%j7{ z8*F0(=F45j0u-*#3MHo419rz|CTY_(Rnd$Dtt`e4!&X)>sK^DWG^l3_%`XxN`UfYi z4$(|{!GoTs**T3FS%zj)QFaZq8VVpLhtU8!n1OOX#Rc8OE66!QKIx(Q^#boCkcT3{l{~Z8o}X$bK2$({7FZ&KsGGZF_Kt`|wuKI`(fv=1pqOGPts*SUKcF z#~5sZ7=@TvFX&2Q%1cSnFgc+S)pwSr5u@e$(lY08WE%S&`;2Y2pW6huI6L>V&eh)a zJK>==l%Fx=+iZgfMYI#N*oTa1kaOe%05hC^UK~jdy_o4T5Xi}2l0ed&*j)@K1aSgG z3~553^EhwI7`PdjLv5saf>+De{51gao1tH+Lcz z*;a>lzZZh!rbzO3VFSZzW~ruEgW0H-IQ*H2Zotxe+0z~}bZd%~?6w|9;asj(CyL?w z8u9*id6md`Ytz@OS*XmwyQUOMN{2WaqP*VqX(qw5K)`OIyunDyjEu_xA1NJLocST6(T{}pp~s$2Ju9T2sXQ%?JM5dF4@llF2x_kvXL)1ohvY0d*>i^J zbcI6E^ovk-z%2l30$z52&unply!8bRagk2Pj#jLwDDQQa0F!KmVQU8g%;XJdJ%GU5 zp9({jtx5i=^*HMy+E8OnG(+tndiCQac7jX{yXiff5Bq75g6BP@ej8*m#g;YP+# z-jrcr@MXxVW;x*q+ex)#8(MLW#FQAxuYv}8JTivHHjZHvDdOgr0}HuX>GK5w4k4}Z z{=={zSTAGN8pE74eBD-)GBKgwvWiGRB&l>alqt3Z?L&9EW&uQo&^^$j*QkWl1ljW1 z8EO$QDMw~ZA%oeq+hin=s0PnE`(dCUMgroK$<@l~?h+pNxTf$t$L&^bDt+VOSgJZl zn8&k$Un5!-y4X&}PnFUG(pEa4NFy-t3?oY?>E{0D`uktu-&fZ5 zpyGm%Kd3kqA9I+?qx4P@h9*T!Jw}b|3cGQo+m*70&K`|or8Yy;?=k<4|3QDEKkipf zKF6o8+t003Zy{~Tn|<1h%s}8a4{c(pG6O<8F&Eg-B@09p+PrIMXnrPAB-1s!1+hyT zvgM-YapI{#HN%cf>Zwdr2XID~TEeBkvjbfev`8pada^MSXf{5{FubTL)D>kjM9tSl z%n(5qs^Jx3NfAg@s=Z<&!hS!C2z~QOz_JDbY~OUo$qe*VL2xI5({A9vUkk=9oT2t^ zP`EVQIuJ5x-CQwA%1j}Wa#gCq%qW=+GNg?PZDqjyCuIu4NmL5FPYDY=HlhT9sydov zbHqr2fymg&R6Xq1yrwg4C=!2CjI| zsYV#g_SSHt5NI4hqfuPDDNXYYa54dawr+t*wn8Rd6Czbm9E48G!Yv7Kn+CwI17*(2 zW~(XTk#-3i25mcN*yB-vb~8FIDz09N(|Z(M%V5&Q#20DAge5RBRg&RIvaOe!{qYB{ z7uS5INeT$(3vq89`=N<^O8v}ho$yh_<6Tf0?MZC5JFpJS*B6{z3mJ(8AOZ&ZDsLiY zZsvrhrqz7tAUZ0-h%lE}kU>UC6ndCxpoJ_GBa3bqn5jcJ>CVGK`P-Qh?&1GJ!-a!XXe@l+qr+;MWByA#L@@y(&bnV=Zrmi>6L8 zVODGfZxKnT5)!DSki^jzZe@APF#se@P$bZ)QgczTtJp;WQ5l(uT62U3RisW*XLFPa zNfjgrEYPz?izEzKS&~4B0>9X2L?|vbZ6dNC*9`ktT^iFhwGhihQ=4_+2^CbXu9^%Pfn2oGI-Zek=GV^ zaKYHM4C^D*JDcqIe6ylE@Vh?_a@uaBcLo4-`}3!S5^KcW>)ThTV*>b>%b*!{`xCtji@7aKgg%WvdHTf`eHBrO*l*D91z5NsWm@ zHrwmx=90u~AnCRn*O|4*^bw5F0Hs|X5fm{(Ly6?G#%sW3Ngwj$&5)y!R#52|viMbu zqd4o80pYm3xl<<%j)@%RQ5B?&U=@g1&>c9PnoD~-FzVMYXZ>3+m0{UHol(oVk^}+e zb%1IW;%1ObLOOXfRm(|=EiwRaIHoc<#jBiE3^;3JBef`q)F()&>^IO{Wk6~$*GQvH zqL7?)FliXl&E-a6ofv^qq>?*bN-V5VOiff8aKS*co;BM;*aj0Fmv`LjJF#`#*!m(jpCW1C9*3o#<+G&T!WTLT#73XN#+I0AN`;_c=z&t{sCefg z(gwtlb&Uux$nST1WM_`UU4)&cM}`@--#XLOWg>!MBw}MsYcY|wX_AYBzqK0b_9fpc z?Y$e$u9=aE3sWdWd0RHh1F#`g0DuaEODNo`@oWmQgE^iwenLqRy%?7dSocfYr-q3* z*3QEWSB&N_JTf=gk4v$rb#1CVWiyd%h3mLAsCd{7vTAgM zHNx4B$=FENv`dJ(#bubYPU9(IM#RHqDqkruwP_`phEQ8v5%(b`NRd=S<|~1z|#B;-b{dvb7F{ zgaew;Ih@VpmeiwzOy&kU#Ex>(a*SpQ=JF^pdxpyHpXREJFxYX_l3^>cpk+$Fl)=$g zQFNJu2r6x*bQ1(2Ae9_s@#($}f#TtILz_D2m{&K+-<57`t8S(+Xz0i>>EtJ#xvO1g zCzRKh8nx$Us%4a9>IoAyRY?pem^$TxiYtj$5H)0_(c4pqBph;Uvy2E8Ly0xB1jc$s zkf4hcHxqQu@@|vZ*Kw?4-;b@Dx?TKou8jfckcUDCVXHN)4eXkI&jwq>BAbD}WNc}% zu#GNzRY*bzrQlAE$`?yh0fivSk`7!`RkWcBAqa>!WJN({*$_ekNi0f-BH+;BAt5YF z#kN9?G>Y3dotCCw8SGe3RuExi{fN)K|*Ow zCi0+Ircr{z0AE0$zt3FdTiK{7Cdh=i0vSLQa7YO<6B3AyM9w55f)I1fMTG3vX~;#4 z*lGc6L zPAs9SEt8yEI*CS;a|-yrZ!H;!n0Ia^(tX<%Pg~y!KkA&O;}+`fm#u*rVwZpf=L5>v!+$V3}rKMM-u1x z8!vNpDx4<*ZJOw*lnmHu5P&Uop<2yrt#P;)!J1&DnJCU#nVAL(1qcX$%QabEjA5Sk zJ2pLVo#$ti-&`9QY*q-la_&j4Q5aom1>QtJ0_-I{1u>*9kE6JJD$XPpYPcNct{jZr z!bq{HkabBAxhcp6z3n-T90VXy%_#9mN>$PIkX{)WC$XDqt{W=SQCvv|l0j%(M9rSU zDHmu23?{Qzhlx0oj1^G@+0GJyQKW*@Re>5Plw7?Cg~XW*!_OHI5e6pBqF}QO6r|+} z!D6(A5>g>(?){;t0+K2^cVoc^4RMZKPmvwH=5fXuhnv$Z-YE-_34wxX5@$>$DP=hU zn7W7}XeOc=Y^b0bwonWTlzAwk7I7*A5)UOdl`S-ABvh~^y8u-QKv~+r6)qB6^RmX ztW>=VE31=3D4>bjgE^U$kwKd(U~|O_t#M^JScO@;vynD@mrI2cF)5q_LrzbUN_N83 zYl|rq7GUqOg(C)O-i}pd;?ug}Spg=1*AZlsu&fztWqayUlQ7Nz;OWm!hV*!_&j>v) zLpUxkn(1myZ~=(JJ2K~aOq@a1l)+HdMW;H}chP8;1P3fI(+fq2TqeTwo^#H58`MsP zaiglSBw1yPGEj_7L@1mECbntaWv!S+B~==nNSJqQ3SOHEU>=$-1+lvT(5V9oD_u2U z$0`LiaMvhSklBTGxCnt~HA#ak^PLS6iCk91Sm7rj!(8EKdeDk9JBFny2!N1+(pgd% zr6HuZ42f-oC!b6KzL7V>-N9B=`Z942f_?ZrM(HT3RW}4=f{sEV#}|+TDJ6(5%z!Wz ziMqO`62^l<0^ZUL(>by!Y>Gn_xU#NzS;XTMvl2;?s-X$zf-(2TGYV7I#f zs6|Q)1JQwqRu}@A9i%<7YYdcbs-~Bb49>vmku<| zDdJEm7_1JBx4oHw*%_gv3Gcag8#Z4l8o+GuIO!Lc0Fk}#CYwy<#O#Q>;M=`7mOA5@ z)et0zKn?(bC#es4MVci%8jcv!RDvpLuEK-m^vjvStK-)2XeOstt&$v0S$D@84_PsH zn^9&4ld_EMF+o;<%5Q}#Qnwa-R8R-K+NGKx8mPRS-q6rRgEJ%=JmAO(C}ilUoM0-! z-h_R*={k76k5?>p5a4@fdDZcPQx6AREHTNW8|joL6Q6R8s4$IeC5_nnOPXj%Z*LjZ&i(h_m)C0TM5!u;2LOU( zQ5MR;i-4D%)+w$pBUVXS!ivI9PApw|(y;M&u7nOzUrCp4aBvJ`tgW_TUY5hVrZfMi#rGJ#E}kAA>n&cy2m;n4^Yi#gO1S&9Z| z6ni~P?P^+~B%p#wbVMtFpkbKfX00W64sft@3?`|t$U4%IMO-9R!%dZENDw6m5D8S( zQiR?#3sE^^Nu~r~WL37`2AY1$s>tX9Sb(^#n>%(r2)v+{7tc%51Ob$Tg>368JlR6UnbOM5xs)11wt7!7 zM}ViM+M&?Eu#(ISP)RF#4aUlgHS;~n~tlo-m4PO4JTNQ@NLu*EF zf}69OFoXev*@8xlFP#p%Ja0~nS|$i3t3X3jDiov*Y$+ijSe6SpJ2k3NX)G!mz{+G; z4A$btR&r+8h*zXMr*MY}fUz|p#7#&p>4Mj`K_mugZP??ACM8n})q@kGV`#@CTRi09 zRqII*B3)DQn2S{m>nU1GBlSR*G!%D`pp!e<(F{xAGtP)vFNxQKeJk!$i>CTw z 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 LiM2QNnONJt3?#*%KHtD;o-ce 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

=32AxuSU)kV~v*uE>(t4qA zhpB#k@A)1Rh~nb>+c3c-MDlfk{~@OnYS{}>Xc>DIeEw(;wO1xt5KD@wHvbCu8ll^d z#=&|ONW<9JVF%lj!Ha#>l1CtpL(ceN;JyJb~@sPNZ<4K*~P4&RE4#_q!&y| zb^XiipXNI)6;Qh7?d8cvfQppFxk{A(*|L<>tqz06)O!Oe#MQddbIS2RXsuNaT5S;u zpQS^VcwoojC>_GN97ya#bBV&4QA>mL6``@g>c}!;u8gC+sTPzOz=CW>|Mb@>P9JSl zz|ZM)Ybbhp7$k*Ag#{!K%i3dUJD93!VLFtG^3ji_{Kcb9K-TD$^b=J?l6*(~?PIr^ zGhauGPm`Ls5I&Qk0^k0_+R3o8eM*d29~N?NbOjP4dti?H6?#ki?CuH?;8moSq)^u;C-hMG?aDw4lu zQr{_UP`}uoi$5L!Y~1KF$#;>tKM&)v$p?T6Fl4I-Oiqkk>kDa0McMLL0z>o$?4uV1 zl(7J4W!j;Hy=71x!4@vMae@;Zf(8$+!7WIFySuwP8@J%@?(V*E0t9!r;O?^VeL3g6 zSNG>#HPyY=OxIL(SNC+!>R#VB)m62ZUB@-@m?D~6=I_$Tb9Ey;#~X0z zQ-c?TN$Vg^WxbqligQ%EoFC+VJrby$HH&?+Dg(GM`Q4Fvx5 z1nlWXfWRfsjLS9xk}a5XXZ@kJjAXS|RRgr6PM4nvVN^m7qm!N)eOp(zo*XD-c4Wz^ z4E1i$djwyjphenkf0YlE>8xR6%Ufrni-rC+}okQ_pjV7cUY3K19MI}6=5Nj zE{28^!;%f~nTN{+J;L96yEQ-Ei}V7Wi(m6C9zgjI1SZ41%fd4w$A0B5F>gVhpL#Gj z3%LB*2vDhL-)`SOg69Sg#^v4Ql381aEb7Pk|B+brs}vs_*K*sMHc< zTkdRiCB5OthQ49R++8qohmmru&CN+CHP#`IA+V}GA{%nPpCR9(x{v*6=MR^j`OAvD z^cbz1c@f3yo1SPr!kQ;cl@p1UsD<>4T|?vX7gQw+w^}UpAgym>cT?|?R*88*$>)G3 z6lvzW2Hc~$Jw%aE+ub}{_)oSAHPVwKRi`*+-9k^(l8l3a*S3jj4}tb%D@;a-sxs@X z^+^SuEmDM3MCDc17m!f~j4!Q^zSq-9#~YBpe*)G78G((_Dn1NHW}H@s?O&D{TtaQI zC{?8MT<~KY>%uP53m>t=&<*KVJLa?b@G*p;57dMM>Bcyn9y_=ibQy~tc} z!el$(4tU^BZJb)i-AR=!M_MlW8Op`;rCMQ9DAVShbo3m|q;?H((BfYLAlu|g^Ozx? zO_7>h7`MgUOSw!|pDkk4oyX8rwbd$GzcpJsMv=qXWRrWQP|J9Mik-$-KSv%@hR`*{ zETggPqU7OI(;`Xi#zWb!!uHFE9lYU^xVc%Imml%9_BOV4Jg|3zN!_0Xgt``72x|_4 zFUtq=93NSF{ynMVVdzmClywLPlc4}Guj>dJr(U9q!H0hyx^mo?9x=VkIkckaq1_7A z3JO$sZVOEc;}5rbo@#6+5;@G`6zZ?8xDVWytn4&!HmG1~cl9~=@i`w)TQ zjTN_b=CM0AE6r*LIA^1!Tme?m&~=Wwx_q%0%M#YVESZxLGAju`-oi-Pz<#bFR^!3H z<3v9TN99uuApjcc5G1pQ_k@b74h5QqE+~2qz!^QR0T27{B-)4G)$W$>%x`|quljW8 zbi9VQLxa*dD^KewJdgR&-KMGVw1$A;y|v3hn0AyuLjV5$8N#c5(tGPG^N$c6WKFlFl|N6BHvUmA@;O_kXo?D!K!{^(-9&Kw~Xai@x zDgFTp=VJ96{CJ6}HQ7f04PZsuv-6ad`*;cIc|P(JvMhY5;cX2>xIi7q%c5U1x;z zOsaKtOIV)u{i6#8k@$MI->kQMR|2tA$Uma>AhaijXdNwCaUx5ph0FH0(|4 zck7ouMN|LsMOSC5_8d~nvp%(T0Bn7Ccouy?I6f4F>gM0CdpIs#WpA1px$#3_@nePf z?UwWvkAH^u*r!tpy@K{9_OBJsI%I|6KD5S@Lix3W@~u7i)Dl-&1k{xaq&}JrkC>Bbc5G;M(;pM;aizz3N?J-6)s0?eHccAZ`wBx4^$soRFzKhTd?Sc# z{~{1;IG|bxyU~lu-2OV;c$k}vF6B*{GFcer%z=KH)wAWsw~@LqEb|!?~G`;uzo(tZ_1Ah-`BpfKfCLeZmgTJ z@ArtELPB%Jb}eH0^f@PUq;A66_|d@oCw{C4@q; z*dDx=eg7c%ZZeWcEt8((d6?t5AA{Fy`CskB_>cWRJ==L5Ycz*7d=u(rvhwsYqYP{w zhk|z*Rt&n_W4_9Jv{yV?P9l3DH`^Mjwz;6gA!lc!@hT3JM0t) zD!(slIc_d%L=C|cBsrD9AOLTGO0NyJ$o>9Hq{~2kp?}^}V%xsPt{AsM;`fO++0Dko zcR70IBOtEnQ989{NbT45^_+pjBUdiSF!l!NtXFMn=x*V2&%t6&<`FTfPkNYx{u9Cs z4{j+IM6gzWZ~}68U+34epMJ%v;C^tVPei)p3J|ok-{pCu6Weg!QaaM$*W)IN9@;vr zbH@K-$9?hW7xr{J#eX}+@ZXgGG~2nweG29J|F{2l_rVRwBzbsAj~{HlF36HAUhJnK zlqsd>Q;J8CCKXP!^*KPOd{h0!LH+GNXSae%e^_7U*+kLeXHCcTca!Fhof!TeJTvP7 zJtpTIs+f?zNZJEMw$`)!B16b>B;dst{j?iDyMP zoJAF~-=H$YiRk`rZf;bm+GL1ppBe&6J`!{bf?RsfsX;ToT@oTG<~MRyi6(^A_}y#> z2)Igq_p(=G*kh6;8=o|d3!BYn3?yCt%LLiZu1a;wDBHwRsSx-&U(SJGUsM=x>8Mw@ z0$~(e_|ditHT{`IFVslkqwTD=XVmB;F)9^$2n%23ySto?X5ynq&ucg+ zZ@7Jr+w(>4+y&Y%H^m|Oqo}Fl;mLnmi1wiO<~p^e#~`Rnaz2vMU&qc0U1IQj!>Lg{ z)qi6HvN+2{`BR7=Lzk7re?T7QBf{g$#PQ!pAWT5a(U&ha12jWTib+-WP_e0yav@yX z?%&$Pf72D^>$Pjje!}4hhd6F}1J8Q$_q(jUIaoph>x?0K6vzz&fh9733PVhtV&wZS z<#P+C+q9omlcapiF#--~7XB*OQ0rm&cYhBG36ROx}!m?Tt<@dPLSiT-B zWIkTXO~cY{k`>VaBFaR`QAKv@P;R6LV2=7|DStoJmCe(IdpkHhwCg@RZ9i?2Paj<9 zy^DFcy-$6PMO_ej6n9j#1GSnIsD~!VGqwE23K5#ZfyVifoZM(Xxb+fKpsFfR)h@m- zJn$6b{4kNme8ESgc6w4Notr7iSGhQ1t?1S=J0^O*x*_oOYO=AxV|Cdp-k;Za zjmk7Rtv{hCEZ6-gW>X1As+h5_4sK+; z(vF>4AoH9kDv2^4(u%3!R7+^OSLZRMO!HI$1|fZ@v)bmYg3RPJ^a`$E8SO!2Skn4?Dcr)TLj2s4Q1*FaV5(=E2i}uY z*Q^LhDJprVEj*F>)<^um@WxA~_eEKiQ#ps;Lrff%YxcM`l>(=Njl!2cVHO3L8zc-> zOyTz`VfK|GENvW&GBT*@2)Z!zx)r>G`sYkDE_xv?K2~9uADHs#l-M#MmXh!a^0#{k zGPqa7f1z%7M;Fb{zG!cnMhxQ}_^CA(97kA1l2On9ilqnm`rxca`Ik-;=k*<3c&wcM zlljYAKss+gUIImNzl?rrH2rbBU;pfQ!*T282IEn$3r_zp3yX{S3%mC;q6|biYL1*O zeCG4;kPSqgbai%pQs@DFg^;vuZ+h7el&NIqk(HU^G_XT@d7Qrn_3w{o?Df1S_dil2 z=N&5!WTh)badv_a*1uo6cd#;T_r!O^fk7Dh&Vd zpKPN5|D_r@t%YVh0vpyMrs%! z)sU~ugjs&S9x4n;pXDKI>0{(axlg2G5Zt>hrN(I-u!Wopp}9ImdE^#k(f&?EZC^$N zB_6$!&dl#=+*^`wzT%RxdnT+Tki<2L!OlzB>du#)^xco{q5q;K`apk&6tDVSXU!Nh zee4;W^YZAMyKwgb;!gx~OIc_sbUL#%ds-7hYJD=DwRxe>bH>@TR&ka4nI9XL7H(Tu z#e}G-wafXkTLY?wws~xA_?_QozJ}A0)G;Zx@I%`30OCf}3Fw z7nPP@MTF>YVRWYG9!x33cM3QqcoAcdGhJeYq~oDe9(h{lP_`>f2gZ`y=g;pPeouV_J>}Aq z$0-8DbYKKW1>`i z;LSJJaZC}M62CLI?3~DW>Q2NYCN|-#3lnR^t_vKV`ny*;7a<#CnRaasIk?o$-s8|B zdMoOrVJC=KY&0U6HM-&CQ0vdBH9gQjIxGD;!z{mU|9E<#Y#adUgl?4}WPkG$3-V-k zv<~awPEBp(tKkEdZ2Qu`_^dj$zI9J-WL8ZvKZJGm>*=;dfw??=OwJsKH4&(u;O#Qq z^$Wu-)lYfO^@m(9=6Yt;sw=hi*i~7Yd)!zO{%Ia{OEcNpo?o!rSlhYBbkUC892?qgeSwHL@wYm(UvHsR41Z4I$qa9Ii8N-1Rx0X}bNanPVlXms@5al} zS$pYkNbz{W`Rr{QhF37Qc+Y?H${39#u$f!veZ8k7K(CbqBWRVmH4q1Wzwc~bEMfI= z9S&-o+BwwEer~%EvgOv{>Vke>ANB%QTTSA|Dnop&(6&-{^(i0WmdY2lPC0AY-Bw-U`$Wo$uLujsf(>K4&e~N2GhyTY2nOGL#W+P zs!`!VC&CD4mkoO%EPDuWo~V0Pr#&KQCX+lh2dDu)-*bjn%%6f<+_+xnU+9r-yj)98 zwV&GB@wTbviV1kpQ}*U%b>wh+)hS=1JM`dMpXmMj;YGZ()*Ap0bB~`Hd#Oxe?d_R);Dg7_mZ={cbJJDpIef-~C7t$^QZs2HM@+Rp z`I2|hOpNwk0x>2jbOp&lRCmnLo2NX9ncEMWQgdM>rB}JL9#XdO^!a8V-reKRAJz4! zxe=te30zGN(3HZjREaD!nQkEEyDm3Zo@jn!*Cu>1+ywqp{BxcUFx_Bp_dhlHM^DWw z9$pvd+}5R7Ui#=^q%PT%H!Rkwf+9C>3Y){oV#&*FG3tG(2XgyvNMiZ~HpJ%M`QX`& z!Hx@pwrD#}wqeENYdEibV?S*qHlj>XzGY!}YX7AWoSJ(1~f&Rc)1sY_K zPttv}>xCTVs;wL2K8J5^%ABBxXu$jq{~^+a4{DB|WEp7FFDi)kcA?rc3mhMI{B+@* zb;vX6oPF98sBnl#*s-&?xF%pZ%7t+II>^i0?(w^HWAJFOMbfvH^u;PKHIg%h?>CFZ z`b!MRZ+Pcv4S45q3^Lo|dhkU#@Fx8xPrPY&ibmgF5IJ6zWZ?Q`Y-v_jn}^Z0Psx^A zw_!$l3cD&mwgU$p8_C-Qe*d0v2;33QrkCz)^VcBxlm%&q2+^(Q)5`pB%t3`z)qk~$3Y`zVEWiFg(!xznNf{iM@L5z!sscy#PBZ}H>z#!y%XcW{gzpwyPv`Dp zX~RZ^_5=E==eTx=1fKv=<_jdTN;qQ`60+NiZNEC%A#|hTZlRV@3Axb6+Twu zUV236hG8-0Z-avT#pcWYZw7R>-m&UZ?IbTWn_V03FQ(mJVs1xGixOT1NTw#|-lQW* z=02Y`capA^IL>aJbp8eUfi9xoX8M1#eYUI=+5EQlMI-n`<{3Aaoo4~)Cyl;P{ff$? zh2C$;<-YMQYg_#Xr~e&&<805-J!NTs_xez~_07}i{rH_`=L0(nW*a4UfT^`C;I;LTL-9*URP?AD@{G>p*nVHD0?*+eN)xn+J`TY;Ei2^+QQn zAAV2rWi+A%r+Tk-jvuL}PVi;n1gKJD`0mE*{n-~0Dw@j7ahctN7r$z1vPdC z;Qvi8X+vbo&$F-t*7rUIt~iS$^?uvz1we@<(%onBZb}=U7bTpv3OH9T)Us3j9Ms}k zYf*~T2Ve>U7NE}7R9nLlXr@VG1FB0Tlh1%?a~ItQd`khVGWy=`6U?nZ7Z-#)m}!`4 zsC;1n?ThD7D0uAy>7DP)?Q0r*b=TZ**3JHEr%c2b^^jC0+&t=3w2Az^eGjC5-NBvmO3?)EwrTUbPG`s{;V0ku?B- zkZsYZL=@ExJ0iFKG8h6@ z!nIZF?0#5V@3K406zC!)d75O-c?M4Tpo4O)#s7JC0K$SIM3Z4i0J{d9FJjhNcqmyh_5i+1Hxv zRFlxt?`FSUtY2{fAFhD0I=J7Ua({^*w{dq?tTXhv+x+*nP~7Vj007pno6$4v6P)8( z4+Phxjcl%sE%#zR*47PO*)~3Pb6%)61iK0jBECZA=En6)uZP2yOV^9FmUP!sS5CcV zQ2TJ^Mi;1NV?R~kVyS5P=G1rzk6BVp@6-TX%{2#Nf%|#fq+5(bn2WUwhMgowqW3 z9U!1xWxhqmy~*-y>^NZ}2;e$iD&G8{4SwoA$0}4`+p%8LcRrOV)LiUZa33;{igP!X z%>H>khLc#ozJ+-Y1T}8i3fGs%>LXvAX7WjTy{x;=PqrFw$$}>y&b3m`N!&NqoVE;8 zfw=<4TfpI!k@M84;v6uZw&&etS94*t>88NM_+{PgRJL2L=cVDxpvNhWaVb!ixnS%oxp-f-* zV8&VTpJ+Drd8bSrA##bu(9A>Xo$?qt{`wCSn%226rkxRj!puAEK&yaLRvsir3Z3*Zp#tBlfqf z0BA(@38~n%x>1viAY=A<9$Z)afhgkc#)D%`QC3d=D_$zpwlMn-pvKY+BP9(0uotL1 zm7`AV{Jx(0wd18#FPqjDRI2ONm^XT{p!H7yTe^@4!ETM4c-YRkI_YyDpXA6uE65*^ zkOQ9ByL7Eqg|2_t@*$sU&C}QLn466RMd}&Qt`XV7EseycbZ3i;17LOAJ{<3gpO6ZF zxNHHvyM1nIuIFkqGe*?Mf-?6WxLe&BFhC+nu!~xB<#2^Cz|A|)B`XnZ34gSW3uk|* zV~wDnh~dyl!t_WRYfSreoJFF+h_E{x(Iv?Mrg_ofc9j(;`3{OGyR|EdL+f%D0If2VoV!0?? zaN*>@x@DdZnY(~6kZU~Yv`F`oMCs7&qnKS{;%SIMr}EHXTh9YxxQpCwpwRNioWXR@Px?YjawL9&9Z52 zDK$$o;PM5!tm)lsr8lvt07~JaH;EK%MF48KX#~PX_QX#&clt^K{Fm5>MYVc<`5Z%m zf%qE%_|sC=rJ32oMTZ6c8G5YoX{KE23TKU^*o26)(P<-80OwrI{qS7V0}u4mY6YFj znk@iTEuH?W^x0wKKzUS4g4cY@u%t7*e{IW4-5v5NKrmX@AHY$tCOi#;X6iV+g!%AH z3@_vJuZfo&gccfydn_glzhVWvBp|uuS;-s+Om8fpSv8;Mr`C8+-km%&l3Xw&f_d%Dbzo>RPsb8JNgi*#qZHINO12xEm{n zR?Y-sop=Sn-kl2qmbYWahhf!~R(Aa)lU@Serz$x3!6X(%G-SWfi-O=)Ubw^!0p3Tx#8`N{#jL|^2&AptiuIvPf(_?e9xFdWenlvW{{HbR1ore-5jF)yMKO*Dx$SC4 zM@Yk<3o*e6{ZNcB2X@}|Q)LRs{F%K3f)eE2ow z($dtT^)W_?4x3sS>uD8GIcn|{0CCXtrS0y&7{AGb7#q(HozM3?006X*ra*s`wOp=JOO$s_##jQ?d(pAxa42s1HYMBsy=0T=)* zVQ2tAMk3T70BvLtDkdQj{hxB50!`Q~X7YpQMEHMaV10`Bmk|SGpajpOa!dzf2$KPn zrvcQ|nDG&|DE`nKMyx1NqB-e>qPEKS_|y{AvMeQk{+J4|nVf^ zX7UF_(1rvYGx2%TAMN6gg@pzC*TRGi6+X&; z8jywsZII3}&5_}E#N@*8sT(l+X+V9(MP3x{A3*f3ToE>V73({_cs)FeIRsG&t$DmD zq-zlIZyAsOPbfu7VUai~BWOzWx41Bd04V5Ra7J-?y%GQs!f;B&Pc>9ty>$AoJ=b|c z@8YOm3 zFOdE1`|h(}E`;1y&}E*oVXa{!3ZJBd2#p`RW4aU`kG0kflku@;1c~;Di%!Krmz6ah z^)+1NJ`cqJ&vnKPYNeDq?jwrTt>Zk+`bWYDbk78T@>n;#!A5%M``@LI!H{5jN{%xF zopU$t!#}i+88E2u-xd0>7{a4yd5}z)bJGUu}Z&3^gG&Lpl?QbJU>be@!Flx2#kxkYyPmVEw^j zGFNfQ(r6VvNsfcSw3m3=$=j2w8%#wXa{PGao0AA(U<}=s)D4&s1mo%K>)x_-wgUE->li&Orv`i5Fgw++FpRA)56V|10Z*u$~0XPOKTs{x~A> zFv&>7oxLqL(mn6K(rh&+aI53#J3rGu8QORAHSfegKUoTPh|>B{nCb1(ldj{@7h&Vt zFc_aQD&3R{E-x%{ra(XP)0~h{ykMlHNx$5vZ;rJUYy@gaNQ(t|ORA+Nm7&RxI4;>g zdK#(z&cbJ6eSr2tU;wuvM=-ANc7P^dnA5$9|1WOqj-RnxOgRLuaxWAa*GWdwqMGy-zM0k|_r3C9*W3oC0Y;0UwKATpupr2@M zVg?OOUy)lvqvR!1%5o*;xMJo==xq>G*ZJLx?G41mrSnd_=nxEznoJN0smpmRvV`kx zMdKdIf3q#RU10C7e*E^?+&Xf#eeEBN6BUtd)H$T-i$VEB4tH3P>Wg5pe4fFYSyppF z?ew09p-537LQ@8`UsCWjK?*;u(2vI{^IeLU?0$D$$u=VThGGauk1Rxhlv{1WL1yxf zB6eN-v?w+oi*5fI1B-dCWO@t!%2tTprzPaTC7+@MhvijLIqo^sNmE(3XFfRAW*Uh0 z3}|SR%(L459fir|7Llpb64>gwcV?abMAu29xONnGx zcI@B-M!Yd5*O@;*sVh7+9DIeb;TlUUz0;i_ik|>)4q@NYecx$o0{^1k; zVK@MDz7fod+dxMfRuvFLL5_#-sr-7eDmG(ykFp!sOHaq|bIhLsqB6j zY`v);7&k`twBU2h>^1e*sCsd>yzm;|F`XKYl%UdFC*@s%sN@LF%r|hrW%~TR<&l&w zH$BCBl1>m9Mh(Z-D^5;+xleVKjvl)yvd7kvXr4U?XM?>m|EG-E=i?j0B24B3koYTg z^1KQQMidT*{juv`qwwS12Ed1b;a7_8s#4%LjP<}Qe_#AV%tc)P@R_n0@Grc$09F`a zfVzF>^od-vk>`Z!)XPu?6|3{+RSyl4f5c~1*}E#db0SIizDE6Lej zs_cs{ZgP-wN2$d9vgwu0L51E2Ifz~)`i@K1kOaWDYks0ROjEZsdE!sY;m$LVJ|P2x`9G3B4_Y9 zFriv)_WxuoNdQi9(h6U@@qr2fj~em+TuA}k%wdDx@%M(J+#@5|i`0SL&Y_(oia58^|sryEPPHbD4aD z!{senv>@NTvZXYHvj^NeiT?_uqd-;?Q}JOT`tw%itAoAtgi-uu22-f~4uZA!evl=? z7XA%Cn0i)1gusa_R8VkNsNbbje0D5t?u@-IcWG7O-m6CvUE9i`FQ9Mb%h$k@NCJXj zIY}OA%AUY4Nk3*LtD}Rwad(3xr^15qS2z4tYo8&?md$l&-z36kjq$R~;jY^n5`?4t zDzAI)ANlnZkJ=36oN^nG`B5KW;@}(M2RjM2F6b#qJ@0%;>yHGcWQVwDp7oEle=<&$ zf1(s6(ybO4*IP4jgT7<5UdR8+?to2?1n2md{YUW-eRGCZzH~t|>8zDqdJd>iz~|#! zv258atj{RT42lT*3Y0bOj|`JfWf`WT!fki%qnNcq=CCF1PB9_n$(}uUl^Y~Kd%3e# zTDVJ2(TvU~5vUW_E+mKIbsStK7?YN9%V^1_V2sfNEIg&EDpKJ~oPxah<}eU58TWk= z^#Cu&T+ijX*`P~Ld zQOwEGZ=um8k6iCRY5KfbUVCG0c|Uzvb9Fv8rHSISvgtwGyJbyiEG`Q?p7TYGzFmwu2ueE$EsE62yrNQCsf;%*fht7aVcn9WSC$@R$# z!uSM?Nb>-joa7>Cnxg_ILNVKXM$;hajacsk}-`%}UY-ID}LiK<0_-(7g35CJl z3%iQZ^>CA%#&*sK+IQ1so}I7j6otVEA8ZeVgv2`d%IC)1MF$5XOt&Q3O$iLI?%bLy z>oPuXuPIHXkWCwQpX7{31*rd$h)GW?Q!ciji*};SZ^~RwX#)L4tGb7w%05l{(vn7C z=SB6jrGCEK@cmF+bD#>k&4hLf-(BQ{{1I2*EFl^GEH4Tl76zY8e__J``#0eWo)se;AHE5gQ3gZIm;>n?Z zsG7hRNaf9A(<6RWfQ?fr%Ts}+rz2MsyCADPH2lfYFAf){5FrlFrUt(vC1MhWLLC>% z64n}s1S|Y~h<-CGkxKB_f!DCVc7C~gc;;NLC z;3)$`KNZCR@R0{7J0Jc@it1`ku)hvh3L+l;Ge6j9`ki;ro)B`&Qp$=T(N-2TJF^>$S_3#~oNnh!&pf_5rTyxu+^L|_amVPk zkX|kAWzb3}mLb8fGBdLYEwwe>O*|}lp(bX$B#4d#2+wC z%{E96X0qof6AYIave7kYXlN{E@BrrJDKDN24i3H8_Wa$!jkp%q3oY|1SzXXv_lJw} z)DB1K*K|Pyqegw;{h3CC$>j3t{<593oxOvzlXH!0zX4F&UbXS$`I6*JB4@v>!@HUj z=>q&3HYU4Tb_G0NdUfA=a8(kSPGpOVpe-$FuU3{--E8$eKz?M=o^Yn-&m`y&Ajc6Z zf7bVVhZxETN$=2S{kUhJ zGz3EJ)3d%vTbIYsRwewl$cgaQhbcTix@%o4*>XKYs2BSe>x+ls@A2a&9$DhSZ2f-$^v-Q0zjJhp$!)2%O5d@CS#Ep3%HEQ(JNV|kcM?EbCce5}>}U*G87ni)M~ zqdHMm=Kk#Zn~;d;jJO*po02*qrgE`X=dmwRnvYM~Slie*8*J$R1M_*& zrbyvh%~AaGSKfq~^2)|)xuL}yflGv-e#Bqg^N> z^uXQpbl^=028Ytoz#sTrY^9$PT$X=-^t`LzFZGA0ASvf9LT+;`g18*$VM*qSHN^`C?h)HDTUe8eWY#<8r(8hE9yw}fP zi@_sN!=Y}c?*0W0*FQ}9tqzusUUwT(TbYl8cSN|~^U~N;C`VcNq{6JEm+5?VzLiSU zW>!O7pt`qQx<40ide}muHXM{aP@a|a?_I>I=>P@mi(MoxFDSvj8#5TG5G>6x>va+J z#?I@~A>rKWrLLK|Ru*Lhx*NdKf778>n9@lE)u@iyxiL$;iOie8Ml1D~`*9nn|FJMT?duIlkc!YW=|0JiC&)=e{ zG)_l@98oM4n##fKM#ZD#sawUfS&eDHt2tDgK8($dLO4vzBY$z1_7j#)S-5LnCRzT< zh8SBxLH_*}>7f`uK{Oep0a_0}4yKlpn<;sh~?Cnb*IM4JzeWw4l6Wyti8JH^H&D`e)>muB8PZ z$RDJ8%i;4)WBjabInO@`QMVJSI%$!slY5Em?Ce}_6ZYWd8vT2Dj@oBz`R!>Mm$CR8 zh!0hPSCH$khWn6o~;+TJ;-($;EqXc0u8u#l*oCAXrE zwO8_4p408Hflr}gwKAl%-C3;|Hlo8qSsRA4W-hA;xEcROihL?UdiC0;EmV7Z&qIuy z7LWNM5)uv-6^}mBrUMcGnL}{CY4)d=XAfN+m3t)PaB481#$sbmCs@&|)m!bK;Wz3> zlOuZukWtnidE_GZqZ8-C^r`A$vf?#ICQzGEs9rkUW0_a9gT{+3!kZ{-I^Bl^lsme} zk_*x0cSS)P#+>5Ymzt7~d$egI>i3LJX2!Zd+eA!T89EzDY8jgEv$WY=HJ`pu$!;p$ z3{htvXt_g99`?|q-sR5o3(X@*9V?*>(N zsJDGG=eBxsS)&d6C2C7*i>t2h8{?DX6Jz-uNtNohZTkuQUN6zgEtV;6$b>_) z%T=mv$GT&Dwi~pU1`&gnzt)Ia*9?Z&niDB@GmsOcG#Qud^{`u*W;457N^Fd74cI*t z=Hb@CV(2b~as<*pj>G3iibvG68Y$L@+a#$fM|&}qME7X2t+Rg>Si(&>gKTG9YjhS= zKSX`Ww!1vG_R?dwbwLQ&Ss`%Gj~f0u+Tx+k{av=L1|Rsi6ESxCrKKpxTV-JYu~7j0}|qgpZV!nEPTgqFO*JZN-RY?~Rgt^cRxmsNy% z&G+l?7X)D4k(`4&(#IG-bZPV0Cfc+k`s?$i^t836%;3*7L)XK~!{QLEzogqcqH9pZ zgmTVM;xd%K|j3Vs+76E>{J={-qQDfs>Eqxb^~euITY%^0Ijd&)cVH}-*8d-DD9 zAZdwc0a;sHV03*Gri`&JVnKrDVF8HoocK(G{n%orv^-Hw02m#eVhbZ)AL+dPC1H&J zPEpnMJX&!xrp~e>h9#TaOZxq-Ra?ieX7~{dIWVhzBTyNz?64@wuBjFXp5WjaRTVIAshr1tS> zYBVdCSbtVLmb1=v%gNDcD{aQr{%zv!a(-+vP#Sfjm+7>W>8D@l{ygOZjBNmm210bm zSuVDjt6_g2iaZ5Qz2Z6|@36PWr|6&&9_z0szd zV|W=oS_a`Ha$V(OXs$dTD^u8Z(5&$`m>nIB4ZzG&y&2_fadC#wx0RRS?mr<7J_|NU zM=?@E;%82)FRm*TYnH$NLPfjhKH{p)e#yPvYn1C~Jgm9(LHy~>aBC6gb;UHw^+A~Y zc+4WJkAQ3I$VPn6^$F@<#$M$g!<6Rx?yeZ~hG(#G%d?L++C)XkC8Yc1=Jgus6g&;O zt6t7P7ck8{(oZxkQ%4d=<&ShU>qOXASZU@F$%_B&`Qv zwCMyv`3qa-;RaB?IUvFY!ixI)!^4I^A;Dr2!b+931w#?w{HD~vpv0sQ@eRNr1;@j_ zwB=TbVDz!Ry+Zu758@}=Y+rL#AK5_MXOAz_p}utY@T^hB9M~8iDZzqoiGDMN58E3| z-!%R(aVgE}y`1tLo;Al$4ly`fM$v-1uhFeNyXjv6arbd45>jm6K9jK;F^FJFKqE;- z!o^7?h=~3l0DwS$zY7@^QALo67$~X;ARxjB2qJ=m6cAYvi2+h1MMQ!zRXtM4Mnq&m zkX9r{DHtIVFo=LJ>-69F=~49yuKZn%rZle=K*4}8U(*31_l7o7zF?r zpq^Z9@N4!x^#GZYJK^=w5dFxed4d04`_6T`d#!@7GJ^&H!Giq;5CaY==LPzr{9b+M zwajRM$f}$HBpC#dR7nI?7+vz@K*j?Y3>o@XzvYM{KYq9j-r_z!+i|oo2k83GlV|^% z6v`vOgTzGz;()RP2uK1N*!mxr>yPte_Wzr~*`IxbIE-D#usnTOZUxt^6)U(P387dv0svzP7XlLl zr)W|?@5BG6^;2PK9-FO=hWDQMzccQA*ZdQH!gHjks5ik_O|hQ1k~{78P0-K{?AR}b zJmY)RoQ+PbxV0N@gS)$N+ncd>2aEUziPCa0Vo9_kq_={LK9HZjL)-Lfh4~ACjk=~d z8ZPnPv~5CQ5PFH1ZdOEKC{qvOX`oaLP|7F?)7IDRz1iD5x8dhAgoU7@pQi);6WmlA zdoRqJ8)EPu^)V&pMhiRle`-iaTYtF!Pq$1bQ`th1Z|*`sE_I4+BMcA+L7+24pmSB6 zRJoryL>q$PPisG{ewWF0^j&YFsZ|n@{OHovWjeK;a zCkRj^Kzy8ewM*hW;luWJO*#&8R>hpau}`^-(lBZ(T@%d z9({GPwWd*&)`iFLaq?uV@2q+1B-fjN&@(EmUatYC2VC;f+5EXPt2EfB3 zT+(&fxvu>d+Z;xiw0M4hqp&I=s%1P*(Vmv z^7Z#hG%O|ZEfI+wa@ib2oEx&K+X&XzyaUVDJ~fi2=gHK4yq>#*C{PI3`g@)BN9+#X zYvrHtybKTKs*>$hrg6E!!zJjovHY$)tY7gr@XdWs`t^)yAJkvV@;FeL(0zC9=f)AI zhR3|sm9nGTXlKhqe{q2L;ZN7F)fP+q<@Z`38Kmy^Hu!#1#{#)-o(-`1tf@8)qVQr}@$+?bbUhRr+^3 zDL(HT`Rmk>;OD}o(Ak`k`nm8m+S>Ywt>*Qow9?&uz|X|fHb=BBza?HaOh)_j#psS# zNuZYF;r<6W;M!n1gW`V{GHeFWj>Uorn#W=1e$U{ZqbPiX*jykmG$FKv0r9@}5P==j zf43j$$NAAwTp*+CB0bZrzfJj9^e{go((?=th(!_)o!O9VI%B6N23jD|U>RGkMnf(s za|WW?u(T34eenU1V>oP3Fc>mePZ!)}K4u=e(}>bvUw!(&1Ms}A8>ipj68>_BnZFpG zL|AU`$u~zkhN1L^n!)PMBF;FgLN+-qqR^qSVDP$h|ib&;J(mCemS6Z{SW9LA12Nr{U$q56e06h{V#pL`*dyT zrmFl#fX}xC@mDk{GxS>M`MCSv4Z+k` z2bzxlLDl~@Q&;xs*1YzaT>m4mAi$F?b8*55*CGr)?)mnL3>F!B_6v99*h9kWi$-bB z_Eq&O@V`dJ#h}Hm|6AN{Y_kPh`DCkJypyaEz4OnaBrqRp`8##i^HUMu`;O{7@z`~h z0n9uj7!2!QHxab|ynf%lE#ukQUaLod!tUA<(8b}+>QFm#!ho+gnZ?Im1wn6b0BZTk z^ttMiDukh~p8*}@cpu;9W&Qa*)rQA)c(=G(pb@JG0dKQ-*me+7mfm5RmfBjP{lAaa z^84S=&a;6MA|e9@G_f;MSH}H#l^0g4!swnnR3}!`Yq3;ayGztN*#Iyk%vX_0l+|?K z86sI~_B5EXkiz_2XsHTSG{}Rf)$U6T0Jmb4tWV96H|D%A4f&Vmn&+6=dfEvgK3g;@ ztFF6T;?_)<5m$recUk1`XTzT>7O=VOC17S^`p-FvwhlRF{Wl>k@r!NupYlSn^d+E% zZAP-BD>NK)3J4IQqB_F*h#P&9a$i!YmsjRwd})xk-#p(EJxLf6@(9^cd1-#<*so!{ z(XZx2D+^Yj1{OghBLNmLV;YddEDcuBld~h3RipLx=XkrjWP;86Loy)Gsc;>q&Z4cJ z9s<4mHhJ=l!9kP@UKz-?0SF^fMPi4|I~zD#{xNP7etRziZJkcYsO~#?8s9JOqpv=m z(%o$s#T%K=_Bup#68D2F7{FrzgBt9L{~(buj7m_sj%1bz_Xl>vwHsj)1c0$2i3k_Q z(vTZd@5WIjq4X|yb8GydMh^a^-}lT7i4fdjrVEf-GCE*<Bm@RPG(n#V(|yFyrv(75qj;gziEUEGTn=$$(}S^^qWl9(!QPd z{~(OsPxj7hDAhHzJ~Z%u+7caoL%%Xt^S0EI13qGUw@PpZh=Q71bKx+D)&3qt>*IZ` z_kp8;+Cf$X(sBrE?1 zpv5G?3%>Q4E81!eDfZsPhx6%HXo6Hjm4!H-A#Ec2+7W+gI9iY?K~=s^NSaP_N_x98 zX=5>pNJuVbRL#ISumx1B_CNuV4LY-dY%)I%0vRZV5X63O|J+}V=(e(!j^cJTyz{=Z zJaH~Bh?=E@6^C|o1z^484quPP%@E|`xPjJ%X*I2C-mscgzTH-DI&%$kN>^QV*WKCi zz3YSYv;%LGvI0?(L_`W+@N=bdLjH*1|Ksd@3cbS~%Y;hw$A8b;MO0kRujpxEMYts? zEaVJ30CJ=scG>B~)eb)rzXL(-tJQ^?N=9Q0M&a{Ad}~lX7})rmkVqN1L!5^m*C7B%u?@=Qq{-93HjIY~C~YtLmwlm3rRR#?3F*sP@y;dp(r9)2;TE z2(k2jf*1Qtg7$5hDCOmloP9Vv(By6XevUc(YN9sqNIBM_vyrU*n^KcyN>X_jJ1)Yu z91;f`$cGrz(<_d>!bvpj)I=T^*e6m$M> zi!5%g-N)2(9bp`Zqoodv7j+0MDI5`p^g?5#eZ;ZGG=?;U^23hL5avWKu?>j{M;gwY zb-G6e>aleV_egu1MtUU$^_h)jSbnfUaD-Idht%EMBX z@^uQkkOoi;L0qS3XBDt^{?(zGS^$e9PtQ2GtIp6*c9WR;iBmw$M!K^dF@qr_kmQUm z&3H%+qm?Dm=A1rFD`E-3_=_^uo)Qr1)ri7eb$1J}~oK zIh%XFc;r1$u#J*(xaWJdSR@kSowa$y?R8W-L0MjN8EWc`bPLR*&9D8lyJ4lS_(SL1 zn(i4KUKLF}UMktC%v5DDR2j>?{@^qkh&L7WmM|A~x)G9C-3rxybh4nlNl;v-9$r>F zEbrkk4D{B#lRCYLMY48tQyhuk`%z6%FAW~XNbec!b3T$uWJCN83pneLWaBeM%eB15 z=|pR9f6;smhn3M)2S3(#9wjlMdD7o;gW+t*D?81UT7~0$H|kk1FgQJj2fRGNgT3yo zINq8!@A);M9BcU3{0{b^B93E52sab2zN>7)*I32cL~*0cGDnBY$#b1leeOERGlcfW zUEK+;b~v(IKoE(xozbe|fecsTzx}q><|&#efm^MpNQ8j{Zs}*G-lo(F$QXzSVr7|y zNk#`{c_RGf;~*DA+xxhMeC=@SWW6DwXXE!}*z$?_*>UMG1O~h-i3F#ob>rQ4lT>bin zwfpJ^lmvfW;3y8j)-}-wdX{)LcmAoIy$D}i{M{iKlzA~Lww(8Z6GX0h?XF1I+bhPs zE!EkY`jm1YqhnbOW2&&Ifv_v?sCRt{xequSgWl7e#YIUDD*_w03 z+~KId^-Lz(>tO7a+@+>tvvJ8dl*~waqY^y0=2bF}fu-&usxAgW=8a`rVXIu7WuRR@ zPaegh7#%xp1bJ|hZ40XS9aq}h6!Zm`$tY?cjM4x1uGf{emTu<0tL(g*Ndsv0pC$$M z8IGSCBpooK09UixGII0Zv9;}|Q{H+aU4OKNdxMwJB`fWdFNAtWDL zB#dAgU=9MKDAIvxg^i-Ffr;<5a%9*q%o7p^b;aV6q;Ll@>}uahYh9tCJzQNDO&toT z?FKQ7NrM=e3>d~kuebD+I*0G^5EX+MG_y5lO$Uq21XTX1#EVng)7iv49U$rzW#*G z_c9r_*dEdc`V0eZEP}~cD#$EYD1LzhY_LRQ54%VdNF3ro_b6it|J~~Rt2D0c3W$}P zCXoD(sIc!JW>b*JaxDb_KHKW^A|R{skLB3Bfue1(j7y3_Atu`e?*9Ab`kzfiz1R8p zUs`7WQ<~AGHw+ew$jw$F$bdE9xO5m=#?le}U!B8|^D+8=zu8^9KCOt}4}BlqRQZ{* zM2$H@a)dGyZV{gX>YUz|J2}liHO&6s&F-x0d;9VWm|=)x0gMI=$pR&;{I0@em}Rq= z_8;$IOX2qsh0HYK&e_Dvs<>X7byW;l#mE=J{XPBF{r!cxVt#^h zQe;XOZ?y1b?XH5csA)xzC}viVVNcVyR}O(#T4=nIMh^xNHnc{M`260EM#EtScj{+K z;eohj!JAw<7g^-ga#{P6JUwZm*3t3;A|!|+LR1WT#NWOp&Et^@qYxSZ#(JZc1z`hEyI z^rKCcva4ftP0YO7JCw4?Tgu`_FEjZF;w3u%ZaEge$Vbjy9GQxa>1%w1`vuMJF*4*k zA6%cfxnmCk{MFU&u-VP}l9Md$pyj33S8YC3pEWMUD>*J_1{*W%4ZG`7>{68`yB78f zQ9T9v<*RXeyBh89{esfl$p4Eqvdv;c8ENRRkg%!Q#(Gr&12aT7=ojcEv7W`QhnXuM zjA{A`kqkSwEo_m;YBU@N{cn_#vC=pi4LPGf^{?GGbqhisq2Bggn6dp^2;k8(ZQO0q{LBjTF)2w^Ay&kq zP_??o0z%I89M-TWhN}RG2qL6(|6~1=-$;87m*yxn)>63v$RH9%AY5|_oE4PqIc{5G zZ1`rbR)`4WwV<0`!qoc(vb{@?;wQD}|93m+Fyq!`l(p^imGi~&IF{dGzmfUVHnH-6g$bp6r6K={P$2q$XXgv}nAjdBmIhf=I7RxjuWF&w%C14G5A@^5$)c7N?3_V%^e zdmu)`Fv}tmLTotQ11np7hb_+5ZZmkD#kXHbk}sSRh?|mQ?)7N8&ZQ2#q`^17>%XzN zqhaJKj}~$m6(5m?3!J%YFD_b{w)~YSR!ht{Hb7diAS@*oApvTpATzU&EFe)M3+}nG zvs9UeCuTOaIa}?Xnvpxl1xP_6oLBm6=W7cWGYDtg23wD$paE7D7c5O?{>Sm3H6KxbBhQl zFn}Wv1?C7U1EwN`fzJR@bp!!{1P0Mof*}F|pU;4_L|73KAV6S2MIX?Q{|Ewpbj$zZ zl|&9m8N@`8M1c`hL`cL%RYgS1BN)X+6jWG(BB>)3Q4vK^ zh@yzaK~)h(ELf;8RZ>Y9#Z*xgVj`%B0IMR1qCsR(MPRXDh@v7Y3nHkBsTM*i#SsyR zixd@1EJRfVL5QNPQ2~rpQAI_FA}Yv&2#AQu5KvgfMPj0Y zA}At=h=Pi!tWZ=Ck}-;?qA0{gSU^z~Sp@+>6@tZrF$GpB6j6wvsw^NVimXN`u|Qa= zqKK-*K}AFr1yn^56%-T^Sg{z2F;*)TK?M{9V-*xpQDO*+vIsIoRZ&$@RaI3{BCHft zMS?0R6=0&GuoZ})s}xmOD#27yKt*6G#6eMtu~AtS5K&QrqJsrQMhYUv0*I<4RZv)> zA|NXUDyS%mtca+vRU(M2imITZixpIgqQzJUtOZe26+l&yQ3Z;|2&jVvMG#a`0Yp|s z1&DyEsW~#DilQSGSfYvmj1hvx5rQ%-76OW*sv@eWqL2{{Q z2|O=@<{+)~OdrQHe`NDKhISrs!T&g-tN1 zZq;PQinfIr^UU(0vKmRcdls0%K~5QnY{|;q8&y0nO=}db`<%rCExNR#)gd82FYr9p zMFW|FAfkB8QK~fZCCs2}M5D^g) zBEtpBm z|AGJ@><9?JNT=Ds;sOGFyhHb5fBV4&{Rp3<1=|%dfOcRFqVRS7^|jb-+1RmoY(<{R zAZcv1VE#4}6JCXzwrrd=vS(&J_#RX>!`FLCL_hQSehFdb(@bCl2m~NPBEWz>#t1Iq zf(pChI6(mav*{;q_-l6nj&n*T=%)z-K>_FKp&wloNAtpfBg0UL1x6QcYg45^iP-je+ld<{xwhHVy~8=jgP7BoIQ?gtM0P1f7{o)-Ecint z?a@Gj&hGurbddj^lpOW?YXl8a$pUwcLV$@8kc3vz5ZCxr2h2SK3jmAahv&fHhjsw> zVnXLwZJyDHEy`sfNj3(*rP@rHv#X26)zzyWZWYrYXEqjj;0-|!X%*|laf$_^AYlSb zU@FM60)p*mC{%_x!C)vw5rNXxiX0@U8*4HG{!Or5_s1lai>6dltqQ2{*dih+1pr0@ zhs?0ufx|tv)qIQ&8Hu_8`!;qaomzFUq63tuMS>tGDI&-!kw91q0QFc@77GY;KxzVn zB!E;^dvFBjfzbgvB8i>?zI*}WfQnuU26%?Z;~mlO;Ygbzy~v1kKzxY$$c7LH$%qD7 zr~}0T)dHX#Fy@K64w!6$=Yus+idTrFQVJAL8APy$nUZ}A3`0Uvi9!aWL=6K53}YCR z1|hwDyMvl~di1h%_uj=sE*|vq9@&F9%oLF(nsN^j@DMZQoQvdabl2_X)4VccbnBJP z6zPKhW&&r3Jwz~oWfK^umGCGnBxH~zBpC?+gjd(>)0cb4iMl>SQ<^bZDOgoviUOi4 zq9`hetPvGOf{21FV6ljxs|5(MDuSvas}y3Z5fzFoS#6Tku(pjV)UC8wt6Ij|tVSq| zwybRxY*FImj8}hZGf%1;zzJ3JVm4VF03GM6wDLN>K@L`GzoI z%|gU|RBKoQIq|A|h&ghgCkxlMV9)X2%@)p<=Pi3YniuG3=SdnBxQNwK`}PL!-H?y{ zAMLd|>DV+H&1Wzq(pv5zz%Fpj2stb^n@C)}BFVkB&xcN7?{%OSr_;Bkb00qReh0hU z&yf}BbkV@gt9i2F99q&)!vM>O83_R&P1Yg=EI>g45=0P-0bm-uE}lS6bxWUmGTCZv zE2vvHJTWI6ND|LxiwU&$Nr3a_>R-OBQ)-P0zZl@@Alxz(nG{A?0fH_sN}XAd8RbLW z#N&snfux3#h)^0#RN?DOud*>#nGg>w`B{a<009(di177khjj}`$bn_!q&Vqwji+X9 zzLCYC?q}3(txvSYW8@&681%cYYDi4#EdTg8sdEM8J{hT4Y zrC~%}j7^v;O_*2F)uJ7wh2)1I}*aA1ZFvK$KI8BqYa35x$qqES3%dpVs^}6e;%#i4iE#dgc_7dzoQg?fv z->=~D=I?S}H&1GIwVh@O{kSbK{V0^c>qAisG1&`7M!v&k@#*VZ9l4KjvW&gnU2Dpu z=bX=+-p1b#3GMXhuwkN@LpqMza32WY`--=~(0N(w5hO!5I?$&36a)}NM3DsfrfXuu zQ2~r&0gO6clQ~l8 z9((Ai37a49=q1Z^+S>dG(<<31LhmI6h64r+VkC$mQeBCC6!)n%jM&=F*!P~Enegzt zwngKqH1ii`khLWFR`j9H%C8;u^GhyqvAB%YUbG z-OWu+_LkiwLB=)AlL8C}xodTc?T+{Op=y{LHdVH|Pd;ff$+TXFSPX>V6JgRaQjgJs zsd4Pn(O8fA{auY#6pExk(P|2=Sr$d8eHCHe?;*9F`_1ILi{xQWM|y(7-rCrkHvglZ zhH)j{%FdEUbEg(c@q-y4{@sNVfH1TeBM37Yb*CJ=3MAy99&?YUDJ-(lKAlAn;u~+DJou)w)lFSrWX@J-?q9!F zHp{0qxiJwa8I`bzKp-?Q6@eaz2bF_&3d%jy@(*XAnKDgE(=PK8!q2DJO|8R0~T5Z|Dc1Fu{w%k=~)fy52n+A1E zch0)ee2pb1O6xlbH*LIz=5T{=9z_B~LL(vukneu-i#L0gd)v-`QteNro;lc_zSJI% z7FJrB;Tb&cE&4l{@OnNUN7Fa=wRw6p8hq;WeYZx{F4Z)xQj}iSZQw;=3?;NulZbYf zy$ei$ZHdcmNAUGPM-CZ zI~Z8dXWUL)Jg`HF^sNp|tScq$r5|T&HrIE5LCW!~G-;a~4QPXBYHb%k^UAjUQyKJ< zXQpEt+;?vBX>1IcYW5|Jlin-DviXQeI)D2h?TxG?2!+fFn@1}x)(Xve6N<~~#CVLQ zJYAAqKF6PnkiIu3Z+ShwJ-t5CE1k836bOuBGC*B^V5O{!(3nz?gVYazStvNlF=C@A z%D#ukC}dBmN|~2FV%Gho#B(u4Xt{88#(*%(TwTiXYOPH}mjIp*hCc<6uv^Ww|J1h~gh}G#g zQtTe$__cv^n_O$Qk~?`r>|akVlK5N~N2$z5F~0C;zo!#*v*>px)5mm*2cUuhNurRm zDM}gS5-WEi4qqiQ9GXd4>-BwiG8j7D9!C-KIh_oA_P*;=RV?8|C`$JA9<-DY^oob9 zQc`g)K9)XpemIs+Bga7a2{KMbTv@@s5W`wvQYZ%ZQV>H`>u|? zdGu_~-RcZ5Kw?9?|4bx_VYXZau&&>9Y_#0YCTD+=^tOCGbf8o_huB*)LY3-hjL=i+#76Q-W+Muvs#bgcKiu^&4JK0G)FsMQv z|9uXvd|fvjwo)5lmVj{Sz3$i2Q<_4-21FPj$Z0DUYzf`5VcPX}z2D#0(%$f@=1UtT z-JmS?|LrtC4#(6DDbc)ERhSJ>OY{$AGCE3xaxLx0NKwXuGjS*Y1Pjc@)d7x=dA)&w|= zkGn{9oK`QvJxz^{JxgNhjd0*Mvinr>@3?w(=;B2XUN1jtb5d$+xnbg#UtwTc9f(~+ z-%QQgy?+iy}_{ zq;_*?Q4Sr{l=l_)IUB4W{&X#y_14@di^Q*7U?}vF_%&WbdH=ooh;U43F}^tuSmdT) zgDA87k-5657)Bc!GtxdsQe$n64rHtm+sOg!jFCJLZXghI(k0x0oOtHUV zb4}dCnqXi&C|l-nnr#`KY&iTZJk0pJZOnp(I?;orbr|2eeVKF)~3B=G=PJccIH?fCvB?r8M$N5eTX@H}BggJY9^K;92f9mcCR z<^4u*D|3uJAtW#dY|qwiGp>hJV&-t2+N@`$VIV5r{K*KdiE!)i_B>7* zrNV=-+;RFW7b3%XpoMwcU^&HEs2dBMT5||EzvAURpM;!tS_U+xV`f*TF z2=x@xtlaJphWCBidFn941Ypi1*`_JD?GDSqTvsO@1C``<(8qSfV#bmG{Zi$ z)sCiUWl&m=Ra?=huC`|Qw`C&i^?RIFo=tX_R<)4fB2`A`FfRY0*26Al$t43#XlKS+ zh>HZzQOOOqux;(mbGv_5dAeZ@-VXXWTLNsxD7>Ytq%id%D9H@2U6u!?{K6Za8^ehz zSAH66;br#+o^3s@TMh**qBGLE+eX@%OgX%S*_uL^Vaznj8EQIxe%_mFekf*jTo!U= zXE#`ExNT{TDPWH5y1Hg)xvi}-Hte*ZyBm~50(p($+G>C(M*LzV79q)cF6dF1QD{}a z4`HNXK)6^ayO$4>xC+jR0@xKoK)b!SvyM5_TUN@gZ+heNc#_GkR#bs)oh>)j9K2z1 zB;SiYXI)e~$QY7$A@xs#p>{*D`E0H*ho;KT^H_b0#&^>U>bm&lnn?3%wPjqAq8v~+ zknWLh4=!O1Hz;!5rdtRa*lv+vDGu@zWW*DDnMkW5icE*%_wbr_La;<9-p;`S9dc8T(`~#c5SoB z^-%`Jv9aK{N*_`sB-7nE9U?ZL0)?=-vm6`U%m9w=$jfXk^WX5{y%(@+re^;cnpf$; z*z4|ay=^*2L8Vrvei`dz?=foXs6|XOm|DvxhDo&9Mk(Qio0g@y94}8S8ofPzetnaz zBruBfK=u3R=8r2wuR8f%Y1`DZb@XnWWgVM+t}qvEid%*qe5spkCo-D3fsFCmm?x&s zThFG+vT*wO&o+a$vm{d!NrUbpg7(huDZoSq}^ayWj*>Tv5A=KJ|SeOZcPRS9g=p=U^8gD$i@)(Yl zdS+=+<>9*{-Y9e8@vd13>+wShK@kxIL@Xv*V09*8MGqe<1BAXmSId_xa@$MB0LFNX zu~sFGwloUxTGWK~1;t{nM@`8{f!ss}QJ#!g~qtEyjJyco__NC!f_xiJ|-i{c|>Z zS-hSJRA^;@-VQBp(uFIHqmKL9n(>wfAdh{Y{+^$)-Q;pztF0ytZXO`5lvX}F8Crpy zN^vQU*wjcdrud#E;!7@b5grF|8AMI6!3+j3gB}L?B{MrMQ*CO~YKx1<)W3s|zGS+# zf$8hyik=+fFa|`45d{Q5Qh7+g1wSDt$@iYFcY1fz>a}A_{A%XW!)@aL&y~(iQKy;* znVXn;t8f(D%XcP&%e#i|dnqc-rG-Om4$&la%pus(lGc;j+}1p&$uDf`C#XAt-`fyq9$q$ew8=*3*cUx5T-JCo!DIoh2qL zy8JW4e47500d?@3qW573J@GUoy8=m20J#D5s_5exmm$e-D+Ffd&9eL zCD>J5bq?Fg-9%fs0K1;x}ahaKraG7 z4Y1RvD<~Y0Ey_|Rm@PzM1m>K^dz3#30vb$bQ&5H@wS^f0U~*^7{KYiQnF}vgNMbo} zRV1m_n83WOnva2#Y@;FtPqsoBgyEap*8O7%ki(3KfIakW&3|gcxtna`DbH;aQ1{B9 z)t3y|`SawjSBVoYBY{5x8sokXvVvL;=pgO#D9*qjK!g~?m^9cih~vC$w{6Yq&iARe zjf+ORDQ$fg`kDOAD_Qc_(6rsTcK3I7EDxZFtS|_G2w;B&RdcvD8=d7e`A?pfl45CtO>xBv5MJ*b$4mHB++Y_qxR-9QfD%~^M|)03LbMg~j7yIs3&Epyj^;2MFM_}mMt(W4S{aOKv^m4U`g ztk4mfqx0ZdmYownW6sL`cy^)BhXF3EhUAS^!@;}G3f|>imd?6k&?DaD=F4!vy{Hgs znDk}|O9(_{V-PTfGEifTWSZy|17e5&E8Mq(6~2S@GBHJb#@;Q?h8!%{r0v_aie5KM z!P~>e*56tg1=N!%W(qJIdODCpENg({qJo-vuJQ0)%H)uSc@a3Nq`|y67`nrK zD)_9TN>njSntT3Z*R3i@=%-j=_QrbF?Q1cne2osv;Z+(Mwmd+A%mynt_ z4mlDd5_iiNH=Q#^6Vrui5%AD}6&aasagZs;#Hw~$#4TxxB-2XYZF-mM?QAjFZ5)cT z<&CaJ{Y4m#6NcT~DH6!YYS>kK)S(B%PlTPm?`e_@MPd($3q8A7h(;oUF`T@d^G?Y^ zEZ)>+nhYYvjAyuO?ku4f*>6%*eMjG?mFKWhM39i*5|xnxBsd|>_a5&6xUqxe%AGP6 zC^3%xLasp#6TlhgC_ zK)azyJrC4S^xhM#oVb=jQAJRFUxrvQkPlR04Iw=i1T%PR)Arz=iNmLi|!%i zK|PEMkxpnz$vO5=^wMbqk`;lyusSgMb{HUepdI+GH>nUl9BK!`?^3Oz4yc)+9Z-gu z7>CfMNy#Mcagg$|q2fzDy_KBkL-cq0-Lb2eVf|J#9XBg_q9FmhFk;H(X~#J-aqsi5 zaSr{O1T5Tc`b=A%M={KBC%c?QQ z;ZeWRHVyw%Rm@#Gc$=w*T>=|{f)5(#!!Ax8m4&M&Oe+9RV1i)eD6kn|GKj?*{EVAQ z>EF}vEZ9}D&3{XW6D(;!z~(nrN^Q5sAR#iSB#jx0F@_`oPu-19WtTK@RyS>-4wS~Z zjp2~N=2!gRFxL)+b}>azLol!bsA#)dqR~4O4eql|X{V2KzUu^a zZME(hQAQ&Zdu|iH;w-5VVj-z$b(`} ze!>d~1sMe@MS%@68v+Bc&U}-QF1rClf~b3vk1&D4T=^|kRU(!kKvjsQfQp)+i9rDi z04xXr0S&PW1X2F^>&jIu5mQ9fImnPL)M@9lp)za z#!{$o_35Z8B}yVH{>k4cM0_W?DOdc5?(x`R@XA3y?JQ7+Z|{VWo(xCe9Gp@Re$m7s zAzAqFfh2t+^N0?Bim%}j9f1(~^Zx>z0twQ8q@jAp{iO!L{sIyb+8(Td5PEV2^^RzS zA1Kfv2dWR-584k>8e!50wh!44)hs{$Eht!i=>{^;xU{$^U`u{fTpvLH_@EeqVT>^c zSV1w9AeqA|0zojKP%R6>M9GjrL6Rt9Dl9A!SXLDUL4+#`glx%~4!r&n2?c>y^bmEU zB!f`2%70l|pcF0fFAN33yfFg?a0v)UoCc6?L5T;54Etcvzfc&FxHbd;zqrCcZBC?t zFVa8mDGo0;_X`V&fk|&rlm}ew6uyzHq&>6%L_P}?U$cS;pIHzUSI%Fr_cL*7XQbP$mQ`3L(BL;jP> zJ;?SZgtjxNANkR+0wOXgp(rcQ3+?+qzA-`xr@*2Vm6jSZxlkK{Z=nTF(C1VPz|{P zLt;k%u071IYOS%=6PwtXCGD>v`$)VK1PlfT0j8At25M95Px=gju;bA{KAD_gFo3{B zB1nWrL68r_LPdlDUEes@f_eB8-ZXEA&AL1q(na1xW;mp*BeTVEYhgP{Ob_PtS(A`olV+ zXEJD;(C-iTI}&GPf3dtOJjvaJ6hG=4lgyZffUFe)h*1iWb`0$(ALv{)p@47;N6;+{ z1(1UoF;W}D0P1<5tn-KPnrDu9rc*rIn_>;Y2aaVt$#9KBj6sysJ?StM_n^oM5QX=i z`xZIxa?Kk$%+!E=ivU6RYKVQI$4ZD<_=^>hkU>vB;w1t#1W6M_LPS1H54`o%s27TX zgcbku`)X7;ASlSHLJl66$@xcYFsh#p%7L$v@+kXa;93)My)`lFeGBmM1)bVW@AaNr`jNAbvT z(@j(GEB*~Gk!KSlY})AgQC)4_uc6cIcl({H`^I}GeY3h_F+1Pq>8Q!w7v+Xro4HnNe97FH}{ z5Mnd<>IRs7F>S8~n5JM&knc(MhP=`%a zs`eh=uYq;$LB=oiG&F&sI3pqod_C#S)Mg?56DlCMgsP}b=khy!jM?_Y9#QM5nlnkN z1}w0}l|n+ohKvVsT$94cM|mRj%CJ#D(w4-wQ7u|Bt7Jr@EJUR!){GLi_1rSVXv;>~Y@$(=Sz1)J zwP{3UqS%PWRij#VVS?m(u)z~6N*0!_2F8|FiAAE8%26sbS|Mz0EtXqo+6dB?ltz@Z zOrn@nrHN{kM7GtdYf2>%8%C_9w6qe4loHmhEh$P-ETYn@LaiD#Z7D^FmQt3Kv|?0X zh}E>YlHp}3W2T757M51&%v7;$Xo!ty)S@YAY80bZ(!@&A+FIF4QkuBn)`(FkjZvks zX=p8ijB45?8(LC@5v;YM4O>{Hv85^A;5&NwTy3It<&&x~hdxVS90Ru$B}hmc#0k03 zR?WkEJIHYQ>7+5KBFGhhDF~#2Kc@e%{%QUOXZuIQy)$;uJQE0hExy9l;#14U2gOXJ zZ^^|9ulc?PYKne0qkE0n zWw7i9)_kWDICybrGu%c{I{P@)rs=odBa*FYlSZXA1!v2iIMy}ap46RXQyoFqu5p)* z24~~$?oM!bcZc9E8+U>`1Pc({J+N^IPH=a3_Z*(*oI0Q0Kk#-<^_S_I>ZJ=jr`rKz4Y7(2jk1g#LYrYw_@ZZp7Ie9?x zI*|d{AeP$wz>9ji)zfg3kd65B6y_b=zj(tNW_K|lP%Sf0yW_EHDK0NsfpW4 z7X&-O-6^Xj4TvH@#pz`IGs-~B1(jioq1yvW={*P(wIF2?Ss)ULVH4YNDiQd9NGu*_ zJJU8yw~xqRx&y+f*Onm|A)xMrUqXuX#;|oG729{f`*@ITWap1LX63SV<;ZuvnPpJr z!ZFCXA;A^&2{tjoXF3HCj5-A}lG3cX10mr1ws(LV7wpl^m;I4}1XmV27Rmy8i4=3weG9i`Uv!5hQ-iasZxCz(jb-DBAMCHB`HQ33)&1TQ@GOfX%sE*n`P zg7T>_>e#B{4SgcCr#O>Aw9+Lk#M*sm!Xs0DS-y<-XN23!`q6! zW-nRXU`z~d=$E`&vsT3)Y{q7$YMa!bOayu}^viObdiokIYfuuCkU+Rbm7fhOA=7f? zzqIJN;~D7bRWZkyip})YV(pmXi{1B>qn&APsZO75(bHGa zimJy&(&72%!6qA4#9sXqmbOVx-`=JD(I&=T3`RmxTTNlz95b5(?gQt>l6V14&OsEmrDh z%c@)&o!&3A*w1H5YKp;;GhloQPBAcWaDidqFa9YInq-dLk^Ay@ABW&?Z%#chTKjb5 zR~vn+R~M@f!}GnHx;^WAm5V_%R|`z5-#q)vMI3rx@D;j)jQO2tkJ;Jfup>!IDdo?b zco%K(Lg*-ivzy_hM##WTWi$dW z?@X7{=gY^a<^MXdgf*4b{3%qeY?H%V4x_2fhl8_-qb;_m=B$lN6xacAwbA=ArdJ!s zI)?{BCv^LUW^2$(k?kxAVZ&D4T@QDfITD0+(0AxL+DmkdATG_?#4CkZ#41f4*oh(L z&gRU@0K*Aus=s^TE$G*H!syx|YQSO|>cs~8ph@|Sqy^trsTBUSDdYgrgy5^}ylMYm zyE%G8ba5&GK!J20uK`|06D{sMfv8C~R45%7;*~%k5@lwPRK>F+Rs^+A)U{+mB+RNq z+=B`$X&NllK~+pYd>R!l-up7}AFJh;p{OC7G)xwQr*U31S@l6%U7vru_@KJNc0TeY z{22V$xc?3tH^mztf|fi)xm2n17snP26LtZFvH6jZi0iu?K8#&*!X;f9OE3hc$7bYT~Hrkp-CgV$r-%7iuaC9N!S7YKmJh(d(y%U`#_Oe&c3Mn z=sS_cjOD{!C;fx(Z?`zp?w#6S>&2r5P(UhmNe75DS0b3S0OOvf`RstAzMkpdzrOr) zO%?y@VC1lBQNy0eCSMBy1HX_o($ij3`^r}x##RJ4DDWFaf0Qz$Tn-mi;a`Rd^a+k5 zjqrc*MukhDZFbW5eQv2lTWCf(D>d}(Pj~Wt&boQgKgri;U>M#JUoV8DDT68j%rxR4 zsO}Kb;NJeT5EA@ zT|R~z8?)ZBoVJ>V)%~o4zyMQzHv3q}m%0Xb5zM~4b%>)SGw zrVq$Be6eJiiat=rM6{zNi7NwHu^as)j3?+yZob5X&T z&|wILcO{QW#YZFJ!MSygphts86Syj+bCuiIZe^>0X6N7hvVMsw2IyBT)+O5vSO|4F ze10_SX<>q*-o9uCD^?3=Ms||@gc-0>6Jdkfn%jFim}WZREb6NI=!k~P2=J*V`2e#I z*Ui)ga#0;RY~6QC&d3)Tf@r)?X1O$@RE#XTwQ_HKK}t4gToTQ0@7Jgs6!o!N%|By7 z^R~ndcGoA|x&w~HH&P{VBw0k*y1bt`v6{C;LvZ)~wP} z6Sv{wImeJtEhnW1cLYRMpqS~ODS-neKA-@yDN`t64Y19=P@o#LOcnk-d#jL2YT%fd z(iIL^FGnUjemK-GYF|0<9z}K+2o={tg|_WBU=^2^_#Pr71FofYiQ5ToZNa)bS9HN< z$eQZcbMivD`{99Dh#@Sf8X(QQAXDV4LfZUv7m|=~9Q*UD1sK1h+Curu`7|(c=&yLZ zCepl0#iw$fJYX9#Tcq;i?12wOUE?S^OnadcCs50HxNmnD8>@c#C&{8Fa)kwsG|}%t z%@;YWvw-_y(f}@*Bu_M)U9mpj9h)0Aym&KeY6l<+7Q0(=pF+U|rJN+FPh1)j8k%cQ zqL*9;>p1(eS?PN3C#>vAy z@DJg;7k;%*_TS80dR{bdptTbhXOH)wSjv_otD3f4;_UeYewOX^}Zng%&E^ax* zp&w5+lt2x~K_Egf+FGtf;kujRH6b3xeaVIRL#>JJK%V`As<052)Q0f-uXNM#E%$fK zIi5dp$*P6Ab%M%>BN>H?1Rh-}MI8FkS1(wK;2vde+d54~jcTzoEsic8mq%$5oF|GY zz0{~E?S+Jv>5dM^``v!(FjQ40<$%*sC?6s;S!l1RE^~70)?&N3-$Kv*f*fn$F`3uh z47Mw)s_suJGc(Ro)O_l=kK8jiKOLt!HmR)YOSB ztJz8k@^Wb3empq@Zyl*H(U4E&Y!u+E&F3MSn)5@vg)s`io?nyMHk_bSM@+!DuM*ByspA*XFI?Q4$E1v(kmn68VLZ7ztn%8zY2Peb@eZ?)7%wd=W!j_!`(x zq&I{Ut!I23;Nqq@AXXu29mlyzqopYOJ8_V@8Gf+#fwwVb{7!1hRS$f<<7yN|G9Hr= z+l%?iOQj$3H?%g=NEmb3u)nZGu_TNU5Sn=DwPj6_)WK?~V-LO6T{wzLTOW&Sm;R}t z-t@>!sjZS<46XiP+rM_k^hr7VNZ~~#siggySEQ#?=}59-o*s&#ARjsBVkX87VllyC zWuJ&EDdno0>@M;E4Wb#BtFidOXy=i*(I1=*Q0Yy)!pwNvLKBz_26Js=GKj4Ug)+1J zxu#Q+fG>oCmI~q2Gqk-OVffZD)v{vREPiK{zOw2h36B0o4$r^_oIK*n(Y=G^MtKkE zjoFe!MJPozp@WJtMJ2?*qG1J7S~{d-yR6Zo%wi8fKjbHcZwdVz5sz7tjgmxauQ9x< zCewiBnHx@+?WdmL#HYHd_LjRyb6GUwAW)t;w$Bv~C2?3VU95$05Q`eQMJFQZ61ND=l3Nf3?(o@l?gXi}NnCb4=VKlPIdIHM+M!Pc!2}JBa7*j24TaJgK zHHtdAI3@R*Sf0J-{+h=#xQJ5p^7JK(H~lj4>=Vh0BRZi0bXhJ@fG5h_9la%1w)}?2 zXKscv!Yo?;c_`d)^2|j|vO~tweVB?+HTk7k3O8;LtYNuyIyzwT$D9$dN>O~c=NuWa z!;JWNj4^uBCD}l$T%Fq|P&Rubw@r`6YNm|Oagxa5HE~7KSrBj1R-MlUc7Ge2gZY70 zfjzcb3(VLHr|t}`%>S2 z+BWePgUJsE>=IrHV1N?)9_b%G_(@{I#mV8}V$u8I_3zQ+F<)hFxy_pk20KklIGflg z@rW&Z!gw6MRVw?TH>R{sMX@?)eZV%TIRvZ1r@eR=JwaY0(FaJ95)Ug#YliGW&A}8H zOa+%*qtj?R-!n8Enh|V}Z3tr&XFvB|<|9gd-IYR}V*rnYff_@ij2OW{!CBZ$CYKyJ z+^xk%EWFcR)1~o4$zxSMb#ebV_mO*8n+DlSbb`sE%M*`z+CZN@98>5MPO5|6f%xDe6wSf_xX|QxLMiq^?xe%Pt*2(3W`+Z|r z=rtY=q-p4qLP3$f&wQgU~o9sDCjCZ@V_C^cT6ArziG@ZJ&I;dZ@$r064j z3)k`dC1H z%!~npl-~5Lf!n-i!(xf|S7LAHHWU7GA9#};ek9%|&*33KiaHN86Q8d`0`SV|mbKh7 z#{`oo1a({dkt)3_g6-C8irO?%8~&d>lltOJA9$Um0}rPOmzA!ynt|1ElHn~z{ zPg6ym!HQBT6d3$=R@?m>N1v2Zf^ioAYWX{}JSIlW7-l~KNB_A%M565@;j~T-nyrv; zT{(NJUCHbA&_aZ`&~!QH!Sd{D(-oC$JL5;fQRdh~fo-c)>)mg=p&jFG+d51}-d5cz zWAg(urnJ(91iU3QH~zD3?L$i2lbe4nHiUA3>H zoC`$rst6tZBBPcE6b^XQy*j1uQREzeN?7(9o@j|e5*Vl%a4)Szx;qdxo9h0cKy;T zF7IX;OyodAKjt{eV;QF`!e*B}Zawh>*DHspz#XXxC3QhAxlqgRk7aM~pRk<<(P8GC zhe*-qnEF$;&@EDob3qd0kVvgro$PW`l)eM!$}gor6#EE-el8E4p}mYSBz@76t>a&! zEn@CsY!lI!*}7UA&>>436yKJEs!yG+UWi*Z0vv_nvkvop{+C@pKteRUAV>r-oV7p3 zEyA4j>`!={@;($3F%u+YxR`Jle3+O8Rao*&Mr^r}XjsXCbR^IMdpwRD7p_`Mi)4|% zohpWKloKc|?1kP8Y{r-vEL2S;nNhR#D)ta+b|Ox9@7~^>Z9}oJJX@Nf-U{`l?)}@} zhe>OKC*5grWa5uTx9+(E7$7avDIXZN!Q&5X8%II^U&hdA z0`uU+`mnX5f|q9ost75sLj&NM z%>1Nh)FDWOOJxsHlY!U);(#GL_>@5fTVV12G*~U(`OrBsf^lX8WB9jBuRcSO=4PLPA2(GM; zPV8X}4hlx;gsKrz_uZ;D3L|8W*LY5p!)o^(--w$L=$gokfIA*-+5~Ll8_}QnG|V@; zHdQNRc%~g_BcV(DS zn>d@p37!#;!-4s~W}?7jfW6{jKt(X&-gTpT2Qg=hJIxWYqv5(b8c=ZxF6a71_K1s@ zKZFy?Z1*hm2#Hx#rl)&DB_w9K@ifdu^Lo`C6dyZ8LV6KlE%t-%$#t@LoRxhQ z!Z1GWalOnPGOj&HUPz!etpKdWF|)mZzpT(phR(#45t(Bm!l5xtodRqDRvhj?lIu^{ILzq5LgcWW zvWx+1Y-pT5O=<#1SwedECRh*pIGk8pAcb@Y>j~OOeie8|%8YGtZLhK1wXladPKsDG@6lEFI^->&+wyo|PI2;F&6y8eiHbsr)rU2 zigzF4P~$DVFezkXaTcXv+5tfhvaWBboVYWkZhc!P1VW;3;f8J%bQ@WHbZe1A%FI)o^Ngo* z+`&09JM6l9Luu;{la>T9hFNcfV|vDEf=4}kpt*n7PGT^TJ7K7E6t@oEi8u`XUm9>8CO6>6(E?3qSJvPURnUuVQli5(auowZYMLWVpLqlihW+HK& zdhu7Rg@mSa@Oxw8Na+KVzXvezWW`~on;Ohh)C7yb zg9s}cm}%oQyi8%s(szhs8s_9=#Yc?&N)dLG1gEW}?FhrK#Ju41ZiM~B#ES^mze{iB zu!3?|Zbd|YBn4t^*dv><$z7KVm%<`(onlipRg+BIL$Uo{rw5FZQY_oqWd7)Tx|9Js zLBK<{rAyOM{rOY^6v{MwWkua}CcHEoaGw_`WKopipu2(pZ^nfKOikjDQTjwmF78f%o(D*eFIpmQah z0kksVdLq8<3QM?52}UJF7abcF+fWxwgtS~HvvqIiyew~GT-@>Yy=l(XvfsF2@-AS6 zn~LyV-gUWyAxH1gXV@{ePi^6D~ssn_`-5=h5__d zi&LwDijzl!pkrLdC^3DS{)f6$kn>ka`Y-CTR(19(>dq?AXIMqhy z#4}JEXalgsU;PehzQJkvBI{d3gg|g4M#agQ(45dpbERLZ>|Db_GJWqW2XQI^c7qNM z^V;S!fnvY~QK3T!`Dv0p!0|B$eau>cgbI;<)^DEkI&nQzX#7kIF^!C`$0LG~Jwt6~ ztFh6%e1zQ?I$?1q4xHbbOhvShtSpKrr&3F{rfsHdl|!R42t$}V1>n4lO{G+? z^YW_*G(t(Bv-y%|cQMQnMoO}+SeuDe7TgT}IRren0IB2K?1yT$9%rHP>S8C6nI`(j zUwI~djVlAAUs`i?xBm_-A3GF0kS&}P2pa{V^YGaMmA-g>vZgYtn*^7o5Y(aRe1_Ij z@Ro(eY(aF+td;1dd>mEerQ8|)JaPaQ8CK!woH@B}Yk1x|rIeH1;h)MCsV@?k;_Uyl zTaz<#mltg6bTaE$y^GkdW$CFi3aGEP!}lWw4rDU$yGQw>X*M%e*6~Y z#u!6k4^0h;VZ>D;&5^)_%1mT)5hv!sBKspBXD8nM-)?qKG z3{aCnVO8d0NCrlFk&%qOe&Nc z9ynmI0jlPuF`)#rG@TBbc~LrVl`1$fRWP5BnwY>^*XTG!-g-Yevq4Z4GTNybePQz_ zWd#`$&`c|7DrHjqxSyu_nawWOR=R=*BV2#93xY|Bb)tBD}h=Vy{-G7v7@zEBe#Ate%ri1IO=j^DX7# z+&j`~7$u7JDxQM;KD839Brn8^c*rUOKW(l(`@V@~+53&}t%)Dy=+10W^v6|@^D9x} z4`jCfWT}*764ksFySuBC?PC%Ti0gWjG6W@6Y;rbyVBIzYq=i{jNfn|wE@Rv$P>E3` zl3KJ+Do)xY@*F0ZJ{%v1c+V74yl6;>#8rKqrH-4OJ zl0ALba+#1mQVeYz9_1&&hw*Jp%EBC%Rn_pEiDRiz?$=y6K8#r`j=1kaUf0>cQC|fz zMl!up!z8GbbsT6#^$9AEV#G0{jl~v>rg9Xz%A^IBPSn<9Ce!b(Wj;;QQ@}H37=d zY}5#2WZYH>+3vL)YsFLOU>3bB8eoYcTRWZbC#GOk8k$)Zxz`e}zT|}HD5_c&GSx-E!U~PJIAl2lUKy;TB6^}LDG?+3@GY|F%#rkD4Ag5zsjUP- zcxb<$L{w)w+i77wrK&8HX0I~pDs%bccX}CHU!Gkfn)K4rC^CefB=V1(~=vS z0?i%P#<$k=c}18<&%{9`vDB76j0JUKTqT9o0Jpg+o?Iw{hP*cXkWuJlHFyicDk9w> zy6_QuL>J8SlsIUf?6_%%!s{{r?C=JOkud&50W9U<(}7|oW(fuh{L$Y|tLh1c-NafF ziC5LTS$2Clj;107;5Q5?S6OsUk_+$KizOVVvVrzi(az4uFPt;;G?jn)Wy+;YLOBrz zqZnzUZRzVBkyUieWrk?kqRe!9&A8|Y(Yh!{w#AG=R9qhLXC!`DT(nAg$}ZoG3irk; z9TAkvltVXJvJU6m$0f}`m|KS#QYZBJM$E4l7QM+(45KMwmu}3v==&v! zS8;;0ZiXo-28rX$tTw6VJCm&z(oQ*RBjP?;M(dB9c}-o0BT=3PnTGbgF3jTmCQsDg z)#q9il14(vkg`AF#${U6g3e`T-`w_A9Gk9CGA)sRb<1FO{rcY6pjdKtwEoDuE05A6 z;WSj{Dms}O#p+p-F;!#)eVOK4 zz3Cru61Er{x2YY*+Xs#`gSizb-mdP>tYTF(wsB{F#GJICo5@cOYJf1(v37t!Y z@icweEL@QMekeTifNrMZ{*KxIG{vdjR}PE#VFS_Y3tETmy$FRc!h^mInXY0$>Z|+g z`V$egaKcSLHLww^bqq)$1%<0$c?eNQR7@yT@{nmbxa(jjj7QUOj#Ph)2Q<(P zI^Ip}=Xr|OkJRQC)%iF9?=0e=7!L%5u%&=jh@v~}{jvo1<*)oKN+i111474_!=ruY z;#Nxr6S59yQ7Wtws#gf43<*M~vt@jNsA2wpjZw@Tf+vEk@5C17W|oT1gGtT-vHeL) zi>?%qn~4*9>Ga*#P}wth{<&!Cx2#6)IaY?Mq!}Nik{*^Gb=IBrlf)a@>+pWhn{jKv z*x9DTo0oQ@N4#$s<_{DS-W3)Ur054Erm}EK9a)tu2c(d4#%dFsu*jHY?936l@(v4V zh1+H?K*Sllv`k$rE~JheIXf~`H2DyHQLq|q967xlxE$70hY{EyrGmSpf(cDKFP3Ol zgqsd4W+`4Q4=GbXSjZ~MmU4lwQ$ZnEOo_f7reyHPZ88}-?rS?nkN3F9DOp-SAIE#J zCI@njN8!q1b5e-yEVc zArS8XGuY>fKN!>#c0F|<)E)?Fg9Gsm24M~!qRabhl?GKbB)17@06@|ZpJNNPLD@gr zAP~RkB!hndEh-X3dkYgJ8iePNerbOyAu817zP%C&6rD(=iMsNV2i<}2A#fpRNt}aA zVBlRpmmb+#q&Mz=*Xw^ef`YVQ6^&2%_6Dq}jo$xV$KhZG5Ree8oJzWa1c_Q!1#^$)N0CXvJ@k$OIlZ{Z*st&7spu9qT63K;{JyN~@3C%h;- z$U-#17DjnX3JP5rP3-!HsAvWS9)*_-(!@3rk4bABqKh|@RqS>WF7qUtH8Ch_-eEWj zB6CQ=M1%O(i9Gr#2lmP(GD_{mdry|YwvJy&CBCx>a){|9+z2OhGNOUI@i5##uLVGl zGvMk%AY?a-yX@@Cjs6JfZtpiduih{gWRx2y0cJf)l)F$)X_!#ar;UCPtknGoEDV5H z)F~PoF<*5D24LOCF=U7RvVpr2SX5lKt3;B}lbm0$4hGOZ0e9By8dXxA>> zq)Rl@j-C|A*6p+G7~bmW6571-G4E11h5yk~9uxV81*~Xw#UGiQ5xM7ztf_FStS3~%hg3Ny(Sd9k4=g&(~!wkwbj6-o3coS{^QDm(Ig~93|lAk5x1fMi5!8RyhLUCPY8Jt zZ9#mq&O$T>0s|gnRDDc68+{Rd4i_$Yj*f<;q*;|tiVNadV=dt{WhBE&UnkJ}pM)&5 z1Oj7{X%D}sZj@4aflRR~J;Dd4{GjyJ=RUe3P8TNCMe^n}*vGWpO>Tq<-xR8fkP=pv zSgs|@Z80!J2c$z+*Wf%(MkY%K)8qZAiZow&@|zbFFbQ0b8 z^VqP4VPc@h;fbL)liAcPg#&nc18W9prgjUP0D?sn0q!HGTg7+;1?lNAwkbts#BjDz z{Q%fBdZ-5uJXg^d$Yi4F$WZ_icpLjus;~T<2vra~0eDdDqoWwEFPJBYVj@!6pP)-e zv+|MTbT}ack&JP#^p&8Z8nG6DKs=d+uxT@Wep!co@hv<1r;O4hjgyr$^G}m9By}WDx)FY= zrRRa42<;5ZbTONsIV_k#SL>t_msv`7<>;aM$B}+=Obns}A&aMZxV%NfOp{pDA3bs> zYVvwja`?ioaMWf-+NozIb*zQHP%KO>eR(^CB4B-#R!sVAbG0O1ORUs#n#{;Zrmm$V z2CiN&9gv^-ho9HITlp;KOl=ET^H*m1VYR?7LJnitn7uGWS?)uaIj>w51H2U%|$cIl55us!A2R4Y3a%idxRA|?4^%L;v zL#9)LOG^j9$Brduc!PsAdBvuRVuX!Frg;l!eGTssc{cH+*DpL{A0B%!zO1W;?BdFV z7nO$gsX0|=_VF8aZlJs5<#O{OIb4k!-4E<)lKOKBt=F2NFO;V7Jx{HB=c7WYIaafY zhlhrsK5ybZw)vFke&*fS(}lDO^&%h3Tzz5PqN?m$hJN-j@~ec@kDJr;<~B$2?h5$w zQ?DW@<>bB+!g7zexo4*HjKNbS z>2?X8IRlY3?nfBn*$oUsvntttJuMB+Fc3G3H1i{I7GPrVy3Ln}6MhPFi1A<`y1MD4 z2geb}d(YEMZF2xGY$D74+p<;dM@e^D7nDi|ScU-gj$EsFT8p#~dWoRJqG|LnD@- zqHDy|-36n`U)czUg4zpMljOPWV6otxStNwp1RUuLLcx8fiz*M!Su`ySu5-~R*19bF zI12b@e3G?LC}odRZKWT*d?o~u7%p39^p%N*{x6%V%J-iwEdC7{D-}=OYYoedPSa|$ zi!B`~`Hd|tcJ%ZZ%m2MQqj_D*K4vx1DJHjKv~r^4JH{TT1Bes)^xHgvU8jCa0sv__?EG{6DEmXTq%Gn#g&@ana2f^e!N zaJX829XMp36f)07rBID&9rEKaIj7Op$PKc|EM*`L+(@QO2wIaD=VO#Kj`HTy5n^r& zb$U5vtr-p(B5UuXfGd)c>oldToIZeFIii!Cr zk7_m!X=1svdmR1Lp!&2TiPcmWJ%SgU9aW@u=St=J8&QJ+JqPnRoS-NqMBw;m-pb-$ zR$8}7w=7F*C_S&5txPe#)Mu4Cvs1`@ytAcx(w$zP;{Q(*N%DV~CU3sH=fyfl+i#RE z+`^xc(kP#C`mE|Cq3Ia>rX~dpPYUK1j&)+&)u!|19$y(+mSi2xyz4Z}rKa$DLtnO?>0ZasXTAj+wIlXr9+As?#4&IysI?X*3I z73twJIXv?5akWUjPt>r~P0c71f0_EdFXi&!3mit>i+~* zU$bDK5#(45NLzJFWn-zLeyfd$U$SFKSNAp5NAM`}Hp*E)CV>sQwN2Uw%LSC~%08*`%~jQsW!5TYIL&7(sQB*<2>+ zKMDH5-JKx+^PF_0C}qneXZ7g$3HeKn1M$YKPrJ`~-s&(rv^h_D8_QE5;F}V@edKF+ zpOGlyzhbc8wzC_u0#n~^rv4Az^M717J(rtqu_JAK;iaE^VgjR*i)Oy^xz?bCKe zzvvH5Y!|nJ_s)2+#JPD?r@!GCP&7f1zWRnC#tx?or_gDYqmNyCn8`xE^%9|wa5*+w z21Et~wCx;C`7Q0>dQ^Vabnw12I9^(lO`_!fy7>~fDS)m%{3|3XVkHQr(v^QaKc4}a z-}Ws|!|boRv`_*y7OLiOa=WZ~BZ)079NC{Z@{7OU%J8E)a>yw+@{$h@uzTYB)Z13KX~oh_iQb~FQGgB{$GE{w6JSA)m^K0oHCh%Vx`+e zpYbl`6ZdG!A6dV9Jv6h0brIZo_uqfz9y{coZ*qS=#TxAIoOt_L8d-&I!|Jpj{_|qa z=rW2~ACI=$|0V&hoN-h;{>vs;D?w(9-1fY+lU#oggtX2GOjB9sF{D0bgqt^#UikYq z)NDI?nQK}@_m^Q?;7|Xge~sAhr1szMhZgtzqWpGb1AFFbsqewe)KVZJ#Phrw)bf+JWTFIM59)647!#gHdLf1$+~)G6K{JJxH?w~0UB|WhS&QQLEPVVrw_b z{oN=<&cBL+Qng#_kLRZ+9uq!%jE516)n3kSELOD}Q}#ReyQ_?R?>{>1+qW{@dz%hU zcLNL}tvB08PqZ4n#CGmnfj8I6H*I-#eCn~lSAX1E>)Q7k(p9*3^h+;wx9OmW=aqje z4!5L}ELT_Ey+`-3fYE z9>lXc(s2jG=l^n51`3e&KJZU&o&@3K60cF+Nd|z=MK=*{#fJzX-km4E+#t^&|3M`| zwS(&kMFntI5jvv|!SzC}LjDL&dp5Cdccs6W#2p%%In-^txwYeop@tMfV|L7nT z%*7(&$w<3)_a3?<8{9dTJ67yg?bN(`4G6-|4=OS(>-Ti8+;Arj+a$!`W9Ob@-mE5J zW@g`hyXE-^H$GJk#u2_;m27P+eG~Cmm5uPZeb;M#3^S#b0+PF z`est6oo9R>+sbB*n!|IIPK6?&oKlL`6*8V?D-MT+;~1{&8AT-ObW4S0eJ>v+3W6j#z;| zKmheU1DyK|D+4HD35J38$qh#B=TdjFBR1(+Gn!!$2(p(edsdHsur+ebv@cm6PSnrC z?|ktVaU6P0@A?(~J*-Jcnq2=U$^E&h#C-<%EGYyPAlbekF$ zK>tDD4Te#xbnX&KzMnXpdplHey z204CWtR0Be#BYIBMwu+?qe1wHU_ZC9j}gaIm6163*egng02%_ohyubY2M7d{(9GqV6!aJ4&= z^V%1KRma(_HiWO0OW>Far()i!BIqhw7_4{nW!G)Lv6RJN^x?JUubaJeQ;>18NbCZC_p^mhDc!0mify=_7_6fBa|eLk zBQg#zN(0E>f;5Q^K6orJ^v+~m;n{)osnt?GRCZ$0tfH4F_~=9Z{cM)^|vMPrFN5s zxzbC*#YkwNEO)B(#C>yfg=A+_l>IfBr~P|y?4W;@LcAvisW#L>FzcHPqhezcD(ll) z)3#6b8^Jy!`uB^|XTWP9UMu%!n!0Ze5R4^7E83-9PzrEcLO@tl%OYg3N!PIZ`{h|` z=d0ave52`DAxvd@Y`}@up5xSS)RkBz(pbZkvD0b?1H11L3W{)cZ^`9vsH7fJU%Eo%xjAJ%bf# z0^J=PN-k`Z5g71-Qn0M*@ZH7AuiwC+4W-TK1Zwkpn?c855t*TgzwBE}^nk#O4frTn zXAiA0@J%BZ^k_1=0eI?6L+L5f@xhC?Cm;V{jYh|)z;#q5V<p0Q=r0C%g!1mDsfL(k)L;9hhH)F53QsJVaJD8sk6U8_Y z0Lm$CU+x-uIx8N2+BD#Ss98zaazv@%v+&nZP~aC`Y#cB?B7_o^h9<{>^>B20NP!nf z`Po<|f|PI{UxSC@QwtrzW_W}lnAZ{yFDV&+QBk-`AKG)FJZ}PUG#H`a8Jo0U!l1h; z08dxm9a4RN__wO#XC4fakcls44Wd--2cxC1?N>Vo(Pqco;(D5_bhi6(ULoQfe@*w>Kd; zFtG?_?K1^t%39f(7K>&Q$Zmh`)gYBZagu^96ZL6KDWy@fFN~nIxKC#(Qn~*FjX-k0 zdH4n;M@yx`?5rK!{-yF%^~^2?JMamFfbKhP?b}Y|Xm4~|op@my`REmx~ z#DDk{h^n|qKVVBwjrU>S&^l?Z-?OZ96%HsRmLLU%fE)^OHS4Sme1szpwwVNyeAo{D zLz_Lv>R_58*nm%;hTDeVBZLFrJ_H;b;V6yl6)^NH7Y&Mxvd|DR7{DL7^M4!N_FwP$ z{s(Q&`a947gQL_;(`X@pG%+;fe=9;i)w+DY>3;^VxBLD7rT*uy(w&G%pZ-x)6X%gt zK-;iLNJcRDup_V#(bf}>;eP>(u;Os2Rb@;+{r4nmushx< z=9K~TiL)WbIB10(;i+4EIaeu0NyM@vGcX_}XM?$pDUFJ=#rd54z29%o{>NeQxxZO~ z^YA>n>Bnf+tRF5*7}j9*{y^pO_u+sc!~06belEqgr-iU#^Vlh~=jpKjWRKP%IKO53 z)wObUw|>4G|5;zo*T>B2GhLjYQM2~8&nsb|Pm|^6=WVjPFa06&!lz-n(e`}*MS}_7 zXP$_}{u++HMQhd$y>ee`zB3~hn|XbC4)OrKW_G)Ys(AkP*I2EU4K?GX)oYxLnat?(xPKaXu4Y=%{@TsZs=DyLc)f1Mdi9XS_4`uZmhs5-@!#{T-X6@nPSKa8g|^|8 zp2~RkTR(ht>n+aKWq$ig?JGWV#z)uv)2+mob%l$4)1!vd!+NvNRl7Poce-*DS!w-x zzB_GZUu~AH`Tif*C(WkF(D|US9sz2Ne2%@f;c<^nv>D7MkB4<=#5im6u{!S0HD`tE z`@MeIN%w75t#@ZBZPIT(JT9X)gZFX&&U}FZ>cJzi$>({jHCM|$WGMIg9&>*fSIxfb z^ZQ#9gZ%WKj3c)H?Q-R3T=@2vfJ z=V^2EQ+h2E9Px zeH$H$Vn+f0p7UDoCszeKiON&361zJ-!bSkW;Km`!Aj~cx<^~2pe@|uC%s!|Gg&uVH zuhaH7drJP7I6IDYsrk&m^Ok8H*cYULG!74=kTIef@DHSXUgP^pTQ$xEfeZQXgZICT zJI#5X5tZz5bsjW@QPnj77~?3-R;Cge3$ygTg(l2BQeg)p;4OYW{%7`z@N;6FdfR^{ z$3aaa+<3e^?65I5noAmves}ryQPXg#uUdN#hF8hZ@n?6lq8DsLS`TjDi2ap^R|grW zlbAqOMwAj~^^tpg_Ywh#^4G2t)(~1MGZMKpqh& z4(`IB5g-b@Cj2q1z8Ac6=Whnghi|Fsalh7x%U%ppJO5@u2X z?~Kflg#PZSA#ISh$pE&15DjXCHkP%3a4l-GKUX`tY5bV|Y)i%NK|sMF@Q;aXgneeb zrk4Qm{OpbR(#DF2ORPs>F8$3Zv~NPIJSmj}1~k}8Ag8UWbM&cC<1`DxJn!>HF6P3i zwAamM8;u>ggCd7hPP^8Tafh7KzkBDZHL}Ok1%SC6JYR!Pm37h+&SN<~TWR&G z`pvf4I-YiV8U~fTwWfRhSNhc00VX6c;5#F@(7mgRd&i?QLE&E{CtASh2rftb$Exa| z_4SQtQg7*O=UG32WUR3$ZL5;IiGO3FK|+j21)@w#5C{`Hx z^ZfU9DxfGG$rHj*V-~4*nQe}gy8g87PXm|x%xN>F-?^Dxq4%xr$rxyPM3T6 zUZbd?WmqfUZKSH-3_diGvcc!rTqvlxm1i)j!?O9*4BRB#0fzjsyE}>4Co$(_G*%n- ziV+zP7G;I!f{@l6Ae`eDjQ2YPRxVOS{#0sCb&?5W4(CGx(INDoIZ3u~^BJ*8|8}hA z@G|(NbxNcSs*hgKO@Wxk1bUniUj*E($!!CDLNT>PEv<3H>Uch+I8TVdDwdzCF+P@3 zd5?T^nRy)aC@xT}npq@G3kw=UeMx)25AtbQXvJ_@_b^MTYnCvmF|;{KEXJ*TPQEwk zE=F9Z3`lR6CC%233l}iWtQ5UDtIa||&jU}{{y9>%ojwkxm^vLAbf;3=P{OmD>7rZD zulbm;Q&(YiCa(FlATK?!wJH%Mv%3U~otm268y1Tx7C@-Vm?CxY3Us%EyZkuNw>zt6 z(_2*4baknIrKaW7AUov(8B6#2yo_RC)zuRqOE`=D| za7R5VQ9cDJcrQ^9)!&o>t|8SIhJVmS?Zd-c0$5RrsKUX^g_4EvY4tpXXeu(+0SqC4 zkhrW4QxT#nF|-pLjZ0w7wBPahzLvPz<;QSl7814AT+W+rlK4jkf2T(=O*pu|qk=68 zNAOpNbpJJ%l_`vsad`BL4o%V6vU)*tO{MZ0TOS4#*b;n{%+LfLZG@Twa>drvU{d8o zA~@O-H86CDyg@$f*)6!s`*#WLYVkFF=kw=g`yKby{%>pg-4DLRBx|q%fSJgIp{=wa z^1Pqi=oLJdhP@sh(O-xruRW3w(w>zR7AOA)^Be|x;i{y&q-KhLts z)&6Eb&+{PyVcL1vM1;^WG-yN&V`3u&ME`r*$Y6-U5g7zTe;oVk1)zUK3ueNgVqqS- zCD8J|x99M_eMq&3dPF0L!`pbXz!L@y{J+c1G*iF`8BoS{{ufi`>PJ1#TWCyWqZt`~ zpX_`2{|7Pt|FxoA6$zkYU;g}`hcQezpV27;6F`O!EUv+*c-_Y6pa%{)d}htR$E1C^ zR#q^I9_J(m;B%Rc*S*|Gc^Ttfzi8ZzkRL+(@!oq%eTFwNj6Jf?O;4%ax@hp%=e1qA zYTN$fYiTv+z;11~1x^ebaMF5X|ztvVUGOZ}E$_>jRz%D(=3=ZEEuFl=*0PkY85!)AFt2 zad`iijZNl3w$#fqt^bsqcPB^1p{<*@Vkq(Swzy0s%iFY7uGy`h#Mk%gf9I#2<4zaf z=24rek;>?-|EwM77E%8EA+lf)1PB5!BO0&pkf6L?bKR?Iy-iO5Yea`V`0^$(_HrWvk zvIg5}Cdi-%jgb13B7P+Te$}6fF#fWB{VF1p&osXb{Umtao&XQXW;gM^;NT^|vnF7N zg|GIk{Vbj}NJ3fw;hHP)e?nh7^STfdFb=Y*j_H>W z34;KI&e6?&{$B=z-7jMH^Mco5dRX@T%pW?UivI)MCj>Erc7VAP07$FJ^&G{PtGY6^$PEZWL6L8(y=s2e@;Npbn`vFzX( zYz&;UtEPIz4P3J^i`GYBgf=xzE=L=h3q#GpnSEm6s8K2z=6Am|ey@C-K1#D(vX`kBtl*#XM+gW~X2D<~f|NnA_E{@Ug`G*Q< zlQ0Gg&S2qp^xvaY^BZiW?T*U0I4%Xl-Ugbd_VV@C+FXVi$MYS=94I+(6B1ARJ zG8I>lF2vq^Ep6dIuDILNF5YOYssN`G zLP-401^50&S;XBws@9Jy zfrE6tb0%>t;K$#aEL3jP06x$)qS)(;j*Mz5hHTNdx1)7pcOndkA3o>i*}N6vnn5(c zR)<+45&4nE3NLPZ)zuTaa;9VG$n~-j;oeZn&TMJh@Dqq{N$@X(LVV(U=!JXfQArHw z-x5R%vtW^;+5+fZ8Hol=?Z)7&(SF{%>nRuRn|jSx{g;=|UflfUp1(nW9|e+OJenIL z;;XqL%g~aHP#M>li8Ra&T1GLM0sY&iGT8Qg%ii~3mKT%B$U>8Ofq{=px#smWS9bKB z*!n4Q!E0lQS1*O=z6n>wXeccILgmcL{GsxEaGLsX{Y}1~$6wU=>$Dj?_wL+a zFdH-4J;UXePFH0k8~dL{^o1d(x7nBPKd7hga2cUXh5LQip7QtoH}n4gzIZ4t)<@Fi z+`@h%rQpST{hrON4If)k0UJXRw2R8=IXP?$&)cca2Vm2;-~BIluZXo=-_!@?Q#=Za70?eoW&0@o_XbN zC=ebpa*vux?i~w;|DSKF z#e^>WV-E{Cw&8>tZgUjSx^a!9Oqpbr)~T&%xu5pl*~|I@Ul<|}(EXw!ilk8#MFmA- zXYzcXkNonX=N!X49XLuzxE$H~e&@;m7eSToGK3J%s_hZ-eLr!iYn2(4jYC^psl-UD z^8ZKF_olbw4d8@p=KZ~7y=c2Jn1b7PH|)z0YcO2+Z3kyo$Zwe5S`tjbaCm8Kat2-l zdILjBR}Q592G#1$Q7mWhSNZMj87HUKxHq|-SMRO3_qtu~FH0%F-^G0Wc^%(w0yIWI ze0v*8+MZsH9!KTT5r~qL4ElRa5GC|JNkb+fppCT~IiDru#!Xd6Wv9lrJ;nd< z0KtBEp+O8-J|(2P7nkIU5s2p)bDE_xV^MJyyxCd}=Fu06z;O0+0|O$!5a0ZO%xLC= z`;K^kT83mVyC9+asPWJT{)I4L9QZCPNRA9TASN&dcRQ8IY2p4!a>Y;s^#C!)8zdxZ%3~R((GE4>B*w`+?QTaSjm6{F za}#V4aE+LappR5kRFl#5Pdq_ZBjqTueK6 zAhn?AYVL085nmyEAt5GRL4&~GcVA_s-J!GuC?0uN?z&ycg2me=juMpuq=l z8>uh#{mrql8XIOLR|kSSFVY?#k@_!xx5s?r=Y0O3Pw;4}s;a7@sw$BJA~6_={$4+j z_O;>QJMEWJ0Y02xE^_YG4MR~kCmS_20RaIyGTvtXVcrkvJ59J*kPR=dv{p~BRCDr? z@G!JX0I4)Ttl)sP-{S;SoShWWfO(aXn~|1tw$r{p3v0u`RdD^Dqh}%E=w@uK>zBPw zvbfI3Q%K5I#6&gUom(hWmWuRwzKbtYv+q73@DGBXw1D@Z42dF;j3rd2s*XU2h!7xW z`RCd-K&6GT^wnZ6E_z@5X@?;OAZKQ!9AabR-LLM;*OLMfImAVxc2ZJ|RW6Gu+%X+q|q}l)G!ZuO?DOfHZWZq{QSzDUED#a-x=hg$rJUvved(w2VU6n3sr{ zxT)3^jSuUe-7O{Ke?5%l;wEZt)j3FMw)rU*)&b5Q8maD1Mup3@%+99qr+6AawVQOG&nc`%oAgw}Xkc=T^*gXjeSVp=~Asl96eXdAmU_t&xMGp^Ai-m5GpYlcSW2j~qXoHrQmW!5F=?Wc+S_+RhGa zW#O|;&M(WJWM*35A)Bj&6pZv79DLklBx6{5e|DH}y}(g4yG6Ikz)HZFh(AC^O1?Cc z;5+mjbflu8802+}Bw{5QLdCnp#KJVbEfJ1z&&-9fsjRNWT{}o%2B?e-3`7KsgZzc6 zPOkbJWFQ~y1Y3*cO?g7?CF0k_Ni$nl3I|4Lct}U+xVdR*s9St&WZc|aTvXFbOHt$* ziY+w5bImHb8-a~A7f~q^=}snrfHb@`ul+{TEKK2^W)g;N@zrhUP14o6iRgKmmj~%s z=y+xHwTOZ%mBM;LRw`Ci#xf4*&1{i|kf5NY67rBQ@hnXH=n|GbMl+dt| zk%^pfiHV+xh?id=$}&yP0n%MlLrYB!6#|tL)pyBg>By*f*ZHQ$DT!HGW13PrGzqxJ zH5|y`}#Dpv? z``;KwMZ?O<#;~VvhmK+<03Ni(?{ro{d-mEB@j_(mPtchNO z?ejNy+d_=`{Cit;Tdz+i6Mw(f+1J z4fXaa4e6!nRI^%AuU2q3c$k>z=HO{rK_@v8UjYjX81nNLdvkn{o^XC?a*0e@;vXX6 zC@H-?C} zd)<=Nv2bz_G7c~>@%Gzmdj;>)j?vE$j&U);=578408F_ua)5e(jDCKQf`fNoBqN2g zCMEs3t`=GDf^mSDeh+n`p;DqEA|yf1ddMc67Ws;)TE9qr=Kq^^*?-jbwQKrDjayTV z_f<)9v;;X&p$pCrBq)%FgPe+_RjO4N6$EK{OKXElxi=Qe-OeVGMgC%L9lf}LIvn7E zUtNe0GC&dEU&KU&WTb>l)8$MAyW8AkoLv1ILdek3ez#Ij6wH%r%;P+)t9#U4J3I^o zyR-_}iPz^vug}g>Zj7p@pkE+dr>CPk4d zG<1{%J41{-gD7Zdm`l7MkdA?pjc=)C9Q^#*12HETLWiiC;c%0ScZiF;(1)pax41~x z*Ex1*37egrvT`xP7FFVM8d?RN`YQo}iKk^McUY*XrzaOE*XQYnx41bKQBZJrM#%9! z7WoAFpm=b1ZF)^`Yjm2KbzH_m9v%8(>n_mq2=vk=au+TLTprXbll3o$J74DBHS9Rd?>WEI52N65g?OD+;mkkO9vk#G~P zhJ|&0s;~;AVG|LTn~KS~$K_715lrGlJ3e6K(+_}w<>MUjY@c2rAQ|J?DF*Wg1otf8 z2=N~r{@+ydIR6P0_T0u5m`wu!Xu&@qMw5S-XQBl}CxkQ5i?D&8id?q$cS*u-dDu%! z2-VRJk#3NZYQgNoSOg_O#NYtdU>FMDl+Nf--#JPX*Qp}4_-B_AN&>ZE1qA!2SYB4A8E#mhy! z!>W#NgPDMqjh2q3pm}5>>H&<TrYDkkx@}mQV>zEqHW3oE*E{b=$TJ=-f5Z z=;0(H-=5`z)XUUNq*R!Nm4$?mR`+_0R}&Kw=JO*dB;5NY5hV8;1t%jxF8b93VSN&B zKnRBj2Ke_{3JIYa)F06S4Ghxj0RZ^<0S5gg9T?0R3-o03#5J%)y@4A)Sn&-C%)Anj zu5pn{-yfBUM#IL>%SFOR%EP%YXMcZ(kB?x_Hwy|Wr5(g*0pd;`8SSD0d_+UcQ`6L7 zjB<>GW{hwS@KDV#Pj3-SVBqBBr>Ws!;vpYj9^>0YOPmyg!~9H41H1G~%ZrJl2!R}s z#o^)d1_kP|Wjn=`G>D3d06WD)Imb{4x96t_Qnxh*;S}W*vMx3ao-z!cT zu#K{?ad!wvI5`)m=XY2~ zm>2O+N>cP7#sXr_W+ECk9{MPyWk3xPaPMtI{UajOUzWPq+^^boCTDF z?|z>EY%zHp_31nvquQX==b;M=r}p? zZFPW<5)Y7%jd8K<(hu@eK_6`40^u-u~|7?Ee1!5a}Ks zAR!{AuMMzL%|cR|6`&XxLPv?{r`h3XK_URb{Uek4%wrhFo=D&x0wO%1pkZF27MKS} zsJQq?w=m@#>iGo&4;yigeU6TNiH?SdyS(7>xLIl(ZXU2K+T2{4y1KjFZYL90i@~!` zozCZTx!V`9%q^k-L;@pdh;VpwdVzX~iF=55g>7txLMNog=?T0QDk4pcxxxjwi)Lb3+82HIPzofL`blDS*cy3o)f#^9J>xeHVZ7xysr z3cjr)aYi7QdS658Vy`}?F@6`cdwuV&yau9=TWOAL(r_(9K(Wxd%}ve#A_I74WIzBV ze?ze>6fUXde*2`-GUU1RRrim!co`<(Z=mUNpv*Bka(W()?wHo;x^6d3%<;LM9)F+a zxt?>1XY`v)WVk|2O~AVdk?WsH(ard(OWHO^U#9pj`#jX|rV?M|=l?vF2z zu@aFWz(PLCzgnfDARs8BWEx_jBBUb4s5TU22uS;P7#3+u&N=rnB;eRrPKqT9S9lpKKczmy_xshU&HxZLa}WI4DvBZKEQ@4N(0(I#!3#ga!D2& zGj%}57@3w8F@;7%M$l~pvbS+lv1;_o(7?lmbN|12zMWCbhMP3Vf^p-}p3!(`!%je$M;#0-wSe4YvDp zxeWA(jO8OgI5w95KFNQx0HCmGu08x~J#+yQ06k$G0>K@Nt9J3kPQ~(sT_>=HDD<{q}5kq;9B3N1t zz3As^^?ZefwP_LyY^a*P!(r8uEt&l}GC{C@ z$ro$pf@z`kd+0G#UBu&Hy%n7Ki~I0|=EUj>UekdQ3Y@@n)E^}iy!3)+$(>k%ygdMT zFah#u&=B8Iv~3^W8}Y{z4i}pRgmS!z!jjQXaA`UQNRrM+5hMbyLR|XW#F3Ysn81@F z=_UrVe{;0Kwnl8cG<0bOyeoJ#4iRMH>kVZO2W!2>+3(#&?xqIMr%OW^l0HY0{Z%na zXQPv%!pkJzE=gG`J%Xx*6&W@XNOALSLIw{%Pq2_7fdmn&g&qX!&L@iX{w!O$ncxC* z^G5!4YmlXO*N-Tt7RTRaGPO*C9Jh6!ztQvrBD{y~!-|`C`3$>iI^AyKXOmIS9x>xB z-jZD&E^#rZ7=>sP9rfVTH>?tS8JQ!O2cyLpyG`Y*;C6j**EDqzDMG`9cwUqb3BkqN z=CImL2H@)ZtsaRcHQ0@gDzfvW0zj57{P1*UXmKDpyYzLZ&$Mt_U**1lCed%ejI7C; z`62C1hokVj>vr~a<};48%+D;oA5wu2@6x3Us#>p%V8PVKu*|CsOS?CZE!Z?BtSE_? z_eS}#I&RK*0Y$?JI)JMFA5<1OhDE@ucW`VKEDhn<$Ubju83h1UB*sr3o5*1SB!-f} z4w019;1OZ!0_$$D=pM^(#AEhizAcJA3&F(EuNB@NQ*iGIH@?lq`Lv!HX$*5>RYQl7 zwVqQQITYp`1~_eYOV9XsvuYio{IJB&|xdJ<<{R)%0* zq9Rd(G0HSCbcYX(yUsoro8;%wKNCNa39g#hq9IS=QOoRi#4%aZU^+hKy{4N@49_AdD$?d57U7Sv3{}x zKFCyv2uFRfmLNtfm^d7f35h!}j51k}wWNf*;?Xg#%CsffSh*8XMeWXa0RBgTUxN}xe{;wEyD{hisM~ET3ty(3#>KLn zhvYhm@(%~5XT9_KrUbkF6Z#K>CK+ug<~Rz`DttY~V?HR+>DrjrMc0*9Y#`c<=}fZ; zGd`m$^3EaX$;>-t%Q0>`OjSAMHDa!yvdu`l8pxmS8}mG7EOop~lpQTaw_5}eZ&3%D zkl0j3T2AC(WvOHvI{jY)Rh4m2&CRIHf8S@@%%vgnW1UDUgOKUTg$X!+isZv+R~+1t zyS53{bZlC=%{I&VxR4v}i)=TX;q~zx8M5!oSQ`}djiCny9pllv)5({LA?!pk(80yh z$~!r|=eDxYLBqR-8 z8nj}f~81S9DXuuO%nxdO=BgVx_+vLDKGKY8jzM`HQZ!0m}x zR6=zEMI)*LV2mS?9XMh+rB!%>Bjq7gzN%0O87LV#4Ja;UhkfR@krE#rI+=llOO+OL|!tBt<81I@H< zt$*o+_OtcIQ6M5BK@uY*h#(mf9=m_vO(Xs39VW>^?ri>QcmG+l^v*vk%xGD8o84ox z^yqt{3d=CuW}ui{L5YEfEmy&RpAGyhlI1kZMoDzlLR*``rh&DGH=McsPxY&Zg>;Ko zpSrw8>3cT$CM+{Fn)igccH+&>3B6%md9;Z`ZKvlsP0#jZ*7S9PfT)K zV889<-)zTi&&o#0c6k5w7xNR3eyFmQyIf?g{bhbXZ~88rc_)dz9Gc&c@myd%4SC7# z2MY!3PG_;-=5KWui1@gmLqFHh`rXI!ayzRFTWi;SuD@A)5+C@Gl*gKWZdC97g_V`D zw2Iooas}NGts)^&FZU*h7_c}=h_-F};rF0^BR8Y`kOX5TOb&nuDj}l5C=HR9_vs98 z)i4HVu}t6Yo<7@l*X8w_>Pgni#coIal;`7&Z?=k^iM-@vFL%ylGW`w{_pt|TsN0c1 zh!RW@*C_b{2#i38hztJ-0VUnU05Dy5t#{P(INuF#+_UkxFv~Y|?QB(kcD~-GCl3F~ zR?2wBbiF}#-BXN{kIX_yL#uK6ewY@VhUv}!^lw}`l5`Ck+uQ?ZwO|~x5dOQgbB&L; z=$lBMh|1SXjE_%T5v~qpjoR%~J zraR-{5o+(Db62G6IkJBIVp7f!U_e%D{cV3aD5FzK*$o0_0p`8v0YghCdXTl=BIILk z+3HJGO4_C~+`XHRUG18{#;AU$TI@pPxg#0QSukiTrS;jybGs(Oo=tGM0e^E<4K$gA zH8hHCtAD>T$V@^b6>W07oq8Y(zD!-zHN4v#2>F};CxMNmKc07o~3D#AHpP%4MdKuBisX08j#ecrI)NB3>O&&ATZRh zqT<avO0izTCZ_G6`c00xBvgO~Acxtn@#F^glZpruEj(RNW*fpPxuS9PVUdBR`Om zLDHO1TEa#;XhGtR6innqB8p~;X0A9|=Gm-Dw%uG@s@srcf?41yA7$VO=KcE(^~6YahVKVXh#Ni znOE1huMA~EtzixLmj9?o>IATyBotH%1u&N?B7#&jG%Be}-+XRzu5-Aq#K7bNY8e}5 ze(-#$ZazQyM(_W26hX}f?QXq1EzZDtR)5&Fwd^$8={f0356TA22bgUxQAEuEY8RVf zjR;`~(*yuW1cFMT6cD%`ygI0U)w4+1)yLV`*xoE_>@@a~<4XTqFeO@k)5wvBFO%GT23n6<{`qnVCT%%)>)aX>^+QAQ{F{-@V}YcYPi zGdmKJnTUw@6EN=SJv*5*58Ol3yr@Mb+yCYbLIO%52@=klNI@K{n=i522DcizV|VfR zyK}Paa2=}^*1c60Vv9XRqWbikUe&ozADdt|)C`ng^imxX3neySEF~YZk?>W$s4wYkc>U|4s1mKNqX!^msfC{{QK9e@3@g8>r2I2KzUhxyfy$^Sp0d zt!-}meHnA#*g(cc+2P%7^3}HaSy6N$Ws;hkIHL&|$4p6ynbwn*Mx9lYTTG7mqbKaE z-Q|W0jsWEN_+zan#>DX?+{^@SD$l1I8_L6uXZgtN{tyBH!U2?3z4hrR*gJ7okO)Cr zjz_m3=t2&3TT{JmpjOF2==3-b76aer(f_i%g?&GtPBt^{nU3Z3qj~na;lTFBe7tnO z_u1I@djB3i9z0@=7mT)5$yr@(o(V|#c{=`-&Qo)}OBeUY99wcYSnh;$k3v5a{Pv^z zQT%_)4IPGg_5A(&w_cy<0QF$%x1VjUJ4J`G2TLOwn|x;{TUA0Ho8A60*lG=zonIyN^W8v8|ri;SR) z5s)#w+*j27$rqoi>a}v+U@p?2GF>0;iLixO)4%Z#yrP9FQFb?&PQ2k2!rmD6B4btxpo{R3%8vt-{ zbL{_4u4e}rcwl&J6gL;E)zopNCG{b|d9an0ok)M9zY-oFtJUhoQP$Md)c@U_4UO8X z2Q%TX$S$vwuaxeku#u4JYWT6a=*_%kb3|`Tj1dyNC;^jgOHACU`y74W$}M*hE3 zt>kZOIT$+J4Rtp2FIPv=1_Hg7 z-X0DnCvD6)vEi-}_pHA0bmbnx*CHjM^zr*1oa2?=O7hX?kBqh*1}Rgd zgr!qWCV~n%rhuwd2Tdz!B#JYV4=A;2C?=4eoqgS4Npp$;$cv{X+M$u*bmSqrd?ojKT@ zr`giubhz<)xW1G}aw2Xbhf#fqz4V*zxJwRiOQn6>W3kxmcj)(QhPGSz3gEgOe>8tf zQ3V6i??G{Das53nk`fb*2UCM_gsI6vzCS1~wN*ZtP*L z*ky^`6${R64>%GJvI}wl1U_=I(^C? z`HO@h4`a=L$8((Mxu36|0q=X`@mR((q7gsv?n}aoD59tJ&5UCf@7F-KwZ13gU$6D% z)_i914q}z$~oS?DtC%AoPKVPywRp}2E~K1ajh(; zk{a{>nddfMthd(SgxF~L?yINzT_@Fcy-rSc`&|sBKO%Z}&6BU$ah~S;Q13Y*lEuS7 z_PbrJTo-Gz*^J%6|OP$B5QFDulkckHCb-v!bcA_7Z56bHD`n_9xH&&A$kH2+# zwslyJt(*O;bBx^fwN(lV(s?l55N4}{ezq&|!L8Thy55ilR4*w~T5Tfs800u%ITwL@w5*uT8g}mNx819!#AJU`gX7$&5xA*AFebsR_aM3kT9GIBJUON6B&#BXI z^vP`9yzw1KjRjs>BZv0z`duiAxeg>uNV;G=^Yj<@+g3|Y!s%>qHJBZbYXSEN`1mX_ z>?C7rk}#7i3lo?>MQJ(-0npdGr<5)@ddPB1* z)0Nmtu4w6$w!pC1X?0Tk4j;C+qVTI%gTeRV_zG0ztgUi2a#rT95fQ~CD)J$Dd(?Z8 z;(UG!&3^az9_x05V(#Pz*hF#UnhAeDLli~NZBiquOfX3#tGyG5=x_dB8;71v(}gFn zlj({cnf8)h7rZ}5WwPknbas+&Pq?muTy7TXJ7u;3WH2MnKew73?8GL>jt*jl;>akP z$vJJby`OH`&ffERw%6{Y6lVf2ozBC>Me~;Mvz+T(YIZLi?sqx|4~RFPo6XR3aaQYY zjusj=r0;?()x@C_K^%f`HT!<(VGDrb_b5NEFXoNZH3Fwegrn+E#y5~2Qh?q`%hEDH z#rjX=u|RW7pXvMY_`km|y80D@uw1g$t3m;+3k(h&1*}v9`h{kX_>E2^jzTNRXFx2D%dOVw z2n`Jk1#@fzkc~KI$)B8e0z#BH#MhFLC`~xU9STKl{pwAsOo=wFvDmci{IAkX#|M*; zC;Wr|dPi!%M~%wv9&}Z8oGynBV{0*x=y3WRO+?p12s_-eu^j#O+P9KFLC#f0<1LE>{Td(IvP5+?34-5!T>ucOhU z#QLJGDBs{F{Ir({7%EHOo&xv6^Vwed97X?qmonEY$i>uXn>e^jnv3S1- zF}=#-qAhdTxXrb>OP5#C9VcQVzWq}UCWjdn)r#Wfy%AAy7~E`3PgZ}c)p+gowB25< zhC;*35CI5)M)cVJwXT?`sHlCnS8dg=(RF&gTUg~p*F{)Z@?yC@JVak6E+hejtq~n= zv`1S^B0$0e5FKu`S6E^C)!0o$Wn3c=0k-vZVk_>_Rh3}tebyX)v^*vPAFT@w4Su5Q zLvbpquaOykw_{qe8=wH{y=FLo#;xl0Z?*Tj+Q>V_Tuo)~j~Q{$^y~V3k2g$o;i4ir zoPLn$L-KlDsGqB**xA#r?~XT88PWz077OaXK`!HSvexea=(L>2G4x1sB!WPURVOjX zOOQDjj75uhwpKBUii?WY>pHw#7pv3N99+y#5vPbaPDPl8baTJDRC&N1XpR@H|F3(! z(_Xkef2Bv~RpF(Is*H@s!j7aJPutPx<$HV>ZU_UV4Z_Sr!!~qpd3)qd@NhU4ogR$* zMq{6r==62<*^d^(-`imdYO1QJTDXONXlN~0I{m$d>F=THx4A%E+P-b_3|7`cRr7hg z--51V&Dy5*ReGy%r`Od!!LQ7i0C*c(Na&#G1R2g7(m57oyk>;)Sj97P^*4@RF2BFK z=6kueG27_tIPF&#n;n>s%Gg)O#bWuK&G$09&&|l{@HHLgl8P7Rm^m7t0#RqHkdl(~ zecaEiWqHHP&gWP|*hA|f_i+2Tecv~mWr2yn>f&gyFI?K6Upt-7=U^}x3p;mC-4k71 z5fLL4j(0bk5zNi-xqJQmM*o%eh-@76KLY8$h}T|Wd3hUGqnFFza`o6>r9yBI|9_ji z0TBz>=kxja6KybD{O1M|5)Xhm@H`kEd=7T$fTo1x4o#;&2hQhnudg(I7|I$fmD70* z4{C*q=U%(^t!GvnH46*by>NNj?hHo)CxH{=Juki{Cii=asJ-+mx$&G1-#?#`yWOH; zS*c>a-?t-b5#MYlH|&D6$HB>Ip!CpbKx|;SkKE2@Gr6H_ecSVSyd+%(R9ro`g(Ah> z-HN-rLvbI9yTjm8+})wLI}Gmb?#12Rt+@Ss?@iX+dslMjB$*t^%F5o^1nzt!C*M5Y z8C2_c-1Gl9+fY=gYXq^DcbA-Q3S{c;>)qvb9-Da7x)Vx2epqcLnN@vi&thgVru=j{ z1ao?RXV9yB;VUvW1V{Ts;Kl0-{>=LueRN3Le7%UWc82(1KHeR2Y{2}jAKjl2DTq=w zXR7zEb$xF~Kq;9hJ-vf%oi+)n6j8^1TrTJG=*>@Z%xULC z5uIsr@Skbl#PZ#)^0@W-Mr7?n8AdzulK#?poh|Q&P%QnqQ@6^N*@H$plSoPuT9aM> zU&Y!G0Uvqh*t(a8nicreqq&2d1}mi$x4$TMRQp#peXlD>f4U8Kn;jMwLZS2HEs@2_ zWtq6VdvxVZIaP}!Wn767R7HOml|-&`(xqIOr(djXm3H9G^)?|*TaA;sk^kK9on0G5 zsMEBnsVCF=EW2==`3eJ@mr%Y(-9HeNZnuvXxA3^%z*)5`cYlKS6WQW@!6|(JkYwKx@lS4rljD^#)6?%fNPa z65%SSR4UBQO?Da?vG>t~eLYo>pNb3%3GV5P;`R8nbL(GrOtUt2WY*wb@zxo!(|s<< zw{H(n#Ik27HQBb)##u+t#iWQ|1b8{86A@ zOTm^@4dBZXMwT9!eJU_mM>6QKhKG#`&FIEmnj*fF6u883{xT?eT(tT zIwU|3m#KW`J$v_-NXiyJqWu8r-^y-(PNnlsP(mpwo8NKo2L@9yW=K#Lom9=Qjplz-s-`d48%gHJiQb}D z+*|}*=})mLf^aNUD>HDdRKDB$xi33o_jbvry*;>?1j#_bp4QbOie!{T^U^fL?HblR zv1tU|b;F<4AijZr1`>qBQU|NGk7D20Lj>^6Ua4ubqMKv}3D2~C#@^(08OmQ*(p_RxpTtMkT^%-Nr?`)QO7-k#Yc*l2)EfAbF|zqI zYI%HgD|m5O@`mx9gC>8Ylm#Y*4Y$y`*RnyCth%;3lC31{xRM#-CHa<(5QxQ{FV_8T@B^hr)+Tf6QIb>|DheI`l9cJ+J41R;dd86J5iA1|CrZ=BTtDqb8?@hoj=S z{HNGi!QlQp;ax8Q5j@}GOmLwU;d$Cmp_-87 zBKcSpB;#V$XP5VuRn;4pK0kWJ_|+h;v1Vc1y4rX4DG2(%DMV>FN~tM`i|Ji&`%uKB zSYBBx>(;8MYS|{}Q@>5mHv&%F1DI82|Hgsgh9ZYm|JD~kzSDh2YBqnqsh4*CjikC7 z&bKx)J=5)00)Zl&Z@gL@B9`-TWd72$OyODV{odWYRNl33=NbHGkx6v}`3xfJoOtyp z^1ZcP@De(2p~RqeD_Rqw&3Nl!9rx4wNH4PS&+|T2cwIfuPI~9k$7i;u=YY%f1y2?M z)MF`^$|_;M4`<3dsN{i4JGE0{nBac>XYC<>*zeWF%Qn? zVJG-Bu%7R{&T^?nhO=SeOx6WNl^K8Og{uX0GNW6jiDAT+vsNgK>^%%xXrD@&1tqhP z!@N)2WG|>KCQvC!r8pEZEu@VWcRowFJ~a?-FJqzM^CFkmDR&CoeC3A=V3Cv7cDnaH zXpx&eK0e1C4eB{ZCZmi-^1#7AUdDTl4jLPMm04#Z`(DHFqFa72w0{@N$s_?s#uFD8 zA+JtQwb1ZlAD5tLVD=6`fG|W*y_?(Al_f`xV2L0h5n5ro)6YyhG5IUD z`q>=PuGbS1GgDE4)SZ0zR?z?MJ0UodQUZ<0luu;r@FBD(KD68)1+wpsLEaQ%p$U5> z<8h82zZm1>^s_`xoA*j4zw_>iefo^Q4<6WK>3rGgLN~VAj?N?+Qbx2_fO%qm2pMdw zwK3)hu9?$nyIvPCvw{v74Q0HGE4>%$>wKOf?%(v9e))Lk)4uw*^*OvB{rTjxS(!KT z?Gpn*3=Lu1E+if64=XX7%}5a$Lw<^38DC&2q6i4xc0_tpl=5hT2yB}(WQ)$BP0Xob zt;&WIrI8P1F^QpBXFj8vK`T%pQF0S(Bw(8r>LB1(fT- zLF>VCTEDh+JNy*0aQJq|rU4Zx708}>jh&z>e*+a>qb3K9lLCg1L^4Dmy!*ouVKNj& zmd!A=<5%tGigBxs4qcp1)lanBSo^5H;2Cbr1%GRJ?SX)}AbSm331=v(4Re@XrVG$8CH_0c6e|8`xsgn zg`m)@rzk;jXU`eFa~AcJ(n0MGF`P^Q8N{nkO7SPknXk6e2q#DXUUP+L7^xU=fHSN# zqFi94fClLXIY?{+(cI~KQMe-sSe15=Sq593%AnX=sb`7$_ylQne~f#|qa zHN*M+WN#Iz-)=M-!EGg4b-=i31SD|`QuPiZwrK=IUxk`uOqq3tgZZVLGy8Ydw|k-t zYf7BJjHnP_P09G)V6_8nvEeyp?cjGUdof@NDt`22=5HJx3_$B@MO8Pqk_L}_l=Jr%+ElX^OL$zDxSCqUp~%#r z-=G|FIXP9he01(LI)@#(x1Er?kKb5ZdA3HAXFIr8~$hhg7W+RHs9 ztB{!do(bXkPfr_r``t+VkN{oH>)C)!&#pUL6q1lqoI%1in%ygvS`vo!22 z`V_D{X#{F_3vs=jBCkn9er8+mcZhU|7^vC(_VjRd@tR!h@8B2GciD*8@H+pw1q%xc zc>{Kbk8}c0NbyuR!Qat&SU^m?@r4Jj_?R@B#u|>b@o6#ABQVU%)?>jQN%_UqVt&-g zTovKr{@c%wST%6%%+pKzc9^mmelO9B0$r83Jk7Ai`domQPeepWVq!>$m)_mSV|JH> zC@Xu*O0OVC|B5K~uD5XWg)goKg&~HK*%n1h{c+@XN$Bver{C_sOP0Etr|i6ed)$3e z!mZrhgQ6Go9SYTPwW!@rclQ|Z|Db>Mb;-(k-}~!| z_fTHmwlaHk#mWBUIjQ}W)tKnsGzr9Gw_)1+ymKXnFBuF}B^vHHw*vz8XGbHU^i5Gr#0s(g+80B{4F?^_s(IvD>XIuV!??Z&e{$tZ*Hbh?v=Y*U3 zL^i5}kFu19*q&Wef+58Jc2KN@fxh^CFnuLrl#u*!HLCbU#IRl>e>`9`Q{LJuAVHf+$EJbW} zMs@Ys5E;?z1lIg~$zpZMw8kkT)LGqGecZCWwp{_ntTmaVBd$=IrN;=Wv^O7~g`16= z>G2?67w>&G9kSnBk6oWpAI6)8x>>o|WH_P%;sb*HH^JfG++2J0vSW zHNm^xK1y@@VhU&CYUrnOF4ybH=l3Hb$6;_vyE$6nZh7XICDca!<;A`8Ypt%~qa4^` zZ8G)z()ipZwuU1iy3vpNdr@f$hhSK#k<%%Vw`gGNY+y+Mwb@hzgafjcTc=tG#@Kdm=8H+-5C-1ZYh5VX=b%yFPhN*Q>< z*=I$qVIDd9KDS7ng+jqMSbBJ1k)|1C=U!Y65@0R3HT5-AOTtcyhjIEb2I*B~*yw&l z0obV176_fN4*T@(q+D@)Vu%rJbA5rlW@K(X!or>P^hzf`mIhPi9Zj}FycXGT;Bg}% z#qMzYgloCwBryz`TQjCvk3PQF`2LviUcA#~q|ugiu5@3+C$*W<#ILp{)HaQ-s7w|e z&^kvY;Qc@ZOUHw&eMf$L#)?yMs!w}f5qQmRu!+K(GIUr%Wl}LFUvE^=apfHPE?C46 zqR(NwVc1M)o1$7azw5w5K)5CU%W>Lw#=Gx?Xx06qy|aGph`4~A`+7aahmNSEF(>z^ zF5c1M(1p|M!qbkY{m%^d(+W5^*uq*+P>@ZFXm>+LM@OHiV4vUs@0pJ0v$;m{BWEZ# zN3<4#>Z|HpH{)DMVpgcX%dwbXPcxtC+V-|iCh=BQ=5`ws@)gs^vtl*H!}9Xt?)<~U z!|K$g0=?Yw>M{awi4qsWJ7ht*uYIsrOx(2D*O>wm{jNVbFiYVP<`Ll?RTTh^3`_ho zmnX{JBKJYva7>`?p*Me0FF2pA}b6!%C7EES|2xGAzbuAI` z3O)O$XNEOHVjE}^%XBSPtyh`SfMoahO`ei%e5V}6i2#LrcR+E-DF6g(uA?9E(g#vy zABPVvDgBr*H=bI#eY0ouQ0*|OrEz#ggxmj(T6zBpYemgllvRos0pg{f(!;-u$}Nhi zy5c)K5G@ z{zbcV;jE?+;pVDtR(5u#)^>)Tex`1A&c=q}gaKrRSf&r!=b-1|A-6NoUjE`*NnuTl z5k@nEqvh`4>dp7>%zARTn+u1V?PQsg%GGqsRpm`Grqy$K zKW8mzCbDF3)l5&}yoRni-+l9~9vX$_|P1o&V6cro*l zG18OPyH(JV(F*u0FDExOV`FQlCK_oo8$=2tGSF&$oJB+R2V_%ak=Llw*4nkXnVCIx zdD%JH^*rfjS?=%a;2Tx@ew1rKz(2(#ZznhrnEn;9v7;YKRLfgL&v~zrk*AqzSZq-U zxv;q{sLFFYwT8hYh`(mihVbxk{tPxzwzD&XjoqS6CxWBmJpJPPyK~5~2-7w*sK`~* zS2u`f_O+F(d?r6IF(~BlGqUP1RwbXPLw|-Y|NM0<<3@j%F?V*3KYl0s?@(4+tn19O zi)(1Qy>nr9ZqoN+t6t*Rl1-5QHSL3H;7xID$4j$%Kcux9v$+ z2M4!Elk?N5`J;x5?VIl)XSeY=N3Jt`w&f0ZjAi2+_s-bGUZX+GJ=}&?zPX>@xhz&O zE2kXRUC`+ptO61LO^idPI#4WBQ<)`#oF{GwIO#Jna-=;rpV z4YD7yoKxHbxim9$*Bn~4lUf`y!Y7TM?Bt)^?vbV)8m1T(V=@HBn4;;-k`0-xGgewN z6;^n=wx1A{pNHUbNcgVa1~RgA=#9enF1rIrG5IcBXu) z_scFEHH3a@g%85=ai93JmTEo0qf@<5vt-3c*LK=P%Aw>Pe5@_%Ex+ZOXj9SNK8|n) z&F7f_q63#8^uJT6F%3BZ%YQ zzUUE^P`KEt*!&6m$O-ZwAASBXw&QqA2<8r%mrzNB_U_;L`2JXVa@y&jRev31BSo=@ zMND9>%&~9wCm_s1Q_^FX;WI1A<78A!yh{C$jguf%S4+VJ_ua8H1%9G>E*Sg`)Ur+aIjRb!+m zxMX|SGeO1cLL233-)0tkDO1+r?Diu@&9Ek(?0fTOAc5V|dkYJVR5*3u=X^vC;{1mo z0cD-jA4YUGk|i4(ZA~s+W}gNV$(X3hdyV*0`M(kX?k0JPC$~ovGDL$F%rQKfxhtaL ztQ3dQo?_W^piD$~=v##pvt!{v3Il&GN-#-<1G8OQQ>rW*c1LPQMO$&oMp=## z)6pv&YDZL~3g&;EK2rkvzFUu*bZ=*yVr=ZNX%k~35^j(A$r}-aWQ>2& zgTK;$`*7t1(Qokl!LO*>sDIF$7Ww4Rjq6&%y;>H*AW`iOJ2v+A*){D;j5wzID7HOf9G60#G|>{%&$)Y-)h=>fjoSaoScDT zxrbz3tq5H*+Yv@;e-xDj6i@Q`fs=8EDZSq#t=@zdJQ+=hh)xylkL^yhU*IP$jxi>o3 zUi+%z)SYuBK2{)Gs^nAHpLNv?-xYepr~n8x3W@#mCIa8=w&PzalP7!~ER5*_0TA*oSqsJ9zK{lzZ&;v=8Ef>byMj2r52D68G zd&0`)jiN1jYK@Sqi|Y#oyQf~f+OvMXSD6eaH_Q8YwQAp76;s%?N$AGk{Sf-NymF;}ToPZR!#)$0u?xpX|HIHDw zWvn7Jfihy#CIah%zV*}~&;}pawE6=L1k%=)0WDY+tzn9j{3MS@C5Vwpm)4UNKt2YU zt$l|UXx0oZ(>1@b-CS|l-VPZ4t55~)$QK{uEb==yqwX&^4*g-|@7)UF?_6q*`Hupw z+sn=8ZM;LrD`qWv_~+xuU01v7mX72kw>jsdC8|Z*_WPyPI`6Ij5fjwq&Zx-3d-^O-c;2my78d%snVf7N zd$cBT!A}CMwO)NNr^8!r7#^K?C;2cZ*k^$ruRoqSe|zF`I4&@ctCs_$in|14U0Jjm zWtM0&dktxq=rtNW&j~k0kxzG!Juir!yi;EFfulZmk&`h@5`S;`_Z^0w@-PJGbw>9h z8@GO5JjDDRhjk5|I?NE(YKsf z7DMrpO*WY!N8d@O(WntaS^6~CslHr&d!cfQK{u%IpJHv=pADYdb+S7yuS)T-N-%wh9x^ z_$hM-s+OytzcG;Xnu*)rtcf>RtCG0zb8h!^Kqpjeq6hh|N1$jLqto@r460$+*&U{%gs&N98&_YO7Ti096$oQ zEVJV*TB$!;yOF%#9iJZHovpFy2CM*kY>`;yT8*|pj21F@_+@7otbb7K952!r_8O{g z(1i6bo7YBiw!^u|rl@Gwyq+eN{~A1x}sVQYS{4>sZW}<>OohkL+|O;B^rmcs;L|PlU=OPs?-&gUYK9a zg#da_;m+7BvSfAjTAPd>Z68LgM=MN?e(NpW9wrCrkVlWyjhg}4RI!{BJOI_!rp{^Y zvB?ToRvH`b1IFtUNW#FXYLHPW(`i)YVg_?HQbYpGkU=~w;vm~gkxWH`-YFUR+m}%Y zVuu3M63Yju+@5(p*}j1~7>o$lvlC%IcV~EsVwazy7t%be<)+txM-Be0+kE?}6rVaC z+fLkR(@*iem1^G|eN(%!$Zgk$a(16N8~Ofecm;5T^&q`HMSY}@))di9k^T7L$kETe z3hAVsbctGpvL50C~oRw zfC2X@(YwE2bo}BnZm?-cqYIWarbDa?;CX1@rIMddtEs(pdvL0c^vcR=mzyc*<7J%L zs`3!TC_fkK+!(C^dMtJ^9{DTk)_mymUB3_ZYRl(E$u|hfYVo_{oP29OTDGaLS=HUO z8dM7+N`{Mr5>Z-Fww>U`tU<*2Dy1Rm`{WWzh6=1?1vn{5JFwl&` za3w1~3)O~^<^*mmUB^=-jnDsfxCZQ6C2d->b6?WF6R;b5@Z?`jjarp-oGynP%O1GF z1<*d^+agkuWbg&J*@dElcH>{Z4`Z6v;GqTA-6VoQ#PS!$@$X9q|$5P!+&6YL74@u0gLf%^Jlebagr#W4LP9ktG zn;{u?)?q%2usEZpGjM1`zC(V5#@7-RuK1W_^ zR3)BH;0}GlzPaS>V$qS1y6WMsF*OE<#lM^IdED$>NG1abJZXEuO+!5~l;aXo!vciq zuryZX7@A5oYDkL6whbrl)W$6spE8CTZ$0e_{@Hqf$9O!~3P^quX=bz+*KSDAJG2Jd z*4R;j7hWocW9}@l$2^s0^~iG<6uZP0rdvu-r(0*sqgBF?6s&?FrCD}D^AX}l4enkw zs70}9M%mq*|ct)<2?T%iea8tQ*Z9 zP@~dQh!nC90p{#?pJQq)CK7j$TV^%0LJB3xV>;pQqI+bx+s`!m#*{R^>y3RJ!im>Zp^TCp2HpQ z8YO)OiAG-z?RL@X?$*eV(N$^+gDqim3a23Y>(W68Gmdu?x$V>bDhM97GH06iFYvx? zd2(V1LT1vxH3|v(SwF92ec<@tZ-no&Z~Bq@&qDZrv;?h?jK26qerYtZGnK2XM|mur zBevCYd;JtE<{0|79zJ%zHLSV6)ql+YwRmLd_Cn<)=|j0d(YQ4-y99!F{OxnPhYs`Z z79I4mM*ZgGQ1oy3#!|_5L@;@{)s_MH6fBHnrT_ih@R6t}Q_V)(aa6-Oa-RqVZA|viXivU%qqm($Ho|R1pJmNSsKR8dPEY=w4JbF@p&&C$lq}KMSY# z?mkCgtvm#_l45R^i)W4=t0zm!B1{ar99EgRnfKmE>&->Ii%C0!3LMF3swmQB6NSTs z2CD=ip`m_WmGT5)^?7r4QH>3FjGJfCgam2HyD9bEK0~ROVZk;CHria^E-nmlBEEio zkz^0<%*q`If&6oX1fnkR$CR=t#A+CLj6G>Iux=*v7e!8J6WlJc9P)VT1``0Rz4C^! zY_hfDN)sZR_;44b!*2>d@h74*$uW@`=m~R2e>G7C_k){jh}zK?t&A~>bK8><;itFE zZU8Hw(DAJ1Z0e;odFt)Y?Q@d5dODjc-}MbjOT&C|-i=p?x{L~t(R(7Pz~^7xrEIY8 z(*(CxKEJ*%;wbwo^~wDQwmK7~SkxLXe7C8y8odA#Y=UcbErXeH?MKOjRuG0GQLc!v6q4T%XF ze#&(RvKUekgD>OAUEVhSp-L+`EW7;+&lnA3e0whxn^Eq_d^gwm`Nh41#Yguw&0I)W zG>8Hw_2YJ5U-#qjgFy@q46av*>Wc9Eq>raV<;L}`u?#OPiZS|p_vzmG>;I}wAdhOR zzNrDNqvHWpl@=D@L`v+qU4AQSUF&(`SnH*h+tVXuXI~R+=W%Vjjcu%M8&Wq}moU|A za>;*j_d9#dF&sT#VRg2JLi0V@Fbjd_cs4w1j%KbzQL(OYG&<5`u|OS>j>AO6aTvW2 ze|qT;vZ8`E`rG8={5M)@jdbOekx8>qCjGdh}BT)&HcuXa=FmjSQcx2?rB48Ml z-FjHCngqa>$3gGiHT5HWpJxHx7d3N<{!ko_uib&AI(mFGoeY89Z zjeHP@+|Y`)9J+4-6B7WS7O4QJk1POE&1(!(F`<2pf?dDlH>8VcF~%zcP%Eq=K(nxb zFC?r4ms#9G9tL8nPOc^U;GlBx2Q4mX(N~)ds6_xq@c;loTetc#hqSC92ESZPTh-Op zzi=1&FC=F_KNW#PK@drzRL3X(<`GuIAwBEh$%Vl)nlwd%h9Hpw6&uWDrBxE(t7GL> zVRcY4qYC9<6CIDbPK)?}jkq-^H2|tIKx-95rzN8%nNSKUV*r7gK;;I^AP}9izr$D6 zYCr%$T?7DVs)4s*vkkE}-81&ug6efEVkk;pvr?A8DYu&8NP(0xL#%`~;__zeJK@4RH48Ygr3px_{ z--A(U{va0Zpt2De35Yg=j5kh_?17|1!rXOWriZR+T|HGC>L} zU8PrI_pi_NQ|9~Yrez4}`Yy9WK0~xV^+mg2a_eN?xXb3dGY2BSqMi12Y3#%KS%vef zkLwW+E5S|KNoO+iW74}z#ZdkEnU1B-@61nkg%l?wGT!WQY|CfCkSZwtt=CBsk*u8E z-H?bC&I8C)E9p`Y^OsiPM3k1-UL&N>f))ZHWk3<2i2MjzvadUBDX10z5K#jFzL*P3 zL9}pTAZk!PZ7l!?1d51P#x$yc`ZB=(MnG8|u5?hzBwh-CT~3`j|LffdTFE3$On)^1 zS_JdJ`0F>&HD_M*$E)Ki@5}jIa(B^W=AuK>noUI0`AUX0n_3mE*7}&eF202_hMI(g z0jNFY4~z1bHb#Kp@+*`9ewx+{Y5-+54cZET5&%;fQv!fRT`Pg1tWKR@njcZK609Z; z@T2~!7WCCb+R|EpL66@MGaxGBYY4x(L$9n9mU{8E$(k%)dDPQ#-Yf}I4S)p)qOJIn zqzw2{E$aM13;>k!m&U2U<%1%?@+-dj^B#&N^8SH zvvi)cN1CDe57U|P=ukjYJOAde_79z-3dRgmCl<#GIi6;%V)$@VtK`f(u9Wa4N=XeF1C4mmkIaby^h%Wp)B+D&C;3lfE{>)RngXq1qrsu` zNZ&sjWz(R&fnzh%O+&du9hOSl8a7Tgj*2OFo&9~eMPR9gky`!`bIPY2X@HfZ8-b_R zurri&0KwD3)2S*}0j z+rhnb zXNa~)V~7RNsEmmUkonKkSE@;f1GHOHzg*6jZzjuU!2tYM=GN9$gNoWQz&os!@n1>x znT*B4>{kt6lK@ay6>g@bI6yfpNv~h;lefbs4Fj^2OEaFRA{#TR<_&PcH36wApXpO*yRQVXO zyG!rw<8-OwLaa!w={|yG7ua+c7P34DKv5_8iacKlME3QwuPB2lq5S2QzO)7vfC@08 z4_O2)0MtPF&H7wj?o9=#IH1V|3FklJ;sE_M!^$t)0!94y{qORhkgrcfX&Gbyy_(eM z!1VI^NP2eKY|gKQlP@dy|Afl3@THLeW#uS|ubltOl#q~61N^e%-38G`LesqQF$nbG zVibKHw_0}gOMi&!=j%^9IgCE=BFqd0iyg7=PMX=au$3o#7GIUk+G(XigP}}5evic} zU9}TAbeobVVNZeTigfxjZTZ*rx1ABTlqer771m4lZKY=m8fA?<8E(9UvN9H}U(f+X z5{#5?5@B+3Ls|Z8UAVI3a(>)ny9E?Gu%Un&v_E@1uox4d*);!UK_UQU;%A_;QN%Y8 z2%T+liP?4k%ehm3g*E$RIdLU62yay_3k7u8@MOPyx?S(3)~(@g{B$$NHaTmkUe=i~ z^)dfx&1$UPN{b#NavT#i*j%)qWI{*tW80t(9fHN2gZyXjMNst8$Gz4S@zyV;t4qJA zx+zufXIOHp8@*3<;3Hvf!J>Z@X-j%d+nl!M0vO~5>_otKo(b@pqwlc3E6ww#Z%0#J zr&{w*r3H8@W2BOX#L;C`f1G){Ca1HiaxIPpr|Vt`=+~mRop^njxF`Bij6@JcHS4nB zT`G5g(Li`0uxagU$q%56Z)s_1$~4}L|9dQgQhlhYKyq9gPuXJai}=};#@K4{>;GyR zmr)<8q?cqt4I7Z89ZCl_4XvV5J4%*ZxZNClmTdI@Gr#yW)ai!H8Ki#Dn}!B6&xq{4 zpP7B04$oU6jdw~z4$a>;vlgcqb(H>r&ATs!9O^i582+0A&DU7lT&v;=Yn0ADgbYF? zUL9%t8yXb0r>0g6zyoxEnZ;hI0BfnFQpucpOSZGylKG z8b(@VBhl*Z-5ZSa)9gi#3sv+}fgU`TRB>nfIxy2AWIj}rf_tz|i<^(6ybRi;|4d2L zC2*bRxl5`6-C~0CSt$lR`FFi0lt2*4P6t6*EdB#Z6ijw)B^A*V2K^3O* z61~`l8-X`V=LK~M&!Q8D`jS(6cfhgKZ8I6S|-lKqSM(40^&C%F2 zd>vSkd^CY0RO(XV1FO>cg%5xIS_^Q^pWbC0*zhNu%4wOsQ9Z@rhiSHo)&kylbWE`0OB$P|{XLi; zRgoHtI3~8Rn?y62L7|N416l)7`L45y5tH1ZXc}lZ0o0)l;i3!;kp{9-e5i4^#y=Ft zVVeS`9BZeQQJ6)roN^;M{MvKB_VA97)y>p5MP)Chc?)+VrLMEi*o>I0!4*>mxO$m@ z;md-fO0jSQFEO@4nwi_bf%6^M>#n|p^QvfG?jaUjj$VWZCAR^WB9^T0iu-L^!E8{P z;SmZdLp~J36j-$P9H#~4?{FKl7wI%-5At`0@eYnK|0o%7MxG>wFS?LKZX{AJ zhJSm+>UvwOPCqJLeHj{wn4mjHE=SdNqmyc>zd1?6+Wv*HZ|5BDh8)V7Sr@|o1{p_! z5Qzz9SvQWeJ!twx)axO4&0%AAWKm!_MRKwHdb#IP4K=cEFAeWp%(WSXZ+cIv{RaM^@(u}Xd_Va6!n54Dvh7CsU)+721d)Im7p z9T*iO^Y7c-dhC_vh&3*YiZ6yO7BgfKzdXp(f{|o%RW*X2-fu*FV~5ahWX0=sgubjDN1WFqumEUYw`@LiFVRvjHRj=^|aLo z!l5d`;zTN!v3wh%@E0`a3~{o)BZDw5ANU-XFyCo#i$c{Px2bf5;3WA*? zq>Nmub*ZeUPh!_Dk_uN5+pDt@BjmzRs+CX*Vbu)1{3H7f>^G7UjxhK?L*ayN?vdC? zz>b&p_33B*(^dkpe{dN7$O2sfh5-~dMan%E{?F`hN&nuMxy{IWl!|)&U;Nbc?2V_# zMKn3{CjZfV(?FL*%T@ZfkM&sOqVbM$-V^rCjqZRgjsF^rmRhWHgRbBR$&}4*HV7;p zOG|eN+99YnxK7ZlZ8FrMbdqzTm+5v=hXoa|x z7;H&0USJ-Sngm$}v(nJ|*rJh%wi5-TvbouKrI=_LVn`w9io40Y6g?3eV0#|Xuij{~ zNhh%^!}gLRGeKKsXhznFf-iB+b%oQlfvax`-@-_zcHBOXRb3RN3fYWsHC+f1Le%wv zaj5NTsos(Pa?4oHmVOh8x8E|P!5T&@&CU}Zp((ehiMojvu8sAeNMe+fMw?U<70quo zvF2V(Bna9%`h1?9b)v|Cutv=$ng4CPv(@};>0Tn81q?^cFhY&> z*y$;5rQtS!NW@55}$NOOo?W(p;cf-BC(?hGk`O0^;U%>1V z!{{F{1tM_yeKnDGBA5~?d11yZCpJS?;w+Bat?CSF#+Kh`lM=#dlPmaXLPUGYwEFG% z?yBa5fjy!ksoRy9;)90DGJW}Fnk+G9>h+a>Pyb3J!Q1JrH#JYDp#-CoF|I!ruQN-+ z@UadcRM4M%!?#GJ>sinzv5|K8BN@KcyvFI&z$aL<$B8n_6xiV%b-EMt6rHc;u@3db z4G}YWnhj&Z6UzH%#!kQUD-YUs2f5NuZLfMJVKY5!rH5kq91;{x* zX5x(|o8ez9#=SY=XPOMXB98-C7L|RB`xMG}x`fI{Ef zt7F(oWhU`Qyd)}yqF;Om*H9cGATv)<+G@WA|wO? zV_(q2Lkpl2W3dRaCC(2v*^At*c{Rd2#&twA#g_fHC(lDq2O@$Kw{dZk{V|+8=CQf1 zm>}Z~6wX$Sp?WS+!N+mF&WppH0|r=Zplbo61{V*evH=xj92D@P)1tdJvI) zf3t(2!c=&2K-moo=_f$-athpt`5-305>e2~jCV(_A9*+7!r%&_qM8{y!XC>w9F{y; zBGlD(+Od(4|1lojH(}D28ZI!F94Lb$AF=(*}%+BMT!M zVAJt1s}X!~X{5yWrC$^+02E?b%WfOqseUI_9m?nz{5d4IZ-^tJ5SvGs-A%T-nJpO#8H8HhrVkVPhsL_qg27!}u4DY9=Ex58N>7>~B%+^rRl zWMM!Ug*)I{C}2~fr3PV0P$!s~%+HD*7_6$Z*Q4c+mb-ugDH*lq`x$zg3`QzsY*Te0 z5CTQ()bNaODKW9=XpHg5L3IGsXf>?T$ZvHA&8+I+VSm+RI4aPhv-cs2aR*^soQMfmSEX?!i?KZKZ!UF#GZ*h|M^!dn z9 zBafd(&7us<0RrkcBYOpq255qf#To{%TGLw1xM zPO*T7$+~7yBr^^aF+=^uXqq|>L(V}fH%)(iQQ?K6pgJd{xcCcyIjC)4P- zydaVuQ)CX3#z7J<0*p&ME<+ zgk-UwQzal z9iOpQcKf5?+T>8|_Is6_;0=i8G`On^ZdCY-`_UmPv+*>7lYNnKx1ReGpXKzZ%O~X1 zT2IZ>bjm)Q9Pu00{rp)!{O@bN^sRbMFReXE#BXBcoIu)azv9sSru|~-sf}181a7angb3OKt zSn+0!cI}W+WwVIY*Ye80r;PsJ8xckx+RF!B`vt677nGXUFV%KXJ3NJqF@Gl=JCOMK z;q&Lu%$b@GLL94u8XWNMoUrPR;s5bgrH}3lz|KXt^Q5e$MxEZwaNCZ$v|y1cRy{9b zuxgizQ!cnkvznBFuQBolh_xebaxM)*v%-86fo;k}07G5^b1Qwf6Vo!Zmvn#5B+pZ> z30HJ-PCK`cS+I-sn!x7%9{_zog1@i36&GJz38Pf9y|`gMYR`Z@eLJYK{et8lHTG!? zg?}NAJU;0tof`x&B>Le9n~&L&U)ECO_aW`7_}Om|vhyan0p$ z%rUC2W}78UE?j1adxp5}NMm}su&}bubn|&Bu2n_ZDovASf4iu6Zc%&e<@1k|l}$bO z1nqnXZ8?oQ-Wo&bSa_aHQ1c4^_hDzaD#&S3YEGoq)HSuKD2KXdQ0v$1-gMl-165;j zMAHexv&$u47?MMPlD$ViP0G`qf=D>-jKz4sMN@VR(x$+K=((DnGr3rQh((N(PU zPOLTK-#iIWHQL_#Lgv}A!<2S!IaD@`QYl161#68}Ev{RYsq(G&iFHD%@AG<`9JV|A z;Cu8b$h>8Tjgx`KdRrm_(S^)(s!HlYr8I%SmcXn7^a(jeO_D=qp=nM}Vs#3RcfA~z*l>CLPuOT!ginV~ssirJasIv9 zhkz-N$XjSbqSJ#e=|gARrb0^=a^(BkfQ6mX4&emosz5z7G?+vNWJ9#Pxh@I1>MnN$ z=if{o8#$+bTyPyoZSO7hw%R;ZT~lfZR=UbVA&-wLo+DzwlVsPobPE>hkmI=SCLr6U^Ahyp z1}y4^B!ci+AG$!4?sVHCR4lw1><#wUWK=;mrBSV`u_O_sg_4BDrN$+S~o9E8-ajvllK6!EG@y zFMP>;GMaF9eI0mx{@$;P--V1D*5kA<&GQE}vva8_=QLrxL%t5_^WT}|;dBUH6_qA< zRcv&!T3bSv`P#`99MT9&T1WIORZxr~1)Vj&5U?QSGw!8+6%VNGT6Y?gHfq z$SBNEJ6h*hfta|8i4t}QNH|EQ&(RK{lA#usiDsE`MPt?6Dh6CN4RKG1@^WgZM1)tC zc6I@uJMb(v+A1h2f~MIgj}NTdm)Q7CjYcP*b_35H9{kiidZz(=Zf>fIDykx?Du+8& z8ONO2?7G(86V5xg-#)`&JaE@g;Ek8qC8Gjaumv-gH{@;*6j_PJFXYIea%R%58bF_( znAaz>F%=q=U3S_fHMNc-J)wr=ZV8I-@g!A|et= zH)!Iw9<3H(t&=7kEH|yd5xzjKJ!kVAzY}hH;r?J*ZrA4CHkV>)^aOg+@w0`^5u$sD z1afQxxga-nE*j6t#QhAk&s{bLYu~tzh}TqX2Cz-lDwEX8?t4>mh;Oxv!^GdIL%JA^}POlq}zcNYzD=7Ll1~5Gd>;i3bfW)JQ}r- z(g9>MfM{i)M&VvjgX=!;tknR(*f?W8h zVW1F6r{R>YmO4~Ww!*Eos8kzs8;B`IOl*$54m4_SmRs3sXBg{P%p5|yWjT)gildg1 zY?lHd7mXz%duC2|nWDK|XScm$mZ&$T_Kds zo}hIk39lA)w3>IAP(cwg<_j<(2Sht%R45+3o`lR%?GeCW5-4R@$r5NaDI`fI+F{ko zb0&gUM0nxjg({}TZzD@-gV(Ie+h^^W&{+Hg{(UU6)kRF`6-m ztw>^F`d$A2^8WkpgwMd^m~#PwL`hEUlOShUie;)jEnv99u}ZB}S#?UmOh+YH41k#{ z1_MhP6bog6Q8vvuX~rt!6cx2aQx`33a^kq6$l5^>v@XdkJc4OVC4{E1nTV{a!P%hN zER_<{DQzxea8)T$8!JdD525(nzfZj1d08x|%Ot#qFk(pZ0|wMm*svBA(o2>I*EOtC zX)abMqRc@;Xn~gt-=+z+-6_x~46lQCV24nOwDPSzHBjg@nf2NG8|@2+6e8Opv9PDK__DZ)>*OTexco zD597UEjLU>6ecPz%mTR7tjd<7L1Y$M6j)kH6bQ)ewuzxhtYsH04TOS~C2NA^#~BHU zakMQ#5KAQ%Q*0(gLk+TIf$}qbk2i##y&L5sPGD-gaB)t125+yA?SkzeZV7j?u-u1! zg;p3MoVKN}OvhU{WW{qa9196;_X)mB!wT&Q-b&@N6{^ZI2&`feL0}6wYA8kn1|T4j zNo=u1Sb7xH=7I0WBjE11dJMCDS(fv{%AH>8CB;A zD#2_A+U@H(A;|?XKli2SVC_kD$_Q}A#@KuF@=xp; z@I&`WAGja75-KjnuN((V$gx&ILk|VHU0%jQfd$J_vWU9MT&$9@li6tK)8DKre3L&B zH}+4X68K(cCQ$qo3Y<+iA8Kj`RFN}Q+B8g6V6e89GAOv*rL-%OHw$u=CE^uYw~LUC!h)hTMgU#Q49 zY7<72kQhY`Swj=uTH_{=sG+hHOk~rQXK5NZNnulWX3&RR%BRys6Hlc3^YQ8l}S=1NwdPDh(W=` zxk{^SG)5RI7~Gb$YhbBjg#ooJvJ~OKFgCR8I{`N94#3-=K6%ei5Uhy6QWZQ7wX2D4 zHN;y;L9M9>LZG|vgvhc6wXFt#)fy9OTq-ccP^uwNtW|Bc!rDxNC}kyWC?!q4PD4Ox zX)FMgv*F|o^ip|Fqo^rQC~R^#D70Z~EUoILW+;T^0UK%tGRGN;TYy%HVzL@63nLKE zg^)0tYNK2*F%(c(TR~uEW*9k3n9!pzMMaNX`Y)B6Y(a}Hl~Aah7*5Afonimj?GFJ? z;NXl_&^s7_4&BHXb5jux^BS)no@oHB5ds*zStyc>ho5y-20AdJ#TNkinJ333>UOOlPJzb?==uu z+`(&8!57-@@%1{}9Za{7+}zl+Kw47Uie)j`g>;u@<{6mnvx}_@vt2sXu`S0}V#K(T z_j;I|Eb2n13WdsdaM2H4aPs1Fd@82pbT|(9 zTscysvBOVii=?RP)o7{{Ea3@yH4=pIe<0fdPzu|m}rHV9Fm zfOihz&tCUHaqURH9h;1Tsa&~70?sApMqcr&5w(ECO=dT7s zTm#VemysmXj<|vF1iVRHkrBo&{z$V6CVa!*@*&(rxo1dnK=;H6Pwz2{-uwV#DyPMm zu@IaDLwzZ64#1j1kf2i_{(sNqYYTN<&fL9s7McjLV(Srfd8@4=CX=Eg+E7#6(1T$D zMkEm6vxrJ$Kr$n<3PhTEhfkxlvK33Q3>;0QR+H2+C>N_l7qO9u5k^H3L?<`juWit9 zc+M$(RL)Y$x~3US#HPVn5kk+-DtX)w>Rhmk{)hea6O)6z=YBHgTgOEX1y(`xS+RGxh zZe9>D&6XiJ%Qk}|NGM3Qn*=v4BcYwisyj-`@YKo>SuwJAi5^cwaX(Q6?3?%l#2ygr z4NdQ6Eyl93R8d0&tQ1+6<*{Pmh$=A*p(>OL1uUc(2%&;zGZj%u6+vrq=38z!z;c0) zU?+H*rhydMZDA6Fam5~KG_wh0)~r8E<@U!Djt(9*m*>s1VNi9kTYKOqh|#0Oc03!d z&5aq#(+o}6V8{*<&YO6))EObQvmH2UJEYcx8j0~WdFZ=pY$Ba-2AE#3_8yZ7hsNEiwy@h|2QB`4D>h!uII|HrVkv5fwVqySUr7LkG0M zUw!iU!146RjP%pD;}&T?E>i?iA1wC$-Q!KXWG?S-7vXJxy=o#cwsCDMBv~qP*@mFC zt?){^EQyd&LmL*sdK%Qi*wWfszcC`?5{#~ty6Z`m zRf6;rVG!8H&kFNpsmro)v#HcQhPjy7ZE+A#VkiiRkHix7G712&Br%d;Kv+}&r~;Ct zC1@griVPJJWfh=UEL0Rl#Iz`trH~Q=#8`?TsH(|nSfH{ZEEQA~Mj)z)Ah87ziYyo` z6^%_QB&vvkY(`Z^-}F*{ky*d5k$+U~CJawuI8%!2T{}(gSgM9XKz;x0dLOyJoS5sH zNB+OV>;5Ns$^V!AxSi{T&og?wwt05d?9r4NFI3<8Pwi&=*YF(KesCYR&hH@Wy^XW0 zwq-v(YW|OmyfKn?@7RPvh*$THw=^w4p%>)h@tpU_Bs?@Ci~--&q0W&|I~M0 z_rsOp-(%k%G1q9{emgVC*+}v`+zgiUA)WC4Jj?%6Cv2y-kNB+b2It)lli;gBNivoi z&vd;7&YmrN3E(@k_JC3QIDfiFk1oLtD+kt1b3U%Ha!(nxpvfc>V5oFKg~ zjhHcg4;M_Sn%R{<1i{{xrx9ZgbYndp&jqw>D$aL|Xg$!%zHM;(cI-{Uf|8P*j%J7N z>-t#ren;Du*$v5j-Ag*RZ)KiO3JA4pY(8BS?V-E-4>-^?M$!df;E)=Uw_fzscURvX7B%j90L)#kIAFOGJ%B=x zyk3I@v`ULnV#SaT&JXN|^}|MN;{B+H1VeB_`ddsKUQJkSFplVeOnlL^+EtJ`0LmFc z>TrUfpinoVEPq|qb)^Epuq9SsbIzD74u~ZIU`RdaXJ-dZwDD$7+nofAitxNH3D$lf ziGVhXbP!e-KR#cr_x_mq4+DfNLHT2n^?#8pe%d*YJ}Gko1IJ-aEMKA;Gmq}szSP+Mr{Cek-I&ZC|I{&MhCoEd`hjyY2nE%AN>Bku8ukPo3oa2J`ap>EIoP`jB{B`2bRF$bsXp)m9n>SXR2(ho5AgCclmg3CK``R`|@`$);_(~Dp$d=TeNbjjh9yk zi%#Lw^jhwjo<&r9L(hsRU{-C>&2;c9vwFtd`rXgD)qNJaA&Oc|`20Zv7eLG}CosYS z8xeW6DeJu)8I0eYA_7Im^<8xXwL9UL+gk#wSLRpfpNANh1d1mI?Pd<&oas+$@!iM`$A=64N_{2&_uqq|cjoFI|KI)H)?mC^YB|3&?=Se#(fly` zjkm84$g+2C#+}?>-b!}|e!3*0XuBVP5E3A)T)888+@OvBRWQUI1Q5Uyz-6F-zG18m zYxry${NMRt#9vXE)f%Pvi?p=ReL%E795V+(i(XbRVLaqA)Kz87$Y3PmD(J%vKSoMy zlOc_r|33u#N=da_LR#sTvP`e`>yf7I{%wA(Ru@;#Nr)KEi59T@7n?hF)*9QBgR#5z zFP;p8t0t`~Rxsbk&MtGbh?Ueh6a_%t66lE#8|C$0zKwAE#31@}_WjNeST8wQeF@UlQ z4+Q>1JYisT?4=>b<_Ds0`^;5wR#;?6!~_FD+dR@yf+^zj=kxuJx3$#Gr=6Ha$0bzT zQM}oq1ek`J6^syj6V!UnZ-@F`wR}Q;F0hjHVA8EtcuaoB*n1Jo_Zb?_%cAr&Wg1ka zBJJ_(%i_RT5d}qUAt;Iq1Vvbaixr5fh4ZYHkwIc46ow=Pk`l786ebugIuVsoU@Q#D zWHf}x=}qvgC$SDtq$I{&=*(?JStL|oL}3&Z0WE-4g9U<+6a^p?h=zT)$ot=S!&w3Y-};}Fu8WPcwsH?F{RHe#(AhzX$~?&MGA@GVuq_8a<78uG!(h-b2aW?eld4T24d-*F3YaB4-2 zI!-D~AI1iRLNCM_11Mw*!$>lPL4Y7I6bzf_!__lzM zQ1~k{(9jl?-#tsM?GwTqwA`0GR<9{?dPo3v$dCjy>BBuGxXumfhQm|1Np*!sD9TrG zEJ>T09Kom40n>sxz)z$XA!WMEUrX9z56&=2^YXzDh95@4Fkukbb~>gVht?b@d(<*Q zkoGF6oexD1R->5=4)&bR1VRu9KwJBbd04y69V`IFyM-2WgcvVPDw(CpT%bW1#B`H! zfC86bJ6p1Hv0!j%p&}9{JI^rema(|v4za8?$c8<9CaFM5P8$QQAU=*Je_wW>r&uXc z{f~343t)O%MOSEA!p0@ZBoinyWh$sZ(Y)w04`t9^(EMYgGZqFSqUJ-hJ>ES>W`ea4 z#E(#toB$(=f~<=P5dlDoq*5_h3KQB%3c)}W6o`PZQDCCL6i|yKSp@|YCZQu3g+x_U z1yxZ51f;A%L}0`Ys0kVdOu^Io2EAZMl!&VBoG*k zZ}PDNpxr&)5_;(%N=b0;aqx`;wP}8@HInFaCBmAStn`yMt?siji!GySB2u^w$g@Wx zhXV)v<O}Lh^!honuX*0hcXloou6p*yotx`o zFQOvZ7VE54{|{427my3BASLe6b3YX)Ic4~_SZgks>Mo5gY1WM{Y1X{=W!Bb)Tb71fmWE#UB1sQuktdZq3-cI4ZLzl7 zZ8ew!a?oCek?^;2*4^vbO-h!UM?|YJxw`iUD9Rd|g~C)rjDE)Y)fV_)1fYltddSop zJi26scTZbGwb&YL3N*qa!raWBCI)Ob~x z$UUctY565JN$^iUx2-S+3b(o!7PSyqh@_@qFFdA^4(_wFyZA}n`By?=-}W5m*%4xS z{@XK&_g}r++26guEVkCwuvHLLiocv>sFD$cB#!%8@Ivf?AV*fio6W5onmoUde!09i z`kWn)E}|e`tU%y9DIysAh*9sIN>Tlh=QlI%rq~e?3?QjU!LKQ|39I);8@*OrY(x=%df1bG^S~#3G_XcLz~9p|SrtEgl?=KpdM+Q$h^k@G)W%v8z{^uCcTF-aNhuuS{eUY_3+*Ve`3ar0+T_b<+7$6yWLW-R9U~I=x7A-=E{8{5CyH zuJYZh*lx5IF8CXTve#2#cDnjHzD$&ajn}=3$lj=Zf2=KI;C=q+!_LHB45Eb>VE$L# zcqe3bm@G|)7wB8uxt_497Am1DDqo7F5IUs0gqrNk0pOLSMLf^fQd2HaLTAM@302gV%) zQga>gZRtZ4%$mf)O$}~#i|ykyjr+_$Iitc)c-IvAzv%tf z+5!6CV8E018$%)aX~1wE5(FpWPYdj!7z9dzvLZjus8kqMyw1n#$B1~WJW{VRb5MM< zh2VWNsyc5k>9yf{j~euO9w?dTcK&;!;u_0eWQHx6M$kb6k+Ye!B_akQNF7yD5h0a+ zpLLe~j?@K*`&^Gfr~m8=5PbdNy3lwRZ?fv~@^WT*9WDk8!(_0CAd=&i?21Aj#5i@! z$bkV&lCn&k)}$7u6U+1%7{?%GkSz~b%xpw9$%AX#-mjZj%Ga*zYqpc`_+5|JXU2%f zdq2;|`N$gdZ3lnd&{_O#G9Kb5x2Lzg_GRJe4-Zy~c6MRm?$f^V_J^mZr>7T3Cr39- z9MzUH-Pn+tla?uJ!ED+~SWC^%ruW#zaPWL?-o?x{hB;wgr0Ioj3>rU1I| z(m>e+jd0U|(jvSCzg;YNB;DFi3}{wrtFd;P${e!({?IF3=+x6Qv0nL+dbT!?(DU1; zl+#QzyBHTT`Tdo>tYAt~=#sZrU`LUSYnR;bi~WN9L-%Yb<0B0Q3^xCnNtaC}AW2Cf zPe2A^HuoSP($gdG#qjc0%@B$-ul+#QM+N5Yez-XnFLY&5IJN^D zMF9e2v;w<17@QJp9)3? zX$$966JlG70+3!vC_#c|;+Y|ALt(O_VAI^-RSb|eiZQjTC}?+GMI%%uS!8+14S2-I z0mhmy(()q&^N7I+%o3sm;nrA7hEO5YP&f5RnC)A9~ceysq;#rrqxr#tRtpaNhr1|%$pM1qwA=2_xRWjT1tLJQ$f7@ht{ ze>B2Aw{9I`REW*oVbO%GA3>h!qv-pOWgm8Q`8p@1hP|8W+egwBPbw~ zNdP-&0_K&IOH7P?ef$)(GjK_1K_g3ta%BM_mFNu;31!AA0(oz3 zsnBQ)m{dtj^YQ)k)_Sp_M3I|keI*c&;c#SQ)O z)nKA9L}I+c&9}O1v-`~3m#aMwWTqV7T*AHI1s+HEjni#u zaI*Tii3nlE4o*)Fe0~omjl_kHm|@a*@gpR6b)u$yy%{+EkAFNKTfSId_su4`WV3-phd7LMD~bkd4rLhBac!fl#2 z<74MGyGM(0?vuEP4+ZO|e-QJZ$5H29cLoR@&EHCK1-umO3BRw7ha4Q=Gm{MWZW=Cl z+Qh{t&o!RVWoN%?32KI-#>3ER>g+8MQitmfFjyR~cB1b(B?t2@RVZOh2pCZb1R^G5 zpc0$tavW=PX{$>%Wze<^)8=ub5W|+#sk9BI(j1rn-_Lb6YLb*2u*~P8=x=(Ow?|i? z2CoDBe4k&p`okVo9&l#o=5H`(ypgl$C%LI~EIcNM1U8y&`E1{@Fl3H!K&t})K<2MD z;5XP-KX_`oUtH#j@3mykJ0B0;kC)T`bd~t5ee1OL-xc$Vuv450-^N%+Yk| zm;E_TW)Y-v2B#wcU~(~xL<|88B#4lLkXQ@*lqCI|0}=}eqDZMCq>7Rvk_>>CAfi+h zWKuzpLk0kq4@4pCgZN?lq5nvGuH2=3j)BfEDJ)^Ai0g9A+SKknA<`- zmUm~YgLH3?j)_%y=`Hl7H6h>|b}r2g*^@6=P8pz+Rg`}pXO-%+HRW-?qwX8mt2OZ6 z?mcbN?XUcFI7~UcP@ad zy}gUeUyH$lzAE@z-8)yGmJ?ZzS;5_FpRw8twwFa=z}DUJKEM5H|39t$7y0-{U~^l4 z&L_#0(0Mc6+kOxp-iR>TLF?Fu%}c|6SDOBUz@Lp=dLYMIN>rz^x5oIz&Qz{!$$&in zs#ce8uLK7a!dj}BRfzmicW?}q2{=O>+oH=@*vs*K4`Cueu+bm7}Ha2$p^i%yn;ss1FD7~xI= zom|wGLONl5_>!1Ru_42lI?Iik)X5v50ZQPuC!|5GOa$5wmlLN5 zURXTe$n$rN`EJ){HiQGCvd;mVx_Os2=NzwB0>S>jOP2lnd{cqATnD%HkcY8Q3>esF zcrhj(V?B#=Ao{I_6)p`_e*u@74;r31b{#O7?L_dSNfe~VRoTb=XV9R;_qbYBF!KS1q2;itzY zD2<8$5HM*V0X3R=?_6O^TEeYh6jXr4Mi$ZntxzU(A^P$7P2Y8#48KQdU%JL=qV|?; z_u77~H7YSTJ1)LzPSw5SH@P9b%U-0;=HSVl3|Qa3xcTVaF2d=H#Zvu1u5|mDnh^Oh ze1U;%&(P#8_a?X%-Ior}-}d1?mwxU_kI8$3=-+HRe{YSeLAmMPd6+KWTbpc(%wy#z z0nS{wydK3IpS|qr06-@Ijd9hcaB^?PtxaOPZg=taWZC#W9QzsiyFXp@#O~eUfL4w> zM)q&jOir103hOfrI-?EX$y^LA02?;%-#doU!nkX8d-otL$1?norU*wfw5|nP&o4_m zpFG!^@y9M_qCPfng|PGgb@;ZIb?{(_H-8QQqYk_c%n&t#^@2TNF+{B)%1Lvzptl$= zglSj$)j<%j{B+@?I2$1Y>b=aI4ALiQW6Ma zS=@eH{5#$r@*DXnRsx4Nm;3jD?oG#ZcP}FOeQBDr@C}GisaUBPSC2SM7&{#!Izy71 zlOCxB5^cfxt#1jal7l4F@iI9?$eZP(DW*u_f7nAF;WWd%CY|-d9JR73R{Ucxkb6G%KJP!TJR%eTF_DJmf zZJAOU4qHB}l`Tb4_i)A?EzjR5rPT-Qk5Wa_K?4C=v10ek4cc^!`-Mn$z?Dnr!VvI~p-K)vG)Ysa7SP74R zyuVGJZQX7j4>PG3DDff$kZ-kk_FF1OI$v*o*GrCb&jf*FI>7txGXN9<+6PfQ#%z~Fu>pvF z1t@M;U&HCJO`;JHd#GAaln?|$Vg(QwfPx1!3R(pO2GBR--ff^6p`dExwt%_~DS%=E zaP0A*Dih6UM`naSd~NH)Fdx_d<=lRfpe|ssTLhTKY#2rt9`Cl5(*nsr4A2Q?M73n9 zpilcUl$dPRg-~U3?V=e#boRIlLB3BM|3Cf8>==H5z28VLVAD2nTlv`k17VP{7DC+A ze7{?w5>wg2Z@`o)zmSDnvDGh^E=`bsV^G`TL|pB8-XHmt0y2+-Z7{I$VRMLc3rPMk z|4mQ&p}%m>Sg-7O-}uJ6bRR*O@Oa{)rT(0OJQb`S2mjA+K7VjX+GF57>Bc=PR1SK7 zxG%7M-QEYGyWADc&B4;PC=<^)2h+wwfJr}2@`pYj27v}#x=bEjpONIR5#R2dM<2{z z{BgW-y=>o8&(7N@?^$~<|CoUr(EJ!1_%~`GYL*lv?m$NU!?5JKNdAd$@ruWVh?W+p z)`oSQvcA#TD%|cXR}-SP@7lPIF+1y2a6v;;0gvl3?N|_hpfqTrON<|02(cTKRwy8y zm##1QWr6QMTN7h8CFs@{r6f*+WnTEvOclX(< zT(e~z^4S;k-J_Vrp!FduIN8|!EAe(L9j_9inSu2zTOHhrV@AEWjvulZ(frf4V87XK zJ;@_uEcTg%#6gief-tS3BM!KMCPqHh_KVH6wvU6=VUybsP^AL(HxedJ9-@y)ZGIRN zT?!ExaNJJx6O76sLdpr~m8N#mZ~q%($Ji!E9 zWz{w3i#V|t>-~I3f;t(fVmrR5FW??R%5>>oCvEyy=g!cxD&0(!8(T%kRDjC}rMO3^ zoMV@_ixH)6YG{!gImU1o)gRA;E>_0Q#lgKoO(3!u+{Uj-5+HAPJfRr zT({x2l<;_T380wVtDO(E;)9!WJ@eq8NZ;X44XFL@cO0fl4 znatT-%@3&8j6G7AHyIe-p#2YIW=$CKk9?^u9UFnpKrA+>QK$< zk|p4yhQrTChJk}ZiFSitT~$fgexyStB5^5QC}e7Jc2ddP9(!p`a-z1m^9TOS1|{hR zMlr);9o)GXBuKcxU|{F=MBL^TU6zzDS!$N!%>sI2KJ6CW4aR6@itV#pIN?)Nt{?`r z)U6Lp!BQ#6qW{unu5xA^#46ghInJ*|BiMW{*&GlSPsdbhYi*GM6e^sQbdgQnIZpg> z+iW1yy18Gd@RDKQkh_CMqbYwK_LX%VA(tt|jQMY}<7~k6rO0dlGMGGM3XIj(HC_;y zFbB@i3J4Vo1O)&@2eALE`T6lZ|KV^4(*CP^!(T7dU3=&ar_j76FdG4xUR^Q1gO4d2U?(Ph7;5rV)u z@fv?==UK0Iaj&w2;?cNZ<*;Q!X=I14R2|Ao9`n@$2KlAyPIHL(!8IqOUSSt~%(uOb zgjRb&o2Bi}&k2NR>Dqt+j0P|mz|suTq_!ll7Qv8f&uiBc-hSnE6D^gh zJX|rYDAQq8lI7^W49lPC_*Qk?+6(7Qi)z`?cpbUaE<~TVEl7iq$AVmP-furol zvo3cycL)!NJj=w)3n6a0!u8mI7KOM4_h!=t$~`&Hd=sho50(q4=rsSviMKomMTbm? z3|)k=7{oGR8B48vXv(?=ArKXXwa@1}%gA;J8F04aiwi_pZD9OO7qFmWGpXj8ad#X% z*T2VvEV2Qn1F66W8W=Rk-Li(iKMW8Y3rK#IhLto2>g@qQNPvl}IRStnEeL`FfS^<; zFdGCkz!<~+tOJQ`$pk3%C-N823ROVe0YN}e6a+y1{U{IH(7jD7`m&G%7!1V#5K>Vf z8B1_DYU9}UomYAK`d$gHyCbkiTuKAX>wGe@3h3To@q@=)Z_D!@v)xuhS?wWfAu&s` z@`WLTCelo#0esxQZ|zYBLm{)#d$Z6}fmKI;uaAGPxpucENx5c|TV+wbOZl`9_Oh!n zj05`~M2)D%z;AhwH(iFkW)!a(=bbB(ZcS$ZdUWUh2nv!GtG1t5%0sPXjNod=iw46Z z^S?&&6Mi9MmGU;FHtn|e8b-}n<&@I+Qk|Qj_OrULn2p~21zvRQmCv+KCvJY zEQBWtp=+~!N#m6eXB>!dww|f61L~qN7+~#5nr*3zTA*Vv z3U#{Hk*GpX}ZsrlMHy@%J3PwlW`$)Q$Ui7TtxMCKCzueE;sv`~1uH zwNANB)MmFU3##o%*3a&8+>H%fARg*#p%LwOav~xu*fm)RB%(+e3aY6~f9baU%s=qo z@4n0J{&(>mx{mBNCntYOdO5hoSHP%&p7J4$*4#s6RC~Wi@IJ*}yYM`$$JNAN3OL-s(q^Q%XRQs`(ZJ_Ek_BM63Tok#(bd*AwA=YDs zwZ^wJTy*Oht4z3+!9~@HOqk78){IRFY%tJ{q6>o)1an0-q0?xl4yjVg9ts2&;qf-RBFw>;dO1LvDO=ND9TGna9QFAbvDP1>O(rYCyf|!*lORXjv zFs@Ox!!Ct0DNRh#sEor{lrE`(nwr)c95h`SObknyX)bEvhK#zl;N>vZsYcYIYPzPJ z%4%pZy4I148C+pXXwXwmsMuv()X-WXt1Uw*t4uJaiD6>&r!b?ZMpe3T)YdsyNV-i7)iqOEP{mCpYpgBFb(KwPFwD4`)@59|tqxRe zjm!-?!$rlV*0q+(>55gktEJOjW)2E0bh^yd)?I5^P<3i+E;wejU1MCOjm#@8qpIA- z=0jS;F^Xw(F*3t6+p212v^k?LV7Sd)7@11rT-3FLmrQiiPGhVV3brELEMnl(E!MSy zTUFJq%+gmImrCnZxq`uAMR3wNn$@E#F)`DrX>MVPlSy?-Vrwd}SyN63x?;+St5Xvd z#9Ad?T_!NAZMRuvT2+o^aK$mk)m2mtRsbvrszFI2#bP2NQizC%h#-P0s;a7>BoPE* zBn=D<5=5m30Kt$7$qg_7s4Nyhtd$@PAS_Z4DoG_)L0}31R3xJ$vZSb1MJp>MWD1f( zr9dw#+X;Grs4PuxyV+%4Ft2|=v8*6g6sW^~zS!8kwKi9(_Bds=a%0aL zTJ<73S}2(iZ`}gmGtEO+uCHoi4+W=$iz+@$2T|*usVD&z%Yu+0i^UNfj)u5kZQh|_tP{$a1?(l)Q7z2tYc$**nWmh zx~Ameo0a_B{kGi&(;0%lH(i)~m{`CRDk&UPW+!*!Tz5-bcN6~^9)G`~@WG2e3K~->} z{ zu>lX3ZKFhbsXi150Jn}OL=#+OYN;5+9w-`P>|mvJk8R+bvF|b_NQKwFkGO!7-J596t?g7OCkoY)fzVa-ilS%PB>_f=nA*2X9P{tr{}!gs ztZ3dl87NVD!lbzSOwtxdvB0R3gZR~EZOUo zVPR36OK4dI7g*J-P3DLTT0{&JY-0BRDp`48*S_^(m1?LoC!KZFYhq%Q#yUa(z(7C0 z>xl$dSyp)x+0ee+*nuy*DZ#D`1$sJ_(=f)bPBFD#roeNV3i4Nku!tazWri@;rfHtT zRTfhs5$j&oo2g{xM#NyK(j!FQK5G*3WY)$3u+5QDm z$6=^TCoeKh6mxRtjQ%mecnvbF1Ma(T2+!G535c96qikBU6io^m(+#np#ABY* z@@_6xT8dX@dx@e90+RKQxvmSD4_b1lDSEXP&mJRLm`-%%$>+BBL~dG>9@aa-r7@Fx z&h1JK?TC$yN{@fnoCpt9FV7x4^OR-PHcc~ctfrW4y)%2HtXr26W+0Ep&4blXz15S{ zXJ@_jvc9TplXi3GL~FBT!=h(6z{Jkk{cbcJyEZH}9}T9&s%Kfngd4}pI2pyZ(^3eY zW{z7pRC3_HW@Vu4@mKk^=9&*f;fy%FA+gxL+zv+DM>>XKH?sV?sWYl(`kI$Bam(J3 zTSL{s64wEQR&V5U=rN;}oJhVmyte;o>^=X9&UJfJ0L_|P%tnB?Po&*S0Z5bq0)``) za4Uh3a@}v&tI&8`G;+FaN(d38Z2W&^Yczfxi-C~TE;^6q}%9kn{N-ki@W4) zwzb9mxev|nPsgY7zZ?1R@W2pxwtKM85A+Yd50V_i)SD$a--uj;&e*ZO<%-Y>>A1@^5aqAKJ(|tcmoi&wxmjkc=xOo3g zL;A(+=6AacxAX7PO?s*?dGIM^wP1cHk@y`*cWyo*c+XG9HkDQL;uG|8=H=fEqSWgS z$juEF6TjI9W@f0)i-YWd!GX*R&{|!Cv@q!gOTsIOCKX0-WWVU^`OXV}A2Kjvu`LQL zSR_hHO^j{Cq=REJAIu1}w^s>%vF1i=N_pAgVeR`r1JJ#-h;rjv{mM`g{#SFDFFQpd zmX;QgR|AEUGl>`fl*0=^KTUw;vxY%t0t$~Rc@WUs<1E8@3ku6NW+Cg+rlPn@MG1sg zh&VIYH9*esJOjCI<&1H(%+h~Yu(B6fJY?l0g#4PT!n+^!{9ZjynK+RASaxa&NIOUa zAdNIJiWm^VCG41xFNgRV1diGJmXN>4k@i2k{~nV`iCKC5vfhlu%xA@;dkeg^`eNX_ z9-DU?87UR`Jy7VeuYvFoEb_UhWPmm@eNd3bD!sqrYy97hPtX6ofFErp2_P7bsvw4= zmvuu2j2FToq$bGlnZ?i z==Jt}Iv6`ES9dvC;d}bDktku9&ph*VaWpq>zk|>7nv7ygI5lASf^1=Hq4qwA!2{0;?m{}0wxpkVcg=`RuO}vRXoWZ+3>-B%v?=Wlpz29rSp29bG@!2c0 z@vp_4BLR9V(a0D$pa2K}L#PM`EH|Q`>-D=}(Sl}swQl;m9TyeXeRPDpdn9VGe}tS) zhc~gtHt4?SeRP6jT71D|Zx)@8Oe`RyA)_G@OHXzR86fm4FA;>1s=UXQ zdoG0LqgmMcv6Xy{eNWx0-7_@M{Jc&+y@p=>qP_9|9|eX7pJnB*`aREU<#n1}6oOn0 zvmK0+^!VqH_tZt~v^NiqLy7&p^6j_|c0WasaEZJ==6>G4M=6xqwYH(Hx45S#?d!KV zA-ThVr}?0hE&=XezOBK_G2d}>;eE>#Mp@2KS-`bnpG0AUS%iV(P^+bQSe>{@5u(^% z!+17~B^-Lp<>ttC!7b_~$Z~?|TwwSmQaMMuAoxGvevOF66($TW=Yi{f@*STpXv11R zq<_mmz}eo|Affp}m{`^4*yvtrQBqz{zbH5v`1AurRB6d>a(l2;TWrp$8d^X*-O;j~MtrmGC;>-17Xc zgVFnM!1~=K#4Ay^Q8qy$L_~vl9<}>VCQKxd#se4{0!f4o0SSr+!S!eLab&+>{+o#K zqw9Yk@c!4W!l)g*TP~z$+`IMp^n3P?_D7!D`zHUJ<5Qk-+<#LUZ&I!m3?J4Og@ALw z*a7}L0Q?`s>vpCNKS}+Qs!RGJxz3PMa6<{Q2jz{jCkv}+s&v00kTR0y8pX{laP!|b zOPid?=GLOO=tyUHU-yIAgIc%hXzD;rKO^ufGi4cztFDUd`k)CARySRE=pjH96e2>1 zt45tzRzmV(4eSyK4OymdAA13I*7vG4+6>!u#_5*Qc;w%wu#$OxJ}X^8`dIwsa2J1W z$+^J|&K%`D92?tnf;_*Zt^zVfInl}=Oxg8CY2xLv`jD$WoPh!TR_*nl&!|FT(2fwq zeCb-hC+)q_s~fo4Y`abPf0f{V{L-|+SVr9c&05T^q2=xA?a|fMnbni4tD~cvo0F49 zg1Pt)E?{W0`NLsLwM&9nE~}0s1;X!k1JfE+8y3HLk?&y<&p^D}76z!o?=jskIsKC0 zTUx)*kapnX@>GY?N9k}j1UEox2iC+S3vZA~*WE9(oqqRVxw0=5S5VWqnCE$yZe>W}nX#)t7bk$Vf6Lj{`X2>2dr^jQA| z*|MxZQl(bMP+OyQk}@kL>Nk}?HJ5(BVOdBI2c)}RQKG6Uwj7%1fOfU|_#6uX)Iv>Z17L1Pya0ceXmYK)Z zZ*O{xYKmhD!R$u&gq8eGI9a^<9l2~>ky37^qIM^D^m|=xXD9Z$H0OBF9|a`!nW`|q z#xdp7-RGm#7(R@9vG8&4tKH>+A&)&BU4qtd^eB-KlQ_j-(VbjnhZ3&veMO+WO$8)? zE_pFs8}un$G&5_#JWmx6Gms8dIU`t*PdQpmBQI}IoqHR4lCpl`#s5RGbOj%URZ>2J z`7(Q2qt)>2G1;i@SwSMA7|>B9SXxS2<1X0SenjVzXgpu$=*_1dez<7bA_JG>or?bj ztQ*j0iY00eU>I*J=fT)UkfTgufa8pMSJ)|>R4%F3q>ySb?q3WwgUPz9%NB$op?9L* zC{2xERTyvry;{~w1?m+5F~eDJ27iq9v@tl`2K`$IDH{hJh6H7C(r^$R8qZ)jaihC7 zRvcBqLI;Du<7kbVErF+Rc7u=zO>O%z1f55&GxJ|t85;+66xR>ivG27qT{GmP8Q zHej$pyI?M2($H^V6Grwljy&(a^P4U#*HtvKjI1#hpP<=&1P~_(HUk(8it~(dZVrE_ zRHWn*2AkJff**hw0H2=3j)BbD=hbH| zSwGb0^>=*ScnBmwL1@&;$=sY=(Ae16($dmfqq|)rHo_0`BS-01uP`@U$+AfYFcB&F zt9|dd@sBvJMgI2N$xV!IJdUDg&i014H_gA+)Tjaxo9GGN{2ul)Gq<0 zutH4jL1lR(-;f;r*>Rl;l@&JMUT^!dbO%Jg%DZKss4OG{v!=G?%dk%=wRi7qYf~=bW_O%f6tuVCwmJB{w78qT(^i;<{3Ib`Si)~b406^}7GL{H`3n9tG@&mF5K3vgY zz1rF0ZMMv!V^BwWQB*q)yv{mtavj`_@=WOsjqgKo=fp7N-l&y~1p#xNz!=CW6FWxR ztEm-{3)s6FKuMkzPzg=Cq+(_#kEZFa@wEYMUXyG(p^<_U8SB_?&IC(m-gXi_x0{XT z525~kiw#}t{`>y#xaGc{w{7n2>EDs&IJNg2@7MYp0U@AlO)WN(xQ8CUY!C>bo*{X) zY$b`+#UwTTT5`a4xR~ywY(#c;Q?=N#@!*J%i%mAXYN1H;6dPWi&r^rX0`Kj1xif7) zTxN!ger1X%qKa-JZU0wvSc7HD%`AVPHn&~+a*FMf`t6V3`HvsZ-_mB;zO&22=1T9i zXJ=>r_8X0T2HHca&Hj9KQ=LAC<@CpJX}voeh67!+{B$`FH~72Xnv(z_4!KEKJ3^Sc z7-ZO%FcAQnvt@GVg$XXl1ds^~O_;tKPNBzgRWD{?Ls9I;VD^?Sl&)bz#4uQ2aW`AF z8WAD1(~%J(Mt`?-lEt0nXA&~i>RIWuqX`qLW3CTu?;0|nk7~X2qD#-Kj+<`{cf-&G z>DX?_u+A@`%WstvgN+H~*9NRu(%QtUKHyExS#bBzOOae>9{ajrMt+&NxxieF>i$_Rg}@I#%0uX%i(sO3b9r(O3Q7HhumT>RIZB=0+j`fJhvOz<;C~@8?Uf zcFCLkUGMU}zxMPVP5v_tEm+VpkzF5-0Y4Nyx6SKx2z%%XFKR0|+WGz<{A%(-uib_J zqsjGOJJxlcIGY)a{hp`$VSK(xf10hGhLY#*nAS1=d>I_&p2_yU@u;>Z?wEoYPjp91 zd#>r&<6Mf~;NW)*o5%H^-rW5dGFi^_RXah^L_zLp`W8Pt3{BrI=YPWBw-5Aulk*zo zbGh8MTS2PC(Qa|s9F99dk<8WJ|6gT=rR#9vxX^g-dbxp_b{AT4>>_s?0;xUKFk!ti zNvR@LFB`M*uJBHRguP$4aWmFXsmOlp8fo~?+K<}$^SAQJpR;?&i3{1=PrNB@mn8dOze55}fv~7q@>dWjvYs{SuO~#SIBo_7x+n{#hPR zZ~13Le=2dKhi=j69wazuNI@9@0s|sYtp+x@8^;l#{1x7c>-Y7x``p$`NwRak{h1H_ zgV!(V&5l)RoT@=m`B-m`bIO2h^9DZG>?DNDID8L+d zLr72p1Kb{l{3nxD+cXaZ?N#JPR2hS3@Z*ZNa75o4`||nHYayujU5_>|TaL$Pv-Puo zjq6*tsPOd<1tEaNA9HL+W3VQEpI7}y`1o>PkLU7+KdZClL_BB>PLR*CQT&OP$i=j>L4LH=8KGT!#zpnQGoM`!pT@Bk!|e_At?pFZ~|D!bDEzQndv$6DQ!T!=ZwW`%CSiNfX%vZ5yW}O4j%PiIJ z!~+8+cGVP;Zfq_DVem37ZJ|>2JH@G zPZPHH+>;0R(}>@5`u?blnDZLl>MeX~<*x^|pX5xv@`X%a-Y^PDBO2k?r^ zb$0)a9n7dvmiOw~-^$xin^?#(8^31~-tX`OSitdqxxP(zwo>yZ8tT5kn_?WM;}eS> z6^5G8MrDEMzh6g*e#OA>;f<-JMtOhgX}QRDi)Xppji5R6;v1YMwVO0y#`Pf$;x&r% zsbTj2+UwCu_J<7Fem57=WHR(HZbpmGcO`vB9S560rs6L+0<#ek0g!ge3K9>`G73 z3or^%to1G;FOQSt0JQYlnTG%R+BV!T$YK19Se1&%DKLS{={3tby8oL9=h3UY*>Uh; zpBHbAddiykS)2AXrEKDqAQ1UTm!up{l$Wi-oSw3q+aK-i7Tz#!wczE_qI)kuLr;;` z>acZh5bXxN^;IO25_?7!4?)o7{i8j9O1s}v-+uFB`j|;UC_FfG1)R60R2GEf+w^p+ z+t*gHi)JqwYJVL$*Qu?DDxID;33Qm4&*vxin#`w|9(m8Gmo)aL-44i?Pth1v-i`JD z=lMHRqCY^e5vG_in~QfZJ9VlqCk)#n)M$I2-~Q`Ops|VVOS!@~o510!Gk!F-NR8GY zxUGt1bg66k8mqQO{BZFmf0;8#<8;5?s$-tvvCv`NJCq;$_`gi_ny|Y(0zVnPg)kTZ z96;oN>IM`HAR9nGP%l7lK-2-r0{{j@3Q#m)V8B!Wi~>R|nvAF*ND0~saS>a`=Vy!=G^3__Miq`<}~{ z^B;Ue{Qsl*Q~Uj|J|I3AQTxevcpAp?%r`e3y7?7ykL7~G4ela-UebDlbw5dY*ivV2 z5EXp;>tzR%TIH#4FMj{@Od(>oKGk#Jp55xKxq98(*Kgp%e+CRUh=ubaRusfwf;2PV zqVzp)-W1?1ssEt;Ao|ONb^ne%{e)qL4n@FrGQm>%KVo?XcJvQRcoZ7>P+NkpPoO|a zR#bFsw=4V#1Ws6=+bMeKRRIsun`E4^*My;?`I=At1N-4~Fc=zY&(MQ-<;kY+E<$6K z4M$9Mq&KS*>^Z_j=76tYrr` zJEOQwUo>cU{ju{~Eu9{dXR_JHZmi^N2iKRwJ)QkIE`W_rm??q3cJV^BBg*&H~7-NZj` zh=aK7WT@1@rP=h)!f3^Xj|XQ5t+WfP(!a^BY%UcO>(1_anmOQNOIVLOagkCJx6yp3 zlR8~yC@nJG=p=gzRyJaV&DVc{?z&%bgK?M+%(6c}v2BmcU_wAJI5-4GBA|f?4nT(I zmb?EzKVw}w@RfJ}+Bb;<47c^}Y>@xH*q~+g{)9RQk|<+mQ4N8AfCmBLESgwh1!_@6 ziXQJ!GCJfVA->3d`5caZACXOEH`?|8Qk|{NhL>(X60!MN|iMYG-F>itsz4G90a#Mw`lZl3L0LCd^&6ZMp*a*WquMDqgo? zmul^Ht7-54FXDf>TZMtO!~f?tm+SoZ#o_5U3b&WNO5J>J7hJKK@$>8GRJ?gT?sgsJ zv}8xMw+W&;m}9mSkI^541g1_H{ae%SEvN@ozNNyfZgQHLBB+iJhwPO1){S}ZwU@Pe zx*bbzME!%NDcbsuMi~R?@NlX7913Ux8l{tX6}R;1;9aE|uh_cLp?8IIDVED^>>S5D zCte&z&3&G6u~jJm;BIm*A`PDd@V*wu?eYJ!`9C|f{9d%^h@mFNA3d^IO*v_Px_+D1 zhvs<#AEz+Tgh3)AAP6D^VjzMC1PzmKOSoAg1u+|RW~15Reei59>1@AahtFTNUWl80 z9zClot!>BIl(765D`y%gxEe=ytE`K85yzY#f)WQhNFmKK0m0A#&~uQNLR&Bg`~t{m zc#!PuL7Oi{c^kaKaYQ(sgqW<>DpVE)6m9y!@X2xa=QTz{Dn-;8U#yr~fE3##EB!MX zy@kh2_pGIY_c(T$y)5JR&VJoe{Z8je^%GN5Q&Uq@Q&Uq@Q&UH_Gx^6^RN$rU!)O3* zK08?V5BB0a8T{VmY+F`Nb>f}|?ZUiRbMW)Mul;qmf7?HNPqBvIeZBE;yMH$)L^(P_ zsc?nVHn*eE()=~|uN$*YXP)M=DRpX&WiABh0G-7sqq_$2BptyI;gI4Z!~M_ zY`s6mZ1~XvaO(Rec=rxX<{>cD`(cFPv!f-;euWE7_=d}x(Qw3gKEMH3WD_Iy*rz=g zU8V;g#rk9`e|L2+mtkzaQdg2#*`b-7eiAa7Pkj->W(;Q>on-}Bp+@^U!X=svU6)}_ z9I{+)t5q2SLmVQ^UXZ}e^6ywOKRN|M%m`dTd1SIsQ6oRU$iQN@6Ux}*+Fg*Gd3I@8 zJ9|i?(J_h53h?2=!X>sp%Fhs9Z7D_(b_iu=E0BFjB?bo)J$g?{SHKtyop!~7_**G# z$Jz>QgXYNK!lNkmFrq=nh(97{!|^=-Q$BfR<&4$N z&8KPa;9|RbhpPj4Xsyq=$<<3d6o}aGN4YU*<%UtBNmh5%3#z$WG)Wf2m^Vdi@;kO8m zUEuaKu~S=o`dKghCly9gXEXnox@+M(v8DXg_S)}nkDW)Bm*&^a#SRey5{7N81DJrw zfZY*Ft~F+$=tNa83)iXC#C3KM9$(+=efDar^-#DjM9xFEzs6y|za9E_4G|pJ+=j;Q zDbMt*nK4JrK4`{FCG)w8k>4_eb%TnmR|B@mi|(2)FWW%4!R^<7{k=_?DL0?7 z`+IoU85hO~fE~u5hh!dpz`P|48XDC|0}kNGcXC%1M3n!*eZ%uUZ{|C_iiK;TlW<1V zT!njlA9<1*U&pQRv-qjjb3*79+xO++b^F_yTo78^f*K*+&UmSk0U#*aCy*Ef)rTy> z0NAk*<7~*7F=&|s$E6vXCS}F-4i{y%m|_79d*d}D0}jrdIRGTy52&2hWy^H5 zy)T>B_PP_6>2pP!6`dPM`22x31iuf>0&Oz_4)>eD4;$~+X>65O29^Zfe^Zof^x z5txDXc-p^e+;^q-9~RZXO0m*ffvr&MDd^JGCi1x_ZMN*{dA(}a5tD;yx#RsxaLo>_ zM?*?b#~oSaxFU}^w%lDLxcW2<*RQP)?(b!N|7YKMbv zHYs&0yy?;qc#w0Ep*}LUY=-}Y);@-Wf z-0LB4zyj~Yx(76bZ6Q<(*or<}z~vl-k~~rn4>IJhC3a?mx5F}twK?*ySlg{;Ij^kw z6aGckd?R^z?=4OOzAge*i?u=Q%wqI;7^|jVlaPbJ{rK81j~fvYZI7Jzj6q0>2&zUR$f0c( zF_B=PsKi3GjBP9tQZZUmiYls$Sw)EyK@k;HQ50f=#fwI$!D7V`1W{CBTM-z>3PBNx z6h&()6_T+SD!~yLf+CDqi4a8;6cJb~L{*Cg1W-{>RgoBj5sI)?6cu11s3RDvD6%6F zSgJu_qJ&ftMHq;v#fT^6$KSYpsFzuL`Do$SfDHsj73$8 zBL)?Pf}$)%0gPH&3a}UqL5*dL1XYNlDgs+kSd3IaRHd;PutbQWsw#t8DEIL5Gut6j zRC0zPZ6S^^al|WHjVNPni?+qbOjVmTEvf~|3xXJen3$1PW?X+^XypouDO$!P(_$$q zV~kQ`jw&c4iswF0He zxS5qoD>E#_wxY2g&UFWo&H)(_1v%RhsVQw0jj*b<8YyiC*=u1^DFurKQ5d3(WVXho zB}TQhsT!863d?CxL0d&7D`ZfqQDC)_u}aloD%2HL3Z+R{qisrsWNj8!6hf*Essf7z ztfN_N7A&8h>Hdix{rH8Dcc|rhy8c}2%0Q#;C|(V zd@w)LE<_%@P(HdK|9U9!z%Kwl^!(4%|EA%p0s0@C!(q`OHIPE0(I|qx>s743u>kn7 z{|3}p5B+?M#G(*5WQsvTd0=_ypem@Usq*$t=imIZj#Z?ql z1yNL0QB`Cq2?T&qZE7)58kH1U)+j7d1wl%Mw#F*KVQ8UbMH1CjRaHPsZ7o}EwwA56 z3ffw>)R9FLRaI35RRtC*f~cUeMHN+6D#2A%R8>($iVCW#Dypni5m^;Qim_Bg6;(x1 zRa8}2s;a6eDvGK_RaI3|L$jMIwT%SVfU!Bv}Qg@;cOh$wT+iKd4^c-9IG5`lba4iS39#$F+Ru z3H{iD1)zeTvlIaI0ycm)g*^lU{@+dJNeAnVAj&k5#ukGT0e=APVqD-WA_n3Hel0dv zgo^3o|2H@JXFuoUJ56Odv%dtesF{rPs+f?}LBTwqU#F9nQOxAvV;DoqoWQ`MD$opLB|<>i!ZDCYD9P^w^8aWoC~?F`L{$k8 z9$g2i4td=1_=QubljwP9n{4PK_`R1~x9iU3Rc1j5%lR;ndM346s+q@M^_coPe`B4d zjEY-hBn;_V58X3DNdTM?0qcl?0YFUf1yl@A*Bq$z#C0K_&?_Upk`PR%eIyhY_5U|= z{cm*KdZXd*5ALqX)k8;k?O3Xd6j+RkD4?g{{-Z7a<{xb2X3x`_mrIV@QG$^9ftgMt0U>Xz+Jt)&z?y?(<>-=2fQ+}LqPIfWTaBJ$A-LHM0?sYqpOOq$&)BW~YtLpoX2EKl`77?2^v5jpsJr>M3@Ct5R zyOU(^vjj#9;5L_*Sx>^Vie4EtAHRGUCx9ZCo zs{a#{$^E`}M~~rjzO#Xwfjs;Qt<}KbMK`)YKt()2MMXNrMMXtLMMX+LMMXroOhm@{ z@^SHUZPJmFF|p4rQu9-iSj7RMhZlH*cVC^kgkz^CD=#aQ?Vd*qTs6F^`Al~!mCDV_ z1Sv zIGJ0Wr>r^>UR;lN(t3WgraAtRgGr{+Y~#cO2NUOdgP+E?#lbO#`?|5Ww!S{rlLIiH zHCgOm7E3oWa{0OX9W~CMYVE$8q|8KI(SwS4UB5rChg+!1#Ov#M_LHZnT4!`U-GH<$ zP?2OUq0*Q$R4RLk@A7Wy+M&ne@11@xKiqa#nSb1Q7%fVnpiil=Lh-W-0A6ZiSIfk7ETpNj9t*CsA;4 z5cZCT;_b9HCA+STLkX)_Lveg=DG*|@i#1_ZDwIw7tl*h%gI8CLqv& zsAiIg6Ntxk4$+H!YEXC}^4_%@L~I z1!1NNHa}CfT;r!(D;6nHGKSIJ$m;?p){B9(2pIsdRtiOisd|%%hL>hYTa$tLEEcGi zF(3;T*19X^&k$5ixnEZ;#OWt|v(}qCwts=*f%MuBu_i*)G35FAj5wBeYnFidVwS9S z-pW^fY;0o-sW;GRUlZUMkav>Z6(OTZ&9pm$qs`>ko`(^`7bu~agVip^5iNM-F;SS< z7)&T55hBPqC0W>NGbDk&{*)rXJ#@iPi{sHsWQE8tkRjT8rkx?1ggg?&};!S zrkGlQfa>Ka0XWoo33S_!`l~D({JR-DeqP}M8_;A5=;ezbl@O?j(Mg{DVjx)}2w8A45U0Kf6}zfZ&6|L;RrcT-RD_VfQ$ESAP% z4vp{E9UqyMuza;xx|kq=2us=CAtEEe%puQO{rFvrT7jl$bM??k7jI;dBnu9{3axjoY zu?dNz4l&whi~5|GT5HWqY(#2W+73zpgd)@gHh3H;$OjJ)LfC?1WmmvX;9i+TKX}0! z&gyv%gXz4^=Wj8~(Dk7zi45>;au$SeSh6U_!cSmB()7-*S?PCj=4NKTHfFTSQnXqV zobXmefwOy^S(lyJSq85Uie=CMG|6yO=GdyLsK_i8Rbv%ZJ<|wyO=n@&Asvu!E-+@y zZ)dkOz&j=g@{Sp~-OA()$97-Twf?NYJe;S9FFDC?)4N{Ju_$i_7HgI#CH(mn9c46hbP*+is&E0Y5M&kOzE}v<`9GI{3OSFL*BXfI9W~j7G6| zgaJsR+UR@`KHx%6K=%Jx>Urzp%*9bvQRSUwdY=E$THh>zhlt-8Fd-o8Qu z9)@T~h3>9bPLR9>rI8e%j^;~^GVAol1Q#IStmVva=zv=SW$M34+T+;$StmKn~g(xik9#XT}vuD;>1vske__y9ZvUNy+CO z`c8HsAdmo%1~Cm*s{tbhJ;c_Lv^ zP_DH{U)OQ$D-+)M{jBYJ;qDl_Fx%8^JY2!hF^EWvViAf(ibf$4BN&8Ykz&9gr<`+T ztn>iVw7R(B&>SMQYjbJwlg)fPjvJ=rSrtgcBO|9bsg1m295D%=P_{UYr=t%K>9m-8 zo}Hb`LnJ!d^m%(;P=}AcJawnN**ytqEMJ@0b&Pjz8LnD2zo@&%J9eNg5P{a) zVGJHjoHK!HkQ#ZE3ylB@z!X8|q(nVTwJQmQx2YOfS)4FrQk}MR-{11r!w-S)Ec2oU zr^t$`s-GbPzsCxyj!Ra{ck_BX6Vl2ZjI+eZ84(!|jGAI&C(A>w(B^UCtJAw_*%g3k zIxvTByH!^<%*$zN+f`LnR9@Y)6!6-sw)u)Es;a81ma2-YZBzyxUJ@$^fP@Gl1PBVG2nY~@CNz>`5)1ZpE;8aq zLn)!7imSwye<<+jqWP^B&)@x$@-_wDCz<193Bng$G5nkZ;$grO?0%~*5StsMm9 z)cE^7>mZsUEQ`zNP$6ajOL})5+(d(bb{^L!5r~@vfWT^jp?eP(VutbL&_pooc(39x z7j76~hcfNTr$Jgw$Wj-GY|I&4=)gQ$3fVFwFLKSQD46v0?LDEZ4+<(`6)6DzPBxm3Y?9% znMC6P?(1URwT{NVa70Z_NSYi%g~NOea^S%U$TdS_naD{!vkC^mqjPg(M2d$|Fe))w zIZe7CbDZX4%{Nh>exeE>$CU(HL@amhY6+Q0y%-DRKuA{GJ7-B?AWnSlCUEXKY}hvC z%?mSOEQxxGCdTl)1_tgH7z)^HN74(((rPjo%uB(*dbA4633AYKZZ9>1jx&A%S`C?L zYjVu+B+y)f2OZfOXxrDp88g}4y-^H!Zs27Np}-**qml@(XTKmdB;aKe$zM;b*iE-G z0#P@e7c?4+iEwbny$w6H4Kz%xsjN>v`{{aecw&QX6(cV5rKx^_+KKXw9h#-wg-IS%6 zL)y^-!9D+byUwP%JiIHIN%coF2RITTiV+Fozg*df;$cM@V`g6K^g-INm^(^WU~xf- zja!}!##}OnHgFuRu+lY2&nran&R1U*WLy#tH zFhV@Mxx-92=&Goys;Z)@zH76J-z*OCsgsBs>srH+B`DzmOwnP5%mAnewVmXaYN?9E zsi&hIuCN_ifpOj7W!4&ME@pOUGUBUDX6sBgg$pyDpd8w5rqgY<0|pF0_l%On7|ji2 zgBT)oL#wDv!^9cu5(t`-0b)SPrrrd%5DJ1YC`DKTfIvKAwj7g_Nu89I1}sEKh?Xe* z<6Fxe#Ng0&7z#+qsfv3^07XTxwQq4{FbR4VvW;l5PXSzpL9{^QE$P@V-aS}gU0rZ_ z^vc`Hnd7b-{BLuUY)^~D-xF(X3qBSDpe7pcjPN{eJnf8V=vYG|<(6O|Yi=>Sh479D z2viP>xFfU`X+w3@01W6{770xE8=1r18_#8&!1T%mOx?`mv&E7o8hUK&oJ5x6gu`bH zfB{Y$J4A6vl_^!CaD7P~>-9vsdA_JKYzIW9;h{YD# zgNJX7=5ypqCmBN+>LM91Qx~;Z>(`$_oW<5I-u0XL21M=nSs55E2_UlN4vzAqfJD>4 zb2`#Gur0A=kyvdB>afw84G9@r+ikTJS6#|M1xxcdX^W43^PZCWt4-F)=Ns=3>f)>VX#4vLXg5_5D29NS)X_clcoC$ z&G5<@&uqmEY*opSNjoKkgAWnvJFwK`Tn_0dk4fnya3%EN<*rdCsU>Y!Pz+ZM!@66;qp@FWSesKhlVCeV%)!t=T|_a|aUAwH5WYGFv2=kV z(bc9UK-5f`SzMGf`P+!5Cs|o|sY{2WNGwL~xk7aE1;cke<*s`QpTtx2#8rxytfy)|P zJnF6v@lRdFl|<9)g2ffXk%k^)bD84ykAx+KW(GElTe}f1PGUG*BLRqIW}QJL zsVV0<;L@&Xg%+4F7`fDjAZMs|@5Cq|>3B9O6AhX16jM*GBve^~Z0_rTK&jMm4RjGa z{^wQTg7Cm3^~}IdYHoV6;q&NM3phck*x)HH{pysV|&5 z=VRLO_GG^8cey3+d)~cRs&)mIJg8wB`P*sz!&0$rmc4nU%P&$S{YqJL8drd-Ni&H;)Xf#~- zl-5Ra9b4fy5=o~h5tyhfY;Zz`?1TxF1u}*oc(1IkUT2jka*AnH#G#R18 zZVwNz9q4r%12$(ni6#Xo0nqT_0npV7;Wi~%Q?nLj$_ii zCxcQjR4P_qF+~xdgrz44WNEJmVAmf(=i?um$9aN=*)_UzoQ3{tHt-D4@>ptVC zBEn@p*i3iJtvZk06fxcq88$#Y6G^M1$V9zIT3p?$&1Ob)*rrov`8a~+a&Vi*ZNAB@ z-cUjt$U+&lg+rEeOmPPJ^4jbS1~y*6Ei)1>*rN-U0XRh=Kp2conmUdPr07s7{GW)v z(XrMYdx3`?z1|FlLvr<$L=h%$xr2EE;rbZ~ymUqI1e43ebW&%~0E9q$zq;U!bno)Y zcMUyR9D+o7l%--peh4_h`qTYg?t@M83(}dymt_R7u>JStdFi*xwCU{fIds|KKVBc1 zoyjMDOJw$%Q9!D|kyoCd&W8SEu>5QYlQ99$61rPUm8RK}kpL7*PVfU^pt z!eY|1hGIrER#jM3h+IA(MpC#IVc&MIRA#1qMYFKoGcOddp+-)b7Fag^ zcNwM<2pRb@=^IfFjr7U@kDRo|B_)XO5fA`U`Lw<{`_L{|LG?5jfbrC~5Hf z0-LVA)9BKg%|dlrrZi$Q5+Q@@A~l8c0=N^%B#r!Sy8|y6aB$~p8#73BgG3EB5G?p@ zrqg0owq?3mM_YB5!BTvqPaYkX9ClrC1QifSU~z*4^aH@uPVumC4J?qGM!Jm{Ra6&q zzJ^l6Uk@gv*qZifLp>b2j5#%?&@E3HTSG`t-gh({B=>_TOfwlYAr})xFRE2!ut8*8 zoS4E|CL&TGb23d7GQ2gIXlRVJ7QkKH7%5%FK?Tqt4KbmF4LN8{5-{jlc$sKri%Rqz z$1@q?$-eC=a^9VXn~BicQHakOHawhz*V#UMi)}_2%fNDDFxOqCy<&<5K}1&yhLt51 zl+<;NCv*1G<$~ap>@XawHYy>f7KM0wS*}He^KpFcGoUOh7aSr$3IMv%Q1gd>EPxRs zJcyk(Dq*?>6aiD<;K~#%Pe8p!T_$Vrd zC!4AOS1}9*4@rm?*>VIecp zkjjjt47|KzxXD?Vsv#`9BN!yA!-s=>VepjHpUBa7?w#L7z{d%P%&Y& zS(*(OUD0^i5Dazp0Y0_k9*(b;NZC{RlF$P#n~*tRlukPRS~r$K8v z0_=IXu!RCed=o#36sIIOMRBA}kx*Ti573!pRL1`&~n$iRdmVs{SV*}C&Nltk0P zZu%-ynBF5NVW`qzSOh15oI1c^0>G%j%JQ=7wG43MmeD%?pD=Oegq@R|-PSHxv%J)D z5!gkrXBN|98!{5B3>if+lPld$?1j1TU8-9o^NMUNuSwY0W)de|Jy`kV9x@uVVkCVI zGmo!xpy=0`U88}*27Q)P&~e`|*4>41UWwx%9vNZ@fMqoc%auR`0!l7qVN;M&LHCS? zI_6Y{QY)m~k+KpvHp0V7n*y^`1#WAuac#|8N+_FeKXR%J6$-oJVVKN9ARk2o2s#LY zVwnXpJdpZw_|9GE5HMAiFszXV0YDmN0%k<ai^tr;K?W!3bV!)ttn0WY19?&o$AA zAXiK|U$bAn>?v{e` z9?I)WX*b3)+@NPR-Gw>;vO%L^otRrTJ>KLvn|SCo0M-qvdqXW=aW@SuQK4F?7{=HN z(U!0$JeUhGv@;S8Y&{Hs*;S_J)>sSYRt{)Oi3RPuJ21Y&>>cfVP6W=ip4J!2Z2?{7 zh3#-CS>!l}h=DST;8`{2a96$ZQYdVZ6f978y~_bhG6mw#4(<&#>pmQ!X@M1V8dI4{ z2G1Z?U}pNzE?vNf*5eO>8|Jr`8r%mNZo3WJYh&yOJfkymv#^01?Kly(vZXgcpfr$P z&=b22P(hdRdb1{he;7da(htH95l2@azI z;JvZ~0`Ggcyp6a5_mRZ_Wdl6-qn>3~MhqJITWl3PLnB8=ki|3FT?puU6B!|drzA*Y zE&+_RP>|3_*QB~a%$8@Wjae*cxn5kxVbHYU+!1GR_Ea8045x@8&I@~3P#_*^X+Yu1 z=@N#LBxYPu$Pqv~2q*ST1I!Uw?DJvEecr+xvjamt2d(6qHyAPprNK-!(^X=ROKavh z7*I%6+5rq5gAuI6MnG2TkU}865nFh8p2N+iyEiC_LvnyU=$gn+2K*_P7fW`|6F~)a zG?kQ>LP0XB5Lt2x*3j!`E}FNLf_mC9RmXtx=FgYtYVdK$uD`bQ{3-{61@$@*!Eq<~eDWv`4tXBvMbG zm5EJ|#m%)0qedpO14Nilk{^t7cnFoC1Zz8yM7vW*wc@?m(%|0iNu_1fcrZq%^oBT?U#YnA-uQ zPE_y^fmz5`h7Q5r(TIuHdbPJB>N$GB!{C_%IxruO_2erKPE?Uh&|c9O;`<|O$v7&j zoYf8bkAv@We8TQ-Y6jHMa9eG`YJ8&H1%Ri3WUG#G>p4YI(luw+dH8%NebhOe5r+{V z94xU_RTWiLRYg@us;a1}=YQtCZm*j^HYaJGq%VQ!64TG2xWUY6IWm2X7;9ljvdFVpY<; zr0k)m4SKRoDUx`oOp|{GR&830^=#$sCSrY=Lj$zWzG5Xj_bXKOL>H4pfSJz9t8>sb z2q|?VMJ3#6#%(g#s|X;tOb|t;1AG*qLLqip-YIY-7NP-xR)bd6tw3ZNjM-4N-59w2IHL;c-UQ*=OmjullX z15|B+(F=V{{6ONQPuM<^k$Wb2ZL>j$z%;Vs4_^nJpX)}7%rm*`aoy|u=EVB=4Un#x zbdR{eHhJDP;ptgZq3r^|`G!RF#bbj#-$WWXpvu^6OgCPNP;nkkUsrJ6LGVINr~lbyrJ}2K!17bGKQ>iO=tC>n*8K z)Gcf;%X9U&`@hWnHf@LIA)nsqb|LHKSGmG^vZVEOYQ;Jg0EA7-QV7guYjfGc;Be^@ z4PC9n7g>Ua!!*PA2@jT>)em>)Q?K39cJR<^7|uQNZw^MQ&aJP|FWWQviwLjOsrtqi z)FaE6l))FzA!%YYnhZ^9fZNNxiG9?3CXZN-f7|BkzZ>c2tqxaBFV5dGG*WtigGqqc z9y~8b{d_YYTQv3`!(a(7%Kg8<`{{wcU;8NKFZ20*d);N}u3rKBU$?mHR|V~48;oY= zu`?`ItsWN;U}u93usAdTJuqhnWF267@aqGu3&ZP&R%Gl~JEqFX!G172WxE<2wTd3x^k@?6%LLAZ#Is z%7gG8a5JcQ;g}hqFByg`khqwbR(uPB;5EG`3+SBH_vUM7<(7Nqu_GMnsoPaISdM9$ zs}T7gB4IDTk?Ll;olF{7(UA-^JbNcGF`MQ=q~Kv}MxVPWQLQpm;PL+tTN?k5*mL~d zjN6B{kkxn%LUy_XEc^Eay7H;(mG#r_!3ng4Ha7qn|5|m4_5b;O#ZI$O5efZYblTRX zw%cMNAcqYeTWm|CX#lC%Hpm3EwqO0b{?Av~d>aE0pZQ*p2#~o?x>e&GhUyQ|eP8@s z7s*Fz_qc16XV%z1whaIR1PwGm7*+s42n3Asau0C**=dKDKY2c1*xf`UYc=JoInZME{or{1LhygiMz|G0Zy;&(DA7eES^K|8-`Vy zuB`tzg%$>7?jCV1^mC4U9xSAWdKt^l^B7|#%vnE5ns*x?R5h4@vU&Suo0Re9Lsn5e zmMIlfY&Wn>t(~ituip6@wrYj{xc+OA-R|2lOb#t1nj`Qz(r4lS;-s_zj2OZ1=^g$4 z)8ux%pWXi&ylfl&zRhlfR{?#>Zes@oJTE94Nl3-(#!xSEsLDya50}#wF%} zL`Z`o0y7GET#jm9zMQm(YQ&NJjAHm+EV`*P++Yyfp z9B(%yNij))9uoi|f$jlB?ejl+q_|HKZPs1l(Z#P=^=AO zQfA01zy{ck{4n5d25m=~w4Db{2SugkT%{8`@A2Lg(1f^TT?p79p`iX~;u0D1#P`VIjmIGCt8h@#F;b!j-Gn_TXnW{#TXlz8CfK zZf{g{$UOroe#F_dkhO?rDFvg@8SS6ZDTCf3b+Ry3kCr zeyh)MIkh+(m-BsEJw-zAEn#3t=AbygI<%Zz~Sr_*nR&{fyIo!gO<))Z0z0uzl(I z#wqM(Y8MzLgklLQhkN~>NFSh4cNZ8!wPhfG2l!2lPK~!167vlUHT6_g2sYXw6_yz* zy$>P1Ho-4pfHWUoPS$ivVemxHoMmT^E7{(a` zEF9*UhdWw79-=dM>*Wq;&^7&)Hl|pU$Mxed}r%NLQ z7!y`|hn7#;eNKRwxo=xkyhW*j=^V}@Ir!hl{rA06#rt9@BfHGM1M;2v{)40umJ=Ar z!mR&~)?9m4JFBv$I7@=j;hZH_j7GPg@FIEkLC-I=rLUj0$->Takimxg201H(t~~+H z;oSsKi<0XDqJ0c5h-NvwM7-T)M2qdf?~RWH^k2V{qdvq5NNTP-9J5xK8bL-e)`fkXmp4;uxr;aQY)nL``xep>C##4 zI-Jofw3pNWB--_lFF)Y|9fOl&ft%1y4hf+FC$;pdS_pz@%=l0jV|mk)EaC%xH$OcH!Ki1H(azo3!LZV zSOgLY1cE{$|9th%IZXkgt{Kb^%?Ms)R9%0Btm#Ec1NN^(2rCjI8HI^4EIFvGm`le1 z`JfvyBGAMTB@ApRSz=yLeXuhAA|T zG8h3d0v1SO0Hh>P1%SMN8!L(iR82_YrN$8mv4aGPA_*Bt$tV+g6;Tin1cM}sFo_7s z5LiVd5I{m8L|8&95rbg^KdZ}MCl3{^!&S)r_g{*BR#{~w?06{r!+x?(*rVtS7!nZ` z4TJz5=tN==5R#x$5HMmgfC&f~!owC2fJ6bTz^GCp=h{-NOj-sZbSy+6VRL3AkdE*n z4yT-*aTD7V?%bkoZ}Ri`23U%)%VNq2CjQ40awFT(Nl`?a7IC{ja@1Z8Blua-d8q4O z{G30a)ZF{G#xMhzB1Qm$A|iXQb96EWfMNsSF(81{2;c9WlHG9)J%}~B-9X|5+heR7 zIEOjYC09)j#2`Q;Y3>a)M4SXu&`#9g5+LdEp@1Sp8S8VHpN1e+5G($zKET6TZ@{-? ztA6_o5Wy-Qx5CesYERweB7X&&oE@E#L;C0}fGkL&KvpRtk}@Khas(g|k1!aSlT;9H z%UR1Z1S;6B4)C%NP+`+_#{Z*``i`LZ)9B4|=G3dIi^1x4$5Yiw-#f9+$p#1B^;!gu zM&>FVd;?$E&x8TWipTA%DZc&b6e&a7InK6Bf*-E<6t1Dgc!)(O@G1HGOU&r;!OS;B zlUpK-6c;k$yxM(pMk5i9)>~!q((KW^anFsn9qhNX$&4%T({lQRbqf(!H8Do!g6`DVa(n5Ubnvg`^w-c z96c*Ixej~FfpttAmY_=+!GXcf06Cer2YgUtu;-`VabDn>KM&Jc2i_;g+!UI_7Xl*54&WPSsKGlEnmduTKy6bF`8 zK=>qKhq)muF-`-JCX6)5TK+W{AY)^&dEJe(5w27+H_d{f%Hwc#!%UpqTq(|W zAT0z;3sEpS>TUu+8rN@goR7*rB9q<^V~V@ymbj#d`s8yP{6Obi1H&&%mG{Bly4 z@tv7n?Pm=^pk^Tc5=73J#RS7KQlT+poKzbfw$o>`0H2+%k^;#K327Qlu^NUb$~d6_ zrXhv)w`f6j*+Nks1?~L_d6K%+wsGx+@ja9udNY~qeK|APUtPZ+%HntJX&~~>+nJCr zL|JJc9@@6L&w8<%kMMPvIGP#%8?7*EM4-C8c~L)p{-X`XHqh-HpdcQ*BVi2eFe@ld zjg8Br?!K?0`QKx+?GDw?4Zh{Y{uB7OP$8&Tq+_7O03cV=F&xC$;A18)Qi^(ZpC7R< z-usJ=oSD-9&t6>u=iu?4H#Cs(EQsE@-w_JC={eI^j zG3tJ5D960vl52WnUWd`CO%%s1GcGx+tX#7Bm@r00Kx1vE%-}b^WbZy#Ku&b` zyHZCuerJ6Z`qx`isDBUFZ4~JS0x(GTA;BP6hWxTcM9)UZx-9&!JRfoS4vOY_>tSZ~ zF@$PyMtdd5JyxAv8vTqWPZ&LU>xY!%OTC4F(#$1==|}z}Q1Ofx@<2Zfh;hLmngR4? z1r$(T#t=kAM9kE}?3f0|jkh+S8yjq7lG4d(Lehn$3Q~crFywTeYUhL(s=fmZ7Np@o zPN5`{cTo`!2_X<2-ZOY*bj(Vc+fG!)!!rV60+E6?!(_l*pjeYuP{C%`5ma&%tE+O` ztUk!;+GO2VdVUKgGGkIOM)pGtVhlPZ)hrklI$>n$ocWv0VMD8Z2_(CO7@`Rz+1!)L zB6`gT_#X4ze8HZSdYSb*9pYsSHji;aE9v*4ZSI)7>e(KQs@0|=I;-U=&!w78w#e5` zdMvRHr~yKw<^>g&&72m#4q(+uVjY`$o3G?P%j|A&r-*7S6c9?<)mac#YE?u8X-d^f zl9q)LM7BmORf2+*Mo?m`4`Y4DzJWSK3OKL(K5g0S!7xy$g?%r&Pz)XB=6p*cVH?a% zZZ-h`j$enVk(Lb?9zYcL0k&Z-91Y~Kgyu$KWrGGHSi_COQ7p!$K4q+0H_QT7#+`5u zIxCh|8usIl%;-aO|4f;*+K2(wAueG5zMjk5uy!7saB!~ z@O>;6h=EuTn=6$qWq2>(U$QIBXv4f*3VAZFWwjUW&q{j(um6zFjEr-&CEzAo!9;djIY+%sB*{EQtB|zs`J|-EYWselcOhOK)Z~oEl3y`zdIpF)8RsAfWXFZQY zyf-*cFO69BV_A+MZ)W%$2no7GN!Omf!YsOei6W%EInK-17)s7_8QV(Clwchw7Ar-V zoRSZ1*j~=lw}|lM3?gQii%Cm~V9X*hVdGd=bqc2RqCYc1XlDtrXYM)pX2gqryZSGR zR92zYmP(vw0MPe7{Y3X(L_qc)!3)!d{q{YIzPb4>d*Uj;0@b&B63K1&A540cvXK!Z z!uI1(K(-0KrORHY=iStOMkFbOfpf6HVKA2nq&%N(?LEiLuYc>Vo9{=s9=FgFv#edM zhkO?>>tN6uo@Tn3{n7d-@wWWcF2BU|zj#~};uXmx*xTzPg(D=D-L#Q9x{)F2xfM#D z`DB^_CbR}ai>XUClP7SfUQ*=(LfA`KJ?O*Z_w2dzb~_>9qPZ5OHzYNau3=G<0CXCF zIfXRl_rZ8qVE&aw#Xed$M!HtJos zb4`tpF^>+e_$%HL(gC-F`_ebP=PkZ(jmEI_zJjj&tgw;(&iZOXd5DVi~DWXdEJiuMmWAuybBlqgzKhrU^qB@9v>FRVj~!M4)jGLFNkWWD9(KO z^XKy&Gek{jAeY(Ww`3d6rx>UQ|>*>hl~Zu z!50M zr^?=NV&K{Y-WO%qe)f@X_<+7p*Y^V14~9NYa^v1(sSEsO>h>!XiLNj@(?Fo>gA84nQBe(AJjqWn4%2r*vxwkc|7EU;=FPLf9D4U?Bwcpv zc7t|dFXlcU1lxcBN9x`1&T^U|zRFtGn5~`HPYaFT?e4_8)60%2H^`4iy%9jSf<@wi zS#Q5aG{=QloMw{{?ny7t(xz)goB)U$X2AzM7P;`tMs$dLJOu9n$koy#Qh4JVUO+a~ zVlGDy4V32Y?lwXkFfu|oL-9n4;~Ujb-0H+^-O-(zvs-5fdW*BG+c@KGW4hzeYdG=MF(ceVu1hlL9vl?U0KW+4N^xJb(_YkAE(fZ-dohZn{Z(R#o*uy`0_cNK^Z z6R5cnhMlNnb`o!74MHrzDnDqV6i@kHTj3dbroFfG5IMhPepB!6iS zY0da?Gyg^8gdD_|fImcspLO836InV>SQe3*w`F}A6F9Zmm70l?hBd+Ez2^|0n+}C) zG_(hQe@FZupj1l1dGYHZ_biRThsL*n>Fce{xqTwWKCn+0CMl&Gl!<)B2?G{9bdY{0 z3iD_)=>74RhJ9oDv0tkIyz!8**Cr$Ta+CH1#Vqlkz8~{z;e6}zk%JL|6H69>Fxi~| zJREWV`2@>AwNx~ia^hBHu0aQljN=#~a|QsX&>Wl05zOH?g9qEfW``Lc@O~2VF-E7va zGm#h=z?YfH9{n;l?&eL2q!4#tq|7~Z^$fSJXB&3@G@hXuX5Xd@H(oGk|8)`Ho;Mq$ z;q>!z>M1BxVbm7v_8Q1X;|T%jPX-5kKnw z&-`Eet$&u=;dSuK836~L0-autl2|{rEI|&$LkI@N>~tq{ULM}l8*R(I@@q2X(XtIFUA7%Upd9LtO*B5%T$D%AyI`1c zo~9|mGQ$k#CVCrILs4NsDGmk)TolTU`&zU!jXv5u%v0uKDu6 zoKMxn%;K(;nI=Lmde+=GP;!WM5k_}JaX&s7+_ZFOHNQ&{(X>0uC&lR+kc(19=bE=p_0`8a0vm2-b)+4f{$;b9H9 z#E>ji{0_gnJFxgC-=ILg;$Ul~@UvYcVECc#MwiDJ5ENaLJHGF;C8m3=x!HFIf5V}& zHjicaCV|ENgKv#gKsB_(%^rF<4of$^36+76k%UF-5_PWnXIn)EGeXRk_(jLN@a*?? z9E*B`%xaQ38O9zgTh($7TfKLBW)B5}OCVfp09}cu5a-FX7oK$WT~4ifR{`t%l2LLG zaMn#mJj+3oy46q;OT%y!&^A{?YJ?{jCuV3Mp+bdBqhm6neosC88*k(87cw*OzY00W z4)eF*@TH9oQ4=|iV3Farsf!*KJ9~a}i^H_rd^W*RuZ3o%+*xHj@K+z=mc8xG*S8YY zeu)GQSkekTzP~>%Ns+E@MkPT&tyR@vNFgwB5Rf>eSJTC2Af$3UTo-?Sw=tlw`v%4| za~{Dra4tk@ONGOH*{R>~E0ro#sZym%rYAM>w*Eu&Gcz+YGcz+Z^Sw_}k?(un;XLyR zrkYu0mRV++X100bgdqqva}S<*p18(XyW32!jW_9-s;RVRij79h)%KaoE56Nbk=JI( z+W6UFu3DJJA3XNNHxSHBzHlQV5#!$cc|`Nkf>Qt*33dD(F2L-i`+uXJM)yNBGUC4_ z-*7W*$nA+z``oKM{6SlXW;c@0x9~cRL5BuhRASF^_H5c&^Jy`RV;Q8tbE8_;wTxx1 zuzRh~vlo_yUzgp$m#ot#vYkQsA^9aJC!JXKZ3hDvxw<*3usgb0L93(lqFJrQu)|;Y z`s4W%TXzGi0iC_psyrTWY^}21#H4t8mxL%X$8@KK`IrqIxNd@G74ReOqG|sVww3tw z-5a---%%x7%cT-AnlTiewIJoU8x7Ooz5WV%$%YYM2_CGREtOgPE*<<{Ym#y~qKf%2 zOsWMPAuHs|9;vWC3_vJoU#i4Zie$&>4`KUp&p#!eRG^6zn}_T=K7y7<_*-o0>+GDR zCg&<$ZLwB=ox21<=5GB=)sHgRF(Bz0I7n%bc<>fc30d-yWl0ZDf0S-{xApemUPm&+ zT=vtV`lW%bZMLzuOvy@Cp=y@dZ!T>#bGs<2$=~BKU53#cWj8oY zfB?}*%n$?J*j~cmp+9fh6#!OU&k zq!>mXh?J^4yKy|53h%z?Fax?xFaj!r4~(MS0|T29BIDl<5yk03!2IrD4s;|R6OFmg zraewsrPk^hPXnY3L6EyDV}8SwX+)omaVcZ)QWzL(sFA(a;O}#|93BNX*cLR-Y=iT< zFI1jkJ#jv$N;i)Oi&G~rI_WXTHI?^=!OS#sEg&!!OrbM#LCR(#gEk=|37u0qLZZ<~ z7r+ML0?^1;r^@AjK9$Py;2E6F%_67~5fLcd#awJvu-R0C;4-e;5t^e7n4s90K$r}b zX^hyNrf4T?RTBs#4TH)kHYJc_4r0YwP`N_vRTTHq4HAq9SUisB#{!V1-8;h6>QBvW*hLgE>m9rYUa*i(G9Jwt-5CB zgtjc(w8r^V%Iu7<(=h(7v;cUN2-Sr#X+jB%QxU{I#qJBw-AsCsn^Obe8q};SaeoqG*?G4sU zDpe9f=0=>ZH^ih&AUKogTt8raAJ4(^QXgbd|ET;z56Ck0rmes^*aO;Wk%S;d42}V0 zrT9EDy1e$M)AgoQ8d)#f8+jPT?k9)gd$f^3dzE-WqAU#*6!pW%9eTw5C=@@oFas#k5-9X~2XzivmV6y63AJJENC-FK zv)W)@^x8JSXkgeh;<1ELf(U@Y7qEl_>r3x~m!a49ex{gve7J^X#4^(p8aTrlI{Jw? zINOcMOJPf4SdCiJTX=IWIhP#EScr!wDq2@YQ6Mr{V;yEN(JND!od_A_ngp?CuC&fA z2{YBOw6KFYlxwt#5tR1@D=RCJS+r=QNvP`&$8?-U$nLFxYv!5Mm{F(Bhk(`J-8E23 zF@`|X)NQugZu4`nF0#uDEN!;OO%vP!g9PbT3Qpl%WnTpK;8ZOukgF_K7=obt!3H*1 zXqqM4JdP0BA*gWUOxf?cE`0ZVbC>$8=`;%K`mgg$tSt$LA4TJG52R2{+aq} zcl)l~9juULX3WPkvDKuK(Bimr#G4={vKD#H805kl2~bZf}tpYl34o|A!iU z$yBx<8HNRit)YP+MfdQZZa2I}!>`Ru{b-a(8{acA?r|e(k2e_M7{T4x6f*QOLp^5>Fz`$A%~Ih)G-zc+;q&YNWj0bA#c+GX}uj?dLOC3}D#WNM_x@(-!h% z{N|xTrlfb^{UOd@F2aOd4#<>_-32bHsVeVvs)C@4k1=3{W19RXzb@yA)INDUtw+s> z$oRH#_dh2u)6-f5AX(n$f>i2fWsv4%6$M4&tX?Eo9-WoeTar;wtO_8h1tOQ8RdIyB z-IhR1A_8i$nKndKGT3RO_nHgaM-RdsTJXAD>-(|^faL0%mzO#eM3MM;`=RLUZ<1fb zFZghj_GVt|r0EGs>YBSFbFJ$ssYAz>+1PG&R`S*FnOA&FN2rW$%5SpZVjUZ-GtF@`R6QRzPf zb5Sh@5+>R1A=G746&zLp_out8s)PEFa6#%1$s&mQ3-`eoue3=a7`7IQpwLN5iYWw$ zpr2RzK`=914<-r>Y;*#8;{2g>7PRvUq@)y38SBJ}lJBclR@to?G<=8xPXa>+_1)-9To!E(ntcao+VSTl*whw{{nkeW(df?{-?sbg^ zY}eKbRYrdDeq)k+R(!y3yu~8HWLfKZ)3gR40!9Fl$- z!Cd~kS#GR4`NS8aQFpt#cs0L{cnF9HfwV}72!NzS1b{<~bPo`Q!Xj802T1^Up?z-w zVLd7wfv|Og0kkMf4jA7o+Bi1!81nH#wiF2z?4Oi6uUCNC9Z4S0 zhY$uZ0&4l3O77z29;d~tS07^%X3oBr$=ipFgdtIyN>Yf1kV1Xf!#wI9sCwWC9v^4b z4zL)3m|%hUL*5sMgM6t+7a!nTFr6kKb+<7wjm$A7A%hXX=aTF?6PWxN%hwErLyl9T zbD)G2NDzmM5YkIKq&|HQg6;yrk}#k}rCOvSvx;z%4oM4YNDF!}@qoMVJdUB@(PjnwqXpD!VKsS!dw@6o2Od)S z@Tg3i0tkVOtOuG?8HdE$27?1O{f-(;(<&!k`+m&P$uL6;4TAk6u{-=Hg=Mt^cJc-H z7<0tIMkHX+72vPE^d~it&v5?AyOr@^j%DTLVl-U59RuH+jrM8dBkyaYhlDu`n1~4m zeMRP?Fq%U>aA~M@4X!h0^KnMm7BTtbFU59 z7%fnE&^OP`@%JBJouAapwA%Y__o|4GmQ#7eL~kJpX)!dIhR_KOv<;@l+Djb!F6-|) z`(mOBqt100Jru`}zI`o_gVcXCYE!Uyau|3vVrHa zikr=4D&UnCh(K&?KzjKsRwCNWBFryE%kuoc9NX%Q!FhS;KZfh}*DpcV@drCawZgZ% zV@e@Q2AUGrdW=A7U8yZox)ly%xZPf}Z`Sp+{EsFin;I|XZ(M!dDi|$<1c}CXnu#}`0HoRB!C&59Xm<(YElf#r-Y~aE1{R-vuc-x z>^_|JpZjXv{X+LRlUSSm*OC2MS2I=`lxQ=>jbBcuJOT1(+}ro+}%R-TVUZ1s(i&2ur$F)g}=NF;aumzY)p^Rz1GV!8+-E|4G& zRgeKms?`<*%CPOYj~<;x!aL_#@kqnR*DpKa5*bvqsxg`nldJg%!cfQ~l8?#qDcZV{ z;4yO0M(e)Vn4jF}VJ_{jhQ;D{xbv;1aP#-|R8J-o-x9aKj)~WzU%`~H{2dpkq%JN- z^(vSG_4W_}T`3#psYp=Z0IA)I1%V>XZ1V@5ucK8Fu%g3<4@X@r@d6IGI3cQKIxh0) zxqFNWsh>m7tM&n!hjfB_#pF#z7l4Qng^>RId;ed6_u2yh$v9#N3{aa z+ikYnZMM~=q`;Y(ZMLgokP32-hfO1~o3ICfV`QK{+D#$&GgEG#QC0d0GnNZq81EgE3<=NLQyX28MN8!Qf>c|K1Gx&wFt z0LWl&^0x4P@$%iX0Cst~F322I(u-^;jiN#(v<=(G>JO)Y!I)`kptFMzKiPVSZJ$C& zh=A@Kd4GbR?@Ig+Ow4M?$4yCh4w=X6XqJ20ndjnMf!1+`bTy&lcoh4oIHK7(#fLDtL0-Vj!9TXP5l z7~FwIgffk-aB7dN@sJYWa{oi z-E~iivHl-zi2G4oOKa2A}v)Apo zwdiv5o$E)tHnPwCy&_T@d_2;V-W){=uN~D?-(YW{4qbgmP{+iBvSdUkX-c9;cg*~` zYA1RaFF!S(yL?tcVEn*H#t|)edgpXO%9{A1m&6yP ziE)K7WA!5Z|5*Hc`9U}rPA6Vmx%soR^J@AY)3}@DZ|AfMk^xY(pjU4Tr8TG%F$@EK zWJTJhLBX90s;x9^SF#HQG@{#Rjc5R(QGcyjHmFHjDOI}@C&dI^Uc#@5V;1;;# zl1#A;ur4^`N=L}*qtkcNuY8xnupta>Ap>9pK2r(A3jC(Gifqp{Dbic7A-`jXmW%ww1fyjiUZ=cB8`zvN^$e+-ODlqDIUi)cvE<2 z+e&bppke^*L9+I?aE7o9SVu`pgEwKjX1!o(HE|phUlvGo>W}Q7h#FMlISVn~aB6uw zyY-qEgym2SxE;MT?>f@C@z*wM$CGBo*lZ7yXA@@AW4EY84qbBs8YmAxa5Fk(!^@?! z&6o_vU=U(3mwTAT)|uk%-^b+gz9WAB-Us)C_w(w{?kcLPs-mi@s<>#!H-wl~RaI59 z`vQMY$>f3LJd?q>B>i`{Aazcthg`C%sHlpnt2<7Gzk)?r(ib)vKtj0nrCGV#_$O_z^mI---N(H7(=a#iT8duQg(+Az+s9lf z08X6~;0EsI{F?n>_?Enll=ueNFW&d$z{7!|+x$;C)+_R~P)~8{TATWSmqcP{hc=GMW!Gpra$a zxSsGw-&MM&AAHV3*%f%q|K`sp@5hhVieeh5KXa~}?goY<wR1N}y{4=-48Ldxi3N zae{gqws)n%VYXi!U>1Rk{1n0&x&D?Q9r697%6Y%j*WZpO?FPX({Ig z*BZaejzTy$eb-xa|w*!hHh@Z@A_y245JZ~9|lqaoJ zk%k0gn9tMnpDC@ARm&)PFZbi#vh#a?T}>rO)QolF1lJNJ1`aC+dvaa>=uYQAl@cV9`rhF6LvFidosTC^D zV#R#wg%Ln=ks-h53`vZv<2nuXgIyWwFJfA8lNKwPG%;tdsoZWT816KqZVbQ)@*rmo z!NH^ho_xxUE*-XUZ=v+$V;gAw8gr53$LpeORTl_-rZLqv7?<|%$pH==%WF<{cB16q zXSsZrs8atmq1aglH%I4)8=#KMqH7`|+Q$1N_bzfclzd5C zA9?H>_}vdRNi=DLG!jUhKGV}fnq32#p2VVswMKv{2#jDfz+(o$4g-W9r-dpYXw`h4 zb{3c35km&YKf8L((2hu=#H%1;F<3a=k*GYwlO)u8z&o;l`g6l5(wokBL6-Jhtk0i z+a4LL;y2ynzP={#c>E->Y~_c$d9k!?e%C&!z-yy3Q*}fPXUjfwHR*uKlML~r8Gek+ z1{llQnnh*`LhS?%!(Sr|EE{&)YHc@LUPDYs2*rsAC@Zv$SScbS6y7t2Ec0-4+Bov4Q0=L<@HUr&b;at9Y-)Zy7AhU(8dtt&aW25oi9hA zbT|VQl5jo~{ReVkiu&zz3rdV57JYTrRuz*gtzc>k0wxw&U|3BeuB-2byeunK2If|A zOR5P<;9FB3lQo)8-_)4PObJV8`f zzQZC|aRM-?WsM@)UqJxA05E`k05h5hinGHL-22ESMPdjV?s0>6QhD8B|BdE79AD#F z-$7?k;_CpRr!efsEAA8vTjyS2eMva|NA_CSRXHX}aE{C8W}EqEW_n9}v{F`Cd4jg| zBbv1oV#!v!h*5Rqfwh&Ua^8sP84ej+#}$Qbr}+@6KluI)$HwSB4_mZ6c6X1ejfjkg zHt1yfO8m110Aa3D71s{ZyPNhSw?`}Q(O@CJzn)i7wUE2!?Z7w#R?SQlxkVzR(}7xS z4r>D%5j!+AI1fw#E51nk<1P>*d?I|2$>eHzURMvz`CXhCGS;?$W}s_|W^Ig(E7**W zvv+2>R>ZcI$VucUXLJX%IGTnzJaT>9ii-C zDczvBGLxe-Q|0-}Z#7nn&(RP`Ad*Rnh>D6LiioJ9iosD-6kv*=s;a>i07Q`#L5-&U z1?eN=YV3}OOvQS`jo&!UJWI+pxoz3&Mxz4u?b25pt4YY}*4XW)jcnRgR-`2oTgw%G zb&d_ZVsh-e|7bruMDKp!E*-xQ@GZ95s;hSTy=z+5wWx>+9o@^jl1VWU5fKp)5aQ$6 zsEV&*E;|F4{WewkKzx88KqBL z?bCGygRlb($A%w=5oq8FJ2?LX$U%SCvx|k^@fRU-5~LuAsYSNkWy(=i%dKlOGg{WH zpX4MUgPh|#o$eAFE#5c`KdcM|AI)$DiOwMjAjk}ql%XfDLLaV}D2Ur_lt$ZZq5>pH zf(Rg!sOu)-JW!VbV*>*jCMGH60RS@b_w;E)sKGo^+lITl)g=$zMlJ>du}jI_87nacxP6E2{usBCO}!~`5y17{o$c65HIOFZChqTH<39Iv_BKJ)L*Bsl#D-hyz!fCMlM1XLMN z^>n6%mgaaWPf$eHHEes~*?OM$b9buqes9o%tCS0<_!fa!(%K$$$2<%|P)HdgSC(P5 zQOG6g8;?=6uWPtZrAkz?9^3tZ`dBw!rhh#o`#1ytaX1ff%2%3v3hxki--twI!_P&T!c&! zkmmq2z3B*%Vc7Y&xoYl{SDvFgfKs<(UZ?q(0#x8Y&LCf3*3nUP>{$i2tk&Kd(zWG z2~D~C5Uz~hM~WHzkqnX$2muo-T-DP(CR=O8#}7RJgYpr61`Ba?x6;SBs--h0Ew4Lq zz}sgIE?b&msG}rwjsyx@rc34@HSX%f=-Y13*-ZW}`!!OaQmz16P3-Ob1_oGeiOga+ zX&;@$^Cnh;3`n^IWX5Wb@A5rz_uQ78i%&o7%wP8SR;+COH5EcB2fsRG_W*+qVdyIVkA5n|Ij_j9q!6oy9h#J~jjMf`E5ZF3b;75`N4}rVc=V3+# zjyH1ivRE1b?$~9d0hl`$Oj3q;90%MZC0TeWRtPVm2QEm!oX{}^R74jB9acy^!Cfow z3KmLPNy(ubl$M^iGmaeOb1+D6E(-D@0+(rWIbv$l)RgUT2}+8);Cpja{M07IGq0|Z&MBm_Hd3!cCm z5^S3_$Vf_Pj!{(3Uh-K)>%cL;R=goiro8CQ&UL`D~VyogO-)MapJ;^4m^qCzM3{5 zNyuI7k`nF32N@vbGzI)F3=D|EajuGj!_2;7B1^_Z5c;RjK<~>8)7ycP69_N{gr%uc zb`+p||ED2Ik&n=LwlY=!e}$1gYl!sa10uL zb)G|#gcGvR*gL8C&OqCn_v-hrDq_7w_ZFu~1umE_RAq{eRY7P9-E{xAMzM=APto+! zuOVP^43J_l1aEG?!E;^nnb))CXLr&OS$-xqexs2gcXg-jcJ+0QqN-v_K%}M`%2^XB zoal5oFfaiLi1#eo$D4!t;7nT{$TAS*Ma}WK-gn0By1-KM0aOd3vYN+eScroZMdC^= zL&pS~B+yq@{WTSwoxO$Au~~1Af33c>S~NDRLk3q~_4%!_sjX9F(_pq(I%a<@UsKs| zEmT>I_$6L(hn<%~SP_RK11JtqfDkz$;U{F(l9&fI+H$aS@6Nw5yoZ!HwG-rT`IRc$ zqkbPa{4`_c`{FI)0qA(AgePJ=#9z>e^d1C}DaexX6I14K{V0i^d~)TUcE`@eRS{7U zRYg@*RZ)!%w%cPE`n*X9D00Pi=W)Do6>NsCI$g$GV;8ymxdVMxLh%vNYv5}$fFRy@ zYj)e@zyJmX?Xb4nY`*)1AT#d>(6;NOk!?_sir{Yv1yxuD^Jd^p$=l4}OXAp`BcCrd zsU4YeDYk2Pk)P+P@LM+5mlAV)1V3s{ZK|f$%I$t%XLwlEP74nb2@6`* zW`b`COf;Kqvo0ifVr;hBi|Zga%<68k?&Iov?@j;Ddv^PW+Qz|Zb3K4*#;b}oM%}pqJ7zU{)Z<%?62|Y^Hw=wxIlr35EIj4Qc`AOURR^&x;rlM zxEv0r#^L77lMhu8n@DW~6BB4-7}_eU79X?tnXOq66$DfjSrkU1AYyFN;+$>6gPMLf z9QhX?N@f!b*t50m-cvfc9pXz zFz4fJTkLzg?c?SSyEg8g%Us7IQsB2@pJQ`>wVIuACe!#9old3;l}$3CvEAqO`Ny0v z_$>LA_w4vH*lZdwv}n{X%$8;`z{d<6IN2QO*JKXt=9{b2_Y+4sfirOozTV1|`>LbP zvk#)EukY8fI(9zEpHtCJQ;7BogZjc#f|P8X2=4t;oW9oT_`jBnr0fiv8z9rMI>6epCFd@u-o^;z2<}sdQ7B zC=tJDi(2;iPx6;`$@8_Xdc#${u`b=|1cODZJ&wyl+{__{xOh+sS;Q|tv&WOSH{=_+ z5bzdRWuGLV_rH-$4^SSP_Yg?cCAK6l6nd4hQnd_kNRfO0F2@3#_rt@b{F7pEVJzN; z=^z}LAX0`Cixf0+{S1SW{(p2GPjD}qgX8JkJmeaC9WePJaiVPv&fTS;Tfbqx&9EWK z3%ps-Elv+hxLR(mUsf4|hW|FZ*;W16N^X1I)as39W*b;3v6-%a#>i`*Jk^5#p6 zr}{*$IQi@LxbfB@JKkMFVNnjOw__8W(-SY2`kw2H_ul}<-?r}mKX%Fw;uMS^hqYFagMJE9W!*Pk4hI7~{|}UQozqKVdl&tJ3yf=0aYvj!=(wz>F~0 z#R!;09zdAJF{Y_Kce&5k>Pxq=S7ER0USEn*1~nB2#T0P&J;c*Z_WiEj+#-@hRVGx5 zk!S>FDmI%|7}Ev}BBH3GB6dBk?{Ti@!QkL%u@)kvupkgYAcKd-i!{{RHf`YFz=GWG zw`R=h>dSSdMbWyP0*5CTmGRlfulsa5K0vJQ54;>X5kvi-@o)FHllNbX*W3Dq2xc=2 zapcHmOp|&R)txfNDF1zkotSMOhKgiFDwhGBBjtnGnIH3~Fm$%qkJyS!r#+u$`)%-P zvwPj(1H2)RXSxpy^lHvhx!4)`W7?8oec)p zQ#C7~n2E|oKuwgI_W3>7gZeT5>eP|?2VaMSKtajabT}^a(7S8M+Bh-?F0y#SSRMHO$7Aj=-ip`vmE#_sZFlH z_02a75AWw_#hUdF8lXgs8xWXF5ZQW6Dz}KXusKdF;Ebrzx`T>27+3qAa9L!+5XLc{ zz3%)xL^>fy0ATz#TUyVX$5%)MU68NbF|&VHggi)Gx7x$0>-mEFAMcIF0g*m7H&6^; z7sdWfuGG6zFGI*WfC?ipTM(T&`<@N_^^Uw>5cB8%T}{EccaeM94U6aV7(NnZQkE&@ zej0EMw}$-$1b9^%8pq8<1L&H}gGZ6l+k*AArrBT1$PFUevRzc~EuIpTfr)|cr`HLIPOUpMMnrAv^yn+_MKC15V??I8!50q z;ogm4?<{y-K`%3Jzjho#$`Eu!@ZAIa3&ogywLE|3aQaZ`!#X@ZA`Cr{$d__;I(f&_Cm0D#nFcp#5~@A(?rFHRfpa~!Vz+y$(S>=C0r zhq>9jql?XA*b^SE^`kaIxs(aW);r!(Wks-C8_&wi<;}@@%TxXxBY2F1iyUs2d z^#)To_a`l>AHUANk#ylmzPVyvVFKi_EkA@rU{KV|sQOrt!YJd@%Oz4;e zsEq-RvSEi=hw{w^j?yP7f^J^UTO7opszbmfFmnVuMv$W6jA({ILoVAE;U40C1{G(L z^94atqG;=bpS8cv3z313FE&Dn4Ve#+YY0HF{egJn*wp9)=ZI{{+#FimxyW~jpg$SK zi6nx{z1^@?I_tc4($f;XRI%MvZB|wlg=Kz!_P!u5=8sVOas08k+-xvtLV>W*(7}QX z6or>2^KY+v1L5e4=aM`=PsjVyNX9kZJuYHfJq_N{vR8>pVBJi-Y^}+BF7}wX9n1(t zn`jDxfn$ji-h6O_;QXzDQ1=|jcNgho@V(YrJ?8D~_!`cr_Rx779W$2_Lx0x-z{&t{ zgwTO?J_w;8--~caQV-2o4vqAF==q}Pm_Y&~1A!Q*9Ega)Bi5iC zh@%Kh8NF(%skttuH`l*rl-|dqZ_vx+AC&Wtocty~Otiv855n<(Sse=` z(ml6JGX$PNFwy+cHUOp@9D)bIWQf4%$tpo%1V$n;ba2xJ6%i33h{hlloEhW>hIy0W z!Uh~vo%|DoD}oYJccfayY=0MFsm)@Qhm3nMj*RK|G*~v@pt{Qb1+>bR$Q_LH$PM-{ z*O%J)O4`|lX<%n=!wLZsrw4`bIDWd_hARbH_w#K7^)Kt)I4A(qoIjq*|r-LH27-HKc^&UMD3)R&q zkX@Q{YChXTOpMHF>F8BTUuzJX5NWXnR+2Ry8nNk^`)Op$tYXf$TMoHxdAk|D+I|@3 z%4&evQ~GDf=qRF^D64|qSNEhhf-!-O6)s7djnruc2!@6!)A^387btbWid6imRI&7H zG7wlI_b&Eo>OPVa0>|{NYg!xdV$2Y0>Vz*)WXYMYy$c8xlx(!Xr1C@2uJG)x)DB;G z8cRESJ3S(RrS-rRB`>oCp($t*BjqYSxBCGQjY36`jJP?YL^-qS1j6cq*jRlot_%YF zdg~WPV@ETGu{{AY6D+dH7!FI2`yg^g*#<$7IRkOXeUP~eY@D9a(qeS$rrm#p zdn~WpH$dVI(QRCCw(|D8FJt@AEZ$#HvnT}He91Re*s$It-+k~6Nuv-h`(w3OA`Sm92{xlS z3xl{aivTFXX`=uykpe3Y4bW^?5&}m};~lkpdSv5j(z9!`K-jja(9!=5X&*1?vwlh- zp(2nJ6gW9|WY6zxeXl}h%T;0 zJUFi$DUs?4N)&SNk8^B!)`0{1-&(()_J&&P1JKMrcrrSvpB72DolLF3z~K2~AOH|y zHx_URUKEu|Ag^d^7R)xkH2;_82h$Xx2jICjG6UL0wp|PSh0(ZF)JQc-az}3*<#t@s zr#gFVhAJ7WIir25@ANZmvCZ@5aABsh@|@?CuL?SkX{oFe8l=LMpyL=d8^&aPqhU4!y7lW-!iY3{<8cPU%3gbSE?^=XcffM;GsY^wlsL+5~4{nDBlOa6D;q zA7DG?eDtl`A~WH`RLm8TJUtz(790n%Farg8=I@rOZ#IDAL|d45JZpPXwg56-lfn>A zs57b^OhO=%#~g0}%Zgw1svWxQFOV@wkzbVsNGhkFKcJ3ccOSO>8!W(`&Y;D^%0e^r z)`em}n9e(gAQBrC1+CD5;pzC+x2rHV;ufu4_GrbITN>iM%nx_Dw`QE;q>N|a#jZso zpptM2CY*iRiBdvb;{Zo>Tp$@gBA#`E7kk$X;_&zEnS$#$7La1u*=nL@mWSY0u01Jz`U?js ztoQ6x5#BzMLC|_B@&;BP9Q_Kr-j{gF^@X#$-R(a=x9-fgoy;!q&ooT~+xq;rtuB_s z>`$Lz@s3#Ve>M>X0zu>`1-ijmC7lm%asZ6yKqMlV7 zAm2Fm>r=I;m8A28=wC3*A@;iuS0WjM0fX^vbeRSmjc~kwLU~ptwso1CGzjE<7XJ^r zanx4aovszv{2dw>h5LY-io$GdM>!D!Ty+_JSW>Dr`N;PUxd@b_zTH8{V*U@U zjKz4{Y-1SH8_AL~x0gqMhI%{W7QUvX*`SsUOmdrTjkMbvZIO|gnHkY}wOz5zCKRV# z7QYXddYw*%wq9GLz%R26wJE~$(3aL#_?#J9qHU84$pz6x7p}cTD;=(#vvhg}flT~k*&621X`b*vz#p@Jg2-^;ZLtCrB;-hQ3W6~hBn{2juq(I_ zU<@N10La8M1yG2!ukFLc){*6f#K>?*PDHHYtnH365b1i!Z_JY}_>c`Hu!A zS$JSHyvBS+mXx}$L#Z#t_Qa|Vov(z{xvL8;p@1R#8z$2PxQ8m0^*s?C^PjU9dDvcy z$>J-7N!fy!9d+8~`;yzS+0 zPQ1leWXH_)e%kNHe=${6RZ@1}c2Oek_dCiY=60P{*jQ0V#Ihu!egl$8qp2qbjf|m< z2MNn_>R^j(!X%Tt=5#FwQ>kqZ4UNl5qDd@?BP_KE>uKSP&PEPp7$m#B$=u=8(5uCC z<%(KHhY-vJc(MqJ8y%!6h|&$hH(R;Hf;r)NsPw z!FmyXc$lOwJ`3!Liem0XgiK#VUi@0wdJuZUPiFd$?AR{@cd%6(KA|4z_d|gTp6tPD zX<*z8#z;~aIX?1C!rfrSX>QW;tP2HZZs=YJw1u=6PrcDJ>J$f6J}kQdj$c%M;bRxe z^{Re?sMn`qeL}zoFeqra9^mzQ6N7J{I`3$34>&Kf)-C(zrchYorOl@>qihXM0s<^h zE+NC`WQx)Pae>;=n%GqV zti6>1d%2lfTqArgc&_YB-Hl*;j&g;0}$eSlPl?Xwt-Dpc97$UArUz#*V3XMa} z`8m=HQvZX7hA>6pr*7_uEp;k z(A^7$A$_o;qQ69K9Jn4*mhwzD5s1VXxL}1S4Ig*c}I>K4;sJdE6e2X_@0=8aprPgu0GPU|r;h+w zfsy4}OUOw4?ERE5mt11QOC>+1J?J9qwTCt^8%g7iNmtia5=^CJsvc=ZeLskt)8M(a z&~2&myeqPG{}aM^j^>z2VbDO|Hy-z-@FDU{56jW`lLxp2Ss5}dj;IDRsn{X0xQVzC z5)U8bXkVU+sok>`E`wUrgVV;cxibUWu|<$MHLa{~IsByTlgz0lDf3z!qEpi$qQyx} z`>SJm^$uw@%<^DT=6T5!n}Y4dWJkQ}8cIxgS0gIs06gp;dgDlmh(=y+IglR$y`6J? zMe4aVJug=jyn|96!xV6*38tDUSAW&=y?zfP-1*%@M0i-nHZbhizH|gP`~%Z2OTw>| zz<$murZ5NnuxdgeNCYA;H`JB>|KNOo@7;$0gawi*1qhyzQAHF{MHEp*6j4PKQAHF{ z1Y$85j7B37h@y%pqKYV@iYTIt{qQn^K#C{c!irQ;7&K~83ZE#pD4?Q>Mk1I#S()JW zzBkm}@F{>zYc!GIM5J|{JJvQRq9_ag$Jj28SbI8(166PL_!R56qWLs1-`#)0M6f_E z8a+95WMCLAAYd3Os*bvQXSQy)$!&*WGczhtO?unS6L{EN^;Y(=<9u^D&gKjrR8;9t za}*DXz)L@d_s+pI=D`!=L36<6AsMfT2QSSJ^{jd4zt8Mjnn3hEIZ&l1=3u>^|Gpoe znA#5$^J#cb?MfpdB9PztGLg5~>`3>kxBf1dM-Mx~n?U?Sn$7dSGaq>_!O~Sr%{x0UQA?n9 z5Lz;k9%0$>&FeHW_)n+9jWib`uNKQKQYr?vt3EM(aUwH(vb?=F;HM)t>PeJ%+``2rp6>uI%^|EbuOe^Xu&i^g8j} zlP4qEIL^?df^2~D<>{Z|dAwepXoeZqkW$af$yMeY$7L&6chGf`P@f*TN%Hk%kyy$# zHUw98JV(&sU^RWeB&l$1z?B#k^BE9vw!;4x&hGG9vGKzjFYt&vZ;AeEdLJi1hDjXn)RuTJ|wf`2- zyPG;C!axvw2Mu;mjO}E|C~WIOSMB4|;c-y4w~pulBoYiz_U2k!=%nO#okViL(8%n= zye0VKZ>B{%#7v5TY=pKI%DLNyd;iR5zhL!mcdkiJKo+Bz#|fHhU_?!&hYyiT6VNp~ z?J4>U1j-s@K;0J6_PZFtsD!)2Pu|GMR&HX#UlY1@Kv<$t4(8TKl3+Wyf46r>Zxe56 z=B#2l4G2o&p|uU%*7i{LoIc=&!XhM3{f#eMznL$eNp>~;&%4D1_`b7&h-u3Ug5;y% z0|j>i6HNlRqftyhW}G>d7>*)~Ie^ETo8Veoze6=2WbrNP+R4d@@JnL_Afa2 zKZVB`0N&nj-+X*#F@C0wuzW!UmQpJ>Y}^Ob_DoiS60S*U^iBJwMI^Qd{TdC!F>Fr$3dz9-l`~^Ejw=aPhKr{jF z;s*!^z#f2Y0gw+80CfP>0I&|^Z5O}YhU`E1A3Qw>f7I{8r4RT93^^W*(J}|+)*9g; z)eTUnHA7T215h;s=7pi{13*5IXovm-z6~%MIGILa=u71c+DM`+Fp4xLkhYW`4OsYvMARByy-dX)WcTclOW`jmy zqS?2$!PnrM**XkP50N-{cf7^xG73XbGpl}yDlS+9G12t5ykP%qFjPW zLk2dd$A_=DLHbnGU{zbz<;an6{P5&6*s?41CPL#e$mb8=&#~PI!Ziyz^XmaeNA6_Y#{wccFGCFc;Q5dFyb*d8?Ozf z$IaDL$!$FUeP<$a@-LUvugNH_Q6(I~lIF*XQ!|-Bk-DWal1L524or_Y>^By+yTSlropkMI1L9`T%YLk z9~o4>`tUC_qQ8x(22}I#DJaAiyzQpsn1lq`ucmtpU~%ZSOhN^sVMcivXE_dmI!D{c zNS5u$&4th@GMt5Z6bHG;6&U34AkDqn?DnQ2#1ITaxW@5d)``6=)1s`%Y*M6vunKLp z5pDzuYBXwU0{~#E=b6AFsul<(8OSthN-Ib&w@YecvfUcXu@HjXA_C==;=}=@8MMGB zDVP9w265>A(CpH=jFACQL}cc;JL-j5a4ccD83kJ+|n*C9({Js(G&oH z&q!rkH-13if#;wo3jzwNaxjVJKaITW51*dMG9vs@udO4|5+)$0f7Qo&e!=X?Yl*Bw zjren{%} z^BME(xAoWY@m2@eVV`XB^@c_BNuYT0rDxdb<+eTX;SmEe#u56~EMFjj3=z{BP@rET zH3$t%b;Q?ref*G;L3=IHB{8;}4+)4jes90z`s43$+w1We9u_R&s(!ENSul3+GMu;t z4JnDFwNi1yU{i$7DCbY}6XHdXd`xvd=@a+=$g9^NB( z{l5=;as-!?#67r|qEHZ!G(m3;QxdQ#cM9sKRY55~FeTk_UWl4J7BQxZ|FM!J|E+`v zRS_Z=^(^|dAHdiL4ZTxvkAE{a=nr^l8<9u=pSs!-Le!2g(v zYTEy>IZA;Fa(^*`*f9)&eyj86xBO?`nzPy;cv`2fp8b<7YZ!|2li+gHHTyhJxPvDl zC10~j`}$bKd3U++eTsD>DdtSPKqqRWozPAZele-qPC!WzLi-LB&cxUZ4~9p(zVP8I z5k9-@xC{pphvPSbg-noLjs+@G1Me9LjAn%jkoyqsSD=22h(65O`l@&bXpI$%8!?*r z)U}F1pI{`rCM1Ma_YRv%%O#!9b{&qVVLl}2T(w1%kgWw`C|LC>yT4= zK2Ut$vCB5p6p{UPT$eBEfnWaQI>FmotnpIWcM%)roAT1aXs!t(t?mtAq3_if%ee>c8Au)P4Mew z_)K4|<{ouN+Dz?LHYGvS`*7s)bT>&Qw!b@A+v*8(d`x`V-ubb!#VKv(+`*`~mFv_D z=?U>SCsIjd6{iwjRyv!{ME0SxG21!`5g5a!1}}1Npfzb#W9!ye3op0XPO2D02;P^o z+%F(D69WkWQCJ)ujW%06SdMv?8$tqkkf?d5y4)*bNP-?w(se=Y@jeg8C|!R#ACMdy zYuBtULtB4p&quu96f>#p&bT60sv#x1VoNq6V}~O*!}e>t^lUS37+5b$0cKBCc#+1( ziq|M0?Rt8$tkzZP1rLp8jTZnIjBELqt1d}s6uBYJw35PLJC^j^Wz`W7K#a*jf7y?%M>iWV*2hift%7gUuc14~x!nK)nFI^74I zhuW==#ti+MEsli@AcS2Wv-2QWvc^Ep7-VFIV{14hiLflU7k$Ub!Hn(Sa(BJngc`Sp zUvM8Dl7j{;JZ&QsT^^UnvK;%)!N(p<`+SRhwn~aHW9d31MKV0EmGFBZeUlPK058|NB1AUCnT( zvw~g4xDqQVkl>tsmz+Be4Er7DW_v=*?7Lh^3&P%eieqfgBEACa+01SYqkAovh3w8! zA1~jA;~Dl{&&RWKdS|hWz}n}_$PrH2uHR)pFcoS6j_dGdGO&twfgIcMo6K>lklyTi zp+TD+2Gg)+qwaHj-YtIoDk`I=Ww^^PFYy!e1yX|9!z`^mNEyITIXwjuq7IQjBS{4O zS!ESis6G9>goHFzNHPvkA|T)e6kIgpmH5MwMn!=SpR<%%H3CLl{*&~%+883N?F zDEg+ApgIE9R3J>=@3dC`UCu~JZm{7=<$rSvPWZPPpWCCo{@lCi9XWn~IaNXZmBW2G1yoXK2Qnr`-+S)W z27*mQ==rViX#VY4rcbfv4!?L*e1~N4=i>TF#p*iK}Qhki_GFo;oQdVH?8n0~vfK6IZSBJf@j-h#8&E2hz^Vg8Qzw z+I=%`aaQV&1tWGJJxfbM`;%}F5kznu!GaDKT`+OgioQ&bq(8wQM4x||BE9vkA_)=j z{+-;2x9Lse)#E40&nyKQ1n(rV3)WyInsB&$HXje6foExVVEWZ|y>?t|9-f|#?sGj! z2l9VSIN@UzeUwm%Ge_SN2rx+JGK6K977A13?x|=K&d*rlU3J#&4?jVm(cat{I0jR_ z4^yaVo_@x0Vmv=%z+&{do5O~>^N@rgSiRV-2sPvw(|IenF{i|h4uM&j{gwH}GpUX} z;epSjUSiVbyfopQ>~ z-1*MqeV=sHgVQj2^$e(jbbAw!KAloS0;t)_s&*OrH55iH!2(GhG0YRM#vFPt;02cs zN*LdvsLEAWaol$s?r*i?k5)Z*bphQ&3Y8w~TGe+}0>NtO+1+GX@{GlwLV49`aW|h8 zjAp`Zps__MzF8Ij5vVtS|5s76*#7&y^GqA+s!|x&9^An9IKVD3K+xgrbo2J9@sJ~H zw1p9+c0vZhjThxLz+kkofDcUL8Ku~OiE@%X;l>px>_C#cK9lM8CoEogK|<_CeRIH( zfA4UPK;IXcFt@=tQ>&<~gv%moSg3&`0^G|hE-4$ zf~*AqgcV5@wT#CY9|Qz1Zx$zr=P(Q)eG&?MS8%9s^QOIp*JcvCF@TGU78D0WZW!3m z{vefG8`m1SBExN#2UNQ+t)5v#{n3I#8(9p78YwV97`)qk(ym1b_fs=!#Yq-KO9m@QGkma5#fwwYW=fm0W~&r2FNG5Wr~wDrT^XAPIT}%pKV8~Pv#i5IjcXzfW}L;U$GHW!X)7=~ZSDDzBebN3 z-AvsT@&#IRF?59`vc(r&pJ7gFb)9mv!7wDQLoj8v#8(pFIdT4%J_RGt%@H?`2iog`TUq?1k%XL%DGvwrbL-v7v0h{nq~vH0FQ{7*&3 z^m;n3v$v{B>*?&bk82uxfj08+ngRE=G#2ZKgOG2ed3V;;=6p;`S zByB6K6rc!WU;=9E;{4ak`_HZU|DGI0{J56%eEtncfyR!akanL_R778440vvF3!<|T zN=smD;D?C-IAjbY7(?SfNhxkbR~SgSV?aZU)3Z_g>_l^GN?IZzo&pV)3F$*2x3y zrkpk)rge)AWC2XcKCs}x!i?o*?yxbnCVfJ#Af<&vOb3d}5lUh2eFL@aG}E%}J618B z!kODb#$1-<^$=JWfOtC3P{8WkjExcJ8zK-QAh$X!KUi~MxP%>;9QH+~&ahi5FhGt+ zHdhOS6*1LqTVP~iK0B=B$zXsDcnX8!DN10w-yN19sx%%5|os2gB2yE`e(43`{ zY0JfXlohiVbK6m+>>Fm%Yy*>Rrvl-ofYfXe%I7v_Lz1Xrb1i0U8M8*Bs)XDP#KFWf zmV36;LyTu?iDJh9Llk%G;H~EZWLWQ+iBwgnXtvIP0m93z$w2`irA@{f>~Rh_z_cNv z)xnM$bp;M>agBjQoAwWn!#^Xgo&D$E_y?Cz(C6fzkd+^tva2KMPh%G)t4mc?RaY%s zwN+Je)yr+Fs;aAPTrFI-ma3|%($!l&b&xwEL_i_vEgE%N= z7sIJaurDzR%H@@{&P}(hFqY~et5a8k7(qd!NCk{>#KadEDWV_&Dv(~FF{M>P)N1fZA(%2?Y_KVc| za^vm$iDjWH-k`z9k(-2Jh6_9DGwy6;6gvsf}g)==<5OcQ;9OFpYvpIgzTe;Cz2 ze@mz2vyx~NhcGw{lJRc=F6Wwp&U+Nu%nau4kJj#edA8JN90qVKNhIevL>uoig@Dj1 zZ^0}mE1)n%$%kz3b###0NjC0f6PvFOJvFGf6Jl-NXu8?jL%Z{J?Cjv@oXXszd501m z$czq2$lbEa+|=NKmOJYNPSon`(gEhO>q?Nw0g|ze9pGrVicKPj$)`FT&)TGi3Mmd} zfZrqpn9vl95&(faEsUo?!#6yf?19;_w<;i0gbLg#b~lWKi6pTyCN&Ttfg+5|1W0z$ zS-=f>5^lqbS)8EPOgqjhW6PGXr!6d`38WP79OfigMK1mxn`bp*lD#S3W^}TfGM3(& z@AVycE`TZ>e^9jG96)+(yvi7Kzr%$F14P$T+9t#Szrl zUb=C`--9~1y_trj4GAJ4I*sTbhFu(s4j?M24wA}2gAoTozeBV3JhCR>!;><6gH!$l z=$iEMTjaQsGS}B4jPYGQh*zbm(AVtv*;}m4R}!9Cld2Y zW;DWV3%5PCJl~+mdO^(2Ix$t{am>~mS#T!EVG9y!qM?j<^am5Xi zX~sz?OSp{%hE703$ZaeqUj-sD>(t3p2}G4doyd_zL>ZI{EIZb$K+PfG@diz_#Egh? zc4ja-4bG?(RRfYNhds9wD3*f_)pENtGO0_f49Idxijz_qOc-csX);cb>kZ^AH|Dt^ zknqxM2yO(OiLfCK7*oc$ON=nN5MYGLh;xYH3p$_}oTDIO^Q0*qSQG`5)WF}Q0NQpWuuc-7ac6QbJwvwu#t|6|WOkW&%c(*k0c{2tAh!vbNF#$P34>8`lXgQU z+`3@sL<4-KYH>-0qkt4_QH}j}^LeksOYBG^oMBGX?gNuC*19 zbB3cOMJj8EDcVAclm|MWKM;$kNG&tD(&lOuQ7D1%vARw5L5UW@J>;esCjTTdOal<> z4}07&ulc;DBXLgmd2+;8RN`wdJ6z5q((K-5!ujImKPX;%lBIx_YlMJ7oq>#y?t9>o zS~mK|+=Ma82(iPIr6?gtjeY*>s_ysm;$RS7jtPKJuVglM&G`Z3GxCmntZN5}QGpm=PDuAVgv8#+~13N5|*1#Z}m>XK0XXy`1(z7>l9>yoq ziG}H9eq4r;&~*f`Cz0J`8BnPLt>`&T8KiJL1A2OGv3Dv7_s7YXDkr51bxMXDP<4l3 zU)L1aET)TY^1$8QJr=$T5n5uim9U;FV`Hx-kAXX<-iKRo-jj>I2~Z~4LE@zD9|XWK zC^V~LG&FH8NOw#ZLLTt4rz(CpwjE3Sj;X~xMp#vghKF=!lB~s`Kiq}1z-mqiZZd!;>ft@ z-Q4;sUQrdAkXWb3E->He#pb-d@qYZoRC%^g*=i_A`mGm8gxdqss->T?qO362XUy~U z0A8Q!kFq@YX6XGaiX~%0Ed01hWZq9*oF=({T*xNZ`};$R*HBEL&3^vB`t^VRLa}yS z09Z1pt|Xe6a^Ehb(b^T)fVn#NrsdHXWr&g0S2HW?=y$y-1 z@XMHu-Lt}-O;HB{zxR_j1t}Vs( z#itWTh+dEm%G)fOyz8zm-)G_WF9B}S@srmf2tr^!0|f{eJ_$Kz)EGYkGi?-AlkiO$ zfL3_+SkR>6229^?%On;uqT4P{jRHhN;*Zj%Z-)TpFQFH}9`v@KfO2JeaL(?ICwG97 zp-RC{d!Ap<9M*Zwjm&)4kVwIygAZ1DXPj8Y=_ygP!c(6<%JWB6{MwW4wP<)cCYGEW z6ppolsG<>;As)$%lRhEdBlt$Xx_Ur`yhA#+AW~mZhS(Mzhds90bNe&R9$N!+A!v+< z6azyvI_bSo+v?aN{X^1>fNK7!$rMIFza68-h9RBKju;N%QGu~p{PYT5?_kGCA@nGb z!-yn@J^+U39Gg%!ZOd9iW^XLZHb| zlO*0vlbu=eY-}|33G#{4vT)jO(D)Ck#eQAi|GoFky9cr4^F^rVn#jSnCRd=Axz7EM zH~l^_Z%i|q>d)vq^RFGpuhZGO@H*Zi_VGIREoyyGDuCkvjBLWU<$Gp7u<8!WLrLf$ zgY|bgQ@=e6Gvn(6);mK+G~zsPgg7Cn8i9=*(eM&rE(}C?OjM3&@Q<{AAmIXJa6ts3 zi9vl4VL`?ptQo^lZV%!%(nv>OEga;zq4aCD5To86N8A%1*o_gR*bp0+Rki-w-$kK!)5r2|;iR!~k*;A|Npf#DH-P!Z=J1B$haV37d}h?g#1* z>{Hgy1-?(%wT=kcj3Mc>^m^Z9q@BO$`159;P1g!1z;1^pjQE2 z1r-PuAX`9h0-Op!DeUNgrvi`#$-w~!S8f8#2CHBdAX@;iwb_AI1+WC8f6y$zwSjK} z7zD5qWuedDx{O!D8 ztUGY?;n)Xo9l&=1+y`(SNOuQt9l&_O{{iEN+79$GhA{j?_5;j^nGZ4=ur+{wpg90S z#991+Vh0QhxE%m6Ktute126Gl1H1x*6kbA%@7=vwbhXY7)xY)F~++4h5^wvluWQin_9G-e@+5HV3j#^dZ`VVXC zK@ieDzVZ&oiP)4!oEU^uz&_{=;us(WNvc&Rv(g*_0EmbY8BIm5-}!LvtC~1_jje92 zqiwi|;9k4k7`JUD1a7JExZbn%_7_$_Q(`7i>MkuI6dA!QQ8MFtE&0uTULA`w+cDiJ_~5n`lT?$y@UQGl6~^N`}n z#f>v&fm|d?M-mI~U2oa;-M`ED_7r^4@!5h|OsjZy4YUO{vSd#%R*(t2$6)0eqR_A` zJQuTb;(ytffYfL8e(aKg3Be5hq*YJ=QYxtwn;K4k(%tuEJKKl-J`U}P&*>O!yN7FwVo0ApK5KmoT~F7Z?i$ zGRr+XrjCZkOi208r-%-OGbe=uRrFm&KUjb&SF{7k)j#{D0m$=LoIi=~Dv1hdRfz61 z|GF3-r09P}!f1AmkV)>)_~q}Zu+6{R5m)Nl?2dV#Z;$ztTxZL`cBd4 zeJ+#tLl^0frp$;t@5-yY+y6#)lc9po|q>>O#ZOX0t~mnQ>g8a=^!; zNQtV_qMML*3}4&P=Rwc^WoT9#)J2a@a-sVlr_oI^^f|Q3y35YA9o!pH-9KRh6O;Sr za!$U2*+W+qwpoJ)6ZKCchsGWkieIJI4o^$5LsV+;o-3`ARn*EFZ8p9kmR z`#!CISTzRIEnL?=c^HJqo(2$%+(ZX2mF&UsFe+D7SCL!`sDqsXv4~@B#~)1Gd%#cN zq0+sW)Rb8KcX82+Qx?l*bYg6A9XpBcnCwh9a+!_YK`3emq8#jWY!TWcM@|9{I)_NEwb@+oFaT7=jkn6dh1E7Q+BZfkSRHnU?`ueh`vHQY@U~D4Brq#xN_cG)IGr zB6&Sqkdvg$qN}iI4SJ1%vnnzi19_N4cp_1R@!<10MLPo_$ew8g6%q;w*fnAcL?|#~ z3#jc^HEXR+8(uQ6`$%3IzK9 zYis6noz8L-ApF6q-PP!K{-lM~l`1uzGNFTt}nrElj9HPFBG|kVW^}9@m zrJO@P*30v`;*{s)D;wXna%|)XiFaz?l13vDTo`*gmxwJDeO@`!b*IN(5~#Zznp#W{ z#}Q}MpX92rRZK3{VTnf>3tU5}%z*w@m^el2|Wes4;jnQVc5hAJ4y4>rL?tzm3e zuYbAixO>I@KimFhE)jTv(yEFOP!5A2`R1LVNY=#oaGVZ=iSB#iY;n>lT2Ui(el{>lk{*^SXp2!Ttx2KKr9!EJr%d zUS!v<>3Zp%C($Y@Ck3|kUcbdW6oay?JH}dU_E(edx1+SHzbT4S3=Az2MI{Ia#7si> zhYG))wp=p@n+q9b5)leTa{k>|@kmmF7hiveQ99yOAPmR+FkNr4m~ftUcI6ui6F-7` z9~P`kGigfKToh|8pqi_nQOkBT!(Qa5(ZXiDI7;8z>8iEU+#fVPE2wgNn>m3ww;&LB zI7R`tZmA^BK+1s;vW!^_WyIAeEjPu#1Bb&S2IUXrbux85PgvfE5^k5N?c3L9LLvZa zE7L_i$oAM4rpWBm{zHD;c`bxDyRZ4f_AEA=3}W}p&W+=nzm)jHLjJ#(_4mx-f9c9)` z_?zU|*mwR1$$R<=ji$O}kGp9pFDfBozCh$)kXEN1-ZuYpvBhN$!m|6IEl9xuQ&3y< zgY5yZh{Oc_LkQ3a{Ihr+sM$4S7Z@6NzB6LlggCAIpb6OsRP}FJI~GwOy*7ZYfM_E| z64PaOkA@07i6hYq-6q^>4D!`&NnLFwC}7_OI>!lk#!vmp9@n$bSr$J$YqIMIMgkd~ zhAY+xW4p?)m#Bv6QwSUlbG{MS`Oo`*l~s0LZ;9gM#6wtK-_+;5?NRyG^G--__I(EqMQ*t#v>T)IN*@IH#uRq0osP-p(# zk{zL&w%E(;kR&1|Fs96H_@)wTD9g2v&>z}v1uA*-;McXoPK3>!=8;`INgaf(C?37q zSr>I)Y<+>!_1=5W8l`1b+gvIMs3WtnO(|bjpb(d7@Pb*ZGrr&V5l_;AK~|v zL>-)_A8GOVVX93yohN_bFaX0aU>Fl5N{)s@K>Ka54U;W=Le^q!g4zo>YXyQx9YNgu zi3r47ag!52%(-O74e#b2klT~X&{3TX%d~@~Q~bul5QRB^jM>rN;lky)G^V>6a83YL z3W@NPQ00(_B#6R-;~=P!1wO&yP+!B@`ez}X6%Hp_^l0Vd4L3SZ{oS`9+(0yJ^+$)0 z>t3X+r1OPhCCi0sCtp5h#`}83DR=h3CB`@gVH#aQM?=sbxEJ7@fmmq z8at1CDMqb>*Rz59UpMo)!!P5;Cc%#TcezMdqNGx7yC8_#=g5n_8ZZbjUz>phL9<*D zfx|Kg#~edJVqp83L(nxGl(7BuUo~Y!dh;O$8{n%0I~hXtFH^GL{olM_T=ZFhB3e@| zH+l6J#R?hYqEN}f65}rf(QIl#f$Yv!Ad^NfG<;^(PHP)MS#yT}*xRlHsf1}|OZu6` zR_AF=F(~Rlz>$D5XDRNf0t-Q4r2R7aykjKQicQg1(>8(CJ{-W99GL@sD9b z9>O4uh8=-9E)kxJHn}m6152))N*Fw^5Awz>=Wz8nvC(c2G0C(24@ld(^f{E89PKRm$G zwpwG9wP{AUPj(r<(3KBF!P=z8&d!-;KZgs#dBw3rak2PD{tX10p-{4o5=JGGen}NA zxy;wfdv;>|k4Ir|N>Zl+==siisEI)noCWhx(_^Gw24)o6?UzktM10n4>sA%7ing`%P`);+E?_+EKuq`lNl0n)j9_S1L%`qNR}tVu&8zj1rb3E z@Nvp*vUQ(Jd1|{_j7n3nFyLgO@dm~w_vf-!D1wU-h<6{X3o8Jd4!M>c%*w*Up=giP zby!Y=JK=|e?lqxB5aJ?$higG#op!+vp$`b;Kv9eYG^0jxJ341D*g)hmn*h^A*_2@H zA!JpP87waa9H=p{aL7zdCHNaHPjm1y_uXE{#d~gk2|ZEg? zWSpCmZ*U3%2eGKd+A6l%T1&M?NV8phR+gDdOy>*MdkI|)(*5|rF!;eU<(f~^Xu#lD zIM))P*)IXsvi1%Xj+P`*>x|yO`Is4p)!6(DfT3qGS>U$GHg+^UG;Or6FS>>mf%N z6^a#tkRZeyTb`W&ln}E(O`cX*N=%6KQ>GNE31q8NNOr>aXv@WzOftva(^iQ|PGXQ# z?{odRH|?3YtIy1$K0jeV0#){#i2_KWHEAK9bds_`n0t05;T1I_uBFR z_NU$J4Z>GqzUCVGiCN%+Ed{Qgj9fr&iINxaGT zi;I}5C}bzry^1dVY^mwLWc-W|3gYg6LyC zkW8G0=*VY68;-mCy57dG58TUGUPEmw!Tc!ZXXMxW-hRgt15=u~Jw1#xbA2;Soxv#Cy);BMyzC)WwAtPc3hHuZQ{C(M>$a!p_V4a+?YN>a!n79G zGD>WXG7O+jH9L)B@LB6oSeqKSXcX?nR{L1a;d`Pthv^5#uG^(4*RlZVQps9BG061M zp8a{&3}#caE?uHHuz_ebF!QbUVZtiFh7BlvkHz9R6yq`%-;f9&Xh;?@80=Sqfbk3= zrc_9rm=%H2fEEcEOE-cfc7}b0(RX7Y5F%#@0@_SF`s@4>7k7NuS3}wO+zczVVDLg>=JS%5f%U)nQa%*! zZ<&Z=Z-v6%~B=4(|5KhjpLL7{hFUEXVDX1K?O! z)X*$Cg}CxafizAw>Pi%u0~qR6b~s6!>r53G z6wAuKg4rKGH{rz8C2-$3i-sh>27yQkIAM!_7enIU0yq6ZFsv?ycOqIn!CrapHb4l` zMuxN?NMw*{=-=4Al7prA_|nXM2OPXs#X@&mKK7>DFi`F8mxW5K!%CoOg|NN4}Bu2h$^b0utioe6h>fb zB;A3$kiiN6E@B8raUm0Z{h>tM`TmgO4feQyi;wumfIK|?7@TNGGq ztzwFE1gN2=s#K_=iYT*{qKhKSXrhWJuw1lJLoF0jWY$;<7GUh+XlkOE11cG4qKYW8 z%Rsd@RR6d;jL>s^6`SO=P*!Qb#C4M=21EfwN>w zaba%Fj@|qC^6H<58zAuj+j71S^Zrurs^DW6;5KF{s|FZdyq&ph4hKB!_+wL?mw1OhTIb^;K>&K-*YJH}^*IUeT--T6AjE_~d5E_RaA zCrUXlhM0Q;Q)|~dZbb$^gw{2E*6+T5jB7U|{yXr?leSNDvw+)o6j~c97FcbGn`ABa z<&J4piSf2l&twcZJ%6t8IENxdyp8QL z`KX-b>q@iMi zkGmvDlm`+S!>>d4p9}Fj=kwwsAt<=vYirzu2Rpic;P!p;M%_sB*3#~}2p=D64^$p7 ze4RkvlVys4qKK9_jIFTgTFMjc{zqKJ#$;)wzaq**;M5o=JpXCf8vxq0-@Jjih=zC8 z7IqmnGL?ph#5MD>RwF7ClCrpHA9-7qvF7n{R)SgG_11S3M=k&FKI}b>RBh{VC z*5LR2I~CW~K9;Rw!Ai;ptywOM4a4x-iOkG~ zAhVpd+cBw~)_Xgy`+kLQG2fi$kHMu%M5P2rG^3>J2Hi+pG0$tL5zeW*;-Rqs^8=!gk-Z!~Zlh@r zn}U&zu3sS~8wAT+JXu2q`QlyQhR25&l+}UT@FEVORKoGBxE9tfHJo-%TH$wv7+Ih^ zyr))b4pO^!3B(ocw;7CF)`B8D75uykm6^MERAw=Z539bleYe`N@FkAGW|1*5XinC2Z z*>uu+l;=%_wzRm>Xgt@XpNBmQ%Wi5hvKf#TJ5z z)EtH&o7=%fo|dd?C%2cgqhg!x5i{7GysVXI7POy9`E9{$^R=;0X`oL*Bh~g=IxdoJ z`m;S8OGhg?=-o?8wcl>+>Dtow