summaryrefslogtreecommitdiff
path: root/packages/linux/linux-2.6.25
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <hrw@openembedded.org>2008-11-11 20:35:36 +0100
committerMarcin Juszkiewicz <hrw@openembedded.org>2008-11-11 20:35:54 +0100
commitd83b45f74d4c7fb8b10fe84ac02624608bed0e90 (patch)
treea203bc8fce8c1d30e03846895e3866b997d1f422 /packages/linux/linux-2.6.25
parent650e3ca21c54d83d8b1cc5ffae4ac346eeae0d6c (diff)
linux: added support for m8050 device
Diffstat (limited to 'packages/linux/linux-2.6.25')
-rw-r--r--packages/linux/linux-2.6.25/m8050/defconfig1009
-rw-r--r--packages/linux/linux-2.6.25/m8050/m8050.diff479085
-rw-r--r--packages/linux/linux-2.6.25/m8050/update-mach-types.diff13
3 files changed, 480107 insertions, 0 deletions
diff --git a/packages/linux/linux-2.6.25/m8050/defconfig b/packages/linux/linux-2.6.25/m8050/defconfig
new file mode 100644
index 0000000000..a5e8d43dd4
--- /dev/null
+++ b/packages/linux/linux-2.6.25/m8050/defconfig
@@ -0,0 +1,1009 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.25
+# Fri Oct 31 08:29:20 2008
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+# CONFIG_GENERIC_TIME is not set
+# CONFIG_GENERIC_CLOCKEVENTS is not set
+CONFIG_MMU=y
+CONFIG_NO_IOPORT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=18
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+# CONFIG_BUG is not set
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_KMOD is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+CONFIG_ARCH_S3C2410=y
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_MSM7X00A is not set
+CONFIG_PLAT_S3C24XX=y
+CONFIG_CPU_S3C244X=y
+CONFIG_S3C2410_DMA=y
+CONFIG_S3C2410_DMA_DEBUG=y
+CONFIG_PLAT_S3C=y
+CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y
+CONFIG_CPU_LLSERIAL_S3C2440=y
+
+#
+# Boot options
+#
+# CONFIG_S3C_BOOT_ERROR_RESET is not set
+
+#
+# Power management
+#
+CONFIG_S3C_LOWLEVEL_UART_PORT=1
+
+#
+# S3C2400 Machines
+#
+CONFIG_S3C2410_GPIO=y
+CONFIG_S3C2410_CLOCK=y
+
+#
+# S3C2410 Machines
+#
+# CONFIG_ARCH_SMDK2410 is not set
+# CONFIG_ARCH_H1940 is not set
+# CONFIG_MACH_N30 is not set
+# CONFIG_ARCH_BAST is not set
+# CONFIG_MACH_OTOM is not set
+# CONFIG_MACH_AML_M5900 is not set
+# CONFIG_MACH_VR1000 is not set
+# CONFIG_MACH_QT2410 is not set
+
+#
+# S3C2412 Machines
+#
+# CONFIG_MACH_SMDK2413 is not set
+# CONFIG_MACH_SMDK2412 is not set
+# CONFIG_MACH_VSTMS is not set
+CONFIG_CPU_S3C2440=y
+CONFIG_S3C2440_DMA=y
+
+#
+# S3C2440 Machines
+#
+CONFIG_MACH_AML_M8050=y
+# CONFIG_MACH_ANUBIS is not set
+# CONFIG_MACH_OSIRIS is not set
+# CONFIG_MACH_RX3715 is not set
+# CONFIG_ARCH_S3C2440 is not set
+# CONFIG_MACH_NEXCODER_2440 is not set
+
+#
+# S3C2442 Machines
+#
+
+#
+# S3C2443 Machines
+#
+# CONFIG_MACH_SMDK2443 is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM920T=y
+CONFIG_CPU_32v4T=y
+CONFIG_CPU_ABRT_EV4T=y
+CONFIG_CPU_CACHE_V4WT=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+# CONFIG_ARM_THUMB is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_TICK_ONESHOT is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_HZ=200
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=ttySAC0 root=/dev/ram0"
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_AOUT=y
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET6_XFRM_MODE_BEET is not set
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+# CONFIG_IPV6_SIT is not set
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+CONFIG_WIRELESS_EXT=y
+# CONFIG_MAC80211 is not set
+CONFIG_IEEE80211=y
+# CONFIG_IEEE80211_DEBUG is not set
+# CONFIG_IEEE80211_CRYPT_WEP is not set
+# CONFIG_IEEE80211_CRYPT_CCMP is not set
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+# CONFIG_IEEE80211_SOFTMAC is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_VERIFY_WRITE=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+CONFIG_MTD_NAND_IDS=y
+CONFIG_MTD_NAND_S3C2410=y
+# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
+# CONFIG_MTD_NAND_S3C2410_HWECC is not set
+# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=4
+CONFIG_BLK_DEV_RAM_SIZE=4096
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MISC_DEVICES is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_NET_ETHERNET is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_SDIO=m
+# CONFIG_LIBERTAS_DEBUG is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_GENERICLEDS is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+CONFIG_TOUCHSCREEN_S3C2410=y
+# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_LIBPS2 is not set
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_INTELLIHEAD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_S3C2410=y
+CONFIG_SERIAL_S3C2410_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=32
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+CONFIG_I2C_S3C2410=y
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_S3C24XX=y
+CONFIG_SPI_S3C24XX_GPIO=y
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_AT25 is not set
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_DAB is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_S3C2410=y
+# CONFIG_FB_S3C2410_DEBUG is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+# CONFIG_LOGO_LINUX_CLUT224 is not set
+CONFIG_LOGO_M8050_CLUT224=y
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_SEQUENCER=y
+# CONFIG_SND_SEQ_DUMMY is not set
+# CONFIG_SND_MIXER_OSS is not set
+# CONFIG_SND_PCM_OSS is not set
+# CONFIG_SND_SEQUENCER_OSS is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_VERBOSE_PROCFS is not set
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+
+#
+# SPI devices
+#
+
+#
+# System on Chip audio support
+#
+CONFIG_SND_SOC=y
+CONFIG_SND_S3C24XX_SOC=y
+CONFIG_SND_S3C24XX_SOC_I2S=y
+CONFIG_SND_S3C24XX_SOC_M8050_WM8750=y
+# CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650 is not set
+
+#
+# SoC Audio support for SuperH
+#
+
+#
+# ALSA SoC audio for Freescale SOCs
+#
+CONFIG_SND_SOC_WM8750=y
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+# CONFIG_HID_SUPPORT is not set
+# CONFIG_USB_SUPPORT is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_SPI=y
+# CONFIG_MMC_S3C is not set
+# CONFIG_NEW_LEDS is not set
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4DEV_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_NETWORK_FILESYSTEMS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_SAMPLES is not set
+# CONFIG_DEBUG_USER is not set
+CONFIG_DEBUG_S3C_UART=1
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC32=y
+CONFIG_CRC7=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_DMA=y
diff --git a/packages/linux/linux-2.6.25/m8050/m8050.diff b/packages/linux/linux-2.6.25/m8050/m8050.diff
new file mode 100644
index 0000000000..65ca656f6a
--- /dev/null
+++ b/packages/linux/linux-2.6.25/m8050/m8050.diff
@@ -0,0 +1,479085 @@
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/arch/arm/configs/m8050_defconfig linux-2.6.25-m8050/arch/arm/configs/m8050_defconfig
+--- linux-git/arch/arm/configs/m8050_defconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/arch/arm/configs/m8050_defconfig 2008-05-07 13:50:18.000000000 +0200
+@@ -0,0 +1,752 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.25
++# Wed May 7 16:39:08 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ARCH_SUPPORTS_AOUT=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_GROUP_SCHED=y
++CONFIG_FAIR_GROUP_SCHED=y
++# CONFIG_RT_GROUP_SCHED is not set
++CONFIG_USER_SCHED=y
++# CONFIG_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++CONFIG_SYSFS_DEPRECATED_V2=y
++# CONFIG_RELAY is not set
++CONFIG_NAMESPACES=y
++# CONFIG_UTS_NS is not set
++# CONFIG_IPC_NS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_COMPAT_BRK=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_TIMERFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++CONFIG_HAVE_OPROFILE=y
++# CONFIG_KPROBES is not set
++CONFIG_HAVE_KPROBES=y
++CONFIG_HAVE_KRETPROBES=y
++CONFIG_PROC_PAGE_MONITOR=y
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++# CONFIG_KMOD is not set
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++CONFIG_CLASSIC_RCU=y
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_ORION is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++# CONFIG_ARCH_MSM7X00A is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++
++#
++# S3C2400 Machines
++#
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++CONFIG_MACH_AML_M8050=y
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM920T=y
++CONFIG_CPU_32v4T=y
++CONFIG_CPU_ABRT_EV4T=y
++CONFIG_CPU_CACHE_V4WT=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++# CONFIG_AEABI is not set
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="console=ttySAC0 root=/dev/ram0"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++# CONFIG_ARTHUR is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND=y
++CONFIG_SUSPEND_FREEZER=y
++# CONFIG_APM_EMULATION is not set
++CONFIG_ARCH_SUSPEND_POSSIBLE=y
++
++#
++# Networking
++#
++# CONFIG_NET is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_MTD is not set
++# CONFIG_PARPORT is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++# CONFIG_BLK_DEV_XIP is not set
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_MISC_DEVICES is not set
++CONFIG_HAVE_IDE=y
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++# CONFIG_INPUT_EVDEV is not set
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++# CONFIG_INPUT_KEYBOARD is not set
++# CONFIG_INPUT_MOUSE is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++# CONFIG_INPUT_TOUCHSCREEN is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++# CONFIG_SERIO is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++# CONFIG_I2C is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++# CONFIG_HWMON is not set
++# CONFIG_WATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++# CONFIG_MFD_ASIC3 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++# CONFIG_FIRMWARE_EDID is not set
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++# CONFIG_FB_S1D13XXX is not set
++CONFIG_FB_S3C2410=y
++CONFIG_FB_S3C2410_DEBUG=y
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++CONFIG_DISPLAY_SUPPORT=y
++
++#
++# Display hardware drivers
++#
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
++CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
++CONFIG_FONTS=y
++CONFIG_FONT_8x8=y
++# CONFIG_FONT_8x16 is not set
++# CONFIG_FONT_6x11 is not set
++# CONFIG_FONT_7x14 is not set
++# CONFIG_FONT_PEARL_8x8 is not set
++# CONFIG_FONT_ACORN_8x8 is not set
++# CONFIG_FONT_MINI_4x6 is not set
++# CONFIG_FONT_SUN8x16 is not set
++# CONFIG_FONT_SUN12x22 is not set
++# CONFIG_FONT_10x18 is not set
++# CONFIG_LOGO is not set
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++# CONFIG_HID_SUPPORT is not set
++# CONFIG_USB_SUPPORT is not set
++# CONFIG_MMC is not set
++# CONFIG_NEW_LEDS is not set
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# SPI RTC drivers
++#
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1511 is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++# CONFIG_EXT3_FS is not set
++# CONFIG_EXT4DEV_FS is not set
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++CONFIG_DNOTIFY=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++# CONFIG_MSDOS_FS is not set
++# CONFIG_VFAT_FS is not set
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++# CONFIG_TMPFS is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_ROMFS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_BACKTRACE_SELF_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++# CONFIG_DEBUG_STACK_USAGE is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/arch/arm/mach-s3c2440/dma.c linux-2.6.25-m8050/arch/arm/mach-s3c2440/dma.c
+--- linux-git/arch/arm/mach-s3c2440/dma.c 2008-11-10 12:20:12.000000000 +0100
++++ linux-2.6.25-m8050/arch/arm/mach-s3c2440/dma.c 2008-10-22 13:04:42.000000000 +0200
+@@ -47,8 +47,8 @@
+ .channels[1] = S3C2440_DCON_CH1_SDI | DMA_CH_VALID,
+ .channels[2] = S3C2410_DCON_CH2_SDI | DMA_CH_VALID,
+ .channels[3] = S3C2410_DCON_CH3_SDI | DMA_CH_VALID,
+- .hw_addr.to = S3C2410_PA_IIS + S3C2410_IISFIFO,
+- .hw_addr.from = S3C2410_PA_IIS + S3C2410_IISFIFO,
++ .hw_addr.to = S3C2410_PA_SDI + S3C2410_SDIDATA,
++ .hw_addr.from = S3C2410_PA_SDI + S3C2410_SDIDATA,
+ },
+ [DMACH_SPI0] = {
+ .name = "spi0",
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/arch/arm/mach-s3c2440/Kconfig linux-2.6.25-m8050/arch/arm/mach-s3c2440/Kconfig
+--- linux-git/arch/arm/mach-s3c2440/Kconfig 2008-11-10 12:20:12.000000000 +0100
++++ linux-2.6.25-m8050/arch/arm/mach-s3c2440/Kconfig 2008-05-07 13:50:18.000000000 +0200
+@@ -25,6 +25,12 @@
+
+ menu "S3C2440 Machines"
+
++config MACH_AML_M8050
++ bool "American Microsystems M8050"
++ select CPU_S3C2440
++ help
++ Say Y here if you are using the American Microsystems M8050
++
+ config MACH_ANUBIS
+ bool "Simtec Electronics ANUBIS"
+ select CPU_S3C2440
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/arch/arm/mach-s3c2440/mach-aml_m8050.c linux-2.6.25-m8050/arch/arm/mach-s3c2440/mach-aml_m8050.c
+--- linux-git/arch/arm/mach-s3c2440/mach-aml_m8050.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/arch/arm/mach-s3c2440/mach-aml_m8050.c 2008-10-22 13:05:02.000000000 +0200
+@@ -0,0 +1,541 @@
++/* linux/arch/arm/mach-s3c2440/mach-smdk2440.c
++ *
++ * Copyright (c) 2004,2005 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * http://www.fluff.org/ben/smdk2440/
++ *
++ * Thanks to Dimity Andric and TomTom for the loan of an SMDK2440.
++ *
++ * 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.
++ *
++*/
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/init.h>
++#include <linux/serial_core.h>
++#include <linux/platform_device.h>
++#include <linux/input.h>
++#include <linux/gpio_mouse.h>
++#include <linux/gpio_keys.h>
++
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/mach-types.h>
++
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/plat-s3c/regs-timer.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++#include <asm/arch/regs-lcd.h>
++#include <asm/plat-s3c/nand.h>
++#include <asm/arch/spi.h>
++
++#include <linux/spi/spi.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
++#include <linux/mtd/nand_ecc.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/arch/idle.h>
++#include <asm/arch/fb.h>
++#include <asm/arch/ts.h>
++#include <asm/arch/keypad.h>
++#include <asm/arch/leds-gpio.h>
++
++#include <asm/plat-s3c24xx/s3c2410.h>
++#include <asm/plat-s3c24xx/s3c2440.h>
++#include <asm/plat-s3c24xx/clock.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/plat-s3c24xx/mci.h>
++#include <asm/plat-s3c24xx/pm.h>
++
++static struct map_desc aml_m8050_iodesc[] __initdata = {
++ {
++ .virtual = (u32)S3C24XX_VA_ISA_WORD,
++ .pfn = __phys_to_pfn(S3C2410_CS3),
++ .length = SZ_1M,
++ .type = MT_DEVICE,
++ }, {
++ .virtual = (u32)S3C24XX_VA_ISA_BYTE,
++ .pfn = __phys_to_pfn(S3C2410_CS3),
++ .length = SZ_1M,
++ .type = MT_DEVICE,
++ },
++ {
++ .virtual = (u32)S3C24XX_VA_SPI,
++ .pfn = __phys_to_pfn(S3C2410_PA_SPI),
++ .length = SZ_1M,
++ .type = MT_DEVICE
++ },
++};
++
++
++#define UCON S3C2410_UCON_DEFAULT
++#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
++#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
++
++static struct s3c2410_uartcfg aml_m8050_uartcfgs[] __initdata = {
++ [0] = {
++ .hwport = 0,
++ .flags = 0,
++ .ucon = 0x3c5,
++ .ulcon = 0x03,
++ .ufcon = 0x51,
++ .ri_pin = S3C2410_GPF6,
++ },
++ [1] = {
++ .hwport = 1,
++ .flags = 0,
++ .ucon = 0x3c5,
++ .ulcon = 0x03,
++ .ufcon = 0x51,
++ },
++ /* IR port */
++ [2] = {
++ .hwport = 2,
++ .flags = 0,
++ .ucon = 0x3c5,
++ .ulcon = 0x43,
++ .ufcon = 0x51,
++ }
++};
++
++static struct s3c24xx_led_platdata m8050_pdata_green_led = {
++ .gpio = S3C2410_GPG4,
++ .flags = 0,
++ .name = "green-led",
++ .def_trigger = "ev-led",
++};
++
++static struct platform_device m8050_green_led = {
++ .name = "s3c24xx_led",
++ .id = 0,
++ .dev = {
++ .platform_data = &m8050_pdata_green_led,
++ },
++};
++
++static struct gpio_mouse_platform_data gpio_mouse0_data = {
++ .polarity = GPIO_MOUSE_POLARITY_ACT_HIGH,
++ {
++ {
++ .up = S3C2410_GPG8,
++ .down = S3C2410_GPG9,
++ .left = S3C2410_GPG12,
++ .right = S3C2410_GPG11,
++ .bleft = S3C2410_GPG10,
++
++ },
++ },
++ .scan_ms = 5,
++};
++
++static struct platform_device gpio_mouse0_device = {
++ .name = "gpio_mouse",
++ .id = 0,
++ .dev = {
++ .platform_data = &gpio_mouse0_data,
++ },
++};
++
++
++static const int m8050_keymap[] = {
++ /* KEY(col, row, code) */
++ KEY(0, 0, KEY_5),
++ KEY(0, 1, KEY_0),
++ KEY(1, 0, KEY_4),
++ KEY(1, 1, KEY_9),
++ KEY(1, 2, KEY_BACKSPACE),
++ KEY(1, 3, KEY_LEFTALT),
++ KEY(2, 0, KEY_3),
++ KEY(2, 1, KEY_8),
++ KEY(2, 2, KEY_KPMINUS),
++ KEY(2, 3, KEY_ENTER),
++ KEY(3, 0, KEY_2),
++ KEY(3, 1, KEY_7),
++ KEY(3, 2, KEY_KPPLUS),
++ KEY(3, 3, KEY_ESC),
++ KEY(4, 0, KEY_1),
++ KEY(4, 1, KEY_6),
++ KEY(4, 2, KEY_SUSPEND),
++ KEY(4, 3, KEY_DOT),
++ 0
++};
++
++static const int m8050_keymap_a[] = {
++ /* KEY(col, row, code) */
++ KEY(0, 0, KEY_J),
++ KEY(0, 1, KEY_SPACE),
++ KEY(1, 0, KEY_G),
++ KEY(1, 1, KEY_W),
++ KEY(1, 2, KEY_UNKNOWN),
++ KEY(1, 3, KEY_UNKNOWN),
++ KEY(2, 0, KEY_D),
++ KEY(2, 1, KEY_T),
++ KEY(2, 2, KEY_UNKNOWN),
++ KEY(2, 3, KEY_UNKNOWN),
++ KEY(3, 0, KEY_A),
++ KEY(3, 1, KEY_P),
++ KEY(3, 2, KEY_UNKNOWN),
++ KEY(3, 3, KEY_UNKNOWN),
++ KEY(4, 0, KEY_RO),
++ KEY(4, 1, KEY_M),
++ KEY(4, 2, KEY_UNKNOWN),
++ KEY(4, 3, KEY_UNKNOWN),
++ 0
++};
++
++static const int m8050_keymap_b[] = {
++ /* KEY(col, row, code) */
++ KEY(0, 0, KEY_K),
++ KEY(0, 1, KEY_HIRAGANA),
++ KEY(1, 0, KEY_H),
++ KEY(1, 1, KEY_X),
++ KEY(1, 2, KEY_UNKNOWN),
++ KEY(1, 3, KEY_UNKNOWN),
++ KEY(2, 0, KEY_E),
++ KEY(2, 1, KEY_U),
++ KEY(2, 2, KEY_UNKNOWN),
++ KEY(2, 3, KEY_UNKNOWN),
++ KEY(3, 0, KEY_B),
++ KEY(3, 1, KEY_Q),
++ KEY(3, 2, KEY_UNKNOWN),
++ KEY(3, 3, KEY_UNKNOWN),
++ KEY(4, 0, KEY_KATAKANA),
++ KEY(4, 1, KEY_N),
++ KEY(4, 2, KEY_UNKNOWN),
++ KEY(4, 3, KEY_UNKNOWN),
++ 0
++};
++
++static const int m8050_keymap_c[] = {
++ /* KEY(col, row, code) */
++ KEY(0, 0, KEY_L),
++ KEY(0, 1, KEY_KATAKANAHIRAGANA),
++ KEY(1, 0, KEY_I),
++ KEY(1, 1, KEY_Y),
++ KEY(1, 2, KEY_UNKNOWN),
++ KEY(1, 3, KEY_UNKNOWN),
++ KEY(2, 0, KEY_F),
++ KEY(2, 1, KEY_V),
++ KEY(2, 2, KEY_UNKNOWN),
++ KEY(2, 3, KEY_UNKNOWN),
++ KEY(3, 0, KEY_C),
++ KEY(3, 1, KEY_R),
++ KEY(3, 2, KEY_UNKNOWN),
++ KEY(3, 3, KEY_UNKNOWN),
++ KEY(4, 0, KEY_EQUAL),
++ KEY(4, 1, KEY_O),
++ KEY(4, 2, KEY_UNKNOWN),
++ KEY(4, 3, KEY_UNKNOWN),
++ 0
++};
++
++static const int m8050_keymap_d[] = {
++ /* KEY(col, row, code) */
++ KEY(0, 0, KEY_UNKNOWN),
++ KEY(0, 1, KEY_HENKAN),
++ KEY(1, 0, KEY_UNKNOWN),
++ KEY(1, 1, KEY_Z),
++ KEY(1, 2, KEY_UNKNOWN),
++ KEY(1, 3, KEY_UNKNOWN),
++ KEY(2, 0, KEY_UNKNOWN),
++ KEY(2, 1, KEY_UNKNOWN),
++ KEY(2, 2, KEY_UNKNOWN),
++ KEY(2, 3, KEY_UNKNOWN),
++ KEY(3, 0, KEY_UNKNOWN),
++ KEY(3, 1, KEY_S),
++ KEY(3, 2, KEY_UNKNOWN),
++ KEY(3, 3, KEY_UNKNOWN),
++ KEY(4, 0, KEY_UNKNOWN),
++ KEY(4, 1, KEY_UNKNOWN),
++ KEY(4, 2, KEY_UNKNOWN),
++ KEY(4, 3, KEY_UNKNOWN),
++ 0
++};
++
++
++static struct m8050_kp_platform_data m8050_kp_data = {
++ .rows = 4,
++ .cols = 5,
++ .keymap = (int *) m8050_keymap,
++ .keymap_a = (int *) m8050_keymap_a,
++ .keymap_b = (int *) m8050_keymap_b,
++ .keymap_c = (int *) m8050_keymap_c,
++ .keymap_d = (int *) m8050_keymap_d,
++ .keymapsize = ARRAY_SIZE(m8050_keymap),
++ .delay = 20,
++};
++
++static struct platform_device m8050_kp_device = {
++ .name = "m8050-keypad",
++ .id = -1,
++ .dev = {
++ .platform_data = &m8050_kp_data,
++ },
++};
++
++static struct s3c2410_ts_mach_info aml_m8050_ts_cfg __initdata = {
++ .delay = 10000,
++ .presc = 49,
++ .oversampling_shift = 2,
++};
++
++static struct mtd_partition aml_m8050_nand_part[] = {
++ [0] = {
++ .name = "system",
++ .size = SZ_4M,
++ .offset = 0,
++ },
++ [1] = {
++ .name = "jffs2",
++ .offset = SZ_4M,
++ .size = MTDPART_SIZ_FULL,
++ }
++};
++
++static struct s3c2410_nand_set aml_m8050_nand_sets[] = {
++ [0] = {
++ .name = "Internal",
++ .nr_chips = 1,
++ .nr_partitions = ARRAY_SIZE(aml_m8050_nand_part),
++ .partitions = aml_m8050_nand_part,
++ },
++};
++
++static struct s3c2410_platform_nand aml_m8050_nand_info = {
++ .tacls = 25,
++ .twrph0 = 50,
++ .twrph1 = 15,
++ .nr_sets = ARRAY_SIZE(aml_m8050_nand_sets),
++ .sets = aml_m8050_nand_sets,
++};
++
++void spi1_cs(struct s3c2410_spi_info *spi, int cs, int pol)
++{
++
++ s3c2410_gpio_setpin(S3C2440_GPJ6, pol);
++
++}
++
++static struct s3c2410_spi_info spi1_info __initdata = {
++ .pin_cs = S3C2440_GPJ6,
++ .num_cs = 1,
++ .set_cs = &spi1_cs,
++};
++
++static struct spi_board_info hammer_spi_board_info[] __initdata = {
++ {
++ .modalias = "mmc_spi",
++ .bus_num = 1,
++ .chip_select = 0, // beware, bogus value. only keeps driver register happy.
++ .mode = SPI_MODE_0,
++ .max_speed_hz = 12000000,
++ }
++};
++static struct s3c24xx_mci_pdata aml_m8050_sdi_pdata = {
++ .detect_invert = 0,
++ .gpio_detect = S3C2410_GPG15,
++};
++
++static struct gpio_keys_button gpio_keys_buttons[] = {
++ [0] = {
++ .code = LED_MISC,
++ .gpio = S3C2410_GPF4,
++ .active_low = 1,
++ .desc = "Trigger",
++ .type = EV_LED,
++ },
++};
++
++static struct gpio_keys_platform_data gpio_keys_data = {
++ .buttons = gpio_keys_buttons,
++ .nbuttons = ARRAY_SIZE(gpio_keys_buttons),
++};
++
++static struct platform_device m8050_buttons = {
++ .name = "gpio-keys",
++ .id = 0,
++ .dev = {
++ .platform_data = &gpio_keys_data,
++ },
++};
++
++
++static struct platform_device *aml_m8050_devices[] __initdata = {
++ &s3c_device_usb,
++ &s3c_device_lcd,
++// &s3c_device_sdi,
++ &s3c_device_rtc,
++ &m8050_kp_device,
++ &m8050_buttons,
++ &gpio_mouse0_device,
++ &s3c_device_ts,
++ &s3c_device_nand,
++ &s3c_device_spi1,
++ &m8050_green_led,
++// &s3c_device_wdt,
++ &s3c_device_i2c,
++// &s3c_device_iis,
++};
++static struct s3c2410fb_display aml_m8050_lcdcfg = {
++
++ .lcdcon5 = S3C2410_LCDCON5_INVVCLK |
++ S3C2410_LCDCON5_INVVLINE |
++ S3C2410_LCDCON5_INVVDEN |
++ S3C2410_LCDCON5_INVVD |
++ S3C2410_LCDCON5_FRM565 |
++ S3C2410_LCDCON5_INVVFRAME,
++
++ .type = S3C2410_LCDCON1_TFT,
++ .width = 320,
++ .height = 240,
++
++ .pixclock = 260000,
++ .xres = 320,
++ .yres = 240,
++ .bpp = 16,
++ .left_margin = 38,
++ .right_margin = 50,
++ .hsync_len = 1,
++ .upper_margin = 15,
++ .lower_margin = 4,
++ .vsync_len = 1,
++};
++
++static struct s3c2410fb_mach_info aml_m8050_fb_info = {
++
++ .displays = &aml_m8050_lcdcfg,
++ .num_displays = 1,
++ .default_display = 0,
++
++ .lpcsel = 0x0,
++
++ .gpccon = 0xaaaa56a9,
++ .gpccon_mask = 0xffc003cc,
++ .gpcup = 0x0000ffff,
++ .gpcup_mask = 0xffffffff,
++
++ .gpdcon = 0xaa95aaa1,
++ .gpdcon_mask = 0xffc0fff0,
++ .gpdup = 0x0000faff,
++ .gpdup_mask = 0xffffffff,
++};
++
++
++static void __init aml_m8050_map_io(void)
++{
++ s3c_device_nand.dev.platform_data = &aml_m8050_nand_info;
++ s3c24xx_init_io(aml_m8050_iodesc, ARRAY_SIZE(aml_m8050_iodesc));
++ s3c24xx_init_clocks(0);
++ s3c24xx_init_uarts(aml_m8050_uartcfgs, ARRAY_SIZE(aml_m8050_uartcfgs));
++}
++
++static void __init aml_m8050_init_irq(void)
++{
++ s3c24xx_init_irq();
++ /* configure wakeup source */
++ s3c2410_gpio_cfgpin(S3C2410_GPG2, S3C2410_GPG2_EINT10);
++ enable_irq_wake(IRQ_EINT10);
++
++// s3c2410_gpio_cfgpin(S3C2410_GPF4, S3C2410_GPF4_EINT4);
++// enable_irq_wake(IRQ_EINT4);
++}
++
++static void __init aml_m8050_machine_init(void)
++{
++
++ int ret = 0;
++
++ s3c2410_pm_init();
++
++ s3c24xx_fb_set_platdata(&aml_m8050_fb_info);
++
++ set_s3c2410ts_info(&aml_m8050_ts_cfg);
++
++ platform_add_devices(aml_m8050_devices, ARRAY_SIZE(aml_m8050_devices));
++
++ s3c2410_gpio_cfgpin(S3C2410_GPB10, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPB10, 0);
++
++ s3c2410_gpio_cfgpin(S3C2410_GPB9, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPB9, 0);
++
++
++ /*backlight*/
++ s3c2410_gpio_cfgpin(S3C2410_GPC0, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPC0, 1);
++ s3c2410_gpio_setpin(S3C2410_GPB3, 0);
++ s3c2410_gpio_cfgpin(S3C2410_GPB3, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPB3, 0);
++ s3c2410_gpio_cfgpin(S3C2410_GPB0, S3C2410_GPB0_TOUT0);
++
++ __raw_writel(0x00000002,S3C2410_TCMPB(0));
++ __raw_writel(0x000002ff,S3C2410_TCFG0);
++ __raw_writel(0x00000000,S3C2410_TCFG1);
++ __raw_writel(0x00000003,S3C2410_TCNTB(0));
++ __raw_writel(0x00080001,S3C2410_TCMPB(0));
++ __raw_writel(0x0050000a,S3C2410_TCON);
++ __raw_writel(0x00500009,S3C2410_TCON);
++
++
++// s3c2410_gpio_setpin(S3C2410_GPB3, 1);
++
++ /* chipselect for sd/mmc */
++ s3c2410_gpio_cfgpin(S3C2440_GPJ6, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ6, 1);
++ /* set special function to enable SPI operation on SPI1 */
++ s3c2410_gpio_cfgpin(S3C2410_GPG5, S3C2410_GPG5_SPIMISO1);
++ s3c2410_gpio_cfgpin(S3C2410_GPG6, S3C2410_GPG6_SPIMOSI1);
++ s3c2410_gpio_cfgpin(S3C2410_GPG7, S3C2410_GPG7_SPICLK1);
++
++
++ s3c2410_gpio_cfgpin(S3C2440_GPJ3, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ3, 0);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ2, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ2, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ1, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ1, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ0, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ0, 0);
++
++ /*go ahead and turn off the NAND write protect*/
++ s3c2410_gpio_setpin(S3C2410_GPH8, 1);
++
++ s3c_device_spi1.dev.platform_data = &spi1_info;
++ s3c_device_sdi.dev.platform_data = &aml_m8050_sdi_pdata;
++ spi_register_board_info(hammer_spi_board_info, ARRAY_SIZE(hammer_spi_board_info));
++
++ /* make sure the green tackball led is on */
++ s3c2410_gpio_setpin(S3C2410_GPG4, 1);
++
++ s3c2410_gpio_cfgpin(S3C2410_GPB4, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPB4, 1);
++
++ s3c2410_gpio_cfgpin(S3C2410_GPF3, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPF3, 1);
++
++}
++
++MACHINE_START(AML_M8050, "AML M8050")
++ .phys_io = S3C2410_PA_UART,
++ .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
++ .boot_params = S3C2410_SDRAM_PA + 0x100,
++ .init_irq = aml_m8050_init_irq,
++ .map_io = aml_m8050_map_io,
++ .init_machine = aml_m8050_machine_init,
++ .timer = &s3c24xx_timer,
++MACHINE_END
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/arch/arm/mach-s3c2440/Makefile linux-2.6.25-m8050/arch/arm/mach-s3c2440/Makefile
+--- linux-git/arch/arm/mach-s3c2440/Makefile 2008-11-10 12:20:12.000000000 +0100
++++ linux-2.6.25-m8050/arch/arm/mach-s3c2440/Makefile 2008-05-07 13:50:18.000000000 +0200
+@@ -16,6 +16,7 @@
+
+ # Machine support
+
++obj-$(CONFIG_MACH_AML_M8050) += mach-aml_m8050.o
+ obj-$(CONFIG_MACH_ANUBIS) += mach-anubis.o
+ obj-$(CONFIG_MACH_OSIRIS) += mach-osiris.o
+ obj-$(CONFIG_MACH_RX3715) += mach-rx3715.o
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/arch/arm/plat-s3c24xx/devs.c linux-2.6.25-m8050/arch/arm/plat-s3c24xx/devs.c
+--- linux-git/arch/arm/plat-s3c24xx/devs.c 2008-11-10 12:20:12.000000000 +0100
++++ linux-2.6.25-m8050/arch/arm/plat-s3c24xx/devs.c 2008-05-29 12:12:00.000000000 +0200
+@@ -24,6 +24,7 @@
+ #include <asm/mach/map.h>
+ #include <asm/mach/irq.h>
+ #include <asm/arch/fb.h>
++#include <asm/arch/ts.h>
+ #include <asm/hardware.h>
+ #include <asm/io.h>
+ #include <asm/irq.h>
+@@ -207,6 +208,22 @@
+
+ EXPORT_SYMBOL(s3c_device_nand);
+
++/* Touchscreen */
++struct platform_device s3c_device_ts = {
++ .name = "s3c2410-ts",
++ .id = -1,
++};
++
++EXPORT_SYMBOL(s3c_device_ts);
++
++static struct s3c2410_ts_mach_info s3c2410ts_info;
++
++void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
++{
++ memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(struct s3c2410_ts_mach_info));
++ s3c_device_ts.dev.platform_data = &s3c2410ts_info;
++}
++
+ /* USB Device (Gadget)*/
+
+ static struct resource s3c_usbgadget_resource[] = {
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/arch/arm/plat-s3c24xx/dma.c linux-2.6.25-m8050/arch/arm/plat-s3c24xx/dma.c
+--- linux-git/arch/arm/plat-s3c24xx/dma.c 2008-11-10 12:20:12.000000000 +0100
++++ linux-2.6.25-m8050/arch/arm/plat-s3c24xx/dma.c 2008-10-28 16:52:32.000000000 +0100
+@@ -101,7 +101,7 @@
+ dmadbg_dumpregs(const char *fname, int line, struct s3c2410_dma_chan *chan,
+ struct s3c2410_dma_regstate *regs)
+ {
+- printk(KERN_DEBUG "dma%d: %s:%d: DCSRC=%08lx, DISRC=%08lx, DSTAT=%08lx DMT=%02lx, DCON=%08lx\n",
++ printk("dma%d: %s:%d: DCSRC=%08lx, DISRC=%08lx, DSTAT=%08lx DMT=%02lx, DCON=%08lx\n",
+ chan->number, fname, line,
+ regs->dcsrc, regs->disrc, regs->dstat, regs->dmsktrig,
+ regs->dcon);
+@@ -114,7 +114,7 @@
+
+ dmadbg_capture(chan, &state);
+
+- printk(KERN_DEBUG "dma%d: %s:%d: ls=%d, cur=%p, %p %p\n",
++ printk("dma%d: %s:%d: ls=%d, cur=%p, %p %p\n",
+ chan->number, fname, line, chan->load_state,
+ chan->curr, chan->next, chan->end);
+
+@@ -227,7 +227,7 @@
+ s3c2410_dma_loadbuffer(struct s3c2410_dma_chan *chan,
+ struct s3c2410_dma_buf *buf)
+ {
+- unsigned long reload;
++ unsigned long reload,tmp;
+
+ pr_debug("s3c2410_chan_loadbuffer: loading buff %p (0x%08lx,0x%06x)\n",
+ buf, (unsigned long)buf->data, buf->size);
+@@ -258,6 +258,7 @@
+ } else {
+ //pr_debug("load_state is %d => autoreload\n", chan->load_state);
+ reload = S3C2410_DCON_AUTORELOAD;
++// reload = S3C2410_DCON_NORELOAD;
+ }
+
+ if ((buf->data & 0xf0000000) != 0x30000000) {
+@@ -266,9 +267,12 @@
+
+ writel(buf->data, chan->addr_reg);
+
++
++
+ dma_wrreg(chan, S3C2410_DMA_DCON,
+ chan->dcon | reload | (buf->size/chan->xfer_unit));
+
++
+ chan->next = buf->next;
+
+ /* update the state of the channel */
+@@ -389,6 +393,14 @@
+ dma_wrreg(chan, S3C2410_DMA_DCON, tmp);
+ #endif
+
++#if 1
++ /* the dma buffer loads should take care of clearing the AUTO
++ * reloading feature */
++ tmp = dma_rdreg(chan, S3C2410_DMA_DCON);
++ tmp |= S3C2410_DCON_NORELOAD;
++ dma_wrreg(chan, S3C2410_DMA_DCON, tmp);
++#endif
++
+ s3c2410_dma_call_op(chan, S3C2410_DMAOP_START);
+
+ dbg_showchan(chan);
+@@ -400,16 +412,20 @@
+
+ if (chan->next != NULL) {
+ if (chan->load_state == S3C2410_DMALOAD_1LOADED) {
+-
++// printk("dma start S3C2410_DMALOAD_1LOADED\n");
+ if (s3c2410_dma_waitforload(chan, __LINE__) == 0) {
++// printk("dma start buff not loaded yet\n");
+ pr_debug("%s: buff not yet loaded, no more todo\n",
+ __func__);
++
+ } else {
++// printk("dma start setting S3C2410_DMALOAD_1RUNNING\n");
+ chan->load_state = S3C2410_DMALOAD_1RUNNING;
+ s3c2410_dma_loadbuffer(chan, chan->next);
+ }
+
+ } else if (chan->load_state == S3C2410_DMALOAD_1RUNNING) {
++// printk("dma start S3C2410_DMALOAD_1RUNNING\n");
+ s3c2410_dma_loadbuffer(chan, chan->next);
+ }
+ }
+@@ -559,7 +575,7 @@
+ static inline void
+ s3c2410_dma_lastxfer(struct s3c2410_dma_chan *chan)
+ {
+-#if 0
++#if 1
+ pr_debug("dma%d: s3c2410_dma_lastxfer: load_state %d\n",
+ chan->number, chan->load_state);
+ #endif
+@@ -581,8 +597,11 @@
+ /* I belive in this case we do not have anything to do
+ * until the next buffer comes along, and we turn off the
+ * reload */
++ /* with autoreload running we will always have one more loaded
++ * than should be */
++// chan->load_state=S3C2410_DMALOAD_1LOADED;
+ return;
+-
++
+ default:
+ pr_debug("dma%d: lastxfer: unhandled load_state %d with no next\n",
+ chan->number, chan->load_state);
+@@ -602,15 +621,18 @@
+ {
+ struct s3c2410_dma_chan *chan = (struct s3c2410_dma_chan *)devpw;
+ struct s3c2410_dma_buf *buf;
+-
++ unsigned long tmp;
++
+ buf = chan->curr;
+-
++ printk("dma irq called!!\n");
+ dbg_showchan(chan);
+
++
+ /* modify the channel state */
+
+ switch (chan->load_state) {
+ case S3C2410_DMALOAD_1RUNNING:
++// printk("S3C2410_DMALOAD_1RUNNING\n");
+ /* TODO - if we are running only one buffer, we probably
+ * want to reload here, and then worry about the buffer
+ * callback */
+@@ -619,15 +641,18 @@
+ break;
+
+ case S3C2410_DMALOAD_1LOADED:
++// printk("S3C2410_DMALOAD_1LOADED\n");
+ /* iirc, we should go back to NONE loaded here, we
+ * had a buffer, and it was never verified as being
+ * loaded.
+ */
+-
++// printk("load_state-x: 0x%x\n",chan->load_state);
+ chan->load_state = S3C2410_DMALOAD_NONE;
++// printk("load_state-y: 0x%x\n",chan->load_state);
+ break;
+
+ case S3C2410_DMALOAD_1LOADED_1RUNNING:
++// printk("S3C2410_DMALOAD_1LOADED_1RUNNING\n");
+ /* we'll worry about checking to see if another buffer is
+ * ready after we've called back the owner. This should
+ * ensure we do not wait around too long for the DMA
+@@ -652,12 +677,18 @@
+ /* update the chain to make sure that if we load any more
+ * buffers when we call the callback function, things should
+ * work properly */
++ printk("buf is not null\n");
++ if ( buf->next == NULL )
++ printk("buf->next is NULL\n");
++ else
++ printk("buf->next is not NULL\n");
++// printk("load_state-a: 0x%x\n",chan->load_state);
+
+ chan->curr = buf->next;
+ buf->next = NULL;
+
+ if (buf->magic != BUF_MAGIC) {
+- printk(KERN_ERR "dma%d: %s: buf %p incorrect magic\n",
++ printk("dma%d: %s: buf %p incorrect magic\n",
+ chan->number, __func__, buf);
+ return IRQ_HANDLED;
+ }
+@@ -666,7 +697,9 @@
+
+ /* free resouces */
+ s3c2410_dma_freebuf(buf);
++// printk("load_state-b: 0x%x\n",chan->load_state);
+ } else {
++ printk("buf is null\n");
+ }
+
+ /* only reload if the channel is still running... our buffer done
+@@ -678,17 +711,21 @@
+
+ if (chan->next != NULL && chan->state != S3C2410_DMA_IDLE) {
+ unsigned long flags;
++// printk("load_state-c: 0x%x\n",chan->load_state);
+
+ switch (chan->load_state) {
+ case S3C2410_DMALOAD_1RUNNING:
++// printk("Reload S3C2410_DMALOAD_1RUNNING\n");
+ /* don't need to do anything for this state */
+ break;
+
+ case S3C2410_DMALOAD_NONE:
++// printk("Reload S3C2410_DMALOAD_NONE\n");
+ /* can load buffer immediately */
+ break;
+
+ case S3C2410_DMALOAD_1LOADED:
++// printk("Reload S3C2410_DMALOAD_1LOADED\n");
+ if (s3c2410_dma_waitforload(chan, __LINE__) == 0) {
+ /* flag error? */
+ printk(KERN_ERR "dma%d: timeout waiting for load (%s)\n",
+@@ -699,6 +736,7 @@
+ break;
+
+ case S3C2410_DMALOAD_1LOADED_1RUNNING:
++// printk("Reload S3C2410_DMALOAD_1LOADED_1RUNNING\n");
+ goto no_load;
+
+ default:
+@@ -711,10 +749,27 @@
+ s3c2410_dma_loadbuffer(chan, chan->next);
+ local_irq_restore(flags);
+ } else {
++ if ( chan->next == NULL )
++ printk("reload chan->next is null\n");
++ else
++ printk("reload chan->next is not null\n");
++
++ if ( buf->next == NULL )
++ printk("reload buf->next is null\n");
++ else
++ printk("reload buf->next is not null\n");
++
++ if ( chan->state == S3C2410_DMA_IDLE )
++ printk("reload chan->state is idle\n");
++ else
++ printk("reload chan->state is not idle\n");
++
++ printk("Reload lastxfer\n");
+ s3c2410_dma_lastxfer(chan);
+
+ /* see if we can stop this channel.. */
+ if (chan->load_state == S3C2410_DMALOAD_NONE) {
++
+ pr_debug("dma%d: end of transfer, stopping channel (%ld)\n",
+ chan->number, jiffies);
+ s3c2410_dma_ctrl(chan->number | DMACH_LOW_LEVEL,
+@@ -723,6 +778,7 @@
+ }
+
+ no_load:
++ printk("leaving dma_irq!\n");
+ return IRQ_HANDLED;
+ }
+
+@@ -852,6 +908,7 @@
+ unsigned long flags;
+ unsigned long tmp;
+
++// printk("do stop called!!\n");
+ pr_debug("%s:\n", __func__);
+
+ dbg_showchan(chan);
+@@ -865,10 +922,12 @@
+ //tmp &= ~S3C2410_DMASKTRIG_ON;
+ dma_wrreg(chan, S3C2410_DMA_DMASKTRIG, tmp);
+
+-#if 0
++#if 1
+ /* should also clear interrupts, according to WinCE BSP */
+ tmp = dma_rdreg(chan, S3C2410_DMA_DCON);
+ tmp |= S3C2410_DCON_NORELOAD;
++ tmp &= ~S3C2410_DCON_INTREQ;
++ tmp &= ~S3C2410_DCON_HWTRIG;
+ dma_wrreg(chan, S3C2410_DMA_DCON, tmp);
+ #endif
+
+@@ -876,6 +935,8 @@
+ chan->state = S3C2410_DMA_IDLE;
+ chan->load_state = S3C2410_DMALOAD_NONE;
+
++ dbg_showchan(chan);
++
+ local_irq_restore(flags);
+
+ return 0;
+@@ -907,6 +968,7 @@
+ struct s3c2410_dma_buf *buf, *next;
+ unsigned long flags;
+
++ printk("dma flush called!\n");
+ pr_debug("%s: chan %p (%d)\n", __func__, chan, chan->number);
+
+ dbg_showchan(chan);
+@@ -940,7 +1002,7 @@
+
+ s3c2410_dma_waitforstop(chan);
+
+-#if 0
++#if 1
+ /* should also clear interrupts, according to WinCE BSP */
+ {
+ unsigned long tmp;
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/arch/arm/plat-s3c24xx/s3c244x.c linux-2.6.25-m8050/arch/arm/plat-s3c24xx/s3c244x.c
+--- linux-git/arch/arm/plat-s3c24xx/s3c244x.c 2008-11-10 12:20:12.000000000 +0100
++++ linux-2.6.25-m8050/arch/arm/plat-s3c24xx/s3c244x.c 2008-07-10 18:39:47.000000000 +0200
+@@ -65,8 +65,10 @@
+
+ /* rename any peripherals used differing from the s3c2410 */
+
++ s3c_device_sdi.name = "s3c2440-sdi";
+ s3c_device_i2c.name = "s3c2440-i2c";
+ s3c_device_nand.name = "s3c2440-nand";
++ s3c_device_ts.name = "s3c2440-ts";
+ s3c_device_usbgadget.name = "s3c2440-usbgadget";
+ }
+
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/arch/arm/plat-s3c24xx/s3c244x.h linux-2.6.25-m8050/arch/arm/plat-s3c24xx/s3c244x.h
+--- linux-git/arch/arm/plat-s3c24xx/s3c244x.h 2008-11-10 12:19:09.000000000 +0100
++++ linux-2.6.25-m8050/arch/arm/plat-s3c24xx/s3c244x.h 2008-05-07 13:50:18.000000000 +0200
+@@ -18,6 +18,8 @@
+
+ extern void s3c244x_init_clocks(int xtal);
+
++extern int s3c2410_baseclk_add(void);
++
+ #else
+ #define s3c244x_init_clocks NULL
+ #define s3c244x_init_uarts NULL
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/char/defkeymap.map linux-2.6.25-m8050/drivers/char/defkeymap.map
+--- linux-git/drivers/char/defkeymap.map 2008-11-10 12:19:16.000000000 +0100
++++ linux-2.6.25-m8050/drivers/char/defkeymap.map 2008-10-02 14:06:23.000000000 +0200
+@@ -212,11 +212,11 @@
+ control keycode 88 = F12
+ alt keycode 88 = Console_12
+ control alt keycode 88 = Console_12
+-keycode 89 =
+-keycode 90 =
+-keycode 91 =
+-keycode 92 =
+-keycode 93 =
++keycode 89 = dollar
++keycode 90 = at
++keycode 91 = parenleft
++keycode 92 = parenright
++keycode 93 = bar
+ keycode 94 =
+ keycode 95 =
+ keycode 96 = KP_Enter
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/char/intellihead.c linux-2.6.25-m8050/drivers/char/intellihead.c
+--- linux-git/drivers/char/intellihead.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/char/intellihead.c 2008-10-03 16:08:21.000000000 +0200
+@@ -0,0 +1,300 @@
++/*
++ * Intellihead Card Reader Driver-
++ * Copyright (C) David Anders 2008.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/sched.h>
++#include <linux/interrupt.h>
++#include <linux/fs.h>
++#include <linux/miscdevice.h>
++#include <linux/string.h>
++#include <linux/errno.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/poll.h>
++
++#include <asm/uaccess.h>
++#include <asm/irq.h>
++#include <asm/mach-types.h>
++
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-gpio.h>
++
++#define __INTELLIHEAD_C /* Tell the header file who we are */
++#include "intellihead.h"
++
++static DECLARE_WAIT_QUEUE_HEAD(intellihead_wait_queue); /* Used for blocking read */
++static char intellihead_output_buffer[380]; /* Stores data to write out of device */
++static char intellihead_tmp_buffer[380]; /* Stores data to write out of device */
++static int bcount; /* The number of bytes in the buffer */
++static int irq_count;
++static void intellihead_callback_main(struct work_struct *ignored);
++static int data_offset;
++static int dataready;
++
++static DECLARE_WORK(intellihead_work, intellihead_callback_main);
++
++static void intellihead_reset(void){
++
++ s3c2410_gpio_cfgpin(S3C2410_GPB7,S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 1);
++ udelay(2);
++ s3c2410_gpio_cfgpin(S3C2410_GPF2,S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPF2, 0);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 1);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 0);
++ udelay(2);
++ s3c2410_gpio_cfgpin(S3C2410_GPF2,S3C2410_GPIO_INPUT);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 1);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 0);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 1);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 0);
++ udelay(2);
++ s3c2410_gpio_cfgpin(S3C2410_GPF2,S3C2410_GPIO_IRQ);
++
++}
++
++static void intellihead_callback_main(struct work_struct *ignored)
++{
++ int x=0,y=0;
++ char final_char;
++// printk("intellihead: main callback started!!\n");
++// disable_irq(IRQ_EINT2);
++ s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPIO_INPUT);
++
++ for(y=15; y >= 0 ; y--){
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 1);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 0);
++ udelay(2);
++ }
++
++ for(x=0;x< 100; x++) {
++ final_char=0;
++ for(y=0; y < 6 ; y++){
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 1);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 0);
++ udelay(2);
++ if ( s3c2410_gpio_getpin(S3C2410_GPF2) == 0 ){
++ final_char |= (1<<y);
++ }
++ }
++ /*discard the parity bit*/
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 1);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 0);
++ udelay(2);
++ final_char += 0x20;
++ intellihead_tmp_buffer[x] = final_char;
++// printk("%c",intellihead_tmp_buffer[x]);
++ }
++ for(x=0; x<4 ; x++){
++ /*discard last 4bits for now*/
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 1);
++ udelay(2);
++ s3c2410_gpio_setpin(S3C2410_GPB7, 0);
++ udelay(2);
++ }
++ intellihead_tmp_buffer[101]='\0';
++// printk("\n");
++ intellihead_reset();
++ enable_irq(IRQ_EINT2);
++ irq_count=0;
++ bcount = sprintf (intellihead_output_buffer, "%s", intellihead_tmp_buffer);
++ dataready=1;
++ wake_up_interruptible (&intellihead_wait_queue);
++ wake_up(&intellihead_wait_queue);
++// printk("intellihead: main callback finished!!\n");
++}
++
++/*
++ * This handler is called when a card detect or data ready is present
++ */
++
++static irqreturn_t intellihead_handler (int irq, void *dev_id)
++{
++ disable_irq(IRQ_EINT2);
++// printk("intellihead: irq called!!\n");
++ if (irq_count == 0 ) {
++// printk("intellihead: card present irq!\n");
++ s3c2410_gpio_setpin(S3C2410_GPB7, 1);
++ while ( !s3c2410_gpio_getpin(S3C2410_GPB7) ){
++ };
++ s3c2410_gpio_setpin(S3C2410_GPB7, 0);
++ irq_count=1;
++ enable_irq(IRQ_EINT2);
++ }
++ else {
++// printk("intellihead: data present irq!\n");
++ if ( irq_count==1) {
++// interruptible_sleep_on (&intellihead_wait_queue);
++ schedule_work(&intellihead_work);
++ irq_count=2;
++ }
++ }
++
++ return IRQ_HANDLED;
++}
++
++static unsigned int intellihead_poll(struct file *file,
++ struct poll_table_struct *wait)
++{
++// printk("intellihead: poll called!!!\n");
++ poll_wait(file, &intellihead_wait_queue, wait);
++// printk("intellihead: checking for data!!!\n");
++ if (dataready != 0) {
++// printk("intellihead: data ready!!\n");
++ return POLLIN | POLLRDNORM;
++ }
++// printk("intellihead: nothing ready!!\n");
++ return 0;
++}
++
++/*
++ * This function is called when a user space program attempts to read
++ * /dev/intellihead. It puts the device to sleep on the wait queue until
++ * intellihead_main_callback writes some data to the buffer and flushes
++ * the queue, at which point it writes the data out to the device and
++ * returns the number of characters it has written. This function is
++ * reentrant, so that many processes can be attempting to read from the
++ * device at any one time.
++ */
++
++static int intellihead_read (struct file *filp, char __user *buffer,
++ size_t count, loff_t *ppos)
++{
++ int returncount,writecount;
++ static char tempchar[2];
++// printk("intellihead: read called with count %d!!\n",count);
++// printk("intellihead: bcount is %d!!\n",bcount);
++
++// if (bcount==0)
++// return 0;
++// if (count != 4096)
++// return 0;
++// printk("intellihead: read called!!\n");
++ if (dataready == 0)
++ interruptible_sleep_on (&intellihead_wait_queue);
++// printk("intellihead: copy_to_user with bcount of %d\n",bcount);
++// printk("intellihead: requested count size of %d\n",count);
++// printk("%s",intellihead_output_buffer);
++
++ if (bcount > count )
++ writecount=count;
++ else
++ writecount=bcount;
++ tempchar[0]=intellihead_output_buffer[data_offset];
++// returncount=copy_to_user(buffer, &intellihead_output_buffer, writecount);
++ returncount=copy_to_user(buffer, &tempchar, writecount);
++ if ( returncount == 0 ){
++ if (tempchar[0] == 0x3f)
++ bcount=data_offset;
++// printk("intellihead: return count good!!\n");
++ if (data_offset != bcount ) {
++ data_offset += writecount;
++ }
++ else {
++ bcount=0;
++ data_offset=0;
++ dataready=0;
++ }
++ return writecount;
++ }
++ else {
++// printk("intellihead: return bad - %d expected %d!!\n",returncount, bcount);
++ return -EFAULT;
++ }
++// return (copy_to_user (buffer, &intellihead_output_buffer, bcount))
++// ? -EFAULT : bcount;
++}
++
++/*
++ * This structure is the file operations structure, which specifies what
++ * callbacks functions the kernel should call when a user mode process
++ * attempts to perform these operations on the device.
++ */
++
++static const struct file_operations intellihead_fops = {
++ .owner = THIS_MODULE,
++ .read = intellihead_read,
++ .poll = intellihead_poll,
++};
++
++/*
++ * This structure is the misc device structure, which specifies the minor
++ * device number (158 in this case), the name of the device (for /proc/misc),
++ * and the address of the above file operations structure.
++ */
++
++static struct miscdevice intellihead_misc_device = {
++ INTELLIHEAD_MINOR,
++ "intellihead",
++ &intellihead_fops,
++};
++
++/*
++ * This function is called to initialise the driver, either from misc.c at
++ * bootup if the driver is compiled into the kernel, or from init_module
++ * below at module insert time. It attempts to register the device node
++ * and the IRQ and fails with a warning message if either fails, though
++ * neither ever should because the device number and IRQ are unique to
++ * this driver.
++ */
++
++static int __init intellihead_init(void)
++{
++// if (!machine_is_netwinder())
++// return -ENODEV;
++
++ printk (KERN_INFO "Intellihead Card Read Driver Version %s (C) David Anders "
++ "<danders@amltd.com> 2008.\n", VERSION);
++
++ if (misc_register (&intellihead_misc_device)) {
++ printk (KERN_WARNING "intellihead: Couldn't register device 10, "
++ "%d.\n", INTELLIHEAD_MINOR);
++ return -EBUSY;
++ }
++
++ intellihead_reset();
++
++ if (request_irq (IRQ_EINT2, intellihead_handler, IRQF_TRIGGER_FALLING,
++ "intellihead", NULL)) {
++ printk (KERN_WARNING "intellihead: IRQ %d is not free.\n",
++ IRQ_EINT2);
++ misc_deregister (&intellihead_misc_device);
++ return -EIO;
++ }
++
++// init_waitqueue_head(&intellihead_wait_queue);
++ dataready=0;
++ data_offset=0;
++ irq_count=0;
++ return 0;
++}
++
++static void __exit intellihead_exit (void)
++{
++ free_irq (IRQ_EINT2, NULL);
++ misc_deregister (&intellihead_misc_device);
++}
++
++
++MODULE_AUTHOR("David Anders");
++MODULE_LICENSE("GPL");
++
++module_init(intellihead_init);
++module_exit(intellihead_exit);
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/char/intellihead.h linux-2.6.25-m8050/drivers/char/intellihead.h
+--- linux-git/drivers/char/intellihead.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/char/intellihead.h 2008-07-15 17:57:17.000000000 +0200
+@@ -0,0 +1,21 @@
++#ifndef __INTELLIHEAD_H
++#define __INTELLIHEAD_H
++
++/*
++ * NetWinder Button Driver-
++ * Copyright (C) Alex Holden <alex@linuxhacker.org> 1998, 1999.
++ */
++
++#ifdef __INTELLIHEAD_C /* Actually compiling the driver itself */
++
++/* Various defines: */
++
++#define VERSION "0.1" /* Driver version number */
++#define INTELLIHEAD_MINOR 158 /* Major 10, Minor 158, /dev/nwbutton */
++
++/* Function prototypes: */
++
++static irqreturn_t intellihead_handler (int irq, void *dev_id);
++
++#endif /* __INTELLIHEAD_C */
++#endif /* __INTELLIHEAD_H */
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/char/Kconfig linux-2.6.25-m8050/drivers/char/Kconfig
+--- linux-git/drivers/char/Kconfig 2008-11-10 12:20:16.000000000 +0100
++++ linux-2.6.25-m8050/drivers/char/Kconfig 2008-07-14 13:44:38.000000000 +0200
+@@ -410,6 +410,12 @@
+ If you have an SGI Altix with an attached SABrick
+ say Y or M here, otherwise say N.
+
++config INTELLIHEAD
++ tristate "Intellihead Card Read driver support"
++ help
++ If you have an Intellihead Card Reader attached
++ say Y or M here, otherwise say N.
++
+ source "drivers/serial/Kconfig"
+
+ config UNIX98_PTYS
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/char/Makefile linux-2.6.25-m8050/drivers/char/Makefile
+--- linux-git/drivers/char/Makefile 2008-11-10 12:20:16.000000000 +0100
++++ linux-2.6.25-m8050/drivers/char/Makefile 2008-10-02 14:10:28.000000000 +0200
+@@ -58,6 +58,7 @@
+ obj-$(CONFIG_VIOTAPE) += viotape.o
+ obj-$(CONFIG_HVCS) += hvcs.o
+ obj-$(CONFIG_SGI_MBCS) += mbcs.o
++obj-$(CONFIG_INTELLIHEAD) += intellihead.o
+ obj-$(CONFIG_BRIQ_PANEL) += briq_panel.o
+
+ obj-$(CONFIG_PRINTER) += lp.o
+@@ -126,7 +127,7 @@
+ # Uncomment if you're changing the keymap and have an appropriate
+ # loadkeys version for the map. By default, we'll use the shipped
+ # versions.
+-# GENERATE_KEYMAP := 1
++GENERATE_KEYMAP := 1
+
+ ifdef GENERATE_KEYMAP
+
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/generic-leds.c linux-2.6.25-m8050/drivers/input/generic-leds.c
+--- linux-git/drivers/input/generic-leds.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/generic-leds.c 2008-10-01 17:00:42.000000000 +0200
+@@ -0,0 +1,117 @@
++/*
++ * Input Power Event -> APM Bridge
++ *
++ * Copyright (c) 2007 Richard Purdie
++ *
++ * 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.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/input.h>
++#include <linux/slab.h>
++#include <linux/init.h>
++#include <linux/tty.h>
++#include <linux/delay.h>
++#include <linux/pm.h>
++#include <linux/leds.h>
++
++static void generic_leds_event(struct input_handle *handle, unsigned int type,
++ unsigned int code, int value)
++{
++ /* only react on key down events */
++ if (value != 1)
++ return;
++
++ switch (type) {
++ case EV_LED:
++// printk("generic led EV_LED!!\n");
++ ledtrig_ev_led_activity();
++ break;
++
++ default:
++ break;
++ }
++}
++
++static int generic_leds_connect(struct input_handler *handler,
++ struct input_dev *dev,
++ const struct input_device_id *id)
++{
++ struct input_handle *handle;
++ int error;
++
++ handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL);
++ if (!handle)
++ return -ENOMEM;
++
++ handle->dev = dev;
++ handle->handler = handler;
++ handle->name = "generic-leds";
++
++ error = input_register_handle(handle);
++ if (error) {
++ printk(KERN_ERR
++ "generic-leds: Failed to register generic-leds handler, "
++ "error %d\n", error);
++ kfree(handle);
++ return error;
++ }
++
++ error = input_open_device(handle);
++ if (error) {
++ printk(KERN_ERR
++ "generic-leds: Failed to open generic-leds device, "
++ "error %d\n", error);
++ input_unregister_handle(handle);
++ kfree(handle);
++ return error;
++ }
++
++ return 0;
++}
++
++static void generic_leds_disconnect(struct input_handle *handle)
++{
++ input_close_device(handle);
++ input_unregister_handle(handle);
++ kfree(handle);
++}
++
++static const struct input_device_id generic_leds_ids[] = {
++ {
++ .flags = INPUT_DEVICE_ID_MATCH_EVBIT,
++ .evbit = { BIT_MASK(EV_LED) },
++ },
++ { },
++};
++
++MODULE_DEVICE_TABLE(input, generic_leds_ids);
++
++
++static struct input_handler generic_leds_handler = {
++ .event = generic_leds_event,
++ .connect = generic_leds_connect,
++ .disconnect = generic_leds_disconnect,
++ .name = "generic-leds",
++ .id_table = generic_leds_ids,
++};
++
++static int __init generic_leds_init(void)
++{
++ return input_register_handler(&generic_leds_handler);
++}
++
++static void __exit generic_leds_exit(void)
++{
++ input_unregister_handler(&generic_leds_handler);
++}
++
++module_init(generic_leds_init);
++module_exit(generic_leds_exit);
++
++MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>");
++MODULE_DESCRIPTION("Input Power Event -> APM Bridge");
++MODULE_LICENSE("GPL");
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/Kconfig linux-2.6.25-m8050/drivers/input/Kconfig
+--- linux-git/drivers/input/Kconfig 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/Kconfig 2008-10-01 15:27:27.000000000 +0200
+@@ -149,6 +149,15 @@
+ To compile this driver as a module, choose M here: the
+ module will be called apm-power.
+
++config INPUT_GENERICLEDS
++ tristate "Generic LED Handler"
++ depends on INPUT
++ ---help---
++ Say Y here if you want suspend key events to trigger a user
++ requested suspend through APM. This is useful on embedded
++ systems where such behviour is desired without userspace
++ interaction. If unsure, say N.
++
+ comment "Input Device Drivers"
+
+ source "drivers/input/keyboard/Kconfig"
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/keyboard/Kconfig linux-2.6.25-m8050/drivers/input/keyboard/Kconfig
+--- linux-git/drivers/input/keyboard/Kconfig 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/keyboard/Kconfig 2008-05-22 08:51:44.000000000 +0200
+@@ -250,6 +250,15 @@
+ To compile this driver as a module, choose M here: the
+ module will be called jornada720_kbd.
+
++config KEYBOARD_M8050
++ tristate "AML M8050 keypad support"
++ depends on MACH_AML_M8050
++ help
++ Say Y here if you want to use the M8050 keypad.
++
++ To compile this driver as a module, choose M here: the
++ module will be called omap-keypad.
++
+ config KEYBOARD_OMAP
+ tristate "TI OMAP keypad support"
+ depends on (ARCH_OMAP1 || ARCH_OMAP2)
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/keyboard/m8050-keypad.c linux-2.6.25-m8050/drivers/input/keyboard/m8050-keypad.c
+--- linux-git/drivers/input/keyboard/m8050-keypad.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/keyboard/m8050-keypad.c 2008-10-14 16:05:16.000000000 +0200
+@@ -0,0 +1,709 @@
++/*
++ * linux/drivers/input/keyboard/m8050-keypad.c
++ *
++ * M8050 Keypad Driver
++ *
++ * Copyright (C) 2008 American Microsystems Ltd.
++ * M8050 support by David Anders <danders@amtld.com>
++ *
++ * Based on the OMAP Keypad Driver
++ *
++ * Copyright (C) 2003 Nokia Corporation
++ * Written by Timo Teräs <ext-timo.teras@nokia.com>
++ *
++ *
++ * 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
++ *
++ *
++ *
++ *
++ * NOTE: in order to use the power button properly, the following need to be
++ * enabled: CONFIG_APM_EMULATION and CONFIG_INPUT_APMPOWER
++ */
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/types.h>
++#include <linux/input.h>
++#include <linux/kernel.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/mutex.h>
++#include <linux/errno.h>
++#include <linux/pm.h>
++#include <linux/suspend.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/keypad.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/mach-types.h>
++
++#undef NEW_BOARD_LEARNING_MODE
++
++//#define NEW_BOARD_LEARNING_MODE 1
++
++static void m8050_kp_tasklet(unsigned long);
++static void m8050_kp_timer(unsigned long);
++static inline int m8050_kp_find_key(int col, int row, int matrix);
++
++static unsigned char keypad_state[8];
++static int kp_cur_group = -1;
++static int alphaset = 0;
++static int alphaexception=0;
++static int capslock =0;
++static int lastkey=0;
++static int lastrow=0,lastcol=0;
++
++struct m8050_kp {
++ struct input_dev *input;
++ spinlock_t lock;
++ struct timer_list timer;
++ int irq;
++ unsigned int rows;
++ unsigned int cols;
++ unsigned long delay;
++ unsigned int debounce;
++ unsigned int suspended;
++ unsigned long suspend_jiffies;
++};
++
++DECLARE_TASKLET_DISABLED(kp_tasklet, m8050_kp_tasklet, 0);
++
++static int *keymap;
++static int *keymap_a;
++static int *keymap_b;
++static int *keymap_c;
++static int *keymap_d;
++static unsigned int *row_gpios;
++static unsigned int *col_gpios;
++
++static void alpha_timerfunc(unsigned long);
++static DEFINE_TIMER(alpha_timeout, alpha_timerfunc, 0, 0);
++
++
++static void alpha_timerfunc(unsigned long data)
++{
++
++struct m8050_kp *m8050_kp_data = (struct m8050_kp *) data;
++
++printk("alphatimeout called!!\n");
++
++if (alphaset !=0 ) {
++
++ if (m8050_kp_find_key(lastcol,lastrow,4) == KEY_UNKNOWN ) {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%3)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%3)+1);
++ }
++ else {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%4)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%4)+1);
++ }
++ printk("reporting key=%d\n",lastkey);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,1);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,0);
++ lastkey=0;
++ lastrow=0;
++ lastcol=0;
++ printk("reseting alphaset to 1!\n");
++ alphaset=1;
++}
++
++}
++
++static void set_col_gpio_val(struct m8050_kp *m8050_kp, u8 value)
++{
++
++ if (value & (1 << 0))
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 0);
++
++ if (value & (1 << 1))
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 0);
++
++ if (value & (1 << 2))
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 0);
++
++ if (value & (1 << 3))
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 0);
++
++ if (value & (1 << 4))
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 0);
++
++}
++
++static u8 get_row_gpio_val(struct m8050_kp *m8050_kp)
++{
++ u8 value = 0;
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG0))
++ value |= (1 << 0);
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG1))
++ value |= (1 << 1);
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG2))
++ value |= (1 << 2);
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG3))
++ value |= (1 << 3);
++
++ return value;
++
++}
++
++static irqreturn_t m8050_kp_interrupt(int irq, void *dev_id)
++{
++ struct m8050_kp *m8050_kp = dev_id;
++ int i;
++
++
++ /* disable keyboard interrupt and schedule for handling */
++ for (i = 0; i < m8050_kp->rows; i++)
++ disable_irq(S3C2410_IRQ(36+i));
++
++ tasklet_schedule(&kp_tasklet);
++
++ return IRQ_HANDLED;
++}
++
++static void m8050_kp_timer(unsigned long data)
++{
++ tasklet_schedule(&kp_tasklet);
++}
++
++static void m8050_kp_scan_keypad(struct m8050_kp *m8050_kp, unsigned char *state)
++{
++ int col = 0;
++
++ /* read the keypad status */
++ for (col = 0; col < m8050_kp->cols; col++) {
++ set_col_gpio_val(m8050_kp, ~(1 << col));
++ state[col] = ~(get_row_gpio_val(m8050_kp)) & 0x0f;
++ }
++ set_col_gpio_val(m8050_kp, 0);
++
++
++}
++
++static inline int m8050_kp_find_key(int col, int row, int matrix)
++{
++ int i, key;
++
++ key = KEY(col, row, 0);
++ printk("row=%d col=%d\n key=%d",row,col,key);
++ switch (matrix) {
++ case 0:
++ printk("matrix 0 lookup!\n");
++ for (i = 0; keymap[i] != 0; i++)
++ if ((keymap[i] & 0xff000000) == key)
++ return keymap[i] & 0x00ffffff;
++ return -1;
++ case 1:
++ printk("matrix 1 lookup!\n");
++ for (i = 0; keymap_a[i] != 0; i++)
++ if ((keymap_a[i] & 0xff000000) == key)
++ return keymap_a[i] & 0x00ffffff;
++ return -1;
++ case 2:
++ printk("matrix 2 lookup!\n");
++ for (i = 0; keymap_b[i] != 0; i++)
++ if ((keymap_b[i] & 0xff000000) == key)
++ return keymap_b[i] & 0x00ffffff;
++ return -1;
++ case 3:
++ printk("matrix 3 lookup!\n");
++ for (i = 0; keymap_c[i] != 0; i++)
++ if ((keymap_c[i] & 0xff000000) == key)
++ return keymap_c[i] & 0x00ffffff;
++ return -1;
++ case 4:
++ printk("matrix 4 lookup!\n");
++ for (i = 0; keymap_d[i] != 0; i++)
++ if ((keymap_d[i] & 0xff000000) == key)
++ return keymap_d[i] & 0x00ffffff;
++ return -1;
++ default:
++ return -1;
++ }
++
++}
++
++static void m8050_kp_tasklet(unsigned long data)
++{
++ struct m8050_kp *m8050_kp_data = (struct m8050_kp *) data;
++ unsigned char new_state[8], changed, key_down = 0;
++ int col, row;
++ int spurious = 0;
++ int suspend_requested=0;
++
++ if (m8050_kp_data->suspended) {
++ return;
++ }
++ /* check for any changes */
++ m8050_kp_scan_keypad(m8050_kp_data, new_state);
++
++ /* check for changes and print those */
++ for (col = 0; col < m8050_kp_data->cols; col++) {
++ changed = new_state[col] ^ keypad_state[col];
++ key_down |= new_state[col];
++ if (changed == 0)
++ continue;
++
++ for (row = 0; row < m8050_kp_data->rows; row++) {
++ int key;
++ if (!(changed & (1 << row)))
++ continue;
++#ifdef NEW_BOARD_LEARNING_MODE
++ printk(KERN_INFO "m8050-keypad: key %d-%d %s\n", col,
++ row, (new_state[col] & (1 << row)) ?
++ "pressed" : "released");
++#else
++ key = m8050_kp_find_key(col, row,0);
++ if (key < 0) {
++ printk(KERN_WARNING
++ "m8050-keypad: Spurious key event %d-%d\n",
++ col, row);
++ /* We scan again after a couple of seconds */
++ spurious = 1;
++ continue;
++ }
++
++ if (!(kp_cur_group == (key & GROUP_MASK) ||
++ kp_cur_group == -1))
++ continue;
++
++ kp_cur_group = key & GROUP_MASK;
++ if (key_down && (key == KEY_SUSPEND)
++ && time_after(jiffies, m8050_kp_data->suspend_jiffies + HZ)) {
++
++ suspend_requested=1;
++ m8050_kp_data->suspended=1;
++ }
++ else {
++ if (key != KEY_SUSPEND){
++ if ( key == KEY_LEFTALT ){
++ if ( new_state[col] & (1 << row) ){
++ if (alphaset==0) {
++ printk("alpha set to 1\n");
++ alphaset=1;
++ printk("capslock on\n");
++ input_report_key(m8050_kp_data->input, KEY_CAPSLOCK,1);
++ input_report_key(m8050_kp_data->input, KEY_CAPSLOCK,0);
++ capslock=1;
++ }
++ else if(capslock==1) {
++ if (timer_pending(&alpha_timeout)) {
++ printk("deleting timer!\n");
++ del_timer(&alpha_timeout);
++ if (m8050_kp_find_key(lastcol,lastrow,4) == KEY_UNKNOWN ) {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%3)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%3)+1);
++ }
++ else {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%4)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%4)+1);
++ }
++
++// printk("reporting key with matrix %d!\n",alphaset-1);
++// lastkey = m8050_kp_find_key(lastcol, lastrow,alphaset-1);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,1);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,0);
++ lastkey=0;
++ lastrow=0;
++ lastcol=0;
++ printk("reseting alphaset to 1!\n");
++ alphaset=1;
++ }
++ printk("capslock off\n");
++ input_report_key(m8050_kp_data->input, KEY_CAPSLOCK,1);
++ input_report_key(m8050_kp_data->input, KEY_CAPSLOCK,0);
++ capslock=0;
++ }
++ else {
++ if (timer_pending(&alpha_timeout)) {
++ printk("deleting timer!\n");
++ del_timer(&alpha_timeout);
++ if (m8050_kp_find_key(lastcol,lastrow,4) == KEY_UNKNOWN ) {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%3)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%3)+1);
++ }
++ else {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%4)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%4)+1);
++ }
++
++// printk("reporting key with matrix %d!\n",alphaset-1);
++// lastkey = m8050_kp_find_key(lastcol, lastrow,alphaset-1);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,1);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,0);
++ lastkey=0;
++ lastrow=0;
++ lastcol=0;
++ printk("reseting alphaset to 1!\n");
++ alphaset=1;
++ }
++ printk("alpha set to 0\n");
++ alphaset=0;
++ }
++ }
++ }
++ else {
++ if ( alphaset != 0 ) {
++ if ( new_state[col] & (1 << row) ){
++ mod_timer(&alpha_timeout, jiffies + (HZ));
++ printk("modifying timer!\n");
++ if ( lastkey == key ){
++ alphaset++;
++ printk("incrementing alphaset to %d\n",alphaset);
++ }
++ else {
++ if (alphaset==1) {
++ if (m8050_kp_find_key(col,row, 1) == KEY_UNKNOWN ){
++ printk("deleting timer!\n");
++ del_timer(&alpha_timeout);
++ printk("alphaexception=%d\n",alphaexception);
++ printk("alpha exception reporting key with matrix 0!\n");
++ input_report_key(m8050_kp_data->input, key & ~GROUP_MASK,
++ new_state[col] & (1 << row));
++ alphaexception=1;
++ }
++ else {
++ alphaset++;
++ printk("incrementing alphaset to %d\n",alphaset);
++ lastkey=key;
++ lastrow=row;
++ lastcol=col;
++ }
++ }
++ else {
++ if (m8050_kp_find_key(col,row, 1) == KEY_UNKNOWN ){
++ printk("deleting timer!\n");
++ del_timer(&alpha_timeout);
++ if (m8050_kp_find_key(lastcol,lastrow,4) == KEY_UNKNOWN ) {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%3)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%3)+1);
++ }
++ else {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%4)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%4)+1);
++ }
++
++// lastkey = m8050_kp_find_key(lastcol, lastrow,alphaset-1);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,1);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,0);
++ lastkey=0;
++ lastrow=0;
++ lastcol=0;
++ printk("reseting alphaset to 1!\n");
++ alphaset=1;
++ printk("alphaexception=%d\n",alphaexception);
++ printk("alpha exception reporting key with matrix 0!\n");
++ printk("reporting key=%d\n",key);
++ input_report_key(m8050_kp_data->input, key & ~GROUP_MASK,
++ new_state[col] & (1 << row));
++ alphaexception=1;
++ }
++ else {
++ printk("reporting key!\n");
++ if (m8050_kp_find_key(lastcol,lastrow,4) == KEY_UNKNOWN ) {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%3)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%3)+1);
++ }
++ else {
++ printk("reporting key with matrix %d!\n",((alphaset-2)%4)+1);
++ lastkey = m8050_kp_find_key(lastcol, lastrow,((alphaset-2)%4)+1);
++ }
++// lastkey = m8050_kp_find_key(lastcol, lastrow,alphaset-1);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,1);
++ input_report_key(m8050_kp_data->input, lastkey & ~GROUP_MASK,0);
++ lastkey=key;
++ lastrow=row;
++ lastcol=col;
++ printk("reseting alphaset to 2!\n");
++ alphaset=2;
++ }
++ }
++ }
++
++ }
++ else {
++// if (alphaexception == 1 ){
++ if (m8050_kp_find_key(col,row, 1) == KEY_UNKNOWN ){
++ printk("alphaexception=%d\n",alphaexception);
++ printk("alpha exception reporting key with matrix 0!\n");
++ printk("reporting key=%d\n",key);
++ input_report_key(m8050_kp_data->input, key & ~GROUP_MASK,
++ new_state[col] & (1 << row));
++ alphaexception=0;
++ }
++ }
++ }
++ else {
++ printk("reporting key with matrix %d!\n",alphaset);
++ printk("reporting key=%d\n",key);
++ input_report_key(m8050_kp_data->input, key & ~GROUP_MASK,
++ new_state[col] & (1 << row));
++ }
++ }
++ }
++ }
++#endif
++ }
++ }
++ memcpy(keypad_state, new_state, sizeof(keypad_state));
++
++ input_sync(m8050_kp_data->input);
++
++ if (key_down && (suspend_requested==0)) {
++ int delay = HZ / 20;
++ /* some key is pressed - keep irq disabled and use timer
++ * to poll the keypad */
++ if (spurious)
++ delay = 2 * HZ;
++ mod_timer(&m8050_kp_data->timer, jiffies + delay);
++ } else {
++ /* enable interrupts */
++ int i;
++ for (i = 0; i < m8050_kp_data->rows; i++)
++ enable_irq(S3C2410_IRQ(36+i));
++ }
++
++ if (suspend_requested){
++
++ input_event(m8050_kp_data->input, EV_PWR, KEY_SUSPEND, 1);
++ m8050_kp_data->suspend_jiffies=jiffies;
++ }
++}
++#ifdef CONFIG_PM
++static int m8050_kp_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct m8050_kp *m8050_kp_data = platform_get_drvdata(dev);
++
++ del_timer_sync(&m8050_kp_data->timer);
++
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 1);
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 1);
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 1);
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 1);
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 0);
++
++ return 0;
++}
++
++static int m8050_kp_resume(struct platform_device *dev)
++{
++ struct m8050_kp *m8050_kp_data = platform_get_drvdata(dev);
++
++ /* Upon resume, ignore the suspend key for a short while */
++ m8050_kp_data->suspend_jiffies=jiffies;
++ m8050_kp_data->suspended = 0;
++ mod_timer(&m8050_kp_data->timer, jiffies + 50);
++
++ return 0;
++}
++#else
++#define m8050_kp_suspend NULL
++#define m8050_kp_resume NULL
++#endif
++
++static int __init m8050_kp_probe(struct platform_device *pdev)
++{
++ struct m8050_kp *m8050_kp;
++ struct input_dev *input_dev;
++ struct m8050_kp_platform_data *pdata = pdev->dev.platform_data;
++ int i, irq_idx, ret;
++
++ if (!pdata->rows || !pdata->cols || !pdata->keymap) {
++ printk(KERN_ERR "No rows, cols or keymap from pdata\n");
++ return -EINVAL;
++ }
++
++ m8050_kp = kzalloc(sizeof(struct m8050_kp), GFP_KERNEL);
++ input_dev = input_allocate_device();
++ if (!m8050_kp || !input_dev) {
++ kfree(m8050_kp);
++ input_free_device(input_dev);
++ return -ENOMEM;
++ }
++
++ platform_set_drvdata(pdev, m8050_kp);
++
++ m8050_kp->input = input_dev;
++
++ keymap = pdata->keymap;
++ keymap_a = pdata->keymap_a;
++ keymap_b = pdata->keymap_b;
++ keymap_c = pdata->keymap_c;
++ keymap_d = pdata->keymap_d;
++
++ if (pdata->rep)
++ __set_bit(EV_REP, input_dev->evbit);
++
++ if (pdata->delay)
++ m8050_kp->delay = pdata->delay;
++
++ if (pdata->row_gpios && pdata->col_gpios) {
++ row_gpios = pdata->row_gpios;
++ col_gpios = pdata->col_gpios;
++ }
++
++ m8050_kp->rows = pdata->rows;
++ m8050_kp->cols = pdata->cols;
++
++ /* Cols: outputs */
++ s3c2410_gpio_cfgpin(S3C2440_GPJ8, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ9, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ10, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ11, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ12, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 1);
++
++ /* Rows: inputs */
++ s3c2410_gpio_cfgpin(S3C2410_GPG0, S3C2410_GPIO_IRQ);
++ s3c2410_gpio_cfgpin(S3C2410_GPG1, S3C2410_GPIO_IRQ);
++ s3c2410_gpio_cfgpin(S3C2410_GPG2, S3C2410_GPIO_IRQ);
++ s3c2410_gpio_cfgpin(S3C2410_GPG3, S3C2410_GPIO_IRQ);
++
++
++ setup_timer(&m8050_kp->timer, m8050_kp_timer, (unsigned long)m8050_kp);
++ alpha_timeout.data=(unsigned long)m8050_kp;
++
++ /* get the irq and init timer*/
++ tasklet_enable(&kp_tasklet);
++ kp_tasklet.data = (unsigned long) m8050_kp;
++
++ /* setup input device */
++ __set_bit(EV_KEY, input_dev->evbit);
++ __set_bit(EV_PWR, input_dev->evbit);
++ for (i = 0; keymap[i] != 0; i++)
++ __set_bit(keymap[i] & KEY_MAX, input_dev->keybit);
++
++ for (i = 0; keymap_a[i] != 0; i++)
++ __set_bit(keymap_a[i] & KEY_MAX, input_dev->keybit);
++
++ for (i = 0; keymap_b[i] != 0; i++)
++ __set_bit(keymap_b[i] & KEY_MAX, input_dev->keybit);
++
++ for (i = 0; keymap_c[i] != 0; i++)
++ __set_bit(keymap_c[i] & KEY_MAX, input_dev->keybit);
++
++ for (i = 0; keymap_d[i] != 0; i++)
++ __set_bit(keymap_d[i] & KEY_MAX, input_dev->keybit);
++
++ /* specifically register capslock as it is hardcoded */
++ __set_bit(KEY_CAPSLOCK,input_dev->keybit);
++
++ input_dev->name = "m8050-keypad";
++ input_dev->phys = "m8050-keypad/input0";
++ input_dev->dev.parent = &pdev->dev;
++
++ input_dev->id.bustype = BUS_HOST;
++ input_dev->id.vendor = 0x0001;
++ input_dev->id.product = 0x0001;
++ input_dev->id.version = 0x0100;
++
++ ret = input_register_device(m8050_kp->input);
++ if (ret < 0) {
++ printk(KERN_ERR "Unable to register m8050-keypad input device\n");
++ goto err2;
++ }
++
++ /* scan current status and enable interrupt */
++ m8050_kp_scan_keypad(m8050_kp, keypad_state);
++ for (irq_idx = 0; irq_idx < m8050_kp->rows; irq_idx++) {
++ if (request_irq(S3C2410_IRQ(36+irq_idx),
++ m8050_kp_interrupt,
++ IRQF_TRIGGER_FALLING,
++ "m8050-keypad", m8050_kp) < 0)
++ goto err3;
++ }
++
++ m8050_kp->suspend_jiffies=jiffies;
++
++ return 0;
++err3:
++ for (i = irq_idx - 1; i >=0; i--)
++ free_irq(S3C2410_IRQ(36+irq_idx), 0);
++ input_unregister_device(m8050_kp->input);
++ input_dev = NULL;
++err2:
++ kfree(m8050_kp);
++ input_free_device(input_dev);
++
++ return -EINVAL;
++}
++
++static int m8050_kp_remove(struct platform_device *pdev)
++{
++ struct m8050_kp *m8050_kp = platform_get_drvdata(pdev);
++
++ /* disable keypad interrupt handling */
++ tasklet_disable(&kp_tasklet);
++
++ del_timer_sync(&m8050_kp->timer);
++ tasklet_kill(&kp_tasklet);
++
++ /* unregister everything */
++ input_unregister_device(m8050_kp->input);
++
++ kfree(m8050_kp);
++
++ return 0;
++}
++
++static struct platform_driver m8050_kp_driver = {
++ .probe = m8050_kp_probe,
++ .remove = m8050_kp_remove,
++ .suspend = m8050_kp_suspend,
++ .resume = m8050_kp_resume,
++ .driver = {
++ .name = "m8050-keypad",
++ },
++};
++
++static int __devinit m8050_kp_init(void)
++{
++ printk(KERN_INFO "M8050 Keypad Driver\n");
++ return platform_driver_register(&m8050_kp_driver);
++}
++
++static void __exit m8050_kp_exit(void)
++{
++ platform_driver_unregister(&m8050_kp_driver);
++}
++
++module_init(m8050_kp_init);
++module_exit(m8050_kp_exit);
++
++MODULE_AUTHOR("David Anders");
++MODULE_DESCRIPTION("M8050 Keypad Driver");
++MODULE_LICENSE("GPL");
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/keyboard/m8050-keypad.old.c linux-2.6.25-m8050/drivers/input/keyboard/m8050-keypad.old.c
+--- linux-git/drivers/input/keyboard/m8050-keypad.old.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/keyboard/m8050-keypad.old.c 2008-07-28 11:01:22.000000000 +0200
+@@ -0,0 +1,547 @@
++/*
++ * linux/drivers/input/keyboard/m8050-keypad.c
++ *
++ * M8050 Keypad Driver
++ *
++ * Copyright (C) 2008 American Microsystems Ltd.
++ * M8050 support by David Anders <danders@amtld.com>
++ *
++ * Based on the OMAP Keypad Driver
++ *
++ * Copyright (C) 2003 Nokia Corporation
++ * Written by Timo Teräs <ext-timo.teras@nokia.com>
++ *
++ * Added support for H2 & H3 Keypad
++ * Copyright (C) 2004 Texas Instruments
++ *
++ * 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 <linux/module.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/types.h>
++#include <linux/input.h>
++#include <linux/kernel.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/mutex.h>
++#include <linux/errno.h>
++#include <linux/pm.h>
++#include <linux/suspend.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/keypad.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/mach-types.h>
++#include <linux/delay.h>
++
++//#undef NEW_BOARD_LEARNING_MODE
++
++
++
++#define NEW_BOARD_LEARNING_MODE 1
++
++static void m8050_kp_tasklet(unsigned long);
++static void m8050_kp_timer(unsigned long);
++
++static unsigned char keypad_state[8];
++static DEFINE_MUTEX(kp_enable_mutex);
++static int kp_enable = 1;
++static int kp_cur_group = -1;
++static int return_from_suspend=0;
++
++struct m8050_kp {
++ struct input_dev *input;
++ struct timer_list timer;
++ int irq;
++ unsigned int rows;
++ unsigned int cols;
++ unsigned long delay;
++ unsigned int debounce;
++};
++
++DECLARE_TASKLET_DISABLED(kp_tasklet, m8050_kp_tasklet, 0);
++
++static int *keymap;
++static unsigned int *row_gpios;
++static unsigned int *col_gpios;
++
++static void suspend_task_handler(void *data) {
++ mdelay(50);
++ pm_suspend(PM_SUSPEND_MEM);
++
++ printk("resume complete from keypad!!\n");
++}
++
++static DECLARE_WORK(suspend_task,suspend_task_handler);
++
++static void set_col_gpio_val(struct m8050_kp *m8050_kp, u8 value)
++{
++
++ if (value & (1 << 0))
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 0);
++
++ if (value & (1 << 1))
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 0);
++
++ if (value & (1 << 2))
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 0);
++
++ if (value & (1 << 3))
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 0);
++
++ if (value & (1 << 4))
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 0);
++
++// convert this to a s3c24xx function
++// int col;
++// for (col = 0; col < m8050_kp->cols; col++) {
++// if (value & (1 << col))
++// m8050_set_gpio_dataout(col_gpios[col], 1);
++// else
++// m8050_set_gpio_dataout(col_gpios[col], 0);
++// }
++}
++
++static u8 get_row_gpio_val(struct m8050_kp *m8050_kp)
++{
++ u8 value = 0;
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG0))
++ value |= (1 << 0);
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG1))
++ value |= (1 << 1);
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG2))
++ value |= (1 << 2);
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG3))
++ value |= (1 << 3);
++
++ return value;
++
++// convert this to a s3c24xx function
++// int row;
++// u8 value = 0;
++//
++// for (row = 0; row < m8050_kp->rows; row++) {
++// if (m8050_get_gpio_datain(row_gpios[row]))
++// value |= (1 << row);
++// }
++// return value;
++// return 0;
++}
++
++static irqreturn_t m8050_kp_interrupt(int irq, void *dev_id)
++{
++ struct m8050_kp *m8050_kp = dev_id;
++ int i;
++
++ printk("keyboard interrupt called!!!\n");
++ if ( return_from_suspend ) {
++ printk("return_from_suspend=%d\n",return_from_suspend);
++ return_from_suspend=0;
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 0);
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 0);
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 0);
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 0);
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 0);
++ return IRQ_HANDLED;
++ }
++ /* disable keyboard interrupt and schedule for handling */
++ for (i = 0; i < m8050_kp->rows; i++)
++ disable_irq(S3C2410_IRQ(36+i));
++
++ tasklet_schedule(&kp_tasklet);
++ printk("did not detect return from suspend!!!\n");
++
++ return IRQ_HANDLED;
++}
++
++static void m8050_kp_timer(unsigned long data)
++{
++ int i;
++// printk("timmer fired!!\n");
++ for (i = 0; i < m8050_kp->rows; i++)
++ disable_irq(S3C2410_IRQ(36+i));
++ tasklet_schedule(&kp_tasklet);
++}
++
++static void m8050_kp_scan_keypad(struct m8050_kp *m8050_kp, unsigned char *state)
++{
++ int col = 0;
++
++ int i;
++ for (i = 0; i < m8050_kp->rows; i++)
++ disable_irq(S3C2410_IRQ(36+i));
++
++ /* read the keypad status */
++ for (col = 0; col < m8050_kp->cols; col++) {
++ set_col_gpio_val(m8050_kp, ~(1 << col));
++ state[col] = ~(get_row_gpio_val(m8050_kp)) & 0x3f;
++ }
++ set_col_gpio_val(m8050_kp, 0);
++
++
++}
++
++static inline int m8050_kp_find_key(int col, int row)
++{
++ int i, key;
++
++ key = KEY(col, row, 0);
++ for (i = 0; keymap[i] != 0; i++)
++ if ((keymap[i] & 0xff000000) == key)
++ return keymap[i] & 0x00ffffff;
++ return -1;
++}
++
++static void m8050_kp_tasklet(unsigned long data)
++{
++ struct m8050_kp *m8050_kp_data = (struct m8050_kp *) data;
++ unsigned char new_state[8], changed, key_down = 0;
++ int col, row;
++ int spurious = 0;
++
++ /* check for any changes */
++ m8050_kp_scan_keypad(m8050_kp_data, new_state);
++
++ /* check for changes and print those */
++ for (col = 0; col < m8050_kp_data->cols; col++) {
++ changed = new_state[col] ^ keypad_state[col];
++ key_down |= new_state[col];
++ if (changed == 0)
++ continue;
++
++ for (row = 0; row < m8050_kp_data->rows; row++) {
++ int key;
++ if (!(changed & (1 << row)))
++ continue;
++ if ( (col == 4) & (row == 2)){
++// int i;
++// for (i = 0; i < m8050_kp_data->rows; i++)
++// enable_irq(S3C2410_IRQ(36+i));
++ input_event(m8050_kp_data->input, EV_PWR, KEY_SUSPEND, 1);
++ printk("scheduling suspend!!\n");
++// schedule_work(&suspend_task);
++// return;
++ }
++#ifdef NEW_BOARD_LEARNING_MODE
++ printk(KERN_INFO "m8050-keypad: key %d-%d %s\n", col,
++ row, (new_state[col] & (1 << row)) ?
++ "pressed" : "released");
++
++#else
++ key = m8050_kp_find_key(col, row);
++ if (key < 0) {
++ printk(KERN_WARNING
++ "m8050-keypad: Spurious key event %d-%d\n",
++ col, row);
++ /* We scan again after a couple of seconds */
++ spurious = 1;
++ continue;
++ }
++
++ if (!(kp_cur_group == (key & GROUP_MASK) ||
++ kp_cur_group == -1))
++ continue;
++
++ kp_cur_group = key & GROUP_MASK;
++ input_report_key(m8050_kp_data->input, key & ~GROUP_MASK,
++ new_state[col] & (1 << row));
++#endif
++ }
++ }
++ memcpy(keypad_state, new_state, sizeof(keypad_state));
++
++ if (key_down) {
++ int delay = HZ / 20;
++ /* some key is pressed - keep irq disabled and use timer
++ * to poll the keypad */
++ if (spurious)
++ delay = 2 * HZ;
++ mod_timer(&m8050_kp_data->timer, jiffies + delay);
++ } else {
++ /* enable interrupts */
++ int i;
++ for (i = 0; i < m8050_kp_data->rows; i++)
++ enable_irq(S3C2410_IRQ(36+i));
++ }
++}
++
++static ssize_t m8050_kp_enable_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ return sprintf(buf, "%u\n", kp_enable);
++}
++
++static ssize_t m8050_kp_enable_store(struct device *dev, struct device_attribute *attr,
++ const char *buf, size_t count)
++{
++ int state;
++
++ if (sscanf(buf, "%u", &state) != 1)
++ return -EINVAL;
++
++ if ((state != 1) && (state != 0))
++ return -EINVAL;
++
++ mutex_lock(&kp_enable_mutex);
++// this needs to be converted into a s3c24xx function
++ if (state != kp_enable) {
++// if (state)
++// enable_irq(INT_KEYBOARD);
++// else
++// disable_irq(INT_KEYBOARD);
++ kp_enable = state;
++ }
++ mutex_unlock(&kp_enable_mutex);
++
++ return strnlen(buf, count);
++}
++
++static DEVICE_ATTR(enable, S_IRUGO | S_IWUSR, m8050_kp_enable_show, m8050_kp_enable_store);
++
++#ifdef CONFIG_PM
++static int m8050_kp_suspend(struct platform_device *dev, pm_message_t state)
++{
++ printk("keyboard suspend called!!\n");
++// disable_irq(S3C2410_IRQ(36));
++// disable_irq(S3C2410_IRQ(37));
++// disable_irq(S3C2410_IRQ(38));
++// disable_irq(S3C2410_IRQ(39));
++ /* Nothing yet */
++ return_from_suspend=1;
++ s3c2410_gpio_cfgpin(S3C2440_GPJ8, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ9, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ10, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ11, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ12, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 0);
++
++
++ return 0;
++}
++
++static int m8050_kp_resume(struct platform_device *dev)
++{
++ printk("keyboard resume called!!\n");
++ /* Nothing yet */
++// enable_irq(S3C2410_IRQ(36));
++// enable_irq(S3C2410_IRQ(37));
++// enable_irq(S3C2410_IRQ(38));
++// enable_irq(S3C2410_IRQ(39));
++
++// s3c2410_gpio_cfgpin(S3C2440_GPJ8, S3C2410_GPIO_OUTPUT);
++// s3c2410_gpio_setpin(S3C2440_GPJ8, 0);
++// s3c2410_gpio_cfgpin(S3C2440_GPJ9, S3C2410_GPIO_OUTPUT);
++// s3c2410_gpio_setpin(S3C2440_GPJ9, 0);
++// s3c2410_gpio_cfgpin(S3C2440_GPJ10, S3C2410_GPIO_OUTPUT);
++// s3c2410_gpio_setpin(S3C2440_GPJ10, 0);
++// s3c2410_gpio_cfgpin(S3C2440_GPJ11, S3C2410_GPIO_OUTPUT);
++// s3c2410_gpio_setpin(S3C2440_GPJ11, 0);
++// s3c2410_gpio_cfgpin(S3C2440_GPJ12, S3C2410_GPIO_OUTPUT);
++// s3c2410_gpio_setpin(S3C2440_GPJ12, 0);
++
++ return 0;
++}
++#else
++#define m8050_kp_suspend NULL
++#define m8050_kp_resume NULL
++#endif
++
++static int __init m8050_kp_probe(struct platform_device *pdev)
++{
++ struct m8050_kp *m8050_kp;
++ struct input_dev *input_dev;
++ struct m8050_kp_platform_data *pdata = pdev->dev.platform_data;
++ int i, col_idx, row_idx, irq_idx, ret;
++
++ if (!pdata->rows || !pdata->cols || !pdata->keymap) {
++ printk(KERN_ERR "No rows, cols or keymap from pdata\n");
++ return -EINVAL;
++ }
++
++ m8050_kp = kzalloc(sizeof(struct m8050_kp), GFP_KERNEL);
++ input_dev = input_allocate_device();
++ if (!m8050_kp || !input_dev) {
++ kfree(m8050_kp);
++ input_free_device(input_dev);
++ return -ENOMEM;
++ }
++
++ platform_set_drvdata(pdev, m8050_kp);
++
++ m8050_kp->input = input_dev;
++
++ keymap = pdata->keymap;
++
++ if (pdata->rep)
++ __set_bit(EV_REP, input_dev->evbit);
++
++ if (pdata->delay)
++ m8050_kp->delay = pdata->delay;
++
++ if (pdata->row_gpios && pdata->col_gpios) {
++ row_gpios = pdata->row_gpios;
++ col_gpios = pdata->col_gpios;
++ }
++
++ m8050_kp->rows = pdata->rows;
++ m8050_kp->cols = pdata->cols;
++
++ /* Cols: outputs */
++ s3c2410_gpio_cfgpin(S3C2440_GPJ8, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ9, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ10, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ11, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ12, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 1);
++
++ /* Rows: inputs */
++ s3c2410_gpio_cfgpin(S3C2410_GPG0, S3C2410_GPIO_IRQ);
++ s3c2410_gpio_cfgpin(S3C2410_GPG1, S3C2410_GPIO_IRQ);
++ s3c2410_gpio_cfgpin(S3C2410_GPG2, S3C2410_GPIO_IRQ);
++ s3c2410_gpio_cfgpin(S3C2410_GPG3, S3C2410_GPIO_IRQ);
++
++
++ setup_timer(&m8050_kp->timer, m8050_kp_timer, (unsigned long)m8050_kp);
++
++ /* get the irq and init timer*/
++ tasklet_enable(&kp_tasklet);
++ kp_tasklet.data = (unsigned long) m8050_kp;
++
++ ret = device_create_file(&pdev->dev, &dev_attr_enable);
++ if (ret < 0)
++ goto err1;
++
++ /* setup input device */
++ __set_bit(EV_KEY, input_dev->evbit);
++ for (i = 0; keymap[i] != 0; i++)
++ __set_bit(keymap[i] & KEY_MAX, input_dev->keybit);
++ input_dev->name = "m8050-keypad";
++ input_dev->phys = "m8050-keypad/input0";
++ input_dev->dev.parent = &pdev->dev;
++
++ input_dev->id.bustype = BUS_HOST;
++ input_dev->id.vendor = 0x0001;
++ input_dev->id.product = 0x0001;
++ input_dev->id.version = 0x0100;
++
++ ret = input_register_device(m8050_kp->input);
++ if (ret < 0) {
++ printk(KERN_ERR "Unable to register m8050-keypad input device\n");
++ goto err2;
++ }
++
++ /* scan current status and enable interrupt */
++ m8050_kp_scan_keypad(m8050_kp, keypad_state);
++ for (irq_idx = 0; irq_idx < m8050_kp->rows; irq_idx++) {
++ if (request_irq(S3C2410_IRQ(36+irq_idx),
++ m8050_kp_interrupt,
++ IRQF_TRIGGER_FALLING,
++ "m8050-keypad", m8050_kp) < 0)
++ goto err3;
++ }
++ return 0;
++err3:
++ for (i = irq_idx - 1; i >=0; i--)
++ free_irq(S3C2410_IRQ(36+irq_idx), 0);
++ input_unregister_device(m8050_kp->input);
++ input_dev = NULL;
++err2:
++ device_remove_file(&pdev->dev, &dev_attr_enable);
++err1:
++ kfree(m8050_kp);
++ input_free_device(input_dev);
++
++ return -EINVAL;
++}
++
++static int m8050_kp_remove(struct platform_device *pdev)
++{
++ struct m8050_kp *m8050_kp = platform_get_drvdata(pdev);
++ int i;
++
++ /* disable keypad interrupt handling */
++ tasklet_disable(&kp_tasklet);
++ for (i = 0; i < m8050_kp->cols; i++)
++// m8050_free_gpio(col_gpios[i]);
++ for (i = 0; i < m8050_kp->rows; i++) {
++// m8050_free_gpio(row_gpios[i]);
++// free_irq(m8050_GPIO_IRQ(row_gpios[i]), 0);
++ }
++
++ del_timer_sync(&m8050_kp->timer);
++ tasklet_kill(&kp_tasklet);
++
++ /* unregister everything */
++ input_unregister_device(m8050_kp->input);
++
++ kfree(m8050_kp);
++
++ return 0;
++}
++
++static struct platform_driver m8050_kp_driver = {
++ .probe = m8050_kp_probe,
++ .remove = m8050_kp_remove,
++ .suspend = m8050_kp_suspend,
++ .resume = m8050_kp_resume,
++ .driver = {
++ .name = "m8050-keypad",
++ },
++};
++
++static int __devinit m8050_kp_init(void)
++{
++ printk(KERN_INFO "M8050 Keypad Driver\n");
++ return platform_driver_register(&m8050_kp_driver);
++}
++
++static void __exit m8050_kp_exit(void)
++{
++ platform_driver_unregister(&m8050_kp_driver);
++}
++
++module_init(m8050_kp_init);
++module_exit(m8050_kp_exit);
++
++MODULE_AUTHOR("David Anders");
++MODULE_DESCRIPTION("M8050 Keypad Driver");
++MODULE_LICENSE("GPL");
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/keyboard/m8050-keypad.x.c linux-2.6.25-m8050/drivers/input/keyboard/m8050-keypad.x.c
+--- linux-git/drivers/input/keyboard/m8050-keypad.x.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/keyboard/m8050-keypad.x.c 2008-10-02 18:35:31.000000000 +0200
+@@ -0,0 +1,532 @@
++/*
++ * linux/drivers/input/keyboard/m8050-keypad.c
++ *
++ * M8050 Keypad Driver
++ *
++ * Copyright (C) 2008 American Microsystems Ltd.
++ * M8050 support by David Anders <danders@amtld.com>
++ *
++ * Based on the OMAP Keypad Driver
++ *
++ * Copyright (C) 2003 Nokia Corporation
++ * Written by Timo Teräs <ext-timo.teras@nokia.com>
++ *
++ *
++ * 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
++ *
++ *
++ *
++ *
++ * NOTE: in order to use the power button properly, the following need to be
++ * enabled: CONFIG_APM_EMULATION and CONFIG_INPUT_APMPOWER
++ */
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/types.h>
++#include <linux/input.h>
++#include <linux/kernel.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/mutex.h>
++#include <linux/errno.h>
++#include <linux/pm.h>
++#include <linux/suspend.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/keypad.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/mach-types.h>
++
++#undef NEW_BOARD_LEARNING_MODE
++
++//#define NEW_BOARD_LEARNING_MODE 1
++
++static void m8050_kp_tasklet(unsigned long);
++static void m8050_kp_timer(unsigned long);
++
++static unsigned char keypad_state[8];
++static int kp_cur_group = -1;
++static int alphaset=0;
++static int lastalpha=0;
++static int lastcol=-1;
++static int lastrow=-1;
++
++struct m8050_kp {
++ struct input_dev *input;
++ spinlock_t lock;
++ struct timer_list timer;
++ int irq;
++ unsigned int rows;
++ unsigned int cols;
++ unsigned long delay;
++ unsigned int debounce;
++ unsigned int suspended;
++ unsigned long suspend_jiffies;
++};
++
++DECLARE_TASKLET_DISABLED(kp_tasklet, m8050_kp_tasklet, 0);
++
++static int *keymap;
++static int *keymap_a;
++static int *keymap_b;
++static unsigned int *row_gpios;
++static unsigned int *col_gpios;
++
++static void alpha_timerfunc(unsigned long data);
++static DEFINE_TIMER(alpha_timeout, alpha_timerfunc, 0, 0);
++
++static int alphatimeout=0;
++
++static void alpha_timerfunc(unsigned long data)
++{
++printk("alphatimeout called!!\n");
++alphatimeout=1;
++//alphaset=0;
++
++}
++static void set_col_gpio_val(struct m8050_kp *m8050_kp, u8 value)
++{
++
++ if (value & (1 << 0))
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 0);
++
++ if (value & (1 << 1))
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 0);
++
++ if (value & (1 << 2))
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 0);
++
++ if (value & (1 << 3))
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 0);
++
++ if (value & (1 << 4))
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 1);
++ else
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 0);
++
++}
++
++static u8 get_row_gpio_val(struct m8050_kp *m8050_kp)
++{
++ u8 value = 0;
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG0))
++ value |= (1 << 0);
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG1))
++ value |= (1 << 1);
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG2))
++ value |= (1 << 2);
++
++ if (s3c2410_gpio_getpin(S3C2410_GPG3))
++ value |= (1 << 3);
++
++ return value;
++
++}
++
++static irqreturn_t m8050_kp_interrupt(int irq, void *dev_id)
++{
++ struct m8050_kp *m8050_kp = dev_id;
++ int i;
++
++
++ /* disable keyboard interrupt and schedule for handling */
++ for (i = 0; i < m8050_kp->rows; i++)
++ disable_irq(S3C2410_IRQ(36+i));
++
++ tasklet_schedule(&kp_tasklet);
++
++ return IRQ_HANDLED;
++}
++
++static void m8050_kp_timer(unsigned long data)
++{
++ tasklet_schedule(&kp_tasklet);
++}
++
++static void m8050_kp_scan_keypad(struct m8050_kp *m8050_kp, unsigned char *state)
++{
++ int col = 0;
++
++ /* read the keypad status */
++ for (col = 0; col < m8050_kp->cols; col++) {
++ set_col_gpio_val(m8050_kp, ~(1 << col));
++ state[col] = ~(get_row_gpio_val(m8050_kp)) & 0x0f;
++ }
++ set_col_gpio_val(m8050_kp, 0);
++
++
++}
++
++static inline int m8050_kp_find_key(int col, int row)
++{
++ int i, key;
++
++ key = KEY(col, row, 0);
++ if ( alphaset==1 ) {
++ lastrow=row;
++ lastcol=col;
++ for (i = 0; keymap_a[i] != 0; i++)
++ if ((keymap_a[i] & 0xff000000) == key)
++ return keymap_a[i] & 0x00ffffff;
++ }
++ else if ( alphaset==2 ) {
++ if ( (lastrow==row) && (lastcol==col)) {
++ if (alphatimeout==0) {
++ for (i = 0; keymap_b[i] != 0; i++)
++ if ((keymap_b[i] & 0xff000000) == key)
++ return keymap_b[i] & 0x00ffffff;
++ }
++ else {
++ if (timer_pending(&alpha_timeout))
++ del_timer(&alpha_timeout);
++ alphaset=0;
++ for (i = 0; keymap[i] != 0; i++)
++ if ((keymap[i] & 0xff000000) == key)
++ return keymap[i] & 0x00ffffff;
++ }
++ }
++ else {
++ if (timer_pending(&alpha_timeout))
++ del_timer(&alpha_timeout);
++ alphaset=0;
++ for (i = 0; keymap[i] != 0; i++)
++ if ((keymap[i] & 0xff000000) == key)
++ return keymap[i] & 0x00ffffff;
++ }
++ }
++ else {
++ for (i = 0; keymap[i] != 0; i++)
++ if ((keymap[i] & 0xff000000) == key)
++ return keymap[i] & 0x00ffffff;
++ }
++
++ return -1;
++}
++
++static void m8050_kp_tasklet(unsigned long data)
++{
++ struct m8050_kp *m8050_kp_data = (struct m8050_kp *) data;
++ unsigned char new_state[8], changed, key_down = 0;
++ int col, row;
++ int spurious = 0;
++ int suspend_requested=0;
++
++ if (m8050_kp_data->suspended) {
++ return;
++ }
++ /* check for any changes */
++ m8050_kp_scan_keypad(m8050_kp_data, new_state);
++
++ /* check for changes and print those */
++ for (col = 0; col < m8050_kp_data->cols; col++) {
++ changed = new_state[col] ^ keypad_state[col];
++ key_down |= new_state[col];
++ if (changed == 0)
++ continue;
++
++ for (row = 0; row < m8050_kp_data->rows; row++) {
++ int key;
++ if (!(changed & (1 << row)))
++ continue;
++#ifdef NEW_BOARD_LEARNING_MODE
++ printk(KERN_INFO "m8050-keypad: key %d-%d %s\n", col,
++ row, (new_state[col] & (1 << row)) ?
++ "pressed" : "released");
++#else
++ key = m8050_kp_find_key(col, row);
++ if (key < 0) {
++ printk(KERN_WARNING
++ "m8050-keypad: Spurious key event %d-%d\n",
++ col, row);
++ /* We scan again after a couple of seconds */
++ spurious = 1;
++ continue;
++ }
++
++ if (!(kp_cur_group == (key & GROUP_MASK) ||
++ kp_cur_group == -1))
++ continue;
++
++ kp_cur_group = key & GROUP_MASK;
++ if (key_down && (key == KEY_SUSPEND)
++ && time_after(jiffies, m8050_kp_data->suspend_jiffies + HZ)) {
++
++ suspend_requested=1;
++ m8050_kp_data->suspended=1;
++ }
++ else {
++ if (key != KEY_SUSPEND){
++ if ( key == KEY_LEFTALT ) {
++ alphaset=1;
++ }
++ else {
++ if ( (alphaset==2) && (new_state[col] & (1 << row))==0){
++ alphaset=0;
++ if (timer_pending(&alpha_timeout))
++ del_timer(&alpha_timeout);
++ alphatimeout=0;
++ }
++ if ( (alphaset==1) && (new_state[col] & (1 << row))==0){
++ mod_timer(&alpha_timeout, jiffies + (HZ));
++ alphaset=2;
++ }
++ if ( (alphaset > 1) && (new_state[col] & (1 << row))!=0) {
++ input_report_key(m8050_kp_data->input, KEY_BACKSPACE,1);
++ input_report_key(m8050_kp_data->input, KEY_BACKSPACE,0);
++ }
++ input_report_key(m8050_kp_data->input, key & ~GROUP_MASK,
++ new_state[col] & (1 << row));
++ }
++ }
++ }
++#endif
++ }
++ }
++ memcpy(keypad_state, new_state, sizeof(keypad_state));
++
++ input_sync(m8050_kp_data->input);
++
++ if (key_down && (suspend_requested==0)) {
++ int delay = HZ / 20;
++ /* some key is pressed - keep irq disabled and use timer
++ * to poll the keypad */
++ if (spurious)
++ delay = 2 * HZ;
++ mod_timer(&m8050_kp_data->timer, jiffies + delay);
++ } else {
++ /* enable interrupts */
++ int i;
++ for (i = 0; i < m8050_kp_data->rows; i++)
++ enable_irq(S3C2410_IRQ(36+i));
++ }
++
++ if (suspend_requested){
++
++ input_event(m8050_kp_data->input, EV_PWR, KEY_SUSPEND, 1);
++ m8050_kp_data->suspend_jiffies=jiffies;
++ }
++}
++#ifdef CONFIG_PM
++static int m8050_kp_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct m8050_kp *m8050_kp_data = platform_get_drvdata(dev);
++
++ del_timer_sync(&m8050_kp_data->timer);
++
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 1);
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 1);
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 1);
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 1);
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 0);
++
++ return 0;
++}
++
++static int m8050_kp_resume(struct platform_device *dev)
++{
++ struct m8050_kp *m8050_kp_data = platform_get_drvdata(dev);
++
++ /* Upon resume, ignore the suspend key for a short while */
++ m8050_kp_data->suspend_jiffies=jiffies;
++ m8050_kp_data->suspended = 0;
++ mod_timer(&m8050_kp_data->timer, jiffies + 50);
++
++ return 0;
++}
++#else
++#define m8050_kp_suspend NULL
++#define m8050_kp_resume NULL
++#endif
++
++static int __init m8050_kp_probe(struct platform_device *pdev)
++{
++ struct m8050_kp *m8050_kp;
++ struct input_dev *input_dev;
++ struct m8050_kp_platform_data *pdata = pdev->dev.platform_data;
++ int i, irq_idx, ret;
++
++ if (!pdata->rows || !pdata->cols || !pdata->keymap || !pdata->keymap_a || !pdata->keymap_b) {
++ printk(KERN_ERR "No rows, cols or keymap from pdata\n");
++ return -EINVAL;
++ }
++
++ m8050_kp = kzalloc(sizeof(struct m8050_kp), GFP_KERNEL);
++ input_dev = input_allocate_device();
++ if (!m8050_kp || !input_dev) {
++ kfree(m8050_kp);
++ input_free_device(input_dev);
++ return -ENOMEM;
++ }
++
++ platform_set_drvdata(pdev, m8050_kp);
++
++ m8050_kp->input = input_dev;
++
++ keymap = pdata->keymap;
++ keymap_a = pdata->keymap_a;
++ keymap_b = pdata->keymap_b;
++
++ if (pdata->rep)
++ __set_bit(EV_REP, input_dev->evbit);
++
++ if (pdata->delay)
++ m8050_kp->delay = pdata->delay;
++
++ if (pdata->row_gpios && pdata->col_gpios) {
++ row_gpios = pdata->row_gpios;
++ col_gpios = pdata->col_gpios;
++ }
++
++ m8050_kp->rows = pdata->rows;
++ m8050_kp->cols = pdata->cols;
++
++ /* Cols: outputs */
++ s3c2410_gpio_cfgpin(S3C2440_GPJ8, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ8, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ9, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ9, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ10, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ10, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ11, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ11, 1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ12, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ12, 1);
++
++ /* Rows: inputs */
++ s3c2410_gpio_cfgpin(S3C2410_GPG0, S3C2410_GPIO_IRQ);
++ s3c2410_gpio_cfgpin(S3C2410_GPG1, S3C2410_GPIO_IRQ);
++ s3c2410_gpio_cfgpin(S3C2410_GPG2, S3C2410_GPIO_IRQ);
++ s3c2410_gpio_cfgpin(S3C2410_GPG3, S3C2410_GPIO_IRQ);
++
++
++ setup_timer(&m8050_kp->timer, m8050_kp_timer, (unsigned long)m8050_kp);
++
++ /* get the irq and init timer*/
++ tasklet_enable(&kp_tasklet);
++ kp_tasklet.data = (unsigned long) m8050_kp;
++
++ /* setup input device */
++ __set_bit(EV_KEY, input_dev->evbit);
++ __set_bit(EV_PWR, input_dev->evbit);
++ for (i = 0; keymap[i] != 0; i++)
++ __set_bit(keymap[i] & KEY_MAX, input_dev->keybit);
++
++ for (i = 0; keymap_a[i] != 0; i++)
++ __set_bit(keymap_a[i] & KEY_MAX, input_dev->keybit);
++
++ for (i = 0; keymap_b[i] != 0; i++)
++ __set_bit(keymap_b[i] & KEY_MAX, input_dev->keybit);
++
++ input_dev->name = "m8050-keypad";
++ input_dev->phys = "m8050-keypad/input0";
++ input_dev->dev.parent = &pdev->dev;
++
++ input_dev->id.bustype = BUS_HOST;
++ input_dev->id.vendor = 0x0001;
++ input_dev->id.product = 0x0001;
++ input_dev->id.version = 0x0100;
++
++ ret = input_register_device(m8050_kp->input);
++ if (ret < 0) {
++ printk(KERN_ERR "Unable to register m8050-keypad input device\n");
++ goto err2;
++ }
++
++ /* scan current status and enable interrupt */
++ m8050_kp_scan_keypad(m8050_kp, keypad_state);
++ for (irq_idx = 0; irq_idx < m8050_kp->rows; irq_idx++) {
++ if (request_irq(S3C2410_IRQ(36+irq_idx),
++ m8050_kp_interrupt,
++ IRQF_TRIGGER_FALLING,
++ "m8050-keypad", m8050_kp) < 0)
++ goto err3;
++ }
++
++ m8050_kp->suspend_jiffies=jiffies;
++
++ return 0;
++err3:
++ for (i = irq_idx - 1; i >=0; i--)
++ free_irq(S3C2410_IRQ(36+irq_idx), 0);
++ input_unregister_device(m8050_kp->input);
++ input_dev = NULL;
++err2:
++ kfree(m8050_kp);
++ input_free_device(input_dev);
++
++ return -EINVAL;
++}
++
++static int m8050_kp_remove(struct platform_device *pdev)
++{
++ struct m8050_kp *m8050_kp = platform_get_drvdata(pdev);
++
++ /* disable keypad interrupt handling */
++ tasklet_disable(&kp_tasklet);
++
++ del_timer_sync(&m8050_kp->timer);
++ tasklet_kill(&kp_tasklet);
++
++ /* unregister everything */
++ input_unregister_device(m8050_kp->input);
++
++ kfree(m8050_kp);
++
++ return 0;
++}
++
++static struct platform_driver m8050_kp_driver = {
++ .probe = m8050_kp_probe,
++ .remove = m8050_kp_remove,
++ .suspend = m8050_kp_suspend,
++ .resume = m8050_kp_resume,
++ .driver = {
++ .name = "m8050-keypad",
++ },
++};
++
++static int __devinit m8050_kp_init(void)
++{
++ printk(KERN_INFO "M8050 Keypad Driver\n");
++ return platform_driver_register(&m8050_kp_driver);
++}
++
++static void __exit m8050_kp_exit(void)
++{
++ platform_driver_unregister(&m8050_kp_driver);
++}
++
++module_init(m8050_kp_init);
++module_exit(m8050_kp_exit);
++
++MODULE_AUTHOR("David Anders");
++MODULE_DESCRIPTION("M8050 Keypad Driver");
++MODULE_LICENSE("GPL");
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/keyboard/Makefile linux-2.6.25-m8050/drivers/input/keyboard/Makefile
+--- linux-git/drivers/input/keyboard/Makefile 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/keyboard/Makefile 2008-05-22 08:51:44.000000000 +0200
+@@ -11,6 +11,7 @@
+ obj-$(CONFIG_KEYBOARD_AMIGA) += amikbd.o
+ obj-$(CONFIG_KEYBOARD_ATARI) += atakbd.o
+ obj-$(CONFIG_KEYBOARD_LOCOMO) += locomokbd.o
++obj-$(CONFIG_KEYBOARD_M8050) += m8050-keypad.o
+ obj-$(CONFIG_KEYBOARD_NEWTON) += newtonkbd.o
+ obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o
+ obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/Makefile linux-2.6.25-m8050/drivers/input/Makefile
+--- linux-git/drivers/input/Makefile 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/Makefile 2008-10-01 15:26:09.000000000 +0200
+@@ -23,3 +23,4 @@
+ obj-$(CONFIG_INPUT_MISC) += misc/
+
+ obj-$(CONFIG_INPUT_APMPOWER) += apm-power.o
++obj-$(CONFIG_INPUT_GENERICLEDS) += generic-leds.o
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/misc/Kconfig linux-2.6.25-m8050/drivers/input/misc/Kconfig
+--- linux-git/drivers/input/misc/Kconfig 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/misc/Kconfig 2008-10-01 11:25:17.000000000 +0200
+@@ -197,4 +197,10 @@
+ Say Y here if you want to support the built-in real time clock
+ of the HP SDC controller.
+
++config INPUT_M8050BC
++ tristate "M8050 Barcode Scanner"
++ depends on MACH_AML_M8050
++ help
++ Say Y here if you want the M8050 Barcode Scanner interface.
++
+ endif
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/misc/m8050-barcode.c linux-2.6.25-m8050/drivers/input/misc/m8050-barcode.c
+--- linux-git/drivers/input/misc/m8050-barcode.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/misc/m8050-barcode.c 2008-10-01 14:28:27.000000000 +0200
+@@ -0,0 +1,149 @@
++/*
++ * m68k beeper driver for Linux
++ *
++ * Copyright (c) 2002 Richard Zidlicky
++ * Copyright (c) 2002 Vojtech Pavlik
++ * Copyright (c) 1992 Orest Zborowski
++ *
++ */
++
++/*
++ * 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
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/input.h>
++#include <linux/platform_device.h>
++#include <linux/leds.h>
++
++MODULE_AUTHOR("Richard Zidlicky <rz@linux-m68k.org>");
++MODULE_DESCRIPTION("m68k beeper driver");
++MODULE_LICENSE("GPL");
++
++static struct platform_device *barcode_platform_device;
++
++static int barcode_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)
++{
++
++ if (type != EV_LED){
++ printk("NOT a EV_LED Event from barcode!\n");
++ return -1;
++
++ }
++
++ printk("EV_LED Event from barcode!\n");
++
++ if (value)
++ ledtrig_ev_led_activity();
++
++// switch (code) {
++// case SND_BELL: if (value) value = 1000;
++// case SND_TONE: break;
++// default: return -1;
++// }
++
++ return 0;
++}
++
++static int __devinit barcode_probe(struct platform_device *dev)
++{
++ struct input_dev *input_dev;
++ int err;
++
++ input_dev = input_allocate_device();
++ if (!input_dev)
++ return -ENOMEM;
++
++ printk("m8050 barcode probe!\n");
++ input_dev->name = "M8050 Barcode";
++ input_dev->phys = "m8050/generic";
++ input_dev->id.bustype = BUS_HOST;
++ input_dev->id.vendor = 0x001f;
++ input_dev->id.product = 0x0001;
++ input_dev->id.version = 0x0100;
++ input_dev->dev.parent = &dev->dev;
++
++// input_dev->evbit[0] = BIT_MASK(EV_LED);
++// input_dev->ledbit[0] = BIT_MASK(LED_MISC);
++
++ set_bit (EV_LED, input_dev->evbit);
++ set_bit (LED_MISC, input_dev->ledbit);
++
++ input_dev->event = barcode_event;
++
++ err = input_register_device(input_dev);
++ if (err) {
++ input_free_device(input_dev);
++ return err;
++ }
++
++ platform_set_drvdata(dev, input_dev);
++
++ return 0;
++}
++
++static int __devexit barcode_remove(struct platform_device *dev)
++{
++ struct input_dev *input_dev = platform_get_drvdata(dev);
++
++ input_unregister_device(input_dev);
++ platform_set_drvdata(dev, NULL);
++
++ return 0;
++}
++
++static void barcode_shutdown(struct platform_device *dev)
++{
++
++}
++
++static struct platform_driver barcode_platform_driver = {
++ .driver = {
++ .name = "m8050bc",
++ .owner = THIS_MODULE,
++ },
++ .probe = barcode_probe,
++ .remove = __devexit_p(barcode_remove),
++ .shutdown = barcode_shutdown,
++};
++
++static int __init barcode_init(void)
++{
++ int err;
++
++ err = platform_driver_register(&barcode_platform_driver);
++ if (err)
++ return err;
++
++ barcode_platform_device = platform_device_alloc("m8050bc", -1);
++ if (!barcode_platform_device) {
++ err = -ENOMEM;
++ goto err_unregister_driver;
++ }
++
++ err = platform_device_add(barcode_platform_device);
++ if (err)
++ goto err_free_device;
++
++ return 0;
++
++ err_free_device:
++ platform_device_put(barcode_platform_device);
++ err_unregister_driver:
++ platform_driver_unregister(&barcode_platform_driver);
++
++ return err;
++}
++
++static void __exit barcode_exit(void)
++{
++ platform_device_unregister(barcode_platform_device);
++ platform_driver_unregister(&barcode_platform_driver);
++}
++
++module_init(barcode_init);
++module_exit(barcode_exit);
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/misc/Makefile linux-2.6.25-m8050/drivers/input/misc/Makefile
+--- linux-git/drivers/input/misc/Makefile 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/misc/Makefile 2008-10-01 11:25:47.000000000 +0200
+@@ -19,3 +19,4 @@
+ obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o
+ obj-$(CONFIG_INPUT_UINPUT) += uinput.o
+ obj-$(CONFIG_INPUT_APANEL) += apanel.o
++obj-$(CONFIG_INPUT_M8050BC) += m8050-barcode.o
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/mouse/gpio_mouse.c linux-2.6.25-m8050/drivers/input/mouse/gpio_mouse.c
+--- linux-git/drivers/input/mouse/gpio_mouse.c 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/mouse/gpio_mouse.c 2008-10-03 15:43:59.000000000 +0200
+@@ -8,6 +8,8 @@
+ * published by the Free Software Foundation.
+ */
+
++#include <linux/kernel.h>
++#include <linux/errno.h>
+ #include <linux/init.h>
+ #include <linux/version.h>
+ #include <linux/module.h>
+@@ -17,6 +19,9 @@
+
+ #include <asm/gpio.h>
+
++int last_x=0;
++int last_y=0;
++int last_bleft;
+ /*
+ * Timer function which is run every scan_ms ms when the device is opened.
+ * The dev input varaible is set to the the input_dev pointer.
+@@ -25,11 +30,15 @@
+ {
+ struct gpio_mouse_platform_data *gpio = dev->private;
+ struct input_dev *input = dev->input;
+- int x, y;
+-
+- if (gpio->bleft >= 0)
+- input_report_key(input, BTN_LEFT,
+- gpio_get_value(gpio->bleft) ^ gpio->polarity);
++ int x, y,bleft,do_sync=0;
++ if (gpio->bleft >= 0) {
++ bleft=((gpio_get_value(gpio->bleft) ? 1 : 0) ^ gpio->polarity);
++ if ( bleft != last_bleft ) {
++ input_report_key(input, BTN_LEFT,bleft);
++ do_sync=1;
++ last_bleft=bleft;
++ }
++ }
+ if (gpio->bmiddle >= 0)
+ input_report_key(input, BTN_MIDDLE,
+ gpio_get_value(gpio->bmiddle) ^ gpio->polarity);
+@@ -37,14 +46,25 @@
+ input_report_key(input, BTN_RIGHT,
+ gpio_get_value(gpio->bright) ^ gpio->polarity);
+
+- x = (gpio_get_value(gpio->right) ^ gpio->polarity)
+- - (gpio_get_value(gpio->left) ^ gpio->polarity);
+- y = (gpio_get_value(gpio->down) ^ gpio->polarity)
+- - (gpio_get_value(gpio->up) ^ gpio->polarity);
+-
+- input_report_rel(input, REL_X, x);
+- input_report_rel(input, REL_Y, y);
+- input_sync(input);
++ x = ((gpio_get_value(gpio->right) ? 1 : 0) ^ gpio->polarity)
++ - ((gpio_get_value(gpio->left) ? 1 : 0) ^ gpio->polarity);
++ y = ((gpio_get_value(gpio->down) ? 1 : 0) ^ gpio->polarity)
++ - ((gpio_get_value(gpio->up) ? 1 : 0) ^ gpio->polarity);
++
++ if ( (x!=0) || (y!=0) ) {
++ if( last_x==0 ){
++ input_report_rel(input, REL_X, (x*5));
++ do_sync=1;
++ }
++ if( last_y==0 ) {
++ input_report_rel(input, REL_Y, (y*5));
++ do_sync=1;
++ }
++ }
++ if (do_sync)
++ input_sync(input);
++ last_x=x;
++ last_y=y;
+ }
+
+ static int __init gpio_mouse_probe(struct platform_device *pdev)
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/touchscreen/Kconfig linux-2.6.25-m8050/drivers/input/touchscreen/Kconfig
+--- linux-git/drivers/input/touchscreen/Kconfig 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/touchscreen/Kconfig 2008-05-29 07:57:07.000000000 +0200
+@@ -67,6 +67,24 @@
+ To compile this driver as a module, choose M here: the
+ module will be called fujitsu-ts.
+
++config TOUCHSCREEN_S3C2410
++ tristate "Samsung S3C2410 touchscreen input driver"
++ depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN
++ select SERIO
++ help
++ Say Y here if you have the s3c2410 touchscreen.
++
++ If unsure, say N.
++
++ To compile this driver as a module, choose M here: the
++ module will be called s3c2410_ts.
++
++config TOUCHSCREEN_S3C2410_DEBUG
++ boolean "Samsung S3C2410 touchscreen debug messages"
++ depends on TOUCHSCREEN_S3C2410
++ help
++ Select this if you want debug messages
++
+ config TOUCHSCREEN_GUNZE
+ tristate "Gunze AHL-51S touchscreen"
+ select SERIO
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/touchscreen/Makefile linux-2.6.25-m8050/drivers/input/touchscreen/Makefile
+--- linux-git/drivers/input/touchscreen/Makefile 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/touchscreen/Makefile 2008-05-29 07:57:07.000000000 +0200
+@@ -7,6 +7,7 @@
+ obj-$(CONFIG_TOUCHSCREEN_ADS7846) += ads7846.o
+ obj-$(CONFIG_TOUCHSCREEN_BITSY) += h3600_ts_input.o
+ obj-$(CONFIG_TOUCHSCREEN_CORGI) += corgi_ts.o
++obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
+ obj-$(CONFIG_TOUCHSCREEN_GUNZE) += gunze.o
+ obj-$(CONFIG_TOUCHSCREEN_ELO) += elo.o
+ obj-$(CONFIG_TOUCHSCREEN_FUJITSU) += fujitsu_ts.o
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/input/touchscreen/s3c2410_ts.c linux-2.6.25-m8050/drivers/input/touchscreen/s3c2410_ts.c
+--- linux-git/drivers/input/touchscreen/s3c2410_ts.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/input/touchscreen/s3c2410_ts.c 2008-06-26 12:49:20.000000000 +0200
+@@ -0,0 +1,432 @@
++/*
++ * 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
++ *
++ * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
++ * iPAQ H1940 touchscreen support
++ *
++ * ChangeLog
++ *
++ * 2004-09-05: Herbert Pötzl <herbert@13thfloor.at>
++ * - added clock (de-)allocation code
++ *
++ * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - h1940_ -> s3c2410 (this driver is now also used on the n30
++ * machines :P)
++ * - Debug messages are now enabled with the config option
++ * TOUCHSCREEN_S3C2410_DEBUG
++ * - Changed the way the value are read
++ * - Input subsystem should now work
++ * - Use ioremap and readl/writel
++ *
++ * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - Make use of some undocumented features of the touchscreen
++ * controller
++ *
++ * 2007-05-23: Harald Welte <laforge@openmoko.org>
++ * - Add proper support for S32440
++ */
++
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/slab.h>
++#include <linux/input.h>
++#include <linux/init.h>
++#include <linux/serio.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++
++#include <asm/plat-s3c/regs-adc.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/ts.h>
++
++#define SWAP_AXIS
++
++/* For ts.dev.id.version */
++#define S3C2410TSVERSION 0x0101
++
++#define TSC_SLEEP (S3C2410_ADCTSC_PULL_UP_DISABLE | S3C2410_ADCTSC_XY_PST(0))
++
++#define WAIT4INT(x) (((x)<<8) | \
++ S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
++ S3C2410_ADCTSC_XY_PST(3))
++
++#define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
++ S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0))
++
++#define DEBUG_LVL KERN_DEBUG
++
++MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>");
++MODULE_DESCRIPTION("s3c2410 touchscreen driver");
++MODULE_LICENSE("GPL");
++
++/*
++ * Definitions & global arrays.
++ */
++
++
++static char *s3c2410ts_name = "s3c2410 TouchScreen";
++
++/*
++ * Per-touchscreen data.
++ */
++
++struct s3c2410ts {
++ struct input_dev *dev;
++ long xp;
++ long yp;
++ int count;
++ int shift;
++};
++
++static struct s3c2410ts ts;
++static void __iomem *base_addr;
++
++static inline void s3c2410_ts_connect(void)
++{
++ s3c2410_gpio_cfgpin(S3C2410_GPG12, S3C2410_GPG12_XMON);
++ s3c2410_gpio_cfgpin(S3C2410_GPG13, S3C2410_GPG13_nXPON);
++ s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_YMON);
++ s3c2410_gpio_cfgpin(S3C2410_GPG15, S3C2410_GPG15_nYPON);
++}
++
++static void touch_timer_fire(unsigned long data)
++{
++ unsigned long data0;
++ unsigned long data1;
++ int updown;
++
++ data0 = readl(base_addr+S3C2410_ADCDAT0);
++ data1 = readl(base_addr+S3C2410_ADCDAT1);
++
++ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
++
++ if (updown) {
++ if (ts.count != 0) {
++ ts.xp >>= ts.shift;
++ ts.yp >>= ts.shift;
++
++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
++ {
++ struct timeval tv;
++ do_gettimeofday(&tv);
++ printk(DEBUG_LVL "T: %06d, X: %03ld, Y: %03ld\n", (int)tv.tv_usec, ts.xp, ts.yp);
++ }
++#endif
++
++#ifdef SWAP_AXIS
++ input_report_abs(ts.dev, ABS_X, ts.yp);
++ input_report_abs(ts.dev, ABS_Y, ts.xp);
++#else
++ input_report_abs(ts.dev, ABS_X, ts.xp);
++ input_report_abs(ts.dev, ABS_Y, ts.yp);
++#endif
++ input_report_key(ts.dev, BTN_TOUCH, 1);
++ input_report_abs(ts.dev, ABS_PRESSURE, 1);
++ input_sync(ts.dev);
++ }
++
++ ts.xp = 0;
++ ts.yp = 0;
++ ts.count = 0;
++
++ writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC);
++ writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON);
++ } else {
++ ts.count = 0;
++
++ input_report_key(ts.dev, BTN_TOUCH, 0);
++ input_report_abs(ts.dev, ABS_PRESSURE, 0);
++ input_sync(ts.dev);
++
++ writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
++ }
++}
++
++static struct timer_list touch_timer =
++ TIMER_INITIALIZER(touch_timer_fire, 0, 0);
++
++static irqreturn_t stylus_updown(int irq, void *dev_id)
++{
++ unsigned long data0;
++ unsigned long data1;
++ int updown;
++
++ data0 = readl(base_addr+S3C2410_ADCDAT0);
++ data1 = readl(base_addr+S3C2410_ADCDAT1);
++
++ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
++
++ /* TODO we should never get an interrupt with updown set while
++ * the timer is running, but maybe we ought to verify that the
++ * timer isn't running anyways. */
++
++ if (updown)
++ touch_timer_fire(0);
++
++ return IRQ_HANDLED;
++}
++
++
++static irqreturn_t stylus_action(int irq, void *dev_id)
++{
++ unsigned long data0;
++ unsigned long data1;
++
++ data0 = readl(base_addr+S3C2410_ADCDAT0);
++ data1 = readl(base_addr+S3C2410_ADCDAT1);
++
++ ts.xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;
++ ts.yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;
++ ts.count++;
++
++ if (ts.count < (1<<ts.shift)) {
++ writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC);
++ writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON);
++ } else {
++ mod_timer(&touch_timer, jiffies+1);
++ writel(WAIT4INT(1), base_addr+S3C2410_ADCTSC);
++ }
++
++ return IRQ_HANDLED;
++}
++
++static struct clk *adc_clock;
++
++/*
++ * The functions for inserting/removing us as a module.
++ */
++
++static int __init s3c2410ts_probe(struct platform_device *pdev)
++{
++ struct s3c2410_ts_mach_info *info;
++ struct input_dev *input_dev;
++
++ info = ( struct s3c2410_ts_mach_info *)pdev->dev.platform_data;
++
++ if (!info)
++ {
++ printk(KERN_ERR "Hm... too bad : no platform data for ts\n");
++ return -EINVAL;
++ }
++
++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
++ printk(DEBUG_LVL "Entering s3c2410ts_init\n");
++#endif
++
++ adc_clock = clk_get(NULL, "adc");
++ if (!adc_clock) {
++ printk(KERN_ERR "failed to get adc clock source\n");
++ return -ENOENT;
++ }
++ clk_enable(adc_clock);
++
++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
++ printk(DEBUG_LVL "got and enabled clock\n");
++#endif
++
++ base_addr=ioremap(S3C2410_PA_ADC,0x20);
++ if (base_addr == NULL) {
++ printk(KERN_ERR "Failed to remap register block\n");
++ return -ENOMEM;
++ }
++
++
++ /* If we acutally are a S3C2410: Configure GPIOs */
++ if (!strcmp(pdev->name, "s3c2410-ts"))
++ s3c2410_ts_connect();
++
++ if ((info->presc&0xff) > 0)
++ writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(info->presc&0xFF),\
++ base_addr+S3C2410_ADCCON);
++ else
++ writel(0,base_addr+S3C2410_ADCCON);
++
++
++ /* Initialise registers */
++ if ((info->delay&0xffff) > 0)
++ writel(info->delay & 0xffff, base_addr+S3C2410_ADCDLY);
++
++ writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
++
++ /* Initialise input stuff */
++ memset(&ts, 0, sizeof(struct s3c2410ts));
++ input_dev = input_allocate_device();
++
++ if (!input_dev) {
++ printk(KERN_ERR "Unable to allocate the input device !!\n");
++ return -ENOMEM;
++ }
++
++ ts.dev = input_dev;
++ ts.dev->evbit[0] = BIT(EV_SYN) | BIT(EV_KEY) | BIT(EV_ABS);
++ ts.dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
++ input_set_abs_params(ts.dev, ABS_X, 0, 0x3FF, 0, 0);
++ input_set_abs_params(ts.dev, ABS_Y, 0, 0x3FF, 0, 0);
++ input_set_abs_params(ts.dev, ABS_PRESSURE, 0, 1, 0, 0);
++
++ ts.dev->private = &ts;
++ ts.dev->name = s3c2410ts_name;
++ ts.dev->id.bustype = BUS_RS232;
++ ts.dev->id.vendor = 0xDEAD;
++ ts.dev->id.product = 0xBEEF;
++ ts.dev->id.version = S3C2410TSVERSION;
++
++ ts.shift = info->oversampling_shift;
++
++ /* Get irqs */
++ if (request_irq(IRQ_ADC, stylus_action, IRQF_SAMPLE_RANDOM,
++ "s3c2410_action", ts.dev)) {
++ printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_ADC !\n");
++ iounmap(base_addr);
++ return -EIO;
++ }
++ if (request_irq(IRQ_TC, stylus_updown, IRQF_SAMPLE_RANDOM,
++ "s3c2410_action", ts.dev)) {
++ printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_TC !\n");
++ iounmap(base_addr);
++ return -EIO;
++ }
++
++ printk(KERN_INFO "%s successfully loaded\n", s3c2410ts_name);
++
++ /* All went ok, so register to the input system */
++ input_register_device(ts.dev);
++
++ return 0;
++}
++
++static int s3c2410ts_remove(struct platform_device *pdev)
++{
++ disable_irq(IRQ_ADC);
++ disable_irq(IRQ_TC);
++ free_irq(IRQ_TC,ts.dev);
++ free_irq(IRQ_ADC,ts.dev);
++
++ if (adc_clock) {
++ clk_disable(adc_clock);
++ clk_put(adc_clock);
++ adc_clock = NULL;
++ }
++
++ input_unregister_device(ts.dev);
++ iounmap(base_addr);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c2410ts_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ writel(TSC_SLEEP, base_addr+S3C2410_ADCTSC);
++ writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_STDBM,
++ base_addr+S3C2410_ADCCON);
++
++ disable_irq(IRQ_ADC);
++ disable_irq(IRQ_TC);
++
++ clk_disable(adc_clock);
++
++ return 0;
++}
++
++static int s3c2410ts_resume(struct platform_device *pdev)
++{
++ struct s3c2410_ts_mach_info *info =
++ ( struct s3c2410_ts_mach_info *)pdev->dev.platform_data;
++
++ clk_enable(adc_clock);
++ msleep(1);
++
++ enable_irq(IRQ_ADC);
++ enable_irq(IRQ_TC);
++
++ if ((info->presc&0xff) > 0)
++ writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(info->presc&0xFF),\
++ base_addr+S3C2410_ADCCON);
++ else
++ writel(0,base_addr+S3C2410_ADCCON);
++
++ /* Initialise registers */
++ if ((info->delay&0xffff) > 0)
++ writel(info->delay & 0xffff, base_addr+S3C2410_ADCDLY);
++
++ writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
++
++ return 0;
++}
++
++#else
++#define s3c2410ts_suspend NULL
++#define s3c2410ts_resume NULL
++#endif
++
++static struct platform_driver s3c2410ts_driver = {
++ .driver = {
++ .name = "s3c2410-ts",
++ .owner = THIS_MODULE,
++ },
++ .probe = s3c2410ts_probe,
++ .remove = s3c2410ts_remove,
++ .suspend = s3c2410ts_suspend,
++ .resume = s3c2410ts_resume,
++
++};
++
++static struct platform_driver s3c2440ts_driver = {
++ .driver = {
++ .name = "s3c2440-ts",
++ .owner = THIS_MODULE,
++ },
++ .probe = s3c2410ts_probe,
++ .remove = s3c2410ts_remove,
++ .suspend = s3c2410ts_suspend,
++ .resume = s3c2410ts_resume,
++
++};
++
++static int __init s3c2410ts_init(void)
++{
++ int rc;
++
++ rc = platform_driver_register(&s3c2410ts_driver);
++ if (rc < 0)
++ return rc;
++
++ rc = platform_driver_register(&s3c2440ts_driver);
++ if (rc < 0)
++ platform_driver_unregister(&s3c2410ts_driver);
++
++ return rc;
++}
++
++static void __exit s3c2410ts_exit(void)
++{
++ platform_driver_unregister(&s3c2440ts_driver);
++ platform_driver_unregister(&s3c2410ts_driver);
++}
++
++module_init(s3c2410ts_init);
++module_exit(s3c2410ts_exit);
++
++/*
++ Local variables:
++ compile-command: "make ARCH=arm CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux- -k -C ../../.."
++ c-basic-offset: 8
++ End:
++*/
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/leds/Kconfig linux-2.6.25-m8050/drivers/leds/Kconfig
+--- linux-git/drivers/leds/Kconfig 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/leds/Kconfig 2008-09-30 17:37:49.000000000 +0200
+@@ -181,4 +181,11 @@
+ load average.
+ If unsure, say Y.
+
++config LEDS_TRIGGER_EV_LED
++ tristate "EV_LED Input LED Trigger"
++ depends on LEDS_TRIGGERS
++ help
++ This allows LEDs to be controlled by the us of the EV_LED
++ events from the input system.
++
+ endif # NEW_LEDS
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/leds/ledtrig-ev-led.c linux-2.6.25-m8050/drivers/leds/ledtrig-ev-led.c
+--- linux-git/drivers/leds/ledtrig-ev-led.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/leds/ledtrig-ev-led.c 2008-10-10 18:47:07.000000000 +0200
+@@ -0,0 +1,140 @@
++/*
++ * EV_LED event LED Trigger
++ *
++ * Copyright 2008 American Microsystems Ltd.
++ *
++ * Author: David Anders <danders@amltd.com
++ *
++ * Based on the LED IDE-Disk Activity Trigger - ledtrig-ide-disk.c
++ *
++ * Copyright 2006 Openedhand Ltd.
++ *
++ * Author: Richard Purdie <rpurdie@openedhand.com>
++ *
++ * 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.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/jiffies.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/timer.h>
++#include <linux/leds.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/io.h>
++#include <asm/hardware.h>
++#include <asm/plat-s3c24xx/s3c2410.h>
++#include <asm/plat-s3c24xx/s3c2440.h>
++#include <linux/delay.h>
++
++static void ledtrig_ev_led_timerfunc(unsigned long data);
++static void ledtrig_ev_led_timeoutfunc(unsigned long data);
++
++DEFINE_LED_TRIGGER(ledtrig_ev_led);
++static DEFINE_TIMER(ledtrig_ev_led_timer, ledtrig_ev_led_timerfunc, 0, 0);
++static DEFINE_TIMER(ledtrig_ev_led_timeout, ledtrig_ev_led_timeoutfunc, 0, 0);
++static int ev_led_activity;
++static int ev_led_lastactivity;
++static int scan_data=0;
++
++void ledtrig_ev_led_activity(void)
++{
++ if (timer_pending(&ledtrig_ev_led_timeout)){
++ printk("timeout pending!\n");
++ s3c2410_gpio_setpin(S3C2410_GPF3, 1);
++ led_trigger_event(ledtrig_ev_led, LED_OFF);
++ del_timer(&ledtrig_ev_led_timeout);
++ scan_data=0;
++ udelay(250);
++// return;
++ }
++
++ if (timer_pending(&ledtrig_ev_led_timer)) {
++ printk("timer pending!\n");
++ s3c2410_gpio_setpin(S3C2410_GPF3, 1);
++ del_timer(&ledtrig_ev_led_timer);
++ led_trigger_event(ledtrig_ev_led, LED_OFF);
++ scan_data=0;
++// if (!s3c2410_gpio_getpin(S3C2410_GPF6)){
++ udelay(250);
++// }
++ }
++ s3c2410_gpio_setpin(S3C2410_GPF3, 0);
++ mod_timer(&ledtrig_ev_led_timeout, jiffies + (HZ*3));
++
++ ev_led_activity++;
++ if (!timer_pending(&ledtrig_ev_led_timer)){
++ printk("no timer pending starting\n");
++ ledtrig_ev_led_timerfunc(0x00);
++// mod_timer(&ledtrig_ev_led_timer, jiffies + 10);
++ }
++}
++EXPORT_SYMBOL(ledtrig_ev_led_activity);
++
++void scanner_data(void)
++{
++ printk("scan_data=%d\n",scan_data);
++// if(scan_data==0)
++ scan_data++;
++
++}
++EXPORT_SYMBOL(scanner_data);
++
++static void ledtrig_ev_led_timeoutfunc(unsigned long data)
++{
++
++ if (timer_pending(&ledtrig_ev_led_timer))
++ del_timer(&ledtrig_ev_led_timer);
++ s3c2410_gpio_setpin(S3C2410_GPF3, 1);
++ scan_data=0;
++
++
++}
++static void ledtrig_ev_led_timerfunc(unsigned long data)
++{
++unsigned long int urtstat;
++ if (ev_led_lastactivity != ev_led_activity) {
++ printk("last activity doesn't match!\n");
++ if ((!s3c2410_gpio_getpin(S3C2410_GPF6)) && (scan_data)){
++ printk("starting leds!\n");
++ ev_led_lastactivity = ev_led_activity;
++ led_trigger_event(ledtrig_ev_led, LED_FULL);
++ if (timer_pending(&ledtrig_ev_led_timeout))
++ del_timer(&ledtrig_ev_led_timeout);
++ mod_timer(&ledtrig_ev_led_timer, jiffies + msecs_to_jiffies(500));
++ s3c2410_gpio_setpin(S3C2410_GPF3, 1);
++ scan_data=0;
++ }
++ else {
++ mod_timer(&ledtrig_ev_led_timer, jiffies + 10 );
++ }
++ } else {
++ printk("ending leds!\n");
++ led_trigger_event(ledtrig_ev_led, LED_OFF);
++ del_timer(&ledtrig_ev_led_timer);
++ if (timer_pending(&ledtrig_ev_led_timeout))
++ del_timer(&ledtrig_ev_led_timeout);
++ s3c2410_gpio_setpin(S3C2410_GPF3, 1);
++ }
++}
++
++static int __init ledtrig_ev_led_init(void)
++{
++ led_trigger_register_simple("ev-led", &ledtrig_ev_led);
++ return 0;
++}
++
++static void __exit ledtrig_ev_led_exit(void)
++{
++ led_trigger_unregister_simple(ledtrig_ev_led);
++}
++
++module_init(ledtrig_ev_led_init);
++module_exit(ledtrig_ev_led_exit);
++
++MODULE_AUTHOR("David Anders <danders@amltd.com");
++MODULE_DESCRIPTION("EV_LED Input LED Trigger");
++MODULE_LICENSE("GPL");
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/leds/Makefile linux-2.6.25-m8050/drivers/leds/Makefile
+--- linux-git/drivers/leds/Makefile 2008-11-10 12:20:17.000000000 +0100
++++ linux-2.6.25-m8050/drivers/leds/Makefile 2008-09-30 17:36:07.000000000 +0200
+@@ -26,3 +26,4 @@
+ obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
+ obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
+ obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
++obj-$(CONFIG_LEDS_TRIGGER_EV_LED) += ledtrig-ev-led.o
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/misc/Kconfig linux-2.6.25-m8050/drivers/misc/Kconfig
+--- linux-git/drivers/misc/Kconfig 2008-11-10 12:20:22.000000000 +0100
++++ linux-2.6.25-m8050/drivers/misc/Kconfig 2008-08-21 11:45:10.000000000 +0200
+@@ -327,4 +327,11 @@
+ driver (SCSI/ATA) which supports enclosures
+ or a SCSI enclosure device (SES) to use these services.
+
++config AML_M8052
++ tristate "M8052 Power and Charging Interface"
++ depends on EXPERIMENTAL && ARCH_S3C2410
++ help
++ This driver is for the AML M8052 Power Control and Charging
++ Control interface board.
++
+ endif # MISC_DEVICES
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/misc/Makefile linux-2.6.25-m8050/drivers/misc/Makefile
+--- linux-git/drivers/misc/Makefile 2008-11-10 12:20:22.000000000 +0100
++++ linux-2.6.25-m8050/drivers/misc/Makefile 2008-08-21 11:44:26.000000000 +0200
+@@ -22,3 +22,4 @@
+ obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o
+ obj-$(CONFIG_INTEL_MENLOW) += intel_menlow.o
+ obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
++obj-$(CONFIG_AML_M8052) += pm-m8052.o
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/misc/pm-m8052.c linux-2.6.25-m8050/drivers/misc/pm-m8052.c
+--- linux-git/drivers/misc/pm-m8052.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/misc/pm-m8052.c 2008-09-26 15:21:42.000000000 +0200
+@@ -0,0 +1,191 @@
++//#include <linux/config.h>
++#include <linux/spinlock.h>
++#include <linux/sched.h>
++#include <linux/tty.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/poll.h>
++#include <linux/slab.h>
++#include <linux/timer.h>
++#include <linux/proc_fs.h>
++#include <linux/kmod.h>
++#include <linux/interrupt.h>
++#include <asm/io.h>
++#include <asm/arch-s3c2410/regs-gpio.h>
++#include <asm/arch-s3c2410/regs-gpioj.h>
++#include <asm/plat-s3c24xx/regs-spi.h>
++//#include <asm/arch-s3c2410/regs-serial.h>
++
++
++
++#define TRUE 1
++#define FALSE 0
++
++static int scaninterval = HZ / 40;
++static struct timer_list scan_timer;
++
++static void aml_scan_io (unsigned long dummy);
++
++
++
++static int local_atoi(const char *name)
++{
++ int val = 0;
++
++ for (;; name++) {
++ switch (*name) {
++ case '0'...'9':
++ val = 10*val+(*name-'0');
++ break;
++ default:
++ return val;
++ }
++ }
++}
++
++
++static int
++amltd_proc_powerbatt_read(char *page, char **start, off_t off,
++ int count, int *eof, void *data)
++{
++
++ writel(0x0000003f, S3C2410_GPCDAT);
++ writel(0x000000bf, S3C2410_GPCDAT);
++ writel(0x0000003f, S3C2410_GPCDAT);
++ writel(0x000000bf, S3C2410_GPCDAT);
++ writel(0x0000003f, S3C2410_GPCDAT);
++
++// s3c2410_gpio_setpin(S3C2410_GPC7, 0);
++// s3c2410_gpio_setpin(S3C2410_GPC7, 1);
++// s3c2410_gpio_setpin(S3C2410_GPC7, 0);
++// s3c2410_gpio_setpin(S3C2410_GPC7, 1);
++// s3c2410_gpio_setpin(S3C2410_GPC7, 0);
++ return sprintf(page, "SENTy\n");
++}
++
++static int
++amltd_proc_powerbatt_write(struct file *file, const char *buffer,
++ unsigned long count, void *data)
++{
++ unsigned char char_value;
++ unsigned long tmpvalue;
++
++ if (count < 1) {
++ return -EINVAL;
++ }
++
++ if (copy_from_user(&char_value, buffer, 1))
++ return -EFAULT;
++
++
++
++ writel(0x0000001c, S3C2410_SPI0CON);
++ writel(0x000000e1, S3C2410_SPI0PRE);
++
++ tmpvalue=readl(S3C2440_GPJDAT);
++ tmpvalue &= ~(1<<7);
++ writel(tmpvalue,S3C2440_GPJDAT);
++ udelay(1000);
++ writeb(char_value,S3C2410_SPI0DTX);
++ udelay(1000);
++ tmpvalue=readl(S3C2440_GPJDAT);
++ tmpvalue |= (1<<7);
++ writel(tmpvalue,S3C2440_GPJDAT);
++ udelay(2000);
++
++ return count;
++}
++
++
++
++//-----------------------------------------------------------------------
++// __u16 scaninput(void)
++//-----------------------------------------------------------------------
++static __u16 scaninput(void)
++{
++ unsigned long tmpvalue;
++
++ tmpvalue=readl(S3C2410_GPFDAT);
++ if ( tmpvalue&(1<<1) )
++ return(0);
++ else
++ return(1);
++
++}
++
++
++
++static void aml_scan_io(unsigned long dummy)
++{
++ unsigned long tmpvalue;
++ unsigned int scancode;
++ __u16 cs;
++
++ writel(0x0000001c, S3C2410_SPI0CON);
++ writel(0x000000e1, S3C2410_SPI0PRE);
++
++ cs = scaninput();
++
++ if ( cs == 1 ) {
++ tmpvalue=readl(S3C2440_GPJDAT);
++ tmpvalue &= ~(1<<7);
++ writel(tmpvalue,S3C2440_GPJDAT);
++ udelay(100);
++ writeb(0x00,S3C2410_SPI0DTX);
++ udelay(500);
++ scancode=readb(S3C2410_SPI0DRX);
++ udelay(100);
++ tmpvalue=readl(S3C2440_GPJDAT);
++ tmpvalue |= (1<<7);
++ writel(tmpvalue,S3C2440_GPJDAT);
++ udelay(100);
++ printk("pm-8052 response: 0x%x\n",scancode);
++
++ }
++
++
++ mod_timer (&scan_timer, jiffies + scaninterval);
++}
++
++
++static int __init powerbatt_init_hw(void)
++{
++ unsigned long tmpvalue;
++ int i;
++ static struct proc_dir_entry *amltd_powerbatt_proc_entry;
++ tmpvalue=readl(S3C2410_GPECON);
++ tmpvalue |= (S3C2410_GPE11_SPIMISO0 | S3C2410_GPE12_SPIMOSI0 | S3C2410_GPE13_SPICLK0);
++ writel(tmpvalue,S3C2410_GPECON);
++
++ writel(0x0000001c, S3C2410_SPI0CON);
++ writel(0x000000e1, S3C2410_SPI0PRE);
++
++
++ s3c2410_gpio_cfgpin(S3C2410_GPF1, S3C2410_GPIO_INPUT);
++
++ s3c2410_gpio_cfgpin(S3C2440_GPJ7, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2440_GPJ7, 1);
++
++
++ amltd_powerbatt_proc_entry = create_proc_entry("powerbatt", 0444,
++ NULL);
++ if (amltd_powerbatt_proc_entry == NULL) {
++ printk("Couldn't create the procfs entry for power and battery.\n");
++ }
++
++ amltd_powerbatt_proc_entry->read_proc =
++ &amltd_proc_powerbatt_read;
++ amltd_powerbatt_proc_entry->write_proc =
++ &amltd_proc_powerbatt_write;
++
++
++ // setup scanning timer
++ init_timer (&scan_timer);
++ scan_timer.function = aml_scan_io;
++ mod_timer (&scan_timer, jiffies + scaninterval);
++
++ return 0;
++}
++
++
++module_init(powerbatt_init_hw);
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/mmc/host/Kconfig linux-2.6.25-m8050/drivers/mmc/host/Kconfig
+--- linux-git/drivers/mmc/host/Kconfig 2008-11-10 12:20:22.000000000 +0100
++++ linux-2.6.25-m8050/drivers/mmc/host/Kconfig 2008-07-01 13:32:15.000000000 +0200
+@@ -130,3 +130,14 @@
+
+ If unsure, or if your system has no SPI master driver, say N.
+
++config MMC_S3C
++ tristate "Samsung S3C SD/MMC Card Interface support"
++ depends on ARCH_S3C2410 && MMC
++ help
++ This selects a driver for the MCI interface found in
++ Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
++ If you have a board based on one of those and a MMC/SD
++ slot, say Y or M here.
++
++ If unsure, say N.
++
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/mmc/host/Makefile linux-2.6.25-m8050/drivers/mmc/host/Makefile
+--- linux-git/drivers/mmc/host/Makefile 2008-11-10 12:20:22.000000000 +0100
++++ linux-2.6.25-m8050/drivers/mmc/host/Makefile 2008-07-01 13:32:15.000000000 +0200
+@@ -17,4 +17,4 @@
+ obj-$(CONFIG_MMC_AT91) += at91_mci.o
+ obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
+ obj-$(CONFIG_MMC_SPI) += mmc_spi.o
+-
++obj-$(CONFIG_MMC_S3C) += s3cmci.o
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/mmc/host/s3cmci.c linux-2.6.25-m8050/drivers/mmc/host/s3cmci.c
+--- linux-git/drivers/mmc/host/s3cmci.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/mmc/host/s3cmci.c 2008-07-11 16:32:43.000000000 +0200
+@@ -0,0 +1,1446 @@
++/*
++ * linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
++ *
++ * Copyright (C) 2004-2006 maintech GmbH, Thomas Kleffel <tk@maintech.de>
++ *
++ * 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.
++ */
++
++#include <linux/module.h>
++#include <linux/dma-mapping.h>
++#include <linux/clk.h>
++#include <linux/mmc/host.h>
++#include <linux/platform_device.h>
++#include <linux/irq.h>
++#include <linux/io.h>
++
++#include <asm/dma.h>
++
++#include <asm/arch/regs-sdi.h>
++#include <asm/arch/regs-gpio.h>
++
++#include <asm/plat-s3c24xx/mci.h>
++
++#include "s3cmci.h"
++
++#define DRIVER_NAME "s3c-mci"
++
++enum dbg_channels {
++ dbg_err = (1 << 0),
++ dbg_debug = (1 << 1),
++ dbg_info = (1 << 2),
++ dbg_irq = (1 << 3),
++ dbg_sg = (1 << 4),
++ dbg_dma = (1 << 5),
++ dbg_pio = (1 << 6),
++ dbg_fail = (1 << 7),
++ dbg_conf = (1 << 8),
++};
++
++static const int dbgmap_err = dbg_err | dbg_fail;
++static const int dbgmap_info = dbg_info | dbg_conf;
++static const int dbgmap_debug = dbg_debug;
++
++#define dbg(host, channels, args...) \
++ do { \
++ if (dbgmap_err & channels) \
++ dev_err(&host->pdev->dev, args); \
++ else if (dbgmap_info & channels) \
++ dev_info(&host->pdev->dev, args); \
++ else if (dbgmap_debug & channels) \
++ dev_dbg(&host->pdev->dev, args); \
++ } while (0)
++
++#define RESSIZE(ressource) (((ressource)->end - (ressource)->start)+1)
++
++static struct s3c2410_dma_client s3cmci_dma_client = {
++ .name = "s3c-mci",
++};
++
++static void finalize_request(struct s3cmci_host *host);
++static void s3cmci_send_request(struct mmc_host *mmc);
++static void s3cmci_reset(struct s3cmci_host *host);
++
++#ifdef CONFIG_MMC_DEBUG
++
++static void dbg_dumpregs(struct s3cmci_host *host, char *prefix)
++{
++ u32 con, pre, cmdarg, cmdcon, cmdsta, r0, r1, r2, r3, timer, bsize;
++ u32 datcon, datcnt, datsta, fsta, imask;
++
++ con = readl(host->base + S3C2410_SDICON);
++ pre = readl(host->base + S3C2410_SDIPRE);
++ cmdarg = readl(host->base + S3C2410_SDICMDARG);
++ cmdcon = readl(host->base + S3C2410_SDICMDCON);
++ cmdsta = readl(host->base + S3C2410_SDICMDSTAT);
++ r0 = readl(host->base + S3C2410_SDIRSP0);
++ r1 = readl(host->base + S3C2410_SDIRSP1);
++ r2 = readl(host->base + S3C2410_SDIRSP2);
++ r3 = readl(host->base + S3C2410_SDIRSP3);
++ timer = readl(host->base + S3C2410_SDITIMER);
++ bsize = readl(host->base + S3C2410_SDIBSIZE);
++ datcon = readl(host->base + S3C2410_SDIDCON);
++ datcnt = readl(host->base + S3C2410_SDIDCNT);
++ datsta = readl(host->base + S3C2410_SDIDSTA);
++ fsta = readl(host->base + S3C2410_SDIFSTA);
++ imask = readl(host->base + host->sdiimsk);
++
++ dbg(host, dbg_debug, "%s CON:[%08x] PRE:[%08x] TMR:[%08x]\n",
++ prefix, con, pre, timer);
++
++ dbg(host, dbg_debug, "%s CCON:[%08x] CARG:[%08x] CSTA:[%08x]\n",
++ prefix, cmdcon, cmdarg, cmdsta);
++
++ dbg(host, dbg_debug, "%s DCON:[%08x] FSTA:[%08x]"
++ " DSTA:[%08x] DCNT:[%08x]\n",
++ prefix, datcon, fsta, datsta, datcnt);
++
++ dbg(host, dbg_debug, "%s R0:[%08x] R1:[%08x]"
++ " R2:[%08x] R3:[%08x]\n",
++ prefix, r0, r1, r2, r3);
++}
++
++static void prepare_dbgmsg(struct s3cmci_host *host, struct mmc_command *cmd,
++ int stop)
++{
++ snprintf(host->dbgmsg_cmd, 300,
++ "#%u%s op:%i arg:0x%08x flags:0x08%x retries:%u",
++ host->ccnt, (stop ? " (STOP)" : ""),
++ cmd->opcode, cmd->arg, cmd->flags, cmd->retries);
++
++ if (cmd->data) {
++ snprintf(host->dbgmsg_dat, 300,
++ "#%u bsize:%u blocks:%u bytes:%u",
++ host->dcnt, cmd->data->blksz,
++ cmd->data->blocks,
++ cmd->data->blocks * cmd->data->blksz);
++ } else {
++ host->dbgmsg_dat[0] = '\0';
++ }
++}
++
++static void dbg_dumpcmd(struct s3cmci_host *host, struct mmc_command *cmd,
++ int fail)
++{
++ unsigned int dbglvl = fail ? dbg_fail : dbg_debug;
++
++ if (!cmd)
++ return;
++
++ if (cmd->error == 0) {
++ dbg(host, dbglvl, "CMD[OK] %s R0:0x%08x\n",
++ host->dbgmsg_cmd, cmd->resp[0]);
++ } else {
++ dbg(host, dbglvl, "CMD[ERR %i] %s Status:%s\n",
++ cmd->error, host->dbgmsg_cmd, host->status);
++ }
++
++ if (!cmd->data)
++ return;
++
++ if (cmd->data->error == 0) {
++ dbg(host, dbglvl, "DAT[OK] %s\n", host->dbgmsg_dat);
++ } else {
++ dbg(host, dbglvl, "DAT[ERR %i] %s DCNT:0x%08x\n",
++ cmd->data->error, host->dbgmsg_dat,
++ readl(host->base + S3C2410_SDIDCNT));
++ }
++}
++#else
++static void dbg_dumpcmd(struct s3cmci_host *host,
++ struct mmc_command *cmd, int fail) { }
++
++static void prepare_dbgmsg(struct s3cmci_host *host, struct mmc_command *cmd,
++ int stop) { }
++
++static void dbg_dumpregs(struct s3cmci_host *host, char *prefix) { }
++
++#endif /* CONFIG_MMC_DEBUG */
++
++static inline u32 enable_imask(struct s3cmci_host *host, u32 imask)
++{
++ u32 newmask;
++
++ newmask = readl(host->base + host->sdiimsk);
++ newmask |= imask;
++
++ writel(newmask, host->base + host->sdiimsk);
++
++ return newmask;
++}
++
++static inline u32 disable_imask(struct s3cmci_host *host, u32 imask)
++{
++ u32 newmask;
++
++ newmask = readl(host->base + host->sdiimsk);
++ newmask &= ~imask;
++
++ writel(newmask, host->base + host->sdiimsk);
++
++ return newmask;
++}
++
++static inline void clear_imask(struct s3cmci_host *host)
++{
++ writel(0, host->base + host->sdiimsk);
++}
++
++static inline int get_data_buffer(struct s3cmci_host *host,
++ u32 *words, u32 **pointer)
++{
++ struct scatterlist *sg;
++
++ if (host->pio_active == XFER_NONE)
++ return -EINVAL;
++
++ if ((!host->mrq) || (!host->mrq->data))
++ return -EINVAL;
++
++ if (host->pio_sgptr >= host->mrq->data->sg_len) {
++ dbg(host, dbg_debug, "no more buffers (%i/%i)\n",
++ host->pio_sgptr, host->mrq->data->sg_len);
++ return -EBUSY;
++ }
++ sg = &host->mrq->data->sg[host->pio_sgptr];
++
++ *words = sg->length >> 2;
++ *pointer = sg_virt(sg);
++
++ host->pio_sgptr++;
++
++ dbg(host, dbg_sg, "new buffer (%i/%i)\n",
++ host->pio_sgptr, host->mrq->data->sg_len);
++
++ return 0;
++}
++
++static inline u32 fifo_count(struct s3cmci_host *host)
++{
++ u32 fifostat = readl(host->base + S3C2410_SDIFSTA);
++
++ fifostat &= S3C2410_SDIFSTA_COUNTMASK;
++ return fifostat >> 2;
++}
++
++static inline u32 fifo_free(struct s3cmci_host *host)
++{
++ u32 fifostat = readl(host->base + S3C2410_SDIFSTA);
++
++ fifostat &= S3C2410_SDIFSTA_COUNTMASK;
++ return (63 - fifostat) >> 2;
++}
++
++static void do_pio_read(struct s3cmci_host *host)
++{
++ int res;
++ u32 fifo;
++ void __iomem *from_ptr;
++
++ /* write real prescaler to host, it might be set slow to fix */
++ writel(host->prescaler, host->base + S3C2410_SDIPRE);
++
++ from_ptr = host->base + host->sdidata;
++
++ while ((fifo = fifo_count(host))) {
++ if (!host->pio_words) {
++ res = get_data_buffer(host, &host->pio_words,
++ &host->pio_ptr);
++ if (res) {
++ host->pio_active = XFER_NONE;
++ host->complete_what = COMPLETION_FINALIZE;
++
++ dbg(host, dbg_pio, "pio_read(): "
++ "complete (no more data).\n");
++ return;
++ }
++
++ dbg(host, dbg_pio,
++ "pio_read(): new target: [%i]@[%p]\n",
++ host->pio_words, host->pio_ptr);
++ }
++
++ dbg(host, dbg_pio,
++ "pio_read(): fifo:[%02i] buffer:[%03i] dcnt:[%08X]\n",
++ fifo, host->pio_words,
++ readl(host->base + S3C2410_SDIDCNT));
++
++ if (fifo > host->pio_words)
++ fifo = host->pio_words;
++
++ host->pio_words -= fifo;
++ host->pio_count += fifo;
++
++ while (fifo--)
++ *(host->pio_ptr++) = readl(from_ptr);
++ }
++
++ if (!host->pio_words) {
++ res = get_data_buffer(host, &host->pio_words, &host->pio_ptr);
++ if (res) {
++ dbg(host, dbg_pio,
++ "pio_read(): complete (no more buffers).\n");
++ host->pio_active = XFER_NONE;
++ host->complete_what = COMPLETION_FINALIZE;
++
++ return;
++ }
++ }
++
++ enable_imask(host,
++ S3C2410_SDIIMSK_RXFIFOHALF | S3C2410_SDIIMSK_RXFIFOLAST);
++}
++
++static void do_pio_write(struct s3cmci_host *host)
++{
++ void __iomem *to_ptr;
++ int res;
++ u32 fifo;
++
++ to_ptr = host->base + host->sdidata;
++
++ while ((fifo = fifo_free(host))) {
++ if (!host->pio_words) {
++ res = get_data_buffer(host, &host->pio_words,
++ &host->pio_ptr);
++ if (res) {
++ dbg(host, dbg_pio,
++ "pio_write(): complete (no more data).\n");
++ host->pio_active = XFER_NONE;
++
++ return;
++ }
++
++ dbg(host, dbg_pio,
++ "pio_write(): new source: [%i]@[%p]\n",
++ host->pio_words, host->pio_ptr);
++
++ }
++
++ if (fifo > host->pio_words)
++ fifo = host->pio_words;
++
++ host->pio_words -= fifo;
++ host->pio_count += fifo;
++
++ while (fifo--)
++ writel(*(host->pio_ptr++), to_ptr);
++ }
++
++ enable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF);
++}
++
++static void pio_tasklet(unsigned long data)
++{
++ struct s3cmci_host *host = (struct s3cmci_host *) data;
++
++
++ disable_irq(host->irq);
++
++ if (host->pio_active == XFER_WRITE)
++ do_pio_write(host);
++
++ if (host->pio_active == XFER_READ)
++ do_pio_read(host);
++
++ if (host->complete_what == COMPLETION_FINALIZE) {
++ clear_imask(host);
++ if (host->pio_active != XFER_NONE) {
++ dbg(host, dbg_err, "unfinished %s "
++ "- pio_count:[%u] pio_words:[%u]\n",
++ (host->pio_active == XFER_READ) ? "read" : "write",
++ host->pio_count, host->pio_words);
++
++ if (host->mrq->data)
++ host->mrq->data->error = -EINVAL;
++ }
++
++ finalize_request(host);
++ } else
++ enable_irq(host->irq);
++}
++
++/*
++ * ISR for SDI Interface IRQ
++ * Communication between driver and ISR works as follows:
++ * host->mrq points to current request
++ * host->complete_what Indicates when the request is considered done
++ * COMPLETION_CMDSENT when the command was sent
++ * COMPLETION_RSPFIN when a response was received
++ * COMPLETION_XFERFINISH when the data transfer is finished
++ * COMPLETION_XFERFINISH_RSPFIN both of the above.
++ * host->complete_request is the completion-object the driver waits for
++ *
++ * 1) Driver sets up host->mrq and host->complete_what
++ * 2) Driver prepares the transfer
++ * 3) Driver enables interrupts
++ * 4) Driver starts transfer
++ * 5) Driver waits for host->complete_rquest
++ * 6) ISR checks for request status (errors and success)
++ * 6) ISR sets host->mrq->cmd->error and host->mrq->data->error
++ * 7) ISR completes host->complete_request
++ * 8) ISR disables interrupts
++ * 9) Driver wakes up and takes care of the request
++ *
++ * Note: "->error"-fields are expected to be set to 0 before the request
++ * was issued by mmc.c - therefore they are only set, when an error
++ * contition comes up
++ */
++
++static irqreturn_t s3cmci_irq(int irq, void *dev_id)
++{
++ struct s3cmci_host *host = dev_id;
++ struct mmc_command *cmd;
++ u32 mci_csta, mci_dsta, mci_fsta, mci_dcnt, mci_imsk;
++ u32 mci_cclear, mci_dclear;
++ unsigned long iflags;
++
++ spin_lock_irqsave(&host->complete_lock, iflags);
++
++ mci_csta = readl(host->base + S3C2410_SDICMDSTAT);
++ mci_dsta = readl(host->base + S3C2410_SDIDSTA);
++ mci_dcnt = readl(host->base + S3C2410_SDIDCNT);
++ mci_fsta = readl(host->base + S3C2410_SDIFSTA);
++ mci_imsk = readl(host->base + host->sdiimsk);
++ mci_cclear = 0;
++ mci_dclear = 0;
++
++ if ((host->complete_what == COMPLETION_NONE) ||
++ (host->complete_what == COMPLETION_FINALIZE)) {
++ host->status = "nothing to complete";
++ clear_imask(host);
++ goto irq_out;
++ }
++
++ if (!host->mrq) {
++ host->status = "no active mrq";
++ clear_imask(host);
++ goto irq_out;
++ }
++
++ cmd = host->cmd_is_stop ? host->mrq->stop : host->mrq->cmd;
++
++ if (!cmd) {
++ host->status = "no active cmd";
++ clear_imask(host);
++ goto irq_out;
++ }
++
++ if (!host->dodma) {
++ if ((host->pio_active == XFER_WRITE) &&
++ (mci_fsta & S3C2410_SDIFSTA_TFDET)) {
++
++ disable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF);
++ tasklet_schedule(&host->pio_tasklet);
++ host->status = "pio tx";
++ }
++
++ if ((host->pio_active == XFER_READ) &&
++ (mci_fsta & S3C2410_SDIFSTA_RFDET)) {
++
++ disable_imask(host,
++ S3C2410_SDIIMSK_RXFIFOHALF |
++ S3C2410_SDIIMSK_RXFIFOLAST);
++
++ tasklet_schedule(&host->pio_tasklet);
++ host->status = "pio rx";
++ }
++ }
++
++ if (mci_csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) {
++ dbg(host, dbg_err, "CMDSTAT: error CMDTIMEOUT\n");
++ cmd->error = -ETIMEDOUT;
++ host->status = "error: command timeout";
++ goto fail_transfer;
++ }
++
++ if (mci_csta & S3C2410_SDICMDSTAT_CMDSENT) {
++ if (host->complete_what == COMPLETION_CMDSENT) {
++ host->status = "ok: command sent";
++ goto close_transfer;
++ }
++
++ mci_cclear |= S3C2410_SDICMDSTAT_CMDSENT;
++ }
++
++ if (mci_csta & S3C2410_SDICMDSTAT_CRCFAIL) {
++ if (cmd->flags & MMC_RSP_CRC) {
++ if (host->mrq->cmd->flags & MMC_RSP_136) {
++ dbg(host, dbg_irq,
++ "fixup: ignore CRC fail with long rsp\n");
++ } else {
++ /* note, we used to fail the transfer
++ * here, but it seems that this is just
++ * the hardware getting it wrong.
++ *
++ * cmd->error = -EILSEQ;
++ * host->status = "error: bad command crc";
++ * goto fail_transfer;
++ */
++ }
++ }
++
++ mci_cclear |= S3C2410_SDICMDSTAT_CRCFAIL;
++ }
++
++ if (mci_csta & S3C2410_SDICMDSTAT_RSPFIN) {
++ if (host->complete_what == COMPLETION_RSPFIN) {
++ host->status = "ok: command response received";
++ goto close_transfer;
++ }
++
++ if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN)
++ host->complete_what = COMPLETION_XFERFINISH;
++
++ mci_cclear |= S3C2410_SDICMDSTAT_RSPFIN;
++ }
++
++ /* errors handled after this point are only relevant
++ when a data transfer is in progress */
++
++ if (!cmd->data)
++ goto clear_status_bits;
++
++ /* Check for FIFO failure */
++ if (host->is2440) {
++ if (mci_fsta & S3C2440_SDIFSTA_FIFOFAIL) {
++ dbg(host, dbg_err, "FIFO failure\n");
++ host->mrq->data->error = -EILSEQ;
++ host->status = "error: 2440 fifo failure";
++ goto fail_transfer;
++ }
++ } else {
++ if (mci_dsta & S3C2410_SDIDSTA_FIFOFAIL) {
++ dbg(host, dbg_err, "FIFO failure\n");
++ cmd->data->error = -EILSEQ;
++ host->status = "error: fifo failure";
++ goto fail_transfer;
++ }
++ }
++
++ if (mci_dsta & S3C2410_SDIDSTA_RXCRCFAIL) {
++ dbg(host, dbg_err, "bad data crc (outgoing)\n");
++ cmd->data->error = -EILSEQ;
++ host->status = "error: bad data crc (outgoing)";
++ goto fail_transfer;
++ }
++
++ if (mci_dsta & S3C2410_SDIDSTA_CRCFAIL) {
++ dbg(host, dbg_err, "bad data crc (incoming)\n");
++ cmd->data->error = -EILSEQ;
++ host->status = "error: bad data crc (incoming)";
++ goto fail_transfer;
++ }
++
++ if (mci_dsta & S3C2410_SDIDSTA_DATATIMEOUT) {
++ dbg(host, dbg_err, "data timeout\n");
++ cmd->data->error = -ETIMEDOUT;
++ host->status = "error: data timeout";
++ goto fail_transfer;
++ }
++
++ if (mci_dsta & S3C2410_SDIDSTA_XFERFINISH) {
++ if (host->complete_what == COMPLETION_XFERFINISH) {
++ host->status = "ok: data transfer completed";
++ goto close_transfer;
++ }
++
++ if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN)
++ host->complete_what = COMPLETION_RSPFIN;
++
++ mci_dclear |= S3C2410_SDIDSTA_XFERFINISH;
++ }
++
++clear_status_bits:
++ writel(mci_cclear, host->base + S3C2410_SDICMDSTAT);
++ writel(mci_dclear, host->base + S3C2410_SDIDSTA);
++
++ goto irq_out;
++
++fail_transfer:
++ host->pio_active = XFER_NONE;
++
++close_transfer:
++ host->complete_what = COMPLETION_FINALIZE;
++
++ clear_imask(host);
++ tasklet_schedule(&host->pio_tasklet);
++
++ goto irq_out;
++
++irq_out:
++ dbg(host, dbg_irq,
++ "csta:0x%08x dsta:0x%08x fsta:0x%08x dcnt:0x%08x status:%s.\n",
++ mci_csta, mci_dsta, mci_fsta, mci_dcnt, host->status);
++
++ spin_unlock_irqrestore(&host->complete_lock, iflags);
++ return IRQ_HANDLED;
++
++}
++
++/*
++ * ISR for the CardDetect Pin
++*/
++
++static irqreturn_t s3cmci_irq_cd(int irq, void *dev_id)
++{
++ struct s3cmci_host *host = (struct s3cmci_host *)dev_id;
++
++ dbg(host, dbg_irq, "card detect\n");
++
++ mmc_detect_change(host->mmc, msecs_to_jiffies(500));
++
++ return IRQ_HANDLED;
++}
++
++void s3cmci_dma_done_callback(struct s3c2410_dma_chan *dma_ch, void *buf_id,
++ int size, enum s3c2410_dma_buffresult result)
++{
++ struct s3cmci_host *host = buf_id;
++ unsigned long iflags;
++ u32 mci_csta, mci_dsta, mci_fsta, mci_dcnt;
++
++ mci_csta = readl(host->base + S3C2410_SDICMDSTAT);
++ mci_dsta = readl(host->base + S3C2410_SDIDSTA);
++ mci_fsta = readl(host->base + S3C2410_SDIFSTA);
++ mci_dcnt = readl(host->base + S3C2410_SDIDCNT);
++
++ BUG_ON(!host->mrq);
++ BUG_ON(!host->mrq->data);
++ BUG_ON(!host->dmatogo);
++
++ spin_lock_irqsave(&host->complete_lock, iflags);
++
++ if (result != S3C2410_RES_OK) {
++ dbg(host, dbg_fail, "DMA FAILED: csta=0x%08x dsta=0x%08x "
++ "fsta=0x%08x dcnt:0x%08x result:0x%08x toGo:%u\n",
++ mci_csta, mci_dsta, mci_fsta,
++ mci_dcnt, result, host->dmatogo);
++
++ goto fail_request;
++ }
++
++ host->dmatogo--;
++ if (host->dmatogo) {
++ dbg(host, dbg_dma, "DMA DONE Size:%i DSTA:[%08x] "
++ "DCNT:[%08x] toGo:%u\n",
++ size, mci_dsta, mci_dcnt, host->dmatogo);
++
++ goto out;
++ }
++
++ dbg(host, dbg_dma, "DMA FINISHED Size:%i DSTA:%08x DCNT:%08x\n",
++ size, mci_dsta, mci_dcnt);
++
++ host->complete_what = COMPLETION_FINALIZE;
++
++out:
++ tasklet_schedule(&host->pio_tasklet);
++ spin_unlock_irqrestore(&host->complete_lock, iflags);
++ return;
++
++fail_request:
++ host->mrq->data->error = -EINVAL;
++ host->complete_what = COMPLETION_FINALIZE;
++ writel(0, host->base + host->sdiimsk);
++ goto out;
++
++}
++
++static void finalize_request(struct s3cmci_host *host)
++{
++ struct mmc_request *mrq = host->mrq;
++ struct mmc_command *cmd = host->cmd_is_stop ? mrq->stop : mrq->cmd;
++ int debug_as_failure = 0;
++
++ if (host->complete_what != COMPLETION_FINALIZE)
++ return;
++
++ if (!mrq)
++ return;
++
++ if (cmd->data && (cmd->error == 0) &&
++ (cmd->data->error == 0)) {
++ if (host->dodma && (!host->dma_complete)) {
++ dbg(host, dbg_dma, "DMA Missing!\n");
++ return;
++ }
++ }
++
++ /* Read response from controller. */
++ cmd->resp[0] = readl(host->base + S3C2410_SDIRSP0);
++ cmd->resp[1] = readl(host->base + S3C2410_SDIRSP1);
++ cmd->resp[2] = readl(host->base + S3C2410_SDIRSP2);
++ cmd->resp[3] = readl(host->base + S3C2410_SDIRSP3);
++
++ writel(host->prescaler, host->base + S3C2410_SDIPRE);
++
++ if (cmd->error)
++ debug_as_failure = 1;
++
++ if (cmd->data && cmd->data->error)
++ debug_as_failure = 1;
++
++ dbg_dumpcmd(host, cmd, debug_as_failure);
++
++ /* Cleanup controller */
++ writel(0, host->base + S3C2410_SDICMDARG);
++ writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON);
++ writel(0, host->base + S3C2410_SDICMDCON);
++ writel(0, host->base + host->sdiimsk);
++
++ if (cmd->data && cmd->error)
++ cmd->data->error = cmd->error;
++
++ if (cmd->data && cmd->data->stop && (!host->cmd_is_stop)) {
++ host->cmd_is_stop = 1;
++ s3cmci_send_request(host->mmc);
++ return;
++ }
++
++ /* If we have no data transfer we are finished here */
++ if (!mrq->data)
++ goto request_done;
++
++ /* Calulate the amout of bytes transfer if there was no error */
++ if (mrq->data->error == 0) {
++ mrq->data->bytes_xfered =
++ (mrq->data->blocks * mrq->data->blksz);
++ } else {
++ mrq->data->bytes_xfered = 0;
++ }
++
++ /* If we had an error while transfering data we flush the
++ * DMA channel and the fifo to clear out any garbage. */
++ if (mrq->data->error != 0) {
++ if (host->dodma)
++ s3c2410_dma_ctrl(host->dma, S3C2410_DMAOP_FLUSH);
++
++ if (host->is2440) {
++ /* Clear failure register and reset fifo. */
++ writel(S3C2440_SDIFSTA_FIFORESET |
++ S3C2440_SDIFSTA_FIFOFAIL,
++ host->base + S3C2410_SDIFSTA);
++ } else {
++ u32 mci_con;
++
++ /* reset fifo */
++ mci_con = readl(host->base + S3C2410_SDICON);
++ mci_con |= S3C2410_SDICON_FIFORESET;
++
++ writel(mci_con, host->base + S3C2410_SDICON);
++ }
++ }
++
++request_done:
++ host->complete_what = COMPLETION_NONE;
++ host->mrq = NULL;
++ mmc_request_done(host->mmc, mrq);
++}
++
++
++void s3cmci_dma_setup(struct s3cmci_host *host, enum s3c2410_dmasrc source)
++{
++ static enum s3c2410_dmasrc last_source = -1;
++ static int setup_ok;
++
++ if (last_source == source)
++ return;
++
++ last_source = source;
++
++ s3c2410_dma_devconfig(host->dma, source, 3,
++ host->mem->start + host->sdidata);
++
++ if (!setup_ok) {
++ s3c2410_dma_config(host->dma, 4,
++ (S3C2410_DCON_HWTRIG | S3C2410_DCON_CH0_SDI));
++ s3c2410_dma_set_buffdone_fn(host->dma,
++ s3cmci_dma_done_callback);
++ s3c2410_dma_setflags(host->dma, S3C2410_DMAF_AUTOSTART);
++ setup_ok = 1;
++ }
++}
++
++static void s3cmci_send_command(struct s3cmci_host *host,
++ struct mmc_command *cmd)
++{
++ u32 ccon, imsk;
++
++ imsk = S3C2410_SDIIMSK_CRCSTATUS | S3C2410_SDIIMSK_CMDTIMEOUT |
++ S3C2410_SDIIMSK_RESPONSEND | S3C2410_SDIIMSK_CMDSENT |
++ S3C2410_SDIIMSK_RESPONSECRC;
++
++ enable_imask(host, imsk);
++
++ if (cmd->data)
++ host->complete_what = COMPLETION_XFERFINISH_RSPFIN;
++ else if (cmd->flags & MMC_RSP_PRESENT)
++ host->complete_what = COMPLETION_RSPFIN;
++ else
++ host->complete_what = COMPLETION_CMDSENT;
++
++ writel(cmd->arg, host->base + S3C2410_SDICMDARG);
++
++ ccon = cmd->opcode & S3C2410_SDICMDCON_INDEX;
++ ccon |= S3C2410_SDICMDCON_SENDERHOST | S3C2410_SDICMDCON_CMDSTART;
++
++ if (cmd->flags & MMC_RSP_PRESENT)
++ ccon |= S3C2410_SDICMDCON_WAITRSP;
++
++ if (cmd->flags & MMC_RSP_136)
++ ccon |= S3C2410_SDICMDCON_LONGRSP;
++
++ writel(ccon, host->base + S3C2410_SDICMDCON);
++}
++
++static int s3cmci_setup_data(struct s3cmci_host *host, struct mmc_data *data)
++{
++ u32 dcon, imsk, stoptries = 3;
++
++ /* write DCON register */
++
++ if (!data) {
++ writel(0, host->base + S3C2410_SDIDCON);
++ return 0;
++ }
++
++ if ((data->blksz & 3) != 0) {
++ /* We cannot deal with unaligned blocks with more than
++ * one block being transfered. */
++
++ if (data->blocks > 1)
++ return -EINVAL;
++
++ /* No support yet for non-word block transfers. */
++ return -EINVAL;
++ }
++
++ while (readl(host->base + S3C2410_SDIDSTA) &
++ (S3C2410_SDIDSTA_TXDATAON | S3C2410_SDIDSTA_RXDATAON)) {
++
++ dbg(host, dbg_err,
++ "mci_setup_data() transfer stillin progress.\n");
++
++ writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON);
++ s3cmci_reset(host);
++
++ if ((stoptries--) == 0) {
++ dbg_dumpregs(host, "DRF");
++ return -EINVAL;
++ }
++ }
++
++ dcon = data->blocks & S3C2410_SDIDCON_BLKNUM_MASK;
++
++ if (host->dodma)
++ dcon |= S3C2410_SDIDCON_DMAEN;
++
++ if (host->bus_width == MMC_BUS_WIDTH_4)
++ dcon |= S3C2410_SDIDCON_WIDEBUS;
++
++ if (!(data->flags & MMC_DATA_STREAM))
++ dcon |= S3C2410_SDIDCON_BLOCKMODE;
++
++ if (data->flags & MMC_DATA_WRITE) {
++ dcon |= S3C2410_SDIDCON_TXAFTERRESP;
++ dcon |= S3C2410_SDIDCON_XFER_TXSTART;
++ }
++
++ if (data->flags & MMC_DATA_READ) {
++ dcon |= S3C2410_SDIDCON_RXAFTERCMD;
++ dcon |= S3C2410_SDIDCON_XFER_RXSTART;
++ }
++
++ if (host->is2440) {
++ dcon |= S3C2440_SDIDCON_DS_WORD;
++ dcon |= S3C2440_SDIDCON_DATSTART;
++ }
++
++ writel(dcon, host->base + S3C2410_SDIDCON);
++
++ /* write BSIZE register */
++
++ writel(data->blksz, host->base + S3C2410_SDIBSIZE);
++
++ /* add to IMASK register */
++ imsk = S3C2410_SDIIMSK_FIFOFAIL | S3C2410_SDIIMSK_DATACRC |
++ S3C2410_SDIIMSK_DATATIMEOUT | S3C2410_SDIIMSK_DATAFINISH;
++
++ enable_imask(host, imsk);
++
++ /* write TIMER register */
++
++ if (host->is2440) {
++ writel(0x007FFFFF, host->base + S3C2410_SDITIMER);
++ } else {
++ writel(0x0000FFFF, host->base + S3C2410_SDITIMER);
++
++ /* FIX: set slow clock to prevent timeouts on read */
++ if (data->flags & MMC_DATA_READ)
++ writel(0xFF, host->base + S3C2410_SDIPRE);
++ }
++
++ return 0;
++}
++
++#define BOTH_DIR (MMC_DATA_WRITE | MMC_DATA_READ)
++
++static int s3cmci_prepare_pio(struct s3cmci_host *host, struct mmc_data *data)
++{
++ int rw = (data->flags & MMC_DATA_WRITE) ? 1 : 0;
++
++ BUG_ON((data->flags & BOTH_DIR) == BOTH_DIR);
++
++ host->pio_sgptr = 0;
++ host->pio_words = 0;
++ host->pio_count = 0;
++ host->pio_active = rw ? XFER_WRITE : XFER_READ;
++
++ if (rw) {
++ do_pio_write(host);
++ enable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF);
++ } else {
++ enable_imask(host, S3C2410_SDIIMSK_RXFIFOHALF
++ | S3C2410_SDIIMSK_RXFIFOLAST);
++ }
++
++ return 0;
++}
++
++static int s3cmci_prepare_dma(struct s3cmci_host *host, struct mmc_data *data)
++{
++ int dma_len, i;
++ int rw = (data->flags & MMC_DATA_WRITE) ? 1 : 0;
++
++ BUG_ON((data->flags & BOTH_DIR) == BOTH_DIR);
++
++ s3cmci_dma_setup(host, rw ? S3C2410_DMASRC_MEM : S3C2410_DMASRC_HW);
++ s3c2410_dma_ctrl(host->dma, S3C2410_DMAOP_FLUSH);
++
++ dma_len = dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
++ (rw) ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
++
++ if (dma_len == 0)
++ return -ENOMEM;
++
++ host->dma_complete = 0;
++ host->dmatogo = dma_len;
++
++ for (i = 0; i < dma_len; i++) {
++ int res;
++
++ dbg(host, dbg_dma, "enqueue %i:%u@%u\n", i,
++ sg_dma_address(&data->sg[i]),
++ sg_dma_len(&data->sg[i]));
++
++ res = s3c2410_dma_enqueue(host->dma, (void *) host,
++ sg_dma_address(&data->sg[i]),
++ sg_dma_len(&data->sg[i]));
++
++ if (res) {
++ s3c2410_dma_ctrl(host->dma, S3C2410_DMAOP_FLUSH);
++ return -EBUSY;
++ }
++ }
++
++ s3c2410_dma_ctrl(host->dma, S3C2410_DMAOP_START);
++
++ return 0;
++}
++
++static void s3cmci_send_request(struct mmc_host *mmc)
++{
++ struct s3cmci_host *host = mmc_priv(mmc);
++ struct mmc_request *mrq = host->mrq;
++ struct mmc_command *cmd = host->cmd_is_stop ? mrq->stop : mrq->cmd;
++
++ host->ccnt++;
++ prepare_dbgmsg(host, cmd, host->cmd_is_stop);
++
++ /* Clear command, data and fifo status registers
++ Fifo clear only necessary on 2440, but doesn't hurt on 2410
++ */
++ writel(0xFFFFFFFF, host->base + S3C2410_SDICMDSTAT);
++ writel(0xFFFFFFFF, host->base + S3C2410_SDIDSTA);
++ writel(0xFFFFFFFF, host->base + S3C2410_SDIFSTA);
++
++ if (cmd->data) {
++ int res = s3cmci_setup_data(host, cmd->data);
++
++ host->dcnt++;
++
++ if (res) {
++ dbg(host, dbg_err, "setup data error %d\n", res);
++ cmd->error = res;
++ cmd->data->error = res;
++
++ mmc_request_done(mmc, mrq);
++ return;
++ }
++
++ if (host->dodma)
++ res = s3cmci_prepare_dma(host, cmd->data);
++ else
++ res = s3cmci_prepare_pio(host, cmd->data);
++
++ if (res) {
++ dbg(host, dbg_err, "data prepare error %d\n", res);
++ cmd->error = res;
++ cmd->data->error = res;
++
++ mmc_request_done(mmc, mrq);
++ return;
++ }
++ }
++
++ /* Send command */
++ s3cmci_send_command(host, cmd);
++
++ /* Enable Interrupt */
++ enable_irq(host->irq);
++}
++
++static int s3cmci_card_present(struct s3cmci_host *host)
++{
++ struct s3c24xx_mci_pdata *pdata = host->pdata;
++ int ret;
++
++ if (pdata->gpio_detect == 0)
++ return -ENOSYS;
++
++ ret = s3c2410_gpio_getpin(pdata->gpio_detect) ? 0 : 1;
++ return ret ^ pdata->detect_invert;
++}
++
++static void s3cmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
++{
++ struct s3cmci_host *host = mmc_priv(mmc);
++
++ host->status = "mmc request";
++ host->cmd_is_stop = 0;
++ host->mrq = mrq;
++
++ if (s3cmci_card_present(host) == 0) {
++ dbg(host, dbg_err, "%s: no medium present\n", __func__);
++ host->mrq->cmd->error = -ENOMEDIUM;
++ mmc_request_done(mmc, mrq);
++ } else
++ s3cmci_send_request(mmc);
++}
++
++static void s3cmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
++{
++ struct s3cmci_host *host = mmc_priv(mmc);
++ u32 mci_psc, mci_con;
++
++ /* Set the power state */
++
++ mci_con = readl(host->base + S3C2410_SDICON);
++
++ switch (ios->power_mode) {
++ case MMC_POWER_ON:
++ case MMC_POWER_UP:
++ s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2410_GPE5_SDCLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE6, S3C2410_GPE6_SDCMD);
++ s3c2410_gpio_cfgpin(S3C2410_GPE7, S3C2410_GPE7_SDDAT0);
++ s3c2410_gpio_cfgpin(S3C2410_GPE8, S3C2410_GPE8_SDDAT1);
++ s3c2410_gpio_cfgpin(S3C2410_GPE9, S3C2410_GPE9_SDDAT2);
++ s3c2410_gpio_cfgpin(S3C2410_GPE10, S3C2410_GPE10_SDDAT3);
++
++ if (host->pdata->set_power)
++ host->pdata->set_power(ios->power_mode, ios->vdd);
++
++ if (!host->is2440)
++ mci_con |= S3C2410_SDICON_FIFORESET;
++
++ break;
++
++ case MMC_POWER_OFF:
++ default:
++ s3c2410_gpio_setpin(S3C2410_GPE5, 0);
++ s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2410_GPE5_OUTP);
++
++ if (host->is2440)
++ mci_con |= S3C2440_SDICON_SDRESET;
++
++ if (host->pdata->set_power)
++ host->pdata->set_power(ios->power_mode, ios->vdd);
++
++ break;
++ }
++
++ /* Set clock */
++ for (mci_psc = 0; mci_psc < 255; mci_psc++) {
++ host->real_rate = host->clk_rate / (host->clk_div*(mci_psc+1));
++
++ if (host->real_rate <= ios->clock)
++ break;
++ }
++
++ if (mci_psc > 255)
++ mci_psc = 255;
++
++ host->prescaler = mci_psc;
++ writel(host->prescaler, host->base + S3C2410_SDIPRE);
++
++ /* If requested clock is 0, real_rate will be 0, too */
++ if (ios->clock == 0)
++ host->real_rate = 0;
++
++ /* Set CLOCK_ENABLE */
++ if (ios->clock)
++ mci_con |= S3C2410_SDICON_CLOCKTYPE;
++ else
++ mci_con &= ~S3C2410_SDICON_CLOCKTYPE;
++
++ writel(mci_con, host->base + S3C2410_SDICON);
++
++ if ((ios->power_mode == MMC_POWER_ON) ||
++ (ios->power_mode == MMC_POWER_UP)) {
++ dbg(host, dbg_conf, "running at %lukHz (requested: %ukHz).\n",
++ host->real_rate/1000, ios->clock/1000);
++ } else {
++ dbg(host, dbg_conf, "powered down.\n");
++ }
++
++ host->bus_width = ios->bus_width;
++}
++
++static void s3cmci_reset(struct s3cmci_host *host)
++{
++ u32 con = readl(host->base + S3C2410_SDICON);
++
++ con |= S3C2440_SDICON_SDRESET;
++ writel(con, host->base + S3C2410_SDICON);
++}
++
++static int s3cmci_get_ro(struct mmc_host *mmc)
++{
++ struct s3cmci_host *host = mmc_priv(mmc);
++ struct s3c24xx_mci_pdata *pdata = host->pdata;
++ int ret;
++
++ if (pdata->gpio_wprotect == 0)
++ return 0;
++
++ ret = s3c2410_gpio_getpin(pdata->gpio_wprotect);
++
++ if (pdata->wprotect_invert)
++ ret = !ret;
++
++ return ret;
++}
++
++static struct mmc_host_ops s3cmci_ops = {
++ .request = s3cmci_request,
++ .set_ios = s3cmci_set_ios,
++ .get_ro = s3cmci_get_ro,
++};
++
++static struct s3c24xx_mci_pdata s3cmci_def_pdata = {
++ /* This is currently here to avoid a number of if (host->pdata)
++ * checks. Any zero fields to ensure reaonable defaults are picked. */
++};
++
++static int __devinit s3cmci_probe(struct platform_device *pdev, int is2440)
++{
++ struct s3cmci_host *host;
++ struct mmc_host *mmc;
++ int ret;
++
++ mmc = mmc_alloc_host(sizeof(struct s3cmci_host), &pdev->dev);
++ if (!mmc) {
++ ret = -ENOMEM;
++ goto probe_out;
++ }
++
++ host = mmc_priv(mmc);
++ host->mmc = mmc;
++ host->pdev = pdev;
++ host->is2440 = is2440;
++
++ host->pdata = pdev->dev.platform_data;
++ if (!host->pdata) {
++ pdev->dev.platform_data = &s3cmci_def_pdata;
++ host->pdata = &s3cmci_def_pdata;
++ }
++
++ spin_lock_init(&host->complete_lock);
++ tasklet_init(&host->pio_tasklet, pio_tasklet, (unsigned long) host);
++
++ if (is2440) {
++ host->sdiimsk = S3C2440_SDIIMSK;
++ host->sdidata = S3C2440_SDIDATA;
++ host->clk_div = 1;
++ } else {
++ host->sdiimsk = S3C2410_SDIIMSK;
++ host->sdidata = S3C2410_SDIDATA;
++ host->clk_div = 2;
++ }
++
++ host->dodma = 0;
++ host->complete_what = COMPLETION_NONE;
++ host->pio_active = XFER_NONE;
++
++ host->dma = S3CMCI_DMA;
++
++ host->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (!host->mem) {
++ dev_err(&pdev->dev,
++ "failed to get io memory region resouce.\n");
++
++ ret = -ENOENT;
++ goto probe_free_host;
++ }
++
++ host->mem = request_mem_region(host->mem->start,
++ RESSIZE(host->mem), pdev->name);
++
++ if (!host->mem) {
++ dev_err(&pdev->dev, "failed to request io memory region.\n");
++ ret = -ENOENT;
++ goto probe_free_host;
++ }
++
++ host->base = ioremap(host->mem->start, RESSIZE(host->mem));
++ if (host->base == 0) {
++ dev_err(&pdev->dev, "failed to ioremap() io memory region.\n");
++ ret = -EINVAL;
++ goto probe_free_mem_region;
++ }
++
++ host->irq = platform_get_irq(pdev, 0);
++ if (host->irq == 0) {
++ dev_err(&pdev->dev, "failed to get interrupt resouce.\n");
++ ret = -EINVAL;
++ goto probe_iounmap;
++ }
++
++ if (request_irq(host->irq, s3cmci_irq, 0, DRIVER_NAME, host)) {
++ dev_err(&pdev->dev, "failed to request mci interrupt.\n");
++ ret = -ENOENT;
++ goto probe_iounmap;
++ }
++
++ /* We get spurious interrupts even when we have set the IMSK
++ * register to ignore everything, so use disable_irq() to make
++ * ensure we don't lock the system with un-serviceable requests. */
++
++ disable_irq(host->irq);
++
++ host->irq_cd = s3c2410_gpio_getirq(host->pdata->gpio_detect);
++
++ if (host->irq_cd >= 0) {
++ if (request_irq(host->irq_cd, s3cmci_irq_cd,
++ IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
++ DRIVER_NAME, host)) {
++ dev_err(&pdev->dev, "can't get card detect irq.\n");
++ ret = -ENOENT;
++ goto probe_free_irq;
++ }
++ } else {
++ dev_warn(&pdev->dev, "host detect has no irq available\n");
++ s3c2410_gpio_cfgpin(host->pdata->gpio_detect,
++ S3C2410_GPIO_INPUT);
++ }
++
++ if (host->pdata->gpio_wprotect)
++ s3c2410_gpio_cfgpin(host->pdata->gpio_wprotect,
++ S3C2410_GPIO_INPUT);
++
++ if (s3c2410_dma_request(S3CMCI_DMA, &s3cmci_dma_client, NULL) < 0) {
++ dev_err(&pdev->dev, "unable to get DMA channel.\n");
++ ret = -EBUSY;
++ goto probe_free_irq_cd;
++ }
++
++ host->clk = clk_get(&pdev->dev, "sdi");
++ if (IS_ERR(host->clk)) {
++ dev_err(&pdev->dev, "failed to find clock source.\n");
++ ret = PTR_ERR(host->clk);
++ host->clk = NULL;
++ goto probe_free_host;
++ }
++
++ ret = clk_enable(host->clk);
++ if (ret) {
++ dev_err(&pdev->dev, "failed to enable clock source.\n");
++ goto clk_free;
++ }
++
++ host->clk_rate = clk_get_rate(host->clk);
++
++ mmc->ops = &s3cmci_ops;
++ mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
++ mmc->caps = MMC_CAP_4_BIT_DATA;
++ mmc->f_min = host->clk_rate / (host->clk_div * 256);
++ mmc->f_max = host->clk_rate / host->clk_div;
++
++ if (host->pdata->ocr_avail)
++ mmc->ocr_avail = host->pdata->ocr_avail;
++
++ mmc->max_blk_count = 4095;
++ mmc->max_blk_size = 4095;
++ mmc->max_req_size = 4095 * 512;
++ mmc->max_seg_size = mmc->max_req_size;
++
++ mmc->max_phys_segs = 128;
++ mmc->max_hw_segs = 128;
++
++ dbg(host, dbg_debug,
++ "probe: mode:%s mapped mci_base:%p irq:%u irq_cd:%u dma:%u.\n",
++ (host->is2440?"2440":""),
++ host->base, host->irq, host->irq_cd, host->dma);
++
++ ret = mmc_add_host(mmc);
++ if (ret) {
++ dev_err(&pdev->dev, "failed to add mmc host.\n");
++ goto free_dmabuf;
++ }
++
++ platform_set_drvdata(pdev, mmc);
++ dev_info(&pdev->dev, "initialisation done.\n");
++
++ return 0;
++
++ free_dmabuf:
++ clk_disable(host->clk);
++
++ clk_free:
++ clk_put(host->clk);
++
++ probe_free_irq_cd:
++ if (host->irq_cd >= 0)
++ free_irq(host->irq_cd, host);
++
++ probe_free_irq:
++ free_irq(host->irq, host);
++
++ probe_iounmap:
++ iounmap(host->base);
++
++ probe_free_mem_region:
++ release_mem_region(host->mem->start, RESSIZE(host->mem));
++
++ probe_free_host:
++ mmc_free_host(mmc);
++ probe_out:
++ return ret;
++}
++
++static int __devexit s3cmci_remove(struct platform_device *pdev)
++{
++ struct mmc_host *mmc = platform_get_drvdata(pdev);
++ struct s3cmci_host *host = mmc_priv(mmc);
++
++ mmc_remove_host(mmc);
++
++ clk_disable(host->clk);
++ clk_put(host->clk);
++
++ tasklet_disable(&host->pio_tasklet);
++ s3c2410_dma_free(S3CMCI_DMA, &s3cmci_dma_client);
++
++ if (host->irq_cd >= 0)
++ free_irq(host->irq_cd, host);
++ free_irq(host->irq, host);
++
++ iounmap(host->base);
++ release_mem_region(host->mem->start, RESSIZE(host->mem));
++
++ mmc_free_host(mmc);
++ return 0;
++}
++
++static int __devinit s3cmci_probe_2410(struct platform_device *dev)
++{
++ return s3cmci_probe(dev, 0);
++}
++
++static int __devinit s3cmci_probe_2412(struct platform_device *dev)
++{
++ return s3cmci_probe(dev, 1);
++}
++
++static int __devinit s3cmci_probe_2440(struct platform_device *dev)
++{
++ return s3cmci_probe(dev, 1);
++}
++
++#ifdef CONFIG_PM
++
++static int s3cmci_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct mmc_host *mmc = platform_get_drvdata(dev);
++
++ return mmc_suspend_host(mmc, state);
++}
++
++static int s3cmci_resume(struct platform_device *dev)
++{
++ struct mmc_host *mmc = platform_get_drvdata(dev);
++
++ return mmc_resume_host(mmc);
++}
++
++#else /* CONFIG_PM */
++#define s3cmci_suspend NULL
++#define s3cmci_resume NULL
++#endif /* CONFIG_PM */
++
++
++static struct platform_driver s3cmci_driver_2410 = {
++ .driver.name = "s3c2410-sdi",
++ .driver.owner = THIS_MODULE,
++ .probe = s3cmci_probe_2410,
++ .remove = __devexit_p(s3cmci_remove),
++ .suspend = s3cmci_suspend,
++ .resume = s3cmci_resume,
++};
++
++static struct platform_driver s3cmci_driver_2412 = {
++ .driver.name = "s3c2412-sdi",
++ .driver.owner = THIS_MODULE,
++ .probe = s3cmci_probe_2412,
++ .remove = __devexit_p(s3cmci_remove),
++ .suspend = s3cmci_suspend,
++ .resume = s3cmci_resume,
++};
++
++static struct platform_driver s3cmci_driver_2440 = {
++ .driver.name = "s3c2440-sdi",
++ .driver.owner = THIS_MODULE,
++ .probe = s3cmci_probe_2440,
++ .remove = __devexit_p(s3cmci_remove),
++ .suspend = s3cmci_suspend,
++ .resume = s3cmci_resume,
++};
++
++
++static int __init s3cmci_init(void)
++{
++ platform_driver_register(&s3cmci_driver_2410);
++ platform_driver_register(&s3cmci_driver_2412);
++ platform_driver_register(&s3cmci_driver_2440);
++ return 0;
++}
++
++static void __exit s3cmci_exit(void)
++{
++ platform_driver_unregister(&s3cmci_driver_2410);
++ platform_driver_unregister(&s3cmci_driver_2412);
++ platform_driver_unregister(&s3cmci_driver_2440);
++}
++
++module_init(s3cmci_init);
++module_exit(s3cmci_exit);
++
++MODULE_DESCRIPTION("Samsung S3C MMC/SD Card Interface driver");
++MODULE_LICENSE("GPL v2");
++MODULE_AUTHOR("Thomas Kleffel <tk@maintech.de>");
++MODULE_ALIAS("platform:s3c2410-sdi");
++MODULE_ALIAS("platform:s3c2412-sdi");
++MODULE_ALIAS("platform:s3c2440-sdi");
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/mmc/host/s3cmci.h linux-2.6.25-m8050/drivers/mmc/host/s3cmci.h
+--- linux-git/drivers/mmc/host/s3cmci.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/mmc/host/s3cmci.h 2008-07-01 13:32:30.000000000 +0200
+@@ -0,0 +1,70 @@
++/*
++ * linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
++ *
++ * Copyright (C) 2004-2006 Thomas Kleffel, All Rights Reserved.
++ *
++ * 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.
++ */
++
++/* FIXME: DMA Resource management ?! */
++#define S3CMCI_DMA 0
++
++enum s3cmci_waitfor {
++ COMPLETION_NONE,
++ COMPLETION_FINALIZE,
++ COMPLETION_CMDSENT,
++ COMPLETION_RSPFIN,
++ COMPLETION_XFERFINISH,
++ COMPLETION_XFERFINISH_RSPFIN,
++};
++
++struct s3cmci_host {
++ struct platform_device *pdev;
++ struct s3c24xx_mci_pdata *pdata;
++ struct mmc_host *mmc;
++ struct resource *mem;
++ struct clk *clk;
++ void __iomem *base;
++ int irq;
++ int irq_cd;
++ int dma;
++
++ unsigned long clk_rate;
++ unsigned long clk_div;
++ unsigned long real_rate;
++ u8 prescaler;
++
++ int is2440;
++ unsigned sdiimsk;
++ unsigned sdidata;
++ int dodma;
++ int dmatogo;
++
++ struct mmc_request *mrq;
++ int cmd_is_stop;
++
++ spinlock_t complete_lock;
++ enum s3cmci_waitfor complete_what;
++
++ int dma_complete;
++
++ u32 pio_sgptr;
++ u32 pio_words;
++ u32 pio_count;
++ u32 *pio_ptr;
++#define XFER_NONE 0
++#define XFER_READ 1
++#define XFER_WRITE 2
++ u32 pio_active;
++
++ int bus_width;
++
++ char dbgmsg_cmd[301];
++ char dbgmsg_dat[301];
++ char *status;
++
++ unsigned int ccnt, dcnt;
++ struct tasklet_struct pio_tasklet;
++};
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/net/wireless/libertas/if_sdio.c linux-2.6.25-m8050/drivers/net/wireless/libertas/if_sdio.c
+--- linux-git/drivers/net/wireless/libertas/if_sdio.c 2008-11-10 12:20:26.000000000 +0100
++++ linux-2.6.25-m8050/drivers/net/wireless/libertas/if_sdio.c 2008-07-11 16:08:33.000000000 +0200
+@@ -248,13 +248,16 @@
+ u8 status;
+ u16 size, type, chunk;
+ unsigned long timeout;
++ int padsize;
+
+ lbs_deb_enter(LBS_DEB_SDIO);
+
+ size = if_sdio_read_scratch(card, &ret);
+ if (ret)
+ goto out;
++// printk(KERN_INFO "libertas_sdio: packet size card-to-host %d\n",size);
+
++
+ if (size < 4) {
+ lbs_deb_sdio("invalid packet size (%d bytes) from firmware\n",
+ (int)size);
+@@ -262,6 +265,12 @@
+ goto out;
+ }
+
++ padsize= 0x04 - (size % 0x04);
++ if (padsize) {
++ size=size +padsize;
++// printk(KERN_INFO "libertas_sdio: adjusting packet size card-to-host %d\n",size);
++ }
++
+ timeout = jiffies + HZ;
+ while (1) {
+ status = sdio_readb(card->func, IF_SDIO_STATUS, &ret);
+@@ -379,6 +388,8 @@
+ mdelay(1);
+ }
+
++// printk(KERN_INFO "libertas_sdio: packet size host-to-card-worker %d\n",packet->nb);
++
+ ret = sdio_writesb(card->func, card->ioport,
+ packet->buffer, packet->nb);
+ if (ret)
+@@ -696,6 +707,7 @@
+ struct if_sdio_packet *packet, *cur;
+ u16 size;
+ unsigned long flags;
++ int padsize;
+
+ lbs_deb_enter_args(LBS_DEB_SDIO, "type %d, bytes %d", type, nb);
+
+@@ -711,6 +723,14 @@
+ * goes suicidal.
+ */
+ size = nb + 4;
++ padsize = 0x04 - (size % 0x04);
++
++// printk(KERN_INFO "libertas_sdio: packet size host-to-card %d\n",size);
++
++ if (padsize) {
++ size = size + padsize;
++// printk(KERN_INFO "libertas_sdio: adjusting packet size card-to-host %d\n",size);
++ }
+ if ((size > card->func->cur_blksize) || (size > 512)) {
+ size = (size + card->func->cur_blksize - 1) /
+ card->func->cur_blksize * card->func->cur_blksize;
+@@ -729,13 +749,19 @@
+ /*
+ * SDIO specific header.
+ */
+- packet->buffer[0] = (nb + 4) & 0xff;
+- packet->buffer[1] = ((nb + 4) >> 8) & 0xff;
++ packet->buffer[0] = (nb + 4 + padsize) & 0xff;
++ packet->buffer[1] = ((nb + 4 + padsize) >> 8) & 0xff;
+ packet->buffer[2] = type;
+ packet->buffer[3] = 0;
+
+ memcpy(packet->buffer + 4, buf, nb);
+
++ if (padsize != 0 ) {
++ int padcount;
++ for (padcount=0; padcount < padsize ; padcount++) {
++ packet->buffer[size-padcount]=0;
++ }
++ }
+ spin_lock_irqsave(&card->lock, flags);
+
+ if (!card->packets)
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/serial/s3c2410.c linux-2.6.25-m8050/drivers/serial/s3c2410.c
+--- linux-git/drivers/serial/s3c2410.c 2008-11-10 12:20:27.000000000 +0100
++++ linux-2.6.25-m8050/drivers/serial/s3c2410.c 2008-10-10 18:07:13.000000000 +0200
+@@ -72,6 +72,7 @@
+ #include <linux/serial.h>
+ #include <linux/delay.h>
+ #include <linux/clk.h>
++#include <linux/leds.h>
+
+ #include <asm/io.h>
+ #include <asm/irq.h>
+@@ -315,19 +316,32 @@
+ struct s3c24xx_uart_port *ourport = dev_id;
+ struct uart_port *port = &ourport->port;
+ struct tty_struct *tty = port->info->tty;
++ struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);
+ unsigned int ufcon, ch, flag, ufstat, uerstat;
+ int max_count = 64;
+
++ if (cfg->hwport==0) {
++ printk("uart0 irq!!\n");
++ scanner_data();
++ }
+ while (max_count-- > 0) {
+ ufcon = rd_regl(port, S3C2410_UFCON);
+ ufstat = rd_regl(port, S3C2410_UFSTAT);
+
+- if (s3c24xx_serial_rx_fifocnt(ourport, ufstat) == 0)
++ if (s3c24xx_serial_rx_fifocnt(ourport, ufstat) == 0){
++ if (cfg->hwport==0) {
++ printk("rx_fifocnt is 0\n");
++ }
+ break;
++ }
+
+ uerstat = rd_regl(port, S3C2410_UERSTAT);
+ ch = rd_regb(port, S3C2410_URXH);
+
++ if (cfg->hwport==0) {
++ printk("received %c(0x%x)\n",ch,ch);
++ }
++
+ if (port->flags & UPF_CONS_FLOW) {
+ int txe = s3c24xx_serial_txempty_nofifo(port);
+
+@@ -458,11 +472,28 @@
+ static unsigned int s3c24xx_serial_get_mctrl(struct uart_port *port)
+ {
+ unsigned int umstat = rd_regb(port,S3C2410_UMSTAT);
++ struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);
+
+- if (umstat & S3C2410_UMSTAT_CTS)
++ if (umstat & S3C2410_UMSTAT_CTS) {
++ if( cfg->ri_pin != NULL ) {
++ if ( s3c2410_gpio_getpin(cfg->ri_pin))
++ return TIOCM_CAR | TIOCM_DSR | TIOCM_CTS;
++ else
++ return TIOCM_CAR | TIOCM_DSR | TIOCM_CTS | TIOCM_RI;
++ }
++ else
+ return TIOCM_CAR | TIOCM_DSR | TIOCM_CTS;
+- else
++ }
++ else {
++ if( cfg->ri_pin != NULL ) {
++ if ( s3c2410_gpio_getpin(cfg->ri_pin))
++ return TIOCM_CAR | TIOCM_DSR;
++ else
++ return TIOCM_CAR | TIOCM_DSR | TIOCM_RI;
++ }
++ else
+ return TIOCM_CAR | TIOCM_DSR;
++ }
+ }
+
+ static void s3c24xx_serial_set_mctrl(struct uart_port *port, unsigned int mctrl)
+@@ -1025,6 +1056,10 @@
+
+ dbg("s3c24xx_serial_init_port: port=%p, platdev=%p\n", port, platdev);
+
++ /* turn on the lcd backlight and turn off green led */
++ s3c2410_gpio_setpin(S3C2410_GPB3, 1);
++ s3c2410_gpio_setpin(S3C2410_GPG4, 0);
++
+ if (platdev == NULL)
+ return -ENODEV;
+
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/spi/spi_s3c24xx.c linux-2.6.25-m8050/drivers/spi/spi_s3c24xx.c
+--- linux-git/drivers/spi/spi_s3c24xx.c 2008-11-10 12:20:27.000000000 +0100
++++ linux-2.6.25-m8050/drivers/spi/spi_s3c24xx.c 2008-06-11 11:30:43.000000000 +0200
+@@ -270,6 +270,7 @@
+ /* setup the master state. */
+
+ master->num_chipselect = hw->pdata->num_cs;
++ master->bus_num = pdev->id;
+
+ /* setup the state for the bitbang driver */
+
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/video/logo/Kconfig linux-2.6.25-m8050/drivers/video/logo/Kconfig
+--- linux-git/drivers/video/logo/Kconfig 2008-11-10 12:20:29.000000000 +0100
++++ linux-2.6.25-m8050/drivers/video/logo/Kconfig 2008-08-13 12:19:47.000000000 +0200
+@@ -72,4 +72,9 @@
+ depends on M32R
+ default y
+
++config LOGO_M8050_CLUT224
++ bool "224-color AML Linux logo"
++ depends on MACH_AML_M8050
++ default y
++
+ endif # LOGO
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/video/logo/logo.c linux-2.6.25-m8050/drivers/video/logo/logo.c
+--- linux-git/drivers/video/logo/logo.c 2008-11-10 12:20:29.000000000 +0100
++++ linux-2.6.25-m8050/drivers/video/logo/logo.c 2008-08-13 13:52:48.000000000 +0200
+@@ -33,6 +33,7 @@
+ extern const struct linux_logo logo_superh_vga16;
+ extern const struct linux_logo logo_superh_clut224;
+ extern const struct linux_logo logo_m32r_clut224;
++extern const struct linux_logo logo_m8050_clut224;
+
+ static int nologo;
+ module_param(nologo, bool, 0);
+@@ -105,6 +106,10 @@
+ /* M32R Linux logo */
+ logo = &logo_m32r_clut224;
+ #endif
++#ifdef CONFIG_LOGO_M8050_CLUT224
++ /* M8050 AML logo */
++ logo = &logo_m8050_clut224;
++#endif
+ }
+ return logo;
+ }
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/video/logo/logo_m8050_clut224.ppm linux-2.6.25-m8050/drivers/video/logo/logo_m8050_clut224.ppm
+--- linux-git/drivers/video/logo/logo_m8050_clut224.ppm 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/drivers/video/logo/logo_m8050_clut224.ppm 2008-08-14 18:58:49.000000000 +0200
+@@ -0,0 +1,230404 @@
++P3
++# CREATOR: The GIMP's PNM Filter Version 1.0
++240 320
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++11
++6
++0
++43
++22
++0
++43
++22
++0
++75
++38
++0
++84
++42
++0
++84
++42
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++139
++69
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++173
++87
++0
++173
++87
++0
++152
++76
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++87
++43
++0
++87
++43
++0
++66
++33
++0
++44
++22
++0
++11
++6
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++43
++22
++0
++53
++26
++0
++84
++42
++0
++107
++54
++0
++129
++64
++0
++152
++76
++0
++174
++87
++0
++177
++88
++0
++179
++89
++0
++180
++90
++0
++182
++91
++0
++185
++93
++0
++186
++93
++0
++189
++94
++0
++190
++95
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++195
++98
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++185
++93
++0
++183
++92
++0
++182
++91
++0
++180
++90
++0
++179
++89
++0
++166
++83
++0
++132
++66
++0
++88
++44
++0
++56
++28
++0
++11
++6
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++43
++22
++0
++65
++32
++0
++87
++43
++0
++130
++65
++0
++152
++76
++0
++177
++88
++0
++182
++91
++0
++185
++93
++0
++189
++94
++0
++194
++97
++0
++196
++98
++0
++200
++100
++0
++205
++103
++0
++208
++104
++0
++213
++106
++0
++217
++108
++0
++218
++109
++0
++221
++111
++0
++223
++112
++0
++225
++112
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++231
++116
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++222
++111
++0
++221
++111
++0
++219
++110
++0
++218
++109
++0
++217
++108
++0
++213
++106
++0
++211
++106
++0
++210
++105
++0
++206
++103
++0
++205
++103
++0
++200
++100
++0
++196
++98
++0
++194
++97
++0
++190
++95
++0
++186
++93
++0
++182
++91
++0
++180
++90
++0
++133
++67
++0
++79
++40
++0
++23
++12
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++43
++22
++0
++87
++43
++0
++107
++54
++0
++143
++72
++0
++180
++90
++0
++185
++93
++0
++190
++95
++0
++195
++98
++0
++200
++100
++0
++206
++103
++0
++213
++106
++0
++218
++109
++0
++225
++112
++0
++230
++115
++0
++234
++117
++0
++237
++123
++9
++238
++129
++21
++238
++129
++21
++239
++139
++39
++239
++139
++39
++239
++139
++39
++239
++139
++39
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++239
++139
++39
++239
++139
++39
++239
++139
++39
++239
++139
++39
++238
++129
++21
++238
++129
++21
++238
++129
++21
++237
++123
++9
++237
++123
++9
++235
++118
++0
++233
++117
++0
++230
++115
++0
++229
++114
++0
++226
++113
++0
++225
++112
++0
++222
++111
++0
++219
++110
++0
++217
++108
++0
++213
++106
++0
++208
++104
++0
++205
++103
++0
++196
++98
++0
++193
++96
++0
++186
++93
++0
++183
++92
++0
++137
++68
++0
++68
++34
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++32
++16
++0
++66
++33
++0
++110
++55
++0
++146
++73
++0
++183
++92
++0
++190
++95
++0
++196
++98
++0
++205
++103
++0
++210
++105
++0
++218
++109
++0
++225
++112
++0
++231
++116
++0
++236
++118
++1
++238
++129
++21
++239
++139
++39
++239
++139
++39
++240
++151
++63
++240
++151
++63
++240
++151
++63
++240
++151
++63
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++240
++151
++63
++242
++167
++91
++240
++151
++63
++240
++151
++63
++240
++151
++63
++239
++139
++39
++239
++139
++39
++238
++129
++21
++238
++129
++21
++237
++123
++9
++237
++123
++9
++236
++118
++1
++234
++117
++0
++233
++117
++0
++231
++116
++0
++229
++114
++0
++226
++113
++0
++223
++112
++0
++219
++110
++0
++213
++106
++0
++207
++104
++0
++200
++100
++0
++194
++97
++0
++189
++94
++0
++173
++87
++0
++93
++46
++0
++12
++6
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++32
++16
++0
++79
++39
++0
++124
++62
++0
++173
++87
++0
++193
++96
++0
++199
++99
++0
++206
++103
++0
++217
++108
++0
++225
++112
++0
++231
++116
++0
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++240
++151
++63
++240
++151
++63
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++211
++151
++92
++211
++151
++92
++183
++141
++99
++183
++141
++99
++183
++141
++99
++163
++132
++100
++138
++122
++105
++138
++122
++105
++138
++122
++105
++138
++122
++105
++112
++112
++111
++112
++112
++111
++106
++106
++106
++106
++106
++106
++106
++106
++106
++106
++106
++106
++112
++112
++111
++106
++106
++106
++112
++112
++111
++106
++106
++106
++112
++112
++111
++106
++106
++106
++106
++106
++106
++138
++122
++105
++138
++122
++105
++138
++122
++105
++163
++132
++100
++183
++141
++99
++163
++132
++100
++211
++151
++92
++211
++151
++92
++242
++167
++91
++242
++167
++91
++242
++167
++91
++242
++167
++91
++240
++151
++63
++240
++151
++63
++240
++151
++63
++239
++139
++39
++239
++139
++39
++238
++129
++21
++237
++123
++9
++237
++123
++9
++236
++118
++1
++235
++118
++0
++234
++117
++0
++233
++117
++0
++231
++116
++0
++229
++114
++0
++225
++112
++0
++219
++110
++0
++213
++106
++0
++206
++103
++0
++199
++99
++0
++193
++96
++0
++177
++88
++0
++71
++36
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++34
++17
++0
++81
++40
++0
++126
++63
++0
++179
++90
++0
++196
++98
++0
++206
++103
++0
++217
++108
++0
++225
++112
++0
++234
++117
++0
++237
++123
++9
++239
++139
++39
++239
++139
++39
++240
++151
++63
++240
++151
++63
++242
++167
++91
++242
++167
++91
++211
++151
++92
++211
++151
++92
++163
++132
++100
++163
++132
++100
++138
++122
++105
++138
++122
++105
++106
++106
++106
++106
++106
++106
++106
++106
++106
++103
++103
++102
++98
++98
++97
++98
++98
++97
++91
++91
++91
++91
++91
++91
++91
++91
++91
++84
++84
++83
++84
++84
++83
++84
++84
++83
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++71
++70
++69
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++76
++84
++84
++83
++84
++84
++83
++84
++84
++83
++91
++91
++91
++91
++91
++91
++98
++98
++97
++98
++98
++97
++122
++105
++89
++163
++132
++100
++183
++141
++99
++211
++151
++92
++242
++167
++91
++242
++167
++91
++240
++151
++63
++240
++151
++63
++239
++139
++39
++239
++139
++39
++238
++129
++21
++237
++123
++9
++237
++123
++9
++236
++118
++1
++236
++118
++1
++235
++118
++0
++234
++117
++0
++234
++117
++0
++231
++116
++0
++229
++114
++0
++225
++112
++0
++217
++108
++0
++210
++105
++0
++200
++100
++0
++194
++97
++0
++143
++72
++0
++24
++12
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++12
++5
++0
++68
++34
++0
++117
++59
++0
++170
++85
++0
++203
++101
++0
++211
++106
++0
++221
++111
++0
++231
++116
++0
++237
++123
++9
++239
++139
++39
++239
++139
++39
++240
++151
++63
++242
++167
++91
++242
++167
++91
++211
++151
++92
++183
++141
++99
++163
++132
++100
++138
++122
++105
++112
++112
++111
++106
++106
++106
++103
++103
++102
++98
++98
++97
++98
++98
++97
++91
++91
++91
++91
++91
++91
++84
++84
++83
++76
++76
++76
++76
++76
++76
++71
++70
++69
++66
++66
++66
++61
++61
++61
++55
++55
++55
++55
++55
++55
++52
++52
++52
++47
++47
++47
++47
++47
++47
++41
++41
++41
++28
++28
++28
++13
++13
++13
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++4
++4
++4
++13
++13
++13
++28
++28
++28
++41
++41
++41
++41
++41
++41
++47
++47
++47
++52
++52
++52
++55
++55
++55
++61
++61
++61
++66
++66
++66
++71
++70
++69
++76
++76
++76
++76
++76
++76
++84
++84
++83
++84
++84
++83
++98
++98
++97
++151
++115
++79
++183
++141
++99
++242
++167
++91
++240
++151
++63
++240
++151
++63
++240
++151
++63
++239
++139
++39
++238
++129
++21
++237
++123
++9
++237
++123
++9
++236
++118
++1
++236
++118
++1
++235
++118
++0
++235
++118
++0
++234
++117
++0
++233
++117
++0
++230
++115
++0
++225
++112
++0
++218
++109
++0
++208
++104
++0
++200
++100
++0
++182
++91
++0
++75
++37
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++35
++18
++0
++84
++42
++0
++146
++73
++0
++205
++103
++0
++213
++106
++0
++225
++112
++0
++234
++117
++0
++238
++129
++21
++239
++139
++39
++240
++151
++63
++240
++151
++63
++211
++151
++92
++183
++141
++99
++163
++132
++100
++138
++122
++105
++106
++106
++106
++98
++98
++97
++103
++103
++102
++98
++98
++97
++91
++91
++91
++84
++84
++83
++84
++84
++83
++76
++76
++76
++66
++66
++66
++66
++66
++66
++61
++61
++61
++52
++52
++52
++47
++47
++47
++28
++28
++28
++13
++13
++13
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++4
++4
++4
++13
++13
++13
++35
++35
++35
++47
++47
++47
++52
++52
++52
++61
++61
++61
++66
++66
++66
++76
++76
++76
++76
++76
++76
++91
++91
++91
++151
++115
++79
++211
++151
++92
++240
++151
++63
++240
++151
++63
++239
++139
++39
++239
++139
++39
++238
++129
++21
++237
++123
++9
++236
++118
++1
++236
++118
++1
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++231
++116
++0
++229
++114
++0
++222
++111
++0
++214
++107
++0
++205
++103
++0
++200
++100
++0
++76
++37
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++36
++18
++0
++110
++55
++0
++179
++89
++0
++213
++106
++0
++222
++111
++0
++233
++117
++0
++238
++129
++21
++239
++139
++39
++240
++151
++63
++211
++151
++92
++183
++141
++99
++163
++132
++100
++138
++122
++105
++98
++98
++97
++98
++98
++97
++98
++98
++97
++91
++91
++91
++84
++84
++83
++84
++84
++83
++76
++76
++76
++66
++66
++66
++61
++61
++61
++55
++55
++55
++47
++47
++47
++19
++19
++19
++8
++8
++8
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++8
++8
++8
++35
++35
++35
++41
++41
++41
++55
++55
++55
++61
++61
++61
++71
++70
++69
++76
++76
++76
++116
++94
++73
++211
++151
++92
++240
++151
++63
++239
++139
++39
++239
++139
++39
++238
++129
++21
++237
++123
++9
++237
++123
++9
++236
++118
++1
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++231
++116
++0
++226
++113
++0
++219
++110
++0
++210
++105
++0
++205
++103
++0
++76
++38
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++63
++31
++0
++126
++63
++0
++196
++98
++0
++219
++110
++0
++230
++115
++0
++237
++123
++9
++239
++139
++39
++240
++151
++63
++186
++120
++54
++163
++132
++100
++122
++105
++89
++98
++98
++97
++91
++91
++91
++91
++91
++91
++89
++84
++79
++84
++84
++83
++76
++76
++76
++71
++70
++69
++61
++61
++61
++55
++55
++55
++47
++47
++47
++19
++19
++19
++8
++8
++8
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++8
++8
++8
++35
++35
++35
++47
++47
++47
++55
++55
++55
++61
++61
++61
++66
++66
++66
++116
++94
++73
++240
++151
++63
++239
++139
++39
++239
++139
++39
++238
++129
++21
++237
++123
++9
++237
++123
++9
++236
++118
++1
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++233
++117
++0
++229
++114
++0
++221
++111
++0
++213
++106
++0
++208
++104
++0
++53
++26
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++50
++25
++0
++130
++65
++0
++203
++101
++0
++225
++112
++0
++235
++118
++0
++238
++129
++21
++239
++139
++39
++186
++120
++54
++151
++115
++79
++122
++105
++89
++91
++91
++91
++91
++91
++91
++89
++84
++79
++84
++84
++83
++76
++76
++76
++71
++70
++69
++61
++61
++61
++55
++55
++55
++47
++47
++47
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++4
++4
++4
++28
++28
++28
++41
++41
++41
++47
++47
++47
++55
++55
++55
++66
++66
++66
++186
++120
++54
++239
++139
++39
++239
++139
++39
++238
++129
++21
++237
++123
++9
++236
++118
++1
++236
++118
++1
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++233
++117
++0
++229
++114
++0
++222
++111
++0
++217
++108
++0
++186
++93
++0
++14
++7
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++39
++19
++0
++117
++59
++0
++190
++95
++0
++229
++114
++0
++237
++123
++9
++238
++129
++21
++186
++120
++54
++151
++115
++79
++116
++94
++73
++84
++84
++83
++84
++84
++83
++84
++84
++83
++76
++76
++76
++76
++76
++76
++66
++66
++66
++61
++61
++61
++47
++47
++47
++28
++28
++28
++8
++8
++8
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++4
++4
++4
++28
++28
++28
++41
++41
++41
++47
++47
++47
++52
++52
++52
++142
++98
++54
++239
++139
++39
++238
++129
++21
++238
++129
++21
++237
++123
++9
++236
++118
++1
++236
++118
++1
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++233
++117
++0
++230
++115
++0
++225
++112
++0
++219
++110
++0
++110
++55
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++12
++6
++0
++95
++48
++0
++180
++90
++0
++231
++116
++0
++237
++123
++9
++207
++126
++44
++142
++98
++54
++116
++94
++73
++76
++76
++76
++84
++84
++83
++76
++76
++76
++76
++76
++76
++71
++70
++69
++66
++66
++66
++55
++55
++55
++47
++47
++47
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++13
++13
++13
++28
++28
++28
++41
++41
++41
++41
++41
++41
++113
++77
++43
++239
++139
++39
++238
++129
++21
++237
++123
++9
++237
++123
++9
++236
++118
++1
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++233
++117
++0
++230
++115
++0
++225
++112
++0
++208
++104
++0
++14
++7
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++68
++34
++0
++154
++77
++0
++231
++116
++0
++237
++123
++9
++178
++100
++23
++113
++77
++43
++71
++70
++69
++66
++66
++66
++71
++70
++69
++76
++76
++76
++71
++70
++69
++61
++61
++61
++55
++55
++55
++47
++47
++47
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++8
++8
++8
++19
++19
++19
++28
++28
++28
++35
++35
++35
++140
++82
++22
++238
++129
++21
++237
++123
++9
++237
++123
++9
++236
++118
++1
++236
++118
++1
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++233
++117
++0
++230
++115
++0
++229
++114
++0
++87
++43
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++29
++14
++0
++111
++56
++0
++203
++101
++0
++211
++106
++0
++152
++90
++27
++113
++77
++43
++55
++55
++55
++61
++61
++61
++66
++66
++66
++66
++66
++66
++61
++61
++61
++55
++55
++55
++47
++47
++47
++28
++28
++28
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++8
++8
++8
++19
++19
++19
++19
++19
++19
++19
++19
++19
++178
++100
++23
++237
++123
++9
++237
++123
++9
++236
++118
++1
++236
++118
++1
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++231
++116
++0
++158
++79
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++56
++28
++0
++158
++79
++0
++207
++104
++0
++140
++82
++22
++72
++53
++34
++47
++47
++47
++55
++55
++55
++55
++55
++55
++61
++61
++61
++55
++55
++55
++47
++47
++47
++35
++35
++35
++13
++13
++13
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++8
++8
++8
++13
++13
++13
++13
++13
++13
++49
++27
++6
++236
++118
++1
++236
++118
++1
++236
++118
++1
++236
++118
++1
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++221
++111
++0
++2
++1
++0
++4
++4
++4
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++14
++7
++0
++87
++43
++0
++177
++88
++0
++138
++75
++12
++64
++44
++24
++35
++35
++35
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++41
++41
++41
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++8
++8
++8
++4
++4
++4
++0
++0
++0
++146
++73
++0
++233
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++236
++118
++1
++237
++123
++9
++237
++123
++9
++8
++8
++8
++8
++8
++8
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++59
++30
++0
++121
++63
++5
++56
++35
++14
++28
++28
++28
++35
++35
++35
++41
++41
++41
++41
++41
++41
++41
++41
++41
++35
++35
++35
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++0
++0
++0
++0
++0
++0
++71
++36
++0
++229
++114
++0
++231
++116
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++237
++123
++9
++237
++123
++9
++44
++30
++16
++13
++13
++13
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++4
++4
++4
++8
++8
++8
++19
++19
++19
++28
++28
++28
++28
++28
++28
++35
++35
++35
++28
++28
++28
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++222
++111
++0
++229
++114
++0
++233
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++238
++129
++21
++77
++50
++23
++19
++19
++19
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++61
++61
++61
++98
++98
++97
++98
++98
++97
++98
++98
++97
++103
++103
++102
++103
++103
++102
++106
++106
++106
++106
++106
++106
++98
++98
++97
++98
++98
++97
++103
++103
++102
++106
++106
++106
++112
++112
++111
++112
++112
++111
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++52
++52
++52
++52
++52
++52
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++52
++52
++52
++52
++52
++52
++55
++55
++55
++41
++41
++41
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++52
++52
++52
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++47
++52
++52
++52
++52
++52
++52
++55
++55
++55
++41
++41
++41
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++41
++41
++41
++103
++103
++102
++98
++98
++97
++98
++98
++97
++98
++98
++97
++98
++98
++97
++98
++98
++97
++98
++98
++97
++98
++98
++97
++98
++98
++97
++103
++103
++102
++106
++106
++106
++112
++112
++111
++61
++61
++61
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++177
++88
++0
++225
++112
++0
++231
++116
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++238
++129
++21
++28
++28
++28
++19
++19
++19
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++47
++47
++47
++190
++190
++190
++190
++190
++190
++190
++190
++190
++203
++203
++203
++190
++190
++190
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++219
++219
++219
++225
++225
++225
++233
++233
++233
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++203
++203
++203
++203
++203
++203
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++203
++203
++203
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++52
++52
++52
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++203
++203
++203
++203
++203
++203
++203
++203
++203
++212
++212
++212
++230
++230
++230
++167
++167
++167
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++103
++103
++102
++203
++203
++203
++203
++203
++203
++190
++190
++190
++190
++190
++190
++203
++203
++203
++190
++190
++190
++203
++203
++203
++203
++203
++203
++203
++203
++203
++212
++212
++212
++225
++225
++225
++233
++233
++233
++106
++106
++106
++0
++0
++0
++0
++0
++0
++4
++4
++4
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++158
++79
++0
++219
++110
++0
++229
++114
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++237
++123
++9
++238
++129
++21
++238
++129
++21
++239
++139
++39
++35
++35
++35
++28
++28
++28
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++35
++35
++35
++190
++190
++190
++190
++190
++190
++203
++203
++203
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++225
++225
++225
++230
++230
++230
++238
++238
++238
++212
++212
++212
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++41
++41
++41
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++203
++203
++203
++212
++212
++212
++212
++212
++212
++203
++203
++203
++212
++212
++212
++212
++212
++212
++212
++212
++212
++219
++219
++219
++225
++225
++225
++233
++233
++233
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++122
++121
++121
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++203
++203
++203
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++219
++219
++219
++230
++230
++230
++238
++238
++238
++146
++146
++146
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++167
++167
++167
++203
++203
++203
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++219
++219
++219
++225
++225
++225
++233
++233
++233
++242
++242
++242
++61
++61
++61
++2
++1
++0
++8
++8
++8
++8
++8
++8
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++156
++78
++0
++217
++108
++0
++229
++114
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++239
++139
++39
++207
++126
++44
++35
++35
++35
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++13
++13
++13
++167
++167
++167
++203
++203
++203
++203
++203
++203
++212
++212
++212
++219
++219
++219
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++230
++230
++230
++233
++233
++233
++238
++238
++238
++242
++242
++242
++248
++248
++248
++190
++190
++190
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++84
++84
++83
++212
++212
++212
++212
++212
++212
++212
++212
++212
++219
++219
++219
++219
++219
++219
++225
++225
++225
++225
++225
++225
++219
++219
++219
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++233
++233
++233
++238
++238
++238
++242
++242
++242
++13
++13
++13
++0
++0
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++28
++28
++28
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++219
++219
++219
++219
++219
++219
++225
++225
++225
++225
++225
++225
++219
++219
++219
++225
++225
++225
++219
++219
++219
++225
++225
++225
++230
++230
++230
++238
++238
++238
++242
++242
++242
++248
++248
++248
++112
++112
++111
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++203
++203
++203
++212
++212
++212
++212
++212
++212
++219
++219
++219
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++225
++230
++230
++230
++238
++238
++238
++242
++242
++242
++248
++248
++248
++254
++254
++254
++28
++28
++28
++13
++13
++13
++19
++19
++19
++13
++13
++13
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++179
++89
++0
++214
++107
++0
++226
++113
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++239
++139
++39
++186
++120
++54
++41
++41
++41
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++8
++8
++8
++167
++167
++167
++203
++203
++203
++212
++212
++212
++219
++219
++219
++225
++225
++225
++233
++233
++233
++238
++238
++238
++238
++238
++238
++242
++242
++242
++242
++242
++242
++242
++242
++242
++242
++242
++242
++245
++245
++245
++251
++251
++251
++255
++255
++255
++255
++255
++255
++146
++146
++146
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++112
++112
++111
++212
++212
++212
++219
++219
++219
++225
++225
++225
++230
++230
++230
++233
++233
++233
++238
++238
++238
++238
++238
++238
++238
++238
++238
++238
++238
++238
++233
++233
++233
++238
++238
++238
++238
++238
++238
++242
++242
++242
++242
++242
++242
++245
++245
++245
++248
++248
++248
++61
++61
++61
++0
++0
++0
++4
++4
++4
++4
++4
++4
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++122
++121
++121
++203
++203
++203
++212
++212
++212
++219
++219
++219
++230
++230
++230
++233
++233
++233
++233
++233
++233
++238
++238
++238
++238
++238
++238
++238
++238
++238
++238
++238
++238
++238
++238
++238
++242
++242
++242
++245
++245
++245
++251
++251
++251
++255
++255
++255
++255
++255
++255
++76
++76
++76
++4
++4
++4
++0
++0
++0
++0
++0
++0
++13
++13
++13
++219
++219
++219
++219
++219
++219
++225
++225
++225
++230
++230
++230
++238
++238
++238
++238
++238
++238
++242
++242
++242
++242
++242
++242
++245
++245
++245
++251
++251
++251
++255
++255
++255
++255
++255
++255
++225
++225
++225
++28
++28
++28
++28
++28
++28
++19
++19
++19
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++205
++103
++0
++214
++107
++0
++229
++114
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++236
++118
++1
++238
++129
++21
++239
++139
++39
++239
++139
++39
++142
++98
++54
++41
++41
++41
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++146
++146
++146
++203
++203
++203
++212
++212
++212
++219
++219
++219
++230
++230
++230
++238
++238
++238
++245
++245
++245
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++251
++251
++251
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++167
++167
++167
++225
++225
++225
++230
++230
++230
++238
++238
++238
++242
++242
++242
++245
++245
++245
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++251
++251
++251
++253
++253
++253
++254
++254
++254
++254
++254
++254
++66
++66
++66
++4
++4
++4
++8
++8
++8
++8
++8
++8
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++28
++28
++28
++212
++212
++212
++212
++212
++212
++225
++225
++225
++233
++233
++233
++242
++242
++242
++245
++245
++245
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++41
++41
++41
++13
++13
++13
++0
++0
++0
++0
++0
++0
++55
++55
++55
++219
++219
++219
++225
++225
++225
++233
++233
++233
++242
++242
++242
++245
++245
++245
++248
++248
++248
++251
++251
++251
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++35
++35
++35
++35
++35
++35
++28
++28
++28
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++36
++18
++0
++205
++103
++0
++217
++108
++0
++229
++114
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++66
++66
++66
++41
++41
++41
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++122
++121
++121
++203
++203
++203
++203
++203
++203
++219
++219
++219
++230
++230
++230
++242
++242
++242
++248
++248
++248
++251
++251
++251
++253
++253
++253
++254
++254
++254
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++28
++28
++28
++2
++1
++0
++0
++0
++0
++0
++0
++0
++190
++190
++190
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++112
++112
++111
++8
++8
++8
++8
++8
++8
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++122
++121
++121
++212
++212
++212
++219
++219
++219
++230
++230
++230
++242
++242
++242
++248
++248
++248
++253
++253
++253
++253
++253
++253
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++35
++35
++35
++13
++13
++13
++0
++0
++0
++0
++0
++0
++112
++112
++111
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++41
++41
++41
++35
++35
++35
++28
++28
++28
++13
++13
++13
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++75
++37
++0
++205
++103
++0
++218
++109
++0
++230
++115
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++236
++118
++1
++237
++123
++9
++239
++139
++39
++239
++139
++39
++207
++126
++44
++61
++61
++61
++41
++41
++41
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++76
++76
++76
++203
++203
++203
++203
++203
++203
++219
++219
++219
++230
++230
++230
++242
++242
++242
++245
++245
++245
++251
++251
++251
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++61
++61
++61
++19
++19
++19
++0
++0
++0
++0
++0
++0
++0
++0
++0
++225
++225
++225
++225
++225
++225
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++8
++8
++8
++8
++8
++8
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++13
++13
++13
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++146
++146
++146
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++112
++112
++111
++41
++41
++41
++35
++35
++35
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++122
++62
++0
++205
++103
++0
++219
++110
++0
++231
++116
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++116
++94
++73
++55
++55
++55
++35
++35
++35
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++71
++70
++69
++203
++203
++203
++203
++203
++203
++219
++219
++219
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++35
++35
++35
++19
++19
++19
++0
++0
++0
++0
++0
++0
++55
++55
++55
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++8
++8
++8
++8
++8
++8
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++103
++103
++102
++212
++212
++212
++219
++219
++219
++230
++230
++230
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++190
++190
++190
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++71
++70
++69
++41
++41
++41
++35
++35
++35
++19
++19
++19
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++183
++92
++0
++208
++104
++0
++222
++111
++0
++231
++116
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++236
++118
++1
++237
++123
++9
++239
++139
++39
++240
++151
++63
++240
++151
++63
++66
++66
++66
++47
++47
++47
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++35
++35
++35
++190
++190
++190
++203
++203
++203
++219
++219
++219
++225
++225
++225
++238
++238
++238
++245
++245
++245
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++35
++35
++35
++19
++19
++19
++0
++0
++0
++0
++0
++0
++84
++84
++83
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++8
++8
++8
++8
++8
++8
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++13
++13
++13
++190
++190
++190
++212
++212
++212
++225
++225
++225
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++28
++28
++28
++2
++1
++0
++0
++0
++0
++0
++0
++0
++225
++225
++225
++225
++225
++225
++233
++233
++233
++242
++242
++242
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++47
++47
++47
++41
++41
++41
++35
++35
++35
++19
++19
++19
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++60
++30
++0
++196
++98
++0
++213
++106
++0
++226
++113
++0
++233
++117
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++151
++115
++79
++61
++61
++61
++41
++41
++41
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++28
++28
++28
++190
++190
++190
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++248
++248
++248
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++112
++112
++111
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++212
++212
++212
++8
++8
++8
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++103
++103
++102
++212
++212
++212
++219
++219
++219
++230
++230
++230
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++19
++19
++19
++0
++0
++0
++0
++0
++0
++55
++55
++55
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++47
++47
++47
++41
++41
++41
++28
++28
++28
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++119
++60
++0
++200
++100
++0
++217
++108
++0
++229
++114
++0
++234
++117
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++211
++151
++92
++71
++70
++69
++52
++52
++52
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++13
++13
++13
++167
++167
++167
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++167
++167
++167
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++4
++4
++4
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++190
++190
++190
++212
++212
++212
++225
++225
++225
++233
++233
++233
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++52
++52
++52
++19
++19
++19
++0
++0
++0
++0
++0
++0
++84
++84
++83
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++41
++41
++41
++35
++35
++35
++28
++28
++28
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++12
++6
++0
++193
++96
++0
++206
++103
++0
++222
++111
++0
++231
++116
++0
++235
++118
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++240
++151
++63
++240
++151
++63
++151
++115
++79
++61
++61
++61
++41
++41
++41
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++167
++167
++167
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++106
++106
++106
++28
++28
++28
++4
++4
++4
++0
++0
++0
++0
++0
++0
++190
++190
++190
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++76
++76
++76
++212
++212
++212
++219
++219
++219
++230
++230
++230
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++35
++35
++35
++13
++13
++13
++0
++0
++0
++0
++0
++0
++122
++121
++121
++225
++225
++225
++230
++230
++230
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++41
++41
++41
++35
++35
++35
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++95
++48
++0
++196
++98
++0
++213
++106
++0
++226
++113
++0
++234
++117
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++211
++151
++92
++71
++70
++69
++55
++55
++55
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++122
++121
++121
++203
++203
++203
++203
++203
++203
++225
++225
++225
++233
++233
++233
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++212
++212
++212
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++19
++19
++19
++0
++0
++0
++0
++0
++0
++0
++0
++0
++225
++225
++225
++225
++225
++225
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++66
++66
++66
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++190
++190
++190
++212
++212
++212
++225
++225
++225
++233
++233
++233
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++167
++167
++167
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++98
++98
++97
++41
++41
++41
++35
++35
++35
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++12
++6
++0
++177
++88
++0
++203
++101
++0
++219
++110
++0
++230
++115
++0
++234
++117
++0
++235
++118
++0
++237
++123
++9
++237
++123
++9
++239
++139
++39
++240
++151
++63
++240
++151
++63
++116
++94
++73
++61
++61
++61
++41
++41
++41
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++98
++98
++97
++203
++203
++203
++212
++212
++212
++219
++219
++219
++233
++233
++233
++245
++245
++245
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++203
++203
++203
++255
++255
++255
++255
++255
++255
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++35
++35
++35
++19
++19
++19
++0
++0
++0
++0
++0
++0
++55
++55
++55
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++66
++66
++66
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++76
++76
++76
++212
++212
++212
++219
++219
++219
++230
++230
++230
++242
++242
++242
++248
++248
++248
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++28
++28
++28
++4
++4
++4
++0
++0
++0
++0
++0
++0
++225
++225
++225
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++47
++47
++47
++41
++41
++41
++35
++35
++35
++19
++19
++19
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++93
++46
++0
++194
++97
++0
++210
++105
++0
++225
++112
++0
++233
++117
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++240
++151
++63
++240
++151
++63
++163
++132
++100
++71
++70
++69
++52
++52
++52
++19
++19
++19
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++76
++76
++76
++203
++203
++203
++203
++203
++203
++219
++219
++219
++230
++230
++230
++245
++245
++245
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++35
++35
++35
++225
++225
++225
++255
++255
++255
++254
++254
++254
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++230
++230
++230
++35
++35
++35
++19
++19
++19
++0
++0
++0
++0
++0
++0
++84
++84
++83
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++112
++112
++111
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++190
++190
++190
++212
++212
++212
++225
++225
++225
++233
++233
++233
++245
++245
++245
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++28
++28
++28
++0
++0
++0
++0
++0
++0
++28
++28
++28
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++212
++212
++212
++47
++47
++47
++41
++41
++41
++28
++28
++28
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++24
++12
++0
++189
++94
++0
++200
++100
++0
++218
++109
++0
++230
++115
++0
++234
++117
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++211
++151
++92
++89
++84
++79
++61
++61
++61
++35
++35
++35
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++47
++47
++47
++203
++203
++203
++203
++203
++203
++219
++219
++219
++230
++230
++230
++242
++242
++242
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++66
++66
++66
++47
++47
++47
++255
++255
++255
++253
++253
++253
++251
++251
++251
++251
++251
++251
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++112
++112
++111
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++0
++0
++0
++0
++0
++0
++0
++0
++0
++66
++66
++66
++212
++212
++212
++219
++219
++219
++230
++230
++230
++242
++242
++242
++251
++251
++251
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++19
++19
++19
++0
++0
++0
++0
++0
++0
++71
++70
++69
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++41
++41
++41
++41
++41
++41
++28
++28
++28
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++126
++63
++0
++194
++97
++0
++211
++106
++0
++225
++112
++0
++233
++117
++0
++235
++118
++0
++236
++118
++1
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++116
++94
++73
++71
++70
++69
++47
++47
++47
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++35
++35
++35
++190
++190
++190
++203
++203
++203
++212
++212
++212
++225
++225
++225
++242
++242
++242
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++112
++112
++111
++47
++47
++47
++76
++76
++76
++253
++253
++253
++248
++248
++248
++248
++248
++248
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++167
++167
++167
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++253
++253
++253
++146
++146
++146
++0
++0
++0
++0
++0
++0
++0
++0
++0
++167
++167
++167
++212
++212
++212
++225
++225
++225
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++225
++225
++225
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++47
++47
++47
++19
++19
++19
++0
++0
++0
++0
++0
++0
++112
++112
++111
++225
++225
++225
++230
++230
++230
++238
++238
++238
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++41
++41
++41
++35
++35
++35
++28
++28
++28
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++58
++29
++0
++189
++94
++0
++205
++103
++0
++219
++110
++0
++230
++115
++0
++235
++118
++0
++236
++118
++1
++237
++123
++9
++239
++139
++39
++240
++151
++63
++240
++151
++63
++163
++132
++100
++76
++76
++76
++55
++55
++55
++28
++28
++28
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++13
++13
++13
++167
++167
++167
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++251
++251
++251
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++61
++61
++61
++28
++28
++28
++112
++112
++111
++245
++245
++245
++242
++242
++242
++245
++245
++245
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++28
++28
++28
++4
++4
++4
++0
++0
++0
++0
++0
++0
++190
++190
++190
++230
++230
++230
++233
++233
++233
++242
++242
++242
++248
++248
++248
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++212
++212
++212
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++251
++251
++251
++190
++190
++190
++0
++0
++0
++0
++0
++0
++55
++55
++55
++212
++212
++212
++219
++219
++219
++230
++230
++230
++242
++242
++242
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++225
++225
++225
++190
++190
++190
++255
++255
++255
++255
++255
++255
++255
++255
++255
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++35
++35
++35
++13
++13
++13
++0
++0
++0
++0
++0
++0
++146
++146
++146
++230
++230
++230
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++98
++98
++97
++47
++47
++47
++35
++35
++35
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++12
++5
++0
++173
++87
++0
++196
++98
++0
++214
++107
++0
++226
++113
++0
++234
++117
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++240
++151
++63
++240
++151
++63
++211
++151
++92
++84
++84
++83
++61
++61
++61
++41
++41
++41
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++13
++13
++13
++167
++167
++167
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++76
++76
++76
++47
++47
++47
++8
++8
++8
++146
++146
++146
++238
++238
++238
++238
++238
++238
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++253
++253
++253
++248
++248
++248
++190
++190
++190
++0
++0
++0
++0
++0
++0
++167
++167
++167
++219
++219
++219
++225
++225
++225
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++112
++112
++111
++242
++242
++242
++255
++255
++255
++255
++255
++255
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++203
++203
++203
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++61
++61
++61
++41
++41
++41
++35
++35
++35
++19
++19
++19
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++124
++62
++0
++193
++96
++0
++207
++104
++0
++223
++112
++0
++231
++116
++0
++236
++118
++1
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++91
++91
++91
++71
++70
++69
++47
++47
++47
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++122
++121
++121
++203
++203
++203
++212
++212
++212
++225
++225
++225
++233
++233
++233
++245
++245
++245
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++233
++233
++233
++91
++91
++91
++61
++61
++61
++19
++19
++19
++0
++0
++0
++190
++190
++190
++233
++233
++233
++238
++238
++238
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++61
++61
++61
++19
++19
++19
++0
++0
++0
++0
++0
++0
++55
++55
++55
++225
++225
++225
++225
++225
++225
++238
++238
++238
++245
++245
++245
++251
++251
++251
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++225
++225
++225
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++253
++253
++253
++242
++242
++242
++238
++238
++238
++0
++0
++0
++55
++55
++55
++219
++219
++219
++225
++225
++225
++233
++233
++233
++242
++242
++242
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++55
++55
++55
++255
++255
++255
++255
++255
++255
++254
++254
++254
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++28
++28
++28
++4
++4
++4
++0
++0
++0
++13
++13
++13
++225
++225
++225
++225
++225
++225
++233
++233
++233
++242
++242
++242
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++41
++41
++41
++41
++41
++41
++35
++35
++35
++19
++19
++19
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++68
++34
++0
++186
++93
++0
++203
++101
++0
++218
++109
++0
++230
++115
++0
++235
++118
++0
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++122
++105
++89
++76
++76
++76
++52
++52
++52
++19
++19
++19
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++122
++121
++121
++203
++203
++203
++212
++212
++212
++219
++219
++219
++230
++230
++230
++242
++242
++242
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++245
++245
++245
++112
++112
++111
++61
++61
++61
++35
++35
++35
++0
++0
++0
++0
++0
++0
++230
++230
++230
++230
++230
++230
++238
++238
++238
++242
++242
++242
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++35
++35
++35
++19
++19
++19
++0
++0
++0
++0
++0
++0
++84
++84
++83
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++76
++76
++76
++203
++203
++203
++255
++255
++255
++255
++255
++255
++255
++255
++255
++254
++254
++254
++254
++254
++254
++251
++251
++251
++245
++245
++245
++238
++238
++238
++0
++0
++0
++146
++146
++146
++225
++225
++225
++230
++230
++230
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++84
++84
++83
++255
++255
++255
++254
++254
++254
++253
++253
++253
++253
++253
++253
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++19
++19
++19
++0
++0
++0
++0
++0
++0
++55
++55
++55
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++47
++47
++47
++41
++41
++41
++28
++28
++28
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++34
++17
++0
++171
++86
++0
++196
++98
++0
++214
++107
++0
++226
++113
++0
++234
++117
++0
++237
++123
++9
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++151
++115
++79
++84
++84
++83
++55
++55
++55
++28
++28
++28
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++76
++76
++76
++203
++203
++203
++203
++203
++203
++219
++219
++219
++230
++230
++230
++242
++242
++242
++251
++251
++251
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++47
++47
++47
++28
++28
++28
++0
++0
++0
++0
++0
++0
++41
++41
++41
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++112
++112
++111
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++35
++35
++35
++167
++167
++167
++255
++255
++255
++255
++255
++255
++254
++254
++254
++254
++254
++254
++253
++253
++253
++251
++251
++251
++245
++245
++245
++242
++242
++242
++76
++76
++76
++230
++230
++230
++230
++230
++230
++238
++238
++238
++245
++245
++245
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++61
++61
++61
++122
++121
++121
++254
++254
++254
++251
++251
++251
++248
++248
++248
++251
++251
++251
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++19
++19
++19
++0
++0
++0
++0
++0
++0
++98
++98
++97
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++41
++41
++41
++35
++35
++35
++28
++28
++28
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++11
++6
++0
++146
++73
++0
++193
++96
++0
++210
++105
++0
++225
++112
++0
++231
++116
++0
++236
++118
++1
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++183
++141
++99
++84
++84
++83
++61
++61
++61
++41
++41
++41
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++76
++76
++76
++203
++203
++203
++203
++203
++203
++219
++219
++219
++230
++230
++230
++238
++238
++238
++248
++248
++248
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++84
++84
++83
++219
++219
++219
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++167
++167
++167
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++212
++212
++212
++41
++41
++41
++146
++146
++146
++255
++255
++255
++254
++254
++254
++253
++253
++253
++253
++253
++253
++253
++253
++253
++251
++251
++251
++245
++245
++245
++242
++242
++242
++203
++203
++203
++238
++238
++238
++238
++238
++238
++242
++242
++242
++251
++251
++251
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++28
++28
++28
++167
++167
++167
++251
++251
++251
++248
++248
++248
++248
++248
++248
++251
++251
++251
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++47
++47
++47
++19
++19
++19
++0
++0
++0
++0
++0
++0
++146
++146
++146
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++112
++112
++111
++41
++41
++41
++35
++35
++35
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++133
++67
++0
++189
++94
++0
++205
++103
++0
++219
++110
++0
++231
++116
++0
++236
++118
++1
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++183
++141
++99
++84
++84
++83
++71
++70
++69
++41
++41
++41
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++35
++35
++35
++190
++190
++190
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++245
++245
++245
++251
++251
++251
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++212
++212
++212
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++106
++106
++106
++219
++219
++219
++230
++230
++230
++238
++238
++238
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++28
++28
++28
++4
++4
++4
++0
++0
++0
++0
++0
++0
++190
++190
++190
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++35
++35
++35
++91
++91
++91
++255
++255
++255
++253
++253
++253
++251
++251
++251
++253
++253
++253
++253
++253
++253
++251
++251
++251
++248
++248
++248
++245
++245
++245
++242
++242
++242
++242
++242
++242
++245
++245
++245
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++98
++98
++97
++19
++19
++19
++190
++190
++190
++248
++248
++248
++245
++245
++245
++248
++248
++248
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++167
++167
++167
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++84
++84
++83
++41
++41
++41
++28
++28
++28
++19
++19
++19
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++111
++56
++0
++185
++93
++0
++200
++100
++0
++218
++109
++0
++229
++114
++0
++236
++118
++1
++237
++123
++9
++239
++139
++39
++240
++151
++63
++242
++167
++91
++211
++151
++92
++91
++91
++91
++71
++70
++69
++47
++47
++47
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++28
++28
++28
++190
++190
++190
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++238
++238
++238
++28
++28
++28
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++167
++167
++167
++219
++219
++219
++230
++230
++230
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++28
++28
++28
++0
++0
++0
++0
++0
++0
++13
++13
++13
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++35
++35
++35
++76
++76
++76
++255
++255
++255
++251
++251
++251
++248
++248
++248
++251
++251
++251
++253
++253
++253
++253
++253
++253
++251
++251
++251
++248
++248
++248
++248
++248
++248
++248
++248
++248
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++219
++219
++219
++35
++35
++35
++8
++8
++8
++248
++248
++248
++245
++245
++245
++242
++242
++242
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++225
++225
++225
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++35
++35
++35
++28
++28
++28
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++66
++33
++0
++183
++92
++0
++199
++99
++0
++217
++108
++0
++229
++114
++0
++236
++118
++1
++237
++123
++9
++239
++139
++39
++240
++151
++63
++242
++167
++91
++211
++151
++92
++98
++98
++97
++76
++76
++76
++47
++47
++47
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++13
++13
++13
++167
++167
++167
++203
++203
++203
++212
++212
++212
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++253
++253
++253
++219
++219
++219
++190
++190
++190
++167
++167
++167
++167
++167
++167
++167
++167
++167
++146
++146
++146
++146
++146
++146
++167
++167
++167
++190
++190
++190
++225
++225
++225
++233
++233
++233
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++19
++19
++19
++0
++0
++0
++0
++0
++0
++55
++55
++55
++225
++225
++225
++230
++230
++230
++233
++233
++233
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++35
++35
++35
++28
++28
++28
++253
++253
++253
++248
++248
++248
++248
++248
++248
++251
++251
++251
++253
++253
++253
++253
++253
++253
++253
++253
++253
++253
++253
++253
++251
++251
++251
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++28
++28
++28
++35
++35
++35
++245
++245
++245
++242
++242
++242
++242
++242
++242
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++19
++19
++19
++2
++1
++0
++0
++0
++0
++41
++41
++41
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++13
++13
++13
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++66
++33
++0
++182
++91
++0
++195
++98
++0
++213
++106
++0
++226
++113
++0
++235
++118
++0
++237
++123
++9
++239
++139
++39
++240
++151
++63
++242
++167
++91
++211
++151
++92
++98
++98
++97
++76
++76
++76
++52
++52
++52
++19
++19
++19
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++167
++167
++167
++203
++203
++203
++212
++212
++212
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++254
++254
++254
++253
++253
++253
++251
++251
++251
++245
++245
++245
++233
++233
++233
++230
++230
++230
++219
++219
++219
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++225
++225
++225
++233
++233
++233
++242
++242
++242
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++35
++35
++35
++19
++19
++19
++0
++0
++0
++0
++0
++0
++98
++98
++97
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++98
++98
++97
++35
++35
++35
++13
++13
++13
++253
++253
++253
++248
++248
++248
++248
++248
++248
++251
++251
++251
++253
++253
++253
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++230
++230
++230
++47
++47
++47
++19
++19
++19
++61
++61
++61
++242
++242
++242
++238
++238
++238
++242
++242
++242
++245
++245
++245
++251
++251
++251
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++28
++28
++28
++0
++0
++0
++0
++0
++0
++84
++84
++83
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++66
++33
++0
++180
++90
++0
++194
++97
++0
++211
++106
++0
++225
++112
++0
++235
++118
++0
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++211
++151
++92
++103
++103
++102
++76
++76
++76
++55
++55
++55
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++122
++121
++121
++190
++190
++190
++212
++212
++212
++219
++219
++219
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++253
++253
++253
++251
++251
++251
++245
++245
++245
++242
++242
++242
++233
++233
++233
++225
++225
++225
++225
++225
++225
++219
++219
++219
++225
++225
++225
++225
++225
++225
++233
++233
++233
++238
++238
++238
++245
++245
++245
++251
++251
++251
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++28
++28
++28
++13
++13
++13
++0
++0
++0
++0
++0
++0
++122
++121
++121
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++55
++55
++55
++28
++28
++28
++8
++8
++8
++203
++203
++203
++245
++245
++245
++245
++245
++245
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++41
++41
++41
++8
++8
++8
++122
++121
++121
++238
++238
++238
++238
++238
++238
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++19
++19
++19
++0
++0
++0
++0
++0
++0
++112
++112
++111
++225
++225
++225
++230
++230
++230
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++253
++253
++253
++106
++106
++106
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++66
++33
++0
++180
++90
++0
++194
++97
++0
++210
++105
++0
++225
++112
++0
++234
++117
++0
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++211
++151
++92
++98
++98
++97
++76
++76
++76
++55
++55
++55
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++98
++98
++97
++203
++203
++203
++212
++212
++212
++219
++219
++219
++230
++230
++230
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++254
++254
++254
++251
++251
++251
++245
++245
++245
++242
++242
++242
++238
++238
++238
++238
++238
++238
++233
++233
++233
++238
++238
++238
++238
++238
++238
++242
++242
++242
++245
++245
++245
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++167
++167
++167
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++41
++41
++41
++28
++28
++28
++8
++8
++8
++190
++190
++190
++245
++245
++245
++245
++245
++245
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++71
++70
++69
++28
++28
++28
++0
++0
++0
++167
++167
++167
++233
++233
++233
++238
++238
++238
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++47
++47
++47
++13
++13
++13
++0
++0
++0
++0
++0
++0
++167
++167
++167
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++253
++253
++253
++245
++245
++245
++61
++61
++61
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++68
++34
++0
++182
++91
++0
++194
++97
++0
++210
++105
++0
++225
++112
++0
++235
++118
++0
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++211
++151
++92
++103
++103
++102
++84
++84
++83
++55
++55
++55
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++76
++76
++76
++203
++203
++203
++203
++203
++203
++219
++219
++219
++230
++230
++230
++242
++242
++242
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++254
++254
++254
++251
++251
++251
++248
++248
++248
++248
++248
++248
++248
++248
++248
++251
++251
++251
++251
++251
++251
++253
++253
++253
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++212
++212
++212
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++41
++41
++41
++28
++28
++28
++4
++4
++4
++122
++121
++121
++242
++242
++242
++245
++245
++245
++248
++248
++248
++253
++253
++253
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++47
++47
++47
++19
++19
++19
++0
++0
++0
++190
++190
++190
++233
++233
++233
++238
++238
++238
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++212
++212
++212
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++253
++253
++253
++248
++248
++248
++242
++242
++242
++167
++167
++167
++167
++167
++167
++167
++167
++167
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++167
++167
++167
++167
++167
++167
++122
++121
++121
++0
++0
++0
++0
++0
++0
++36
++18
++0
++186
++93
++0
++194
++97
++0
++210
++105
++0
++225
++112
++0
++236
++118
++1
++238
++129
++21
++239
++139
++39
++240
++151
++63
++242
++167
++91
++183
++141
++99
++98
++98
++97
++76
++76
++76
++55
++55
++55
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++47
++47
++47
++203
++203
++203
++203
++203
++203
++219
++219
++219
++230
++230
++230
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++254
++254
++254
++254
++254
++254
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++28
++28
++28
++0
++0
++0
++0
++0
++0
++13
++13
++13
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++47
++47
++47
++28
++28
++28
++4
++4
++4
++122
++121
++121
++242
++242
++242
++242
++242
++242
++248
++248
++248
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++84
++84
++83
++41
++41
++41
++8
++8
++8
++0
++0
++0
++233
++233
++233
++233
++233
++233
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++28
++28
++28
++4
++4
++4
++0
++0
++0
++13
++13
++13
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++254
++254
++254
++253
++253
++253
++248
++248
++248
++242
++242
++242
++233
++233
++233
++225
++225
++225
++212
++212
++212
++212
++212
++212
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++225
++225
++225
++233
++233
++233
++146
++146
++146
++0
++0
++0
++0
++0
++0
++87
++44
++2
++196
++98
++0
++210
++105
++0
++225
++112
++0
++236
++118
++1
++238
++129
++21
++240
++151
++63
++242
++167
++91
++242
++167
++91
++183
++141
++99
++98
++98
++97
++76
++76
++76
++55
++55
++55
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++35
++35
++35
++190
++190
++190
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++19
++19
++19
++0
++0
++0
++0
++0
++0
++55
++55
++55
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++41
++41
++41
++28
++28
++28
++2
++1
++0
++61
++61
++61
++242
++242
++242
++242
++242
++242
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++212
++212
++212
++55
++55
++55
++28
++28
++28
++0
++0
++0
++47
++47
++47
++230
++230
++230
++230
++230
++230
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++28
++28
++28
++0
++0
++0
++0
++0
++0
++61
++61
++61
++225
++225
++225
++225
++225
++225
++238
++238
++238
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++254
++254
++254
++253
++253
++253
++248
++248
++248
++245
++245
++245
++238
++238
++238
++230
++230
++230
++225
++225
++225
++219
++219
++219
++219
++219
++219
++219
++219
++219
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++212
++219
++219
++219
++225
++225
++225
++230
++230
++230
++238
++238
++238
++245
++245
++245
++112
++112
++111
++4
++4
++4
++8
++8
++8
++114
++59
++3
++205
++103
++0
++221
++111
++0
++236
++118
++1
++239
++139
++39
++240
++151
++63
++242
++167
++91
++242
++167
++91
++163
++132
++100
++98
++98
++97
++76
++76
++76
++52
++52
++52
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++13
++13
++13
++167
++167
++167
++203
++203
++203
++212
++212
++212
++225
++225
++225
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++61
++61
++61
++19
++19
++19
++0
++0
++0
++0
++0
++0
++98
++98
++97
++225
++225
++225
++230
++230
++230
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++98
++98
++97
++41
++41
++41
++28
++28
++28
++0
++0
++0
++47
++47
++47
++242
++242
++242
++242
++242
++242
++245
++245
++245
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++112
++112
++111
++52
++52
++52
++19
++19
++19
++0
++0
++0
++76
++76
++76
++230
++230
++230
++233
++233
++233
++238
++238
++238
++245
++245
++245
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++122
++121
++121
++19
++19
++19
++0
++0
++0
++0
++0
++0
++112
++112
++111
++225
++225
++225
++233
++233
++233
++242
++242
++242
++248
++248
++248
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++254
++254
++254
++253
++253
++253
++248
++248
++248
++245
++245
++245
++242
++242
++242
++238
++238
++238
++233
++233
++233
++233
++233
++233
++230
++230
++230
++230
++230
++230
++230
++230
++230
++230
++230
++230
++230
++230
++230
++230
++230
++230
++233
++233
++233
++233
++233
++233
++238
++238
++238
++245
++245
++245
++251
++251
++251
++255
++255
++255
++76
++76
++76
++19
++19
++19
++19
++19
++19
++155
++79
++3
++214
++107
++0
++234
++117
++0
++239
++139
++39
++240
++151
++63
++242
++167
++91
++242
++167
++91
++138
++122
++105
++91
++91
++91
++71
++70
++69
++47
++47
++47
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++13
++13
++13
++167
++167
++167
++203
++203
++203
++219
++219
++219
++225
++225
++225
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++212
++212
++212
++212
++212
++212
++203
++203
++203
++230
++230
++230
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++35
++35
++35
++19
++19
++19
++0
++0
++0
++0
++0
++0
++122
++121
++121
++233
++233
++233
++238
++238
++238
++248
++248
++248
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++84
++84
++83
++41
++41
++41
++28
++28
++28
++0
++0
++0
++0
++0
++0
++242
++242
++242
++242
++242
++242
++248
++248
++248
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++233
++233
++233
++66
++66
++66
++41
++41
++41
++8
++8
++8
++0
++0
++0
++112
++112
++111
++230
++230
++230
++233
++233
++233
++242
++242
++242
++251
++251
++251
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++91
++91
++91
++28
++28
++28
++0
++0
++0
++0
++0
++0
++167
++167
++167
++230
++230
++230
++238
++238
++238
++245
++245
++245
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++254
++254
++254
++253
++253
++253
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++251
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++35
++35
++35
++28
++28
++28
++19
++19
++19
++210
++105
++0
++229
++114
++0
++239
++139
++39
++240
++151
++63
++242
++167
++91
++211
++151
++92
++112
++112
++111
++91
++91
++91
++66
++66
++66
++41
++41
++41
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++146
++146
++146
++212
++212
++212
++225
++225
++225
++233
++233
++233
++245
++245
++245
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++112
++112
++111
++112
++112
++111
++112
++112
++111
++112
++112
++111
++112
++112
++111
++112
++112
++111
++106
++106
++106
++106
++106
++106
++98
++98
++97
++84
++84
++83
++66
++66
++66
++47
++47
++47
++146
++146
++146
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++219
++219
++219
++41
++41
++41
++28
++28
++28
++0
++0
++0
++0
++0
++0
++190
++190
++190
++238
++238
++238
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++55
++55
++55
++47
++47
++47
++28
++28
++28
++4
++4
++4
++0
++0
++0
++230
++230
++230
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++61
++61
++61
++41
++41
++41
++4
++4
++4
++0
++0
++0
++167
++167
++167
++238
++238
++238
++242
++242
++242
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++55
++55
++55
++28
++28
++28
++4
++4
++4
++0
++0
++0
++190
++190
++190
++242
++242
++242
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++230
++230
++230
++47
++47
++47
++41
++41
++41
++64
++44
++24
++223
++112
++0
++238
++129
++21
++240
++151
++63
++242
++167
++91
++183
++141
++99
++106
++106
++106
++84
++84
++83
++61
++61
++61
++35
++35
++35
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++146
++146
++146
++225
++225
++225
++233
++233
++233
++245
++245
++245
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++233
++233
++233
++122
++121
++121
++112
++112
++111
++106
++106
++106
++103
++103
++102
++98
++98
++97
++91
++91
++91
++91
++91
++91
++91
++91
++91
++84
++84
++83
++76
++76
++76
++66
++66
++66
++52
++52
++52
++35
++35
++35
++203
++203
++203
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++47
++47
++47
++35
++35
++35
++8
++8
++8
++0
++0
++0
++230
++230
++230
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++219
++219
++219
++61
++61
++61
++47
++47
++47
++28
++28
++28
++8
++8
++8
++0
++0
++0
++190
++190
++190
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++91
++91
++91
++61
++61
++61
++35
++35
++35
++4
++4
++4
++0
++0
++0
++212
++212
++212
++245
++245
++245
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++242
++242
++242
++55
++55
++55
++35
++35
++35
++13
++13
++13
++0
++0
++0
++248
++248
++248
++254
++254
++254
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++203
++203
++203
++61
++61
++61
++41
++41
++41
++92
++57
++22
++237
++123
++9
++240
++151
++63
++242
++167
++91
++138
++122
++105
++98
++98
++97
++76
++76
++76
++55
++55
++55
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++91
++91
++91
++233
++233
++233
++245
++245
++245
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++103
++103
++102
++98
++98
++97
++84
++84
++83
++76
++76
++76
++71
++70
++69
++71
++70
++69
++66
++66
++66
++66
++66
++66
++61
++61
++61
++55
++55
++55
++47
++47
++47
++35
++35
++35
++28
++28
++28
++212
++212
++212
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++61
++61
++61
++41
++41
++41
++19
++19
++19
++28
++28
++28
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++212
++212
++212
++66
++66
++66
++52
++52
++52
++35
++35
++35
++19
++19
++19
++8
++8
++8
++167
++167
++167
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++76
++76
++76
++61
++61
++61
++35
++35
++35
++8
++8
++8
++0
++0
++0
++253
++253
++253
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++212
++212
++212
++61
++61
++61
++47
++47
++47
++28
++28
++28
++76
++76
++76
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++61
++61
++61
++47
++47
++47
++140
++82
++22
++239
++139
++39
++211
++151
++92
++103
++103
++102
++91
++91
++91
++71
++70
++69
++47
++47
++47
++13
++13
++13
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++91
++91
++91
++248
++248
++248
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++98
++98
++97
++91
++91
++91
++76
++76
++76
++61
++61
++61
++52
++52
++52
++47
++47
++47
++41
++41
++41
++41
++41
++41
++41
++41
++41
++35
++35
++35
++35
++35
++35
++28
++28
++28
++28
++28
++28
++28
++28
++28
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++66
++66
++66
++47
++47
++47
++35
++35
++35
++84
++84
++83
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++167
++167
++167
++71
++70
++69
++52
++52
++52
++35
++35
++35
++19
++19
++19
++19
++19
++19
++146
++146
++146
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++112
++112
++111
++76
++76
++76
++55
++55
++55
++35
++35
++35
++19
++19
++19
++71
++70
++69
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++190
++190
++190
++71
++70
++69
++55
++55
++55
++41
++41
++41
++122
++121
++121
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++66
++66
++66
++55
++55
++55
++186
++120
++54
++151
++115
++79
++76
++76
++76
++76
++76
++76
++61
++61
++61
++35
++35
++35
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++167
++167
++167
++203
++203
++203
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++212
++212
++212
++103
++103
++102
++91
++91
++91
++71
++70
++69
++55
++55
++55
++41
++41
++41
++13
++13
++13
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++13
++13
++13
++13
++13
++13
++19
++19
++19
++41
++41
++41
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++112
++112
++111
++66
++66
++66
++52
++52
++52
++41
++41
++41
++55
++55
++55
++103
++103
++102
++112
++112
++111
++122
++121
++121
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++106
++106
++106
++66
++66
++66
++47
++47
++47
++35
++35
++35
++28
++28
++28
++28
++28
++28
++98
++98
++97
++167
++167
++167
++167
++167
++167
++167
++167
++167
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++190
++167
++167
++167
++84
++84
++83
++66
++66
++66
++47
++47
++47
++35
++35
++35
++28
++28
++28
++84
++84
++83
++203
++203
++203
++203
++203
++203
++212
++212
++212
++212
++212
++212
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++219
++212
++212
++212
++146
++146
++146
++76
++76
++76
++61
++61
++61
++47
++47
++47
++71
++70
++69
++106
++106
++106
++122
++121
++121
++122
++121
++121
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++146
++84
++84
++83
++66
++66
++66
++55
++55
++55
++55
++55
++55
++61
++61
++61
++55
++55
++55
++47
++47
++47
++19
++19
++19
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++4
++4
++4
++13
++13
++13
++28
++28
++28
++41
++41
++41
++61
++61
++61
++76
++76
++76
++91
++91
++91
++98
++98
++97
++106
++106
++106
++112
++112
++111
++112
++112
++111
++112
++112
++111
++112
++112
++111
++106
++106
++106
++98
++98
++97
++84
++84
++83
++71
++70
++69
++52
++52
++52
++35
++35
++35
++19
++19
++19
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++4
++4
++4
++8
++8
++8
++19
++19
++19
++28
++28
++28
++47
++47
++47
++66
++66
++66
++84
++84
++83
++98
++98
++97
++103
++103
++102
++106
++106
++106
++112
++112
++111
++112
++112
++111
++112
++112
++111
++112
++112
++111
++106
++106
++106
++103
++103
++102
++91
++91
++91
++76
++76
++76
++61
++61
++61
++47
++47
++47
++41
++41
++41
++41
++41
++41
++52
++52
++52
++66
++66
++66
++84
++84
++83
++91
++91
++91
++98
++98
++97
++98
++98
++97
++103
++103
++102
++103
++103
++102
++103
++103
++102
++91
++91
++91
++84
++84
++83
++71
++70
++69
++55
++55
++55
++41
++41
++41
++28
++28
++28
++28
++28
++28
++28
++28
++28
++41
++41
++41
++61
++61
++61
++76
++76
++76
++91
++91
++91
++98
++98
++97
++103
++103
++102
++106
++106
++106
++103
++103
++102
++91
++91
++91
++84
++84
++83
++76
++76
++76
++55
++55
++55
++41
++41
++41
++28
++28
++28
++28
++28
++28
++35
++35
++35
++52
++52
++52
++71
++70
++69
++84
++84
++83
++98
++98
++97
++106
++106
++106
++112
++112
++111
++112
++112
++111
++112
++112
++111
++112
++112
++111
++103
++103
++102
++91
++91
++91
++84
++84
++83
++66
++66
++66
++52
++52
++52
++47
++47
++47
++47
++47
++47
++55
++55
++55
++71
++70
++69
++84
++84
++83
++91
++91
++91
++98
++98
++97
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++98
++98
++97
++91
++91
++91
++84
++84
++83
++66
++66
++66
++55
++55
++55
++47
++47
++47
++41
++41
++41
++35
++35
++35
++28
++28
++28
++8
++8
++8
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++4
++4
++4
++8
++8
++8
++19
++19
++19
++28
++28
++28
++47
++47
++47
++61
++61
++61
++71
++70
++69
++84
++84
++83
++84
++84
++83
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++84
++84
++83
++76
++76
++76
++66
++66
++66
++47
++47
++47
++35
++35
++35
++19
++19
++19
++8
++8
++8
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++8
++8
++8
++19
++19
++19
++28
++28
++28
++47
++47
++47
++61
++61
++61
++76
++76
++76
++84
++84
++83
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++84
++84
++83
++71
++70
++69
++61
++61
++61
++47
++47
++47
++35
++35
++35
++35
++35
++35
++35
++35
++35
++47
++47
++47
++55
++55
++55
++66
++66
++66
++76
++76
++76
++76
++76
++76
++76
++76
++76
++84
++84
++83
++76
++76
++76
++76
++76
++76
++71
++70
++69
++66
++66
++66
++52
++52
++52
++41
++41
++41
++28
++28
++28
++19
++19
++19
++19
++19
++19
++28
++28
++28
++41
++41
++41
++52
++52
++52
++66
++66
++66
++76
++76
++76
++84
++84
++83
++84
++84
++83
++84
++84
++83
++84
++84
++83
++76
++76
++76
++66
++66
++66
++52
++52
++52
++41
++41
++41
++28
++28
++28
++19
++19
++19
++28
++28
++28
++35
++35
++35
++47
++47
++47
++61
++61
++61
++76
++76
++76
++84
++84
++83
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++91
++84
++84
++83
++76
++76
++76
++61
++61
++61
++47
++47
++47
++41
++41
++41
++35
++35
++35
++41
++41
++41
++47
++47
++47
++61
++61
++61
++66
++66
++66
++76
++76
++76
++76
++76
++76
++76
++76
++76
++84
++84
++83
++76
++76
++76
++76
++76
++76
++84
++84
++83
++76
++76
++76
++76
++76
++76
++84
++84
++83
++76
++76
++76
++76
++76
++76
++84
++84
++83
++76
++76
++76
++76
++76
++76
++84
++84
++83
++76
++76
++76
++76
++76
++76
++84
++84
++83
++76
++76
++76
++76
++76
++76
++84
++84
++83
++76
++76
++76
++76
++76
++76
++76
++76
++76
++71
++70
++69
++61
++61
++61
++47
++47
++47
++35
++35
++35
++19
++19
++19
++13
++13
++13
++4
++4
++4
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++4
++4
++4
++8
++8
++8
++19
++19
++19
++28
++28
++28
++35
++35
++35
++47
++47
++47
++55
++55
++55
++61
++61
++61
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++61
++61
++61
++52
++52
++52
++41
++41
++41
++28
++28
++28
++19
++19
++19
++8
++8
++8
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++4
++4
++4
++8
++8
++8
++13
++13
++13
++28
++28
++28
++35
++35
++35
++47
++47
++47
++55
++55
++55
++61
++61
++61
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++61
++61
++61
++61
++61
++61
++47
++47
++47
++41
++41
++41
++28
++28
++28
++28
++28
++28
++19
++19
++19
++28
++28
++28
++28
++28
++28
++41
++41
++41
++47
++47
++47
++47
++47
++47
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++47
++47
++47
++41
++41
++41
++35
++35
++35
++19
++19
++19
++19
++19
++19
++13
++13
++13
++13
++13
++13
++19
++19
++19
++28
++28
++28
++35
++35
++35
++47
++47
++47
++52
++52
++52
++55
++55
++55
++61
++61
++61
++61
++61
++61
++55
++55
++55
++52
++52
++52
++41
++41
++41
++35
++35
++35
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++28
++28
++28
++35
++35
++35
++47
++47
++47
++55
++55
++55
++61
++61
++61
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++66
++61
++61
++61
++52
++52
++52
++41
++41
++41
++35
++35
++35
++28
++28
++28
++28
++28
++28
++28
++28
++28
++35
++35
++35
++41
++41
++41
++47
++47
++47
++47
++47
++47
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++52
++47
++47
++47
++41
++41
++41
++28
++28
++28
++19
++19
++19
++13
++13
++13
++8
++8
++8
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++4
++4
++4
++8
++8
++8
++13
++13
++13
++19
++19
++19
++28
++28
++28
++28
++28
++28
++35
++35
++35
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++35
++35
++35
++35
++35
++35
++28
++28
++28
++19
++19
++19
++13
++13
++13
++4
++4
++4
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++4
++4
++4
++8
++8
++8
++13
++13
++13
++19
++19
++19
++28
++28
++28
++35
++35
++35
++35
++35
++35
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++35
++35
++35
++35
++35
++35
++28
++28
++28
++19
++19
++19
++13
++13
++13
++8
++8
++8
++8
++8
++8
++8
++8
++8
++8
++8
++8
++13
++13
++13
++13
++13
++13
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++13
++13
++13
++13
++13
++13
++13
++13
++13
++8
++8
++8
++8
++8
++8
++4
++4
++4
++4
++4
++4
++4
++4
++4
++8
++8
++8
++8
++8
++8
++19
++19
++19
++19
++19
++19
++28
++28
++28
++28
++28
++28
++28
++28
++28
++28
++28
++28
++28
++28
++28
++28
++28
++28
++19
++19
++19
++19
++19
++19
++13
++13
++13
++8
++8
++8
++4
++4
++4
++8
++8
++8
++13
++13
++13
++19
++19
++19
++19
++19
++19
++28
++28
++28
++35
++35
++35
++35
++35
++35
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++41
++35
++35
++35
++35
++35
++35
++28
++28
++28
++28
++28
++28
++19
++19
++19
++8
++8
++8
++8
++8
++8
++8
++8
++8
++8
++8
++8
++13
++13
++13
++13
++13
++13
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++19
++13
++13
++13
++13
++13
++13
++13
++13
++13
++8
++8
++8
++8
++8
++8
++4
++4
++4
++2
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++35
++35
++35
++190
++190
++190
++255
++255
++255
++255
++255
++255
++190
++190
++190
++35
++35
++35
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++103
++103
++102
++255
++255
++255
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++255
++255
++255
++103
++103
++102
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++103
++103
++102
++255
++255
++255
++2
++1
++0
++0
++0
++0
++103
++103
++102
++255
++255
++255
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++0
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++219
++219
++219
++203
++203
++203
++84
++84
++83
++103
++103
++102
++219
++219
++219
++219
++219
++219
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++255
++255
++255
++122
++121
++121
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++122
++121
++121
++255
++255
++255
++1
++0
++0
++1
++0
++0
++122
++121
++121
++255
++255
++255
++0
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++0
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++84
++84
++83
++255
++255
++255
++35
++35
++35
++1
++0
++0
++2
++1
++0
++52
++52
++52
++255
++255
++255
++84
++84
++83
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++255
++255
++255
++122
++121
++121
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++19
++19
++19
++71
++70
++69
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++103
++103
++102
++255
++255
++255
++19
++19
++19
++2
++1
++0
++2
++1
++0
++2
++1
++0
++103
++103
++102
++35
++35
++35
++238
++238
++238
++167
++167
++167
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++71
++70
++69
++255
++255
++255
++71
++70
++69
++35
++35
++35
++203
++203
++203
++255
++255
++255
++203
++203
++203
++35
++35
++35
++71
++70
++69
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++35
++35
++35
++2
++1
++0
++19
++19
++19
++167
++167
++167
++255
++255
++255
++255
++255
++255
++219
++219
++219
++122
++121
++121
++2
++1
++0
++2
++1
++0
++2
++1
++0
++103
++103
++102
++255
++255
++255
++122
++121
++121
++238
++238
++238
++255
++255
++255
++219
++219
++219
++84
++84
++83
++2
++1
++0
++146
++146
++146
++255
++255
++255
++255
++255
++255
++167
++167
++167
++19
++19
++19
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++103
++103
++102
++255
++255
++255
++255
++255
++255
++122
++121
++121
++1
++0
++0
++238
++238
++238
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++146
++146
++146
++1
++0
++0
++1
++0
++0
++122
++121
++121
++203
++203
++203
++255
++255
++255
++255
++255
++255
++219
++219
++219
++122
++121
++121
++122
++121
++121
++255
++255
++255
++2
++1
++0
++103
++103
++102
++255
++255
++255
++103
++103
++102
++219
++219
++219
++203
++203
++203
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++103
++103
++102
++255
++255
++255
++1
++0
++0
++2
++1
++0
++255
++255
++255
++146
++146
++146
++190
++190
++190
++255
++255
++255
++255
++255
++255
++203
++203
++203
++71
++70
++69
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++219
++219
++219
++255
++255
++255
++255
++255
++255
++167
++167
++167
++35
++35
++35
++255
++255
++255
++103
++103
++102
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++35
++35
++35
++255
++255
++255
++190
++190
++190
++71
++70
++69
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++19
++19
++19
++2
++1
++0
++2
++1
++0
++2
++1
++0
++190
++190
++190
++219
++219
++219
++2
++1
++0
++203
++203
++203
++203
++203
++203
++84
++84
++83
++203
++203
++203
++219
++219
++219
++19
++19
++19
++103
++103
++102
++146
++146
++146
++255
++255
++255
++103
++103
++102
++103
++103
++102
++2
++1
++0
++35
++35
++35
++238
++238
++238
++203
++203
++203
++103
++103
++102
++84
++84
++83
++146
++146
++146
++238
++238
++238
++167
++167
++167
++2
++1
++0
++1
++0
++0
++122
++121
++121
++255
++255
++255
++238
++238
++238
++122
++121
++121
++84
++84
++83
++146
++146
++146
++255
++255
++255
++203
++203
++203
++225
++225
++225
++103
++103
++102
++103
++103
++102
++219
++219
++219
++190
++190
++190
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++52
++52
++52
++255
++255
++255
++146
++146
++146
++122
++121
++121
++255
++255
++255
++52
++52
++52
++71
++70
++69
++103
++103
++102
++255
++255
++255
++146
++146
++146
++103
++103
++102
++35
++35
++35
++2
++1
++0
++190
++190
++190
++255
++255
++255
++146
++146
++146
++91
++91
++91
++84
++84
++83
++146
++146
++146
++238
++238
++238
++255
++255
++255
++255
++255
++255
++2
++1
++0
++122
++121
++121
++255
++255
++255
++238
++238
++238
++167
++167
++167
++52
++52
++52
++103
++103
++102
++146
++146
++146
++255
++255
++255
++103
++103
++102
++103
++103
++102
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++255
++255
++255
++255
++255
++255
++190
++190
++190
++84
++84
++83
++103
++103
++102
++190
++190
++190
++255
++255
++255
++71
++70
++69
++2
++1
++0
++2
++1
++0
++190
++190
++190
++238
++238
++238
++146
++146
++146
++103
++103
++102
++103
++103
++102
++203
++203
++203
++238
++238
++238
++255
++255
++255
++122
++121
++121
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++71
++70
++69
++238
++238
++238
++255
++255
++255
++238
++238
++238
++146
++146
++146
++2
++1
++0
++2
++1
++0
++19
++19
++19
++255
++255
++255
++122
++121
++121
++2
++1
++0
++2
++1
++0
++35
++35
++35
++255
++255
++255
++103
++103
++102
++2
++1
++0
++255
++255
++255
++122
++121
++121
++2
++1
++0
++47
++47
++47
++146
++146
++146
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++2
++1
++0
++203
++203
++203
++190
++190
++190
++2
++1
++0
++2
++1
++0
++1
++0
++0
++6
++3
++0
++52
++52
++52
++255
++255
++255
++103
++103
++102
++4
++2
++0
++122
++121
++121
++255
++255
++255
++84
++84
++83
++2
++1
++0
++2
++1
++0
++2
++1
++0
++190
++190
++190
++255
++255
++255
++71
++70
++69
++2
++1
++0
++2
++1
++0
++71
++70
++69
++255
++255
++255
++52
++52
++52
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++19
++19
++19
++2
++1
++0
++146
++146
++146
++52
++52
++52
++2
++1
++0
++1
++0
++0
++255
++255
++255
++122
++121
++121
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++52
++52
++52
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++52
++52
++52
++238
++238
++238
++255
++255
++255
++2
++1
++0
++122
++121
++121
++255
++255
++255
++103
++103
++102
++2
++1
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++255
++255
++255
++203
++203
++203
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++203
++203
++203
++203
++203
++203
++2
++1
++0
++146
++146
++146
++238
++238
++238
++52
++52
++52
++0
++0
++0
++1
++0
++0
++2
++1
++0
++4
++2
++0
++190
++190
++190
++255
++255
++255
++122
++121
++121
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++1
++0
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++71
++70
++69
++167
++167
++167
++255
++255
++255
++190
++190
++190
++1
++0
++0
++2
++1
++0
++167
++167
++167
++219
++219
++219
++2
++1
++0
++6
++3
++0
++146
++146
++146
++238
++238
++238
++2
++1
++0
++2
++1
++0
++190
++190
++190
++238
++238
++238
++146
++146
++146
++35
++35
++35
++2
++1
++0
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++52
++52
++52
++255
++255
++255
++52
++52
++52
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++167
++167
++167
++203
++203
++203
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++255
++255
++255
++103
++103
++102
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++35
++35
++35
++255
++255
++255
++203
++203
++203
++103
++103
++102
++19
++19
++19
++2
++1
++0
++2
++1
++0
++2
++1
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++238
++238
++238
++146
++146
++146
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++146
++146
++146
++255
++255
++255
++2
++1
++0
++122
++121
++121
++255
++255
++255
++19
++19
++19
++2
++1
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++238
++238
++238
++146
++146
++146
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++35
++35
++35
++255
++255
++255
++122
++121
++121
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++103
++103
++102
++255
++255
++255
++52
++52
++52
++2
++1
++0
++71
++70
++69
++255
++255
++255
++71
++70
++69
++19
++19
++19
++238
++238
++238
++146
++146
++146
++1
++0
++0
++4
++2
++0
++19
++19
++19
++146
++146
++146
++238
++238
++238
++255
++255
++255
++146
++146
++146
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++4
++2
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++52
++52
++52
++203
++203
++203
++255
++255
++255
++238
++238
++238
++71
++70
++69
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++103
++103
++102
++255
++255
++255
++4
++2
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++122
++121
++121
++146
++146
++146
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++2
++1
++0
++2
++1
++0
++219
++219
++219
++167
++167
++167
++103
++103
++102
++255
++255
++255
++35
++35
++35
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++146
++146
++146
++255
++255
++255
++71
++70
++69
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++84
++84
++83
++255
++255
++255
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++103
++103
++102
++84
++84
++83
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++255
++255
++255
++122
++121
++121
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++35
++35
++35
++203
++203
++203
++238
++238
++238
++4
++2
++0
++2
++1
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++238
++238
++238
++146
++146
++146
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++146
++146
++146
++255
++255
++255
++4
++2
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++2
++1
++0
++255
++255
++255
++122
++121
++121
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++238
++238
++238
++146
++146
++146
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++35
++35
++35
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++146
++146
++146
++238
++238
++238
++4
++2
++0
++4
++2
++0
++4
++2
++0
++71
++70
++69
++255
++255
++255
++71
++70
++69
++4
++2
++0
++4
++2
++0
++122
++121
++121
++238
++238
++238
++238
++238
++238
++167
++167
++167
++4
++2
++0
++2
++1
++0
++84
++84
++83
++238
++238
++238
++19
++19
++19
++1
++0
++0
++2
++1
++0
++255
++255
++255
++103
++103
++102
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++19
++19
++19
++238
++238
++238
++167
++167
++167
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++35
++35
++35
++238
++238
++238
++146
++146
++146
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++238
++238
++238
++103
++103
++102
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++122
++121
++121
++238
++238
++238
++52
++52
++52
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++52
++52
++52
++238
++238
++238
++255
++255
++255
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++2
++1
++0
++6
++3
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++2
++1
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++146
++146
++146
++238
++238
++238
++52
++52
++52
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++190
++190
++190
++255
++255
++255
++122
++121
++121
++4
++2
++0
++2
++1
++0
++71
++70
++69
++19
++19
++19
++4
++2
++0
++4
++2
++0
++19
++19
++19
++71
++70
++69
++2
++1
++0
++4
++2
++0
++4
++2
++0
++71
++70
++69
++19
++19
++19
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++6
++3
++0
++2
++1
++0
++2
++1
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++35
++35
++35
++255
++255
++255
++190
++190
++190
++84
++84
++83
++103
++103
++102
++219
++219
++219
++190
++190
++190
++4
++2
++0
++4
++2
++0
++4
++2
++0
++19
++19
++19
++238
++238
++238
++255
++255
++255
++71
++70
++69
++4
++2
++0
++4
++2
++0
++35
++35
++35
++255
++255
++255
++167
++167
++167
++103
++103
++102
++167
++167
++167
++255
++255
++255
++35
++35
++35
++4
++2
++0
++122
++121
++121
++255
++255
++255
++2
++1
++0
++4
++2
++0
++4
++2
++0
++71
++70
++69
++255
++255
++255
++203
++203
++203
++103
++103
++102
++84
++84
++83
++146
++146
++146
++238
++238
++238
++190
++190
++190
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++190
++190
++190
++219
++219
++219
++103
++103
++102
++103
++103
++102
++219
++219
++219
++190
++190
++190
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++190
++190
++190
++255
++255
++255
++146
++146
++146
++84
++84
++83
++91
++91
++91
++146
++146
++146
++238
++238
++238
++238
++238
++238
++255
++255
++255
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++190
++190
++190
++238
++238
++238
++146
++146
++146
++103
++103
++102
++103
++103
++102
++203
++203
++203
++219
++219
++219
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++2
++1
++0
++4
++2
++0
++122
++121
++121
++255
++255
++255
++4
++2
++0
++4
++2
++0
++4
++2
++0
++255
++255
++255
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++52
++52
++52
++203
++203
++203
++255
++255
++255
++255
++255
++255
++146
++146
++146
++19
++19
++19
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++190
++190
++190
++203
++203
++203
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++71
++70
++69
++219
++219
++219
++255
++255
++255
++219
++219
++219
++84
++84
++83
++6
++3
++0
++4
++2
++0
++103
++103
++102
++255
++255
++255
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++35
++35
++35
++167
++167
++167
++255
++255
++255
++255
++255
++255
++219
++219
++219
++122
++121
++121
++4
++2
++0
++4
++2
++0
++4
++2
++0
++103
++103
++102
++255
++255
++255
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++103
++103
++102
++255
++255
++255
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++255
++255
++255
++103
++103
++102
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++19
++19
++19
++167
++167
++167
++255
++255
++255
++255
++255
++255
++190
++190
++190
++35
++35
++35
++4
++2
++0
++4
++2
++0
++255
++255
++255
++103
++103
++102
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++122
++121
++121
++203
++203
++203
++255
++255
++255
++255
++255
++255
++225
++225
++225
++103
++103
++102
++103
++103
++102
++255
++255
++255
++6
++3
++0
++103
++103
++102
++255
++255
++255
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++103
++103
++102
++255
++255
++255
++4
++2
++0
++4
++2
++0
++103
++103
++102
++255
++255
++255
++4
++2
++0
++4
++2
++0
++255
++255
++255
++103
++103
++102
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++103
++103
++102
++255
++255
++255
++6
++3
++0
++52
++52
++52
++71
++70
++69
++122
++121
++121
++219
++219
++219
++255
++255
++255
++255
++255
++255
++167
++167
++167
++55
++55
++55
++255
++255
++255
++84
++84
++83
++4
++2
++0
++6
++3
++0
++255
++255
++255
++103
++103
++102
++4
++2
++0
++4
++2
++0
++103
++103
++102
++255
++255
++255
++4
++2
++0
++4
++2
++0
++6
++3
++0
++255
++255
++255
++103
++103
++102
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++7
++4
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++19
++19
++19
++255
++255
++255
++103
++103
++102
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++2
++1
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++122
++121
++121
++255
++255
++255
++52
++52
++52
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++122
++121
++121
++255
++255
++255
++35
++35
++35
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++7
++4
++0
++146
++146
++146
++238
++238
++238
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++190
++190
++190
++255
++255
++255
++146
++146
++146
++84
++84
++83
++89
++84
++79
++167
++167
++167
++255
++255
++255
++122
++121
++121
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++255
++255
++255
++146
++146
++146
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++122
++121
++121
++225
++225
++225
++255
++255
++255
++255
++255
++255
++203
++203
++203
++84
++84
++83
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++4
++2
++0
++7
++4
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++4
++2
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++10
++5
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++10
++5
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++10
++5
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++6
++3
++0
++7
++4
++0
++10
++5
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++10
++5
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++6
++3
++0
++7
++4
++0
++10
++5
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++6
++3
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++8
++4
++0
++6
++3
++0
++7
++4
++0
++10
++5
++0
++6
++3
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++6
++3
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++6
++3
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++6
++3
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++6
++3
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++10
++5
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++10
++5
++0
++7
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++6
++3
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++7
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++7
++4
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++8
++4
++0
++8
++4
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++8
++4
++0
++8
++4
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++7
++4
++0
++8
++4
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++8
++4
++0
++8
++4
++0
++7
++4
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++8
++4
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++8
++4
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++8
++4
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++14
++7
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++14
++7
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++10
++5
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++11
++6
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++10
++5
++0
++12
++6
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++10
++5
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++10
++5
++0
++11
++6
++0
++8
++4
++0
++11
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++14
++7
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++10
++5
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++14
++7
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++14
++7
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++11
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++10
++5
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++10
++5
++0
++14
++7
++0
++12
++6
++0
++11
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++16
++8
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++16
++8
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++16
++8
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++16
++8
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++16
++8
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++16
++8
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++16
++8
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++19
++9
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++19
++9
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++12
++6
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++12
++6
++0
++16
++8
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++12
++6
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++12
++6
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++19
++9
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++12
++6
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++12
++6
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++12
++6
++0
++12
++6
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++19
++9
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++12
++6
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++19
++9
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++19
++9
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++19
++10
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++19
++9
++0
++14
++7
++0
++16
++8
++0
++19
++9
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++14
++7
++0
++19
++9
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++12
++6
++0
++16
++8
++0
++12
++6
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++14
++7
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++14
++7
++0
++20
++10
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++20
++10
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++14
++7
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++14
++7
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++14
++7
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++10
++0
++16
++8
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++16
++8
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++14
++7
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++19
++9
++0
++19
++10
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++19
++9
++0
++22
++11
++0
++19
++10
++0
++19
++10
++0
++22
++11
++0
++19
++9
++0
++22
++11
++0
++22
++11
++0
++19
++9
++0
++19
++10
++0
++20
++10
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++19
++10
++0
++19
++10
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++10
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++20
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++19
++10
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++19
++9
++0
++16
++8
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++22
++11
++0
++22
++11
++0
++19
++9
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++19
++9
++0
++19
++10
++0
++20
++10
++0
++19
++9
++0
++19
++10
++0
++16
++8
++0
++20
++10
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++19
++9
++0
++19
++10
++0
++19
++10
++0
++22
++11
++0
++20
++10
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++19
++10
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++20
++10
++0
++19
++9
++0
++16
++8
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++22
++11
++0
++20
++10
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++22
++11
++0
++20
++10
++0
++16
++8
++0
++19
++9
++0
++19
++9
++0
++22
++11
++0
++19
++9
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++20
++10
++0
++19
++10
++0
++19
++10
++0
++20
++10
++0
++22
++11
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++22
++11
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++19
++10
++0
++22
++11
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++22
++11
++0
++20
++10
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++19
++9
++0
++22
++11
++0
++22
++11
++0
++19
++9
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++19
++9
++0
++19
++10
++0
++20
++10
++0
++19
++10
++0
++19
++10
++0
++20
++10
++0
++19
++10
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++19
++10
++0
++22
++11
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++23
++12
++0
++22
++11
++0
++23
++12
++0
++20
++10
++0
++22
++11
++0
++24
++12
++0
++20
++10
++0
++19
++9
++0
++22
++11
++0
++24
++12
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++19
++9
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++19
++10
++0
++22
++11
++0
++19
++9
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++23
++12
++0
++19
++10
++0
++19
++10
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++19
++10
++0
++19
++10
++0
++22
++11
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++19
++10
++0
++22
++11
++0
++20
++10
++0
++19
++10
++0
++22
++11
++0
++20
++10
++0
++23
++12
++0
++20
++10
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++19
++10
++0
++22
++11
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++19
++10
++0
++19
++10
++0
++20
++10
++0
++22
++11
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++19
++9
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++20
++10
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++22
++11
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++19
++10
++0
++20
++10
++0
++19
++9
++0
++20
++10
++0
++22
++11
++0
++23
++12
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++20
++10
++0
++22
++11
++0
++23
++12
++0
++19
++10
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++19
++9
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++20
++10
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++19
++9
++0
++22
++11
++0
++22
++11
++0
++19
++10
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++19
++9
++0
++20
++10
++0
++20
++10
++0
++19
++10
++0
++19
++10
++0
++19
++9
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++19
++10
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++19
++10
++0
++19
++9
++0
++19
++10
++0
++20
++10
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++22
++11
++0
++24
++12
++0
++23
++12
++0
++23
++12
++0
++26
++13
++0
++23
++12
++0
++23
++12
++0
++23
++12
++0
++26
++13
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++22
++11
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++19
++10
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++26
++13
++0
++23
++12
++0
++23
++12
++0
++26
++13
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++26
++13
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++23
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++24
++12
++0
++23
++12
++0
++23
++12
++0
++23
++12
++0
++23
++12
++0
++23
++12
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++20
++10
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++24
++12
++0
++20
++10
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++23
++12
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++20
++10
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++19
++9
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++20
++10
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++23
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++20
++10
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++22
++11
++0
++20
++10
++0
++23
++12
++0
++23
++12
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++23
++12
++0
++23
++12
++0
++26
++13
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++22
++11
++0
++22
++11
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++23
++12
++0
++24
++12
++0
++23
++12
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++29
++14
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++22
++11
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++23
++12
++0
++26
++13
++0
++22
++11
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++23
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++26
++13
++0
++29
++14
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++22
++11
++0
++22
++11
++0
++26
++13
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++26
++13
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++23
++12
++0
++22
++11
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++26
++13
++0
++26
++13
++0
++23
++12
++0
++23
++12
++0
++26
++13
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++22
++11
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++22
++11
++0
++24
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++23
++12
++0
++23
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++29
++14
++0
++24
++12
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++30
++15
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++30
++15
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++23
++12
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++24
++12
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++29
++14
++0
++29
++14
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++24
++12
++0
++26
++13
++0
++30
++15
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++23
++12
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++23
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++23
++12
++0
++24
++12
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++24
++12
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++24
++12
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++26
++13
++0
++31
++16
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++31
++16
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++31
++16
++0
++26
++13
++0
++26
++13
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++30
++15
++0
++31
++16
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++31
++16
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++31
++16
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++31
++16
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++24
++12
++0
++30
++15
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++31
++16
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++31
++16
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++31
++16
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++26
++13
++0
++29
++14
++0
++30
++15
++0
++31
++16
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++26
++13
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++31
++16
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++31
++16
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++26
++13
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++31
++16
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++26
++13
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++26
++13
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++29
++14
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++34
++17
++0
++31
++16
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++30
++15
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++30
++15
++0
++31
++16
++0
++29
++14
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++32
++16
++0
++30
++15
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++32
++16
++0
++30
++15
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++30
++15
++0
++32
++16
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++31
++16
++0
++30
++15
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++30
++15
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++31
++16
++0
++30
++15
++0
++29
++14
++0
++31
++16
++0
++26
++13
++0
++31
++16
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++29
++14
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++30
++15
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++32
++16
++0
++29
++14
++0
++29
++14
++0
++31
++16
++0
++30
++15
++0
++30
++15
++0
++31
++16
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++29
++14
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++29
++14
++0
++30
++15
++0
++31
++16
++0
++30
++15
++0
++30
++15
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++29
++14
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++29
++14
++0
++31
++16
++0
++30
++15
++0
++29
++14
++0
++29
++14
++0
++30
++15
++0
++30
++15
++0
++31
++16
++0
++30
++15
++0
++31
++16
++0
++30
++15
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++30
++15
++0
++32
++16
++0
++31
++16
++0
++29
++14
++0
++30
++15
++0
++32
++16
++0
++35
++18
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++35
++18
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++30
++15
++0
++34
++17
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++35
++18
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++31
++16
++0
++34
++17
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++31
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++29
++14
++0
++31
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++34
++17
++0
++30
++15
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++30
++15
++0
++31
++16
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++34
++17
++0
++32
++16
++0
++31
++16
++0
++34
++17
++0
++32
++16
++0
++31
++16
++0
++34
++17
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++30
++15
++0
++31
++16
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++31
++16
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++34
++17
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++31
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++35
++18
++0
++35
++18
++0
++35
++18
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++35
++18
++0
++32
++16
++0
++36
++18
++0
++35
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++34
++17
++0
++36
++18
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++36
++18
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++36
++18
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++35
++18
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++36
++18
++0
++34
++17
++0
++36
++18
++0
++34
++17
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++35
++18
++0
++35
++18
++0
++35
++18
++0
++35
++18
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++36
++18
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++35
++18
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++34
++17
++0
++36
++18
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++35
++18
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++32
++16
++0
++36
++18
++0
++36
++18
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++35
++18
++0
++36
++18
++0
++32
++16
++0
++35
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++35
++18
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++36
++18
++0
++34
++17
++0
++32
++16
++0
++32
++16
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++35
++18
++0
++36
++18
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++35
++18
++0
++36
++18
++0
++34
++17
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++36
++18
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++35
++18
++0
++34
++17
++0
++34
++17
++0
++36
++18
++0
++35
++18
++0
++35
++18
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++34
++17
++0
++32
++16
++0
++34
++17
++0
++35
++18
++0
++34
++17
++0
++36
++18
++0
++32
++16
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++35
++18
++0
++39
++19
++0
++39
++19
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++39
++19
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++34
++17
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++39
++19
++0
++39
++20
++1
++35
++18
++0
++35
++18
++0
++40
++20
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++39
++20
++1
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++40
++20
++0
++40
++20
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++35
++18
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++34
++17
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++35
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++35
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++34
++17
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++40
++20
++0
++34
++17
++0
++39
++19
++0
++39
++19
++0
++35
++18
++0
++36
++18
++0
++39
++20
++1
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++39
++20
++1
++39
++20
++1
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++35
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++34
++17
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++34
++17
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++34
++17
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++34
++17
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++36
++18
++0
++39
++19
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++35
++18
++0
++36
++18
++0
++36
++18
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++43
++21
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++43
++22
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++43
++21
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++43
++21
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++43
++22
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++43
++21
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++43
++21
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++36
++18
++0
++39
++19
++0
++39
++19
++0
++39
++19
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++36
++18
++0
++39
++19
++0
++40
++20
++0
++39
++19
++0
++39
++19
++0
++44
++22
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++44
++22
++0
++43
++22
++0
++46
++23
++0
++40
++20
++0
++43
++21
++0
++39
++19
++0
++43
++21
++0
++40
++20
++0
++43
++22
++0
++43
++22
++0
++43
++21
++0
++46
++23
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++22
++0
++40
++20
++0
++43
++22
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++44
++22
++0
++43
++21
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++22
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++46
++23
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++43
++22
++0
++43
++22
++0
++43
++21
++0
++44
++22
++0
++40
++20
++0
++43
++22
++0
++43
++21
++0
++44
++22
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++44
++22
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++46
++23
++0
++43
++21
++0
++44
++22
++0
++40
++20
++0
++43
++22
++0
++43
++22
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++44
++22
++0
++43
++21
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++40
++20
++0
++43
++22
++0
++44
++22
++0
++43
++21
++0
++43
++21
++0
++43
++22
++0
++43
++22
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++22
++0
++43
++21
++0
++40
++20
++0
++44
++22
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++43
++22
++0
++43
++22
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++22
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++40
++20
++0
++43
++21
++0
++43
++21
++0
++43
++22
++0
++40
++20
++0
++40
++20
++0
++43
++21
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++43
++22
++0
++44
++22
++0
++46
++23
++0
++44
++22
++0
++43
++21
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++47
++24
++0
++44
++22
++0
++46
++23
++0
++47
++24
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++48
++24
++0
++48
++24
++0
++46
++23
++0
++46
++23
++0
++47
++24
++0
++46
++23
++0
++46
++23
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++46
++23
++0
++43
++22
++0
++44
++22
++0
++44
++22
++0
++43
++22
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++43
++22
++0
++46
++23
++0
++43
++22
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++50
++25
++0
++46
++23
++0
++44
++22
++0
++43
++22
++0
++46
++23
++0
++46
++23
++0
++47
++24
++0
++44
++22
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++47
++24
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++47
++24
++0
++43
++22
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++47
++24
++0
++44
++22
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++46
++23
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++43
++22
++0
++47
++24
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++47
++24
++0
++48
++24
++0
++46
++23
++0
++44
++22
++0
++47
++24
++0
++47
++24
++0
++46
++23
++0
++46
++23
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++47
++24
++0
++43
++21
++0
++46
++23
++0
++46
++23
++0
++43
++22
++0
++44
++22
++0
++46
++23
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++44
++22
++0
++43
++22
++0
++46
++23
++0
++43
++22
++0
++46
++23
++0
++46
++23
++0
++44
++22
++0
++43
++22
++0
++44
++22
++0
++46
++23
++0
++47
++24
++0
++46
++23
++0
++46
++23
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++43
++22
++0
++47
++24
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++43
++22
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++43
++22
++0
++44
++22
++0
++46
++23
++0
++43
++22
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++44
++22
++0
++46
++23
++0
++44
++22
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++46
++23
++0
++46
++23
++0
++43
++22
++0
++43
++22
++0
++43
++21
++0
++47
++24
++0
++47
++24
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++47
++24
++0
++44
++22
++0
++46
++23
++0
++43
++22
++0
++43
++22
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++46
++23
++0
++43
++21
++0
++44
++22
++0
++44
++22
++0
++46
++23
++0
++43
++22
++0
++46
++23
++0
++43
++21
++0
++43
++22
++0
++43
++21
++0
++44
++22
++0
++43
++22
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++47
++24
++0
++44
++22
++0
++46
++23
++0
++44
++22
++0
++43
++22
++0
++46
++23
++0
++44
++22
++0
++44
++22
++0
++43
++22
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++43
++21
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++46
++23
++0
++43
++21
++0
++44
++22
++0
++46
++23
++0
++43
++22
++0
++47
++24
++0
++46
++23
++0
++43
++22
++0
++46
++23
++0
++44
++22
++0
++43
++22
++0
++46
++23
++0
++43
++22
++0
++44
++22
++0
++44
++22
++0
++43
++22
++0
++43
++21
++0
++44
++22
++0
++46
++23
++0
++43
++21
++0
++46
++23
++0
++46
++23
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++43
++21
++0
++44
++22
++0
++48
++24
++0
++47
++24
++0
++47
++24
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++47
++24
++0
++48
++24
++0
++48
++24
++0
++50
++25
++0
++47
++24
++0
++48
++24
++0
++48
++24
++0
++46
++23
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++47
++24
++0
++50
++25
++0
++48
++24
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++51
++26
++1
++47
++24
++0
++47
++24
++0
++50
++25
++0
++46
++23
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++47
++24
++0
++50
++25
++0
++47
++24
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++46
++23
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++46
++23
++0
++50
++25
++0
++50
++25
++0
++46
++23
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++47
++24
++0
++50
++25
++0
++50
++25
++0
++47
++24
++0
++47
++24
++0
++46
++23
++0
++47
++24
++0
++50
++25
++0
++47
++24
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++47
++24
++0
++50
++25
++0
++47
++24
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++46
++23
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++48
++24
++0
++50
++25
++0
++47
++24
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++48
++24
++0
++46
++23
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++47
++24
++0
++47
++24
++0
++50
++25
++0
++48
++24
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++47
++24
++0
++50
++25
++0
++48
++24
++0
++47
++24
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++46
++23
++0
++48
++24
++0
++46
++23
++0
++47
++24
++0
++48
++24
++0
++50
++25
++0
++46
++23
++0
++50
++25
++0
++50
++25
++0
++46
++23
++0
++50
++25
++0
++47
++24
++0
++50
++25
++0
++47
++24
++0
++47
++24
++0
++50
++25
++0
++47
++24
++0
++46
++23
++0
++50
++25
++0
++48
++24
++0
++46
++23
++0
++50
++25
++0
++47
++24
++0
++50
++25
++0
++50
++25
++0
++51
++26
++1
++47
++24
++0
++50
++25
++0
++48
++24
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++51
++26
++1
++48
++24
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++46
++23
++0
++47
++24
++0
++47
++24
++0
++47
++24
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++47
++24
++0
++46
++23
++0
++50
++25
++0
++47
++24
++0
++47
++24
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++47
++24
++0
++50
++25
++0
++48
++24
++0
++47
++24
++0
++50
++25
++0
++47
++24
++0
++46
++23
++0
++47
++24
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++47
++24
++0
++50
++25
++0
++50
++25
++0
++47
++24
++0
++47
++24
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++44
++22
++0
++50
++25
++0
++47
++24
++0
++46
++23
++0
++48
++24
++0
++50
++25
++0
++48
++24
++0
++48
++24
++0
++50
++25
++0
++47
++24
++0
++47
++24
++0
++46
++23
++0
++50
++25
++0
++47
++24
++0
++46
++23
++0
++47
++24
++0
++48
++24
++0
++46
++23
++0
++47
++24
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++55
++27
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++48
++24
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++51
++26
++1
++51
++26
++1
++50
++25
++0
++50
++25
++0
++50
++25
++0
++54
++28
++1
++50
++25
++0
++53
++26
++0
++51
++26
++1
++50
++25
++0
++53
++26
++0
++54
++28
++1
++53
++26
++0
++51
++26
++1
++54
++28
++1
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++48
++24
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++48
++24
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++55
++27
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++50
++25
++0
++50
++25
++0
++50
++25
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++48
++24
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++56
++28
++0
++55
++27
++0
++56
++28
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++58
++29
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++56
++28
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++53
++26
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++56
++28
++0
++53
++26
++0
++56
++28
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++50
++25
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++50
++25
++0
++55
++27
++0
++56
++28
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++56
++28
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++54
++28
++1
++54
++28
++1
++54
++28
++1
++55
++27
++0
++53
++26
++0
++53
++26
++0
++56
++28
++0
++53
++26
++0
++53
++26
++0
++54
++28
++1
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++54
++28
++1
++55
++27
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++54
++28
++1
++53
++26
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++56
++28
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++55
++27
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++55
++27
++0
++53
++26
++0
++53
++26
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++59
++30
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++59
++30
++0
++60
++30
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++59
++30
++0
++58
++29
++0
++59
++30
++0
++59
++30
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++59
++30
++0
++58
++29
++0
++60
++30
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++60
++30
++0
++58
++29
++0
++60
++30
++0
++59
++30
++0
++56
++28
++0
++60
++30
++0
++59
++30
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++60
++30
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++59
++30
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++59
++30
++0
++58
++29
++0
++56
++28
++0
++59
++30
++0
++60
++30
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++59
++30
++0
++60
++30
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++60
++30
++0
++58
++29
++0
++59
++30
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++59
++30
++0
++58
++29
++0
++56
++28
++0
++59
++30
++0
++60
++30
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++60
++30
++0
++58
++29
++0
++58
++29
++0
++59
++30
++0
++60
++30
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++59
++30
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++59
++30
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++55
++27
++0
++59
++30
++0
++59
++30
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++58
++29
++0
++60
++30
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++59
++30
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++59
++30
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++60
++30
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++60
++30
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++59
++30
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++55
++27
++0
++58
++29
++0
++59
++30
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++59
++30
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++59
++30
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++58
++29
++0
++56
++28
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++58
++29
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++59
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++63
++31
++0
++60
++30
++0
++63
++31
++0
++59
++30
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++65
++32
++0
++60
++30
++0
++63
++31
++0
++63
++31
++0
++59
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++65
++32
++0
++63
++31
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++58
++29
++0
++63
++31
++0
++60
++30
++0
++63
++31
++0
++59
++30
++0
++63
++31
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++58
++29
++0
++63
++31
++0
++60
++30
++0
++58
++29
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++63
++31
++0
++58
++29
++0
++60
++30
++0
++60
++30
++0
++58
++29
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++63
++31
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++60
++30
++0
++65
++32
++0
++59
++30
++0
++59
++30
++0
++63
++31
++0
++58
++29
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++59
++30
++0
++58
++29
++0
++65
++32
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++60
++30
++0
++59
++30
++0
++63
++31
++0
++59
++30
++0
++60
++30
++0
++60
++30
++0
++59
++30
++0
++59
++30
++0
++63
++31
++0
++59
++30
++0
++59
++30
++0
++58
++29
++0
++60
++30
++0
++63
++31
++0
++59
++30
++0
++58
++29
++0
++60
++30
++0
++58
++29
++0
++60
++30
++0
++60
++30
++0
++63
++31
++0
++58
++29
++0
++60
++30
++0
++60
++30
++0
++60
++30
++0
++58
++29
++0
++58
++29
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++63
++31
++0
++65
++32
++0
++66
++33
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++63
++31
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++66
++33
++0
++63
++31
++0
++66
++33
++0
++66
++33
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++66
++33
++0
++66
++33
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++66
++33
++0
++66
++33
++0
++66
++33
++0
++63
++31
++0
++66
++33
++0
++63
++31
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++63
++31
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++66
++33
++0
++65
++32
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++63
++31
++0
++65
++32
++0
++63
++31
++0
++68
++34
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++60
++30
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++63
++31
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++63
++31
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++60
++30
++0
++63
++31
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++63
++31
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++65
++32
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++66
++33
++0
++65
++32
++0
++65
++32
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++63
++31
++0
++66
++33
++0
++66
++33
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++66
++33
++0
++70
++35
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++70
++35
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++71
++36
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++70
++35
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++66
++33
++0
++70
++35
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++71
++36
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++68
++34
++1
++70
++35
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++70
++35
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++70
++35
++0
++70
++35
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++66
++33
++0
++70
++35
++0
++70
++35
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++66
++33
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++66
++33
++0
++70
++35
++0
++66
++33
++0
++70
++35
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++70
++35
++0
++66
++33
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++70
++35
++0
++68
++34
++1
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++71
++36
++0
++68
++34
++0
++68
++34
++0
++68
++34
++1
++68
++34
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++70
++35
++0
++70
++35
++0
++66
++33
++0
++70
++35
++0
++66
++33
++0
++68
++34
++1
++66
++33
++0
++66
++33
++0
++68
++34
++0
++68
++34
++1
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++66
++33
++0
++68
++34
++0
++70
++35
++0
++66
++33
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++66
++33
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++66
++33
++0
++70
++35
++0
++66
++33
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++66
++33
++0
++66
++33
++0
++68
++34
++0
++70
++35
++0
++66
++33
++0
++68
++34
++0
++70
++35
++0
++68
++34
++0
++66
++33
++0
++66
++33
++0
++70
++35
++0
++68
++34
++0
++66
++33
++0
++65
++32
++0
++66
++33
++0
++70
++35
++0
++66
++33
++0
++68
++34
++0
++66
++33
++0
++66
++33
++0
++66
++33
++0
++70
++35
++0
++68
++34
++0
++68
++34
++0
++68
++34
++0
++66
++33
++0
++68
++34
++0
++70
++35
++0
++71
++36
++0
++68
++34
++0
++71
++36
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++75
++37
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++75
++37
++0
++71
++36
++0
++71
++36
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++75
++37
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++75
++37
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++75
++37
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++75
++37
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++75
++37
++0
++71
++36
++0
++71
++36
++0
++70
++35
++0
++70
++35
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++75
++37
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++75
++37
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++68
++34
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++71
++36
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++68
++34
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++71
++36
++0
++75
++37
++0
++71
++36
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++71
++36
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++70
++35
++0
++72
++36
++0
++71
++36
++0
++75
++37
++0
++71
++36
++0
++71
++36
++0
++70
++35
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++71
++36
++0
++70
++35
++0
++70
++35
++0
++75
++37
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++71
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++72
++36
++0
++75
++37
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++71
++36
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++70
++35
++0
++71
++36
++0
++75
++37
++0
++70
++35
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++68
++34
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++71
++36
++0
++75
++37
++0
++70
++35
++0
++75
++37
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++71
++36
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++72
++36
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++72
++36
++0
++71
++36
++0
++70
++35
++0
++72
++36
++0
++70
++35
++0
++72
++36
++0
++70
++35
++0
++70
++35
++0
++70
++35
++0
++70
++35
++0
++70
++35
++0
++72
++36
++0
++70
++35
++0
++71
++36
++0
++71
++36
++0
++71
++36
++0
++70
++35
++0
++70
++35
++0
++72
++36
++0
++70
++35
++0
++70
++35
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++79
++39
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++79
++39
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++79
++39
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++79
++39
++0
++75
++37
++0
++72
++36
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++79
++39
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++79
++39
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++79
++39
++0
++76
++38
++0
++75
++37
++0
++79
++39
++0
++79
++39
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++79
++39
++0
++72
++36
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++79
++39
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++79
++39
++0
++76
++38
++0
++75
++37
++0
++79
++39
++0
++76
++38
++0
++75
++37
++0
++81
++40
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++72
++36
++0
++79
++39
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++79
++39
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++72
++36
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++79
++39
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++76
++38
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++75
++37
++0
++79
++39
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++72
++36
++0
++75
++37
++0
++72
++36
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++75
++37
++0
++75
++37
++0
++76
++38
++0
++72
++36
++0
++75
++37
++0
++75
++37
++0
++72
++36
++0
++75
++37
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++82
++41
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++82
++41
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++82
++41
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++83
++42
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++82
++41
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++82
++41
++0
++79
++39
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++76
++38
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++82
++41
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++82
++41
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++82
++41
++0
++79
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++40
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++76
++38
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++82
++41
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++81
++40
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++76
++38
++0
++79
++39
++0
++81
++40
++0
++76
++38
++0
++82
++41
++0
++79
++39
++0
++79
++39
++0
++81
++40
++0
++79
++39
++0
++76
++38
++0
++76
++38
++0
++79
++39
++0
++79
++39
++0
++76
++38
++0
++76
++38
++0
++81
++40
++0
++79
++39
++0
++79
++39
++0
++76
++38
++0
++79
++39
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++82
++41
++0
++83
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++83
++42
++0
++83
++42
++0
++83
++42
++0
++87
++43
++0
++82
++41
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++87
++43
++0
++82
++41
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++82
++41
++0
++87
++43
++0
++88
++44
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++87
++43
++0
++84
++42
++0
++87
++43
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++87
++43
++0
++83
++42
++0
++83
++42
++0
++87
++43
++0
++84
++42
++0
++84
++42
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++87
++43
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++87
++43
++0
++82
++41
++0
++87
++43
++0
++82
++41
++0
++84
++42
++0
++87
++43
++0
++84
++42
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++82
++41
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++87
++43
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++83
++42
++0
++83
++42
++0
++83
++42
++0
++84
++42
++0
++87
++43
++0
++83
++42
++0
++87
++43
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++87
++43
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++87
++43
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++82
++41
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++82
++41
++0
++83
++42
++0
++82
++41
++0
++87
++43
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++82
++41
++0
++82
++41
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++87
++43
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++87
++43
++0
++84
++42
++0
++83
++42
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++82
++41
++0
++84
++42
++0
++82
++41
++0
++83
++42
++0
++82
++41
++0
++83
++42
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++82
++41
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++82
++41
++0
++84
++42
++0
++83
++42
++0
++87
++43
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++82
++41
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++83
++42
++0
++84
++42
++0
++82
++41
++0
++84
++42
++0
++84
++42
++0
++81
++40
++0
++83
++42
++0
++82
++41
++0
++82
++41
++0
++84
++42
++0
++82
++41
++0
++84
++42
++0
++82
++41
++0
++82
++41
++0
++83
++42
++0
++83
++42
++0
++83
++42
++0
++83
++42
++0
++82
++41
++0
++84
++42
++0
++82
++41
++0
++84
++42
++0
++81
++40
++0
++82
++41
++0
++82
++41
++0
++82
++41
++0
++82
++41
++0
++81
++40
++0
++84
++42
++0
++84
++42
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++91
++45
++0
++88
++44
++0
++91
++45
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++84
++42
++0
++88
++44
++0
++91
++45
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++88
++44
++0
++91
++45
++0
++91
++45
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++93
++46
++0
++88
++44
++0
++91
++45
++0
++88
++44
++0
++87
++43
++0
++91
++45
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++91
++45
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++91
++45
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++91
++45
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++91
++45
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++91
++45
++0
++91
++45
++0
++91
++45
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++91
++45
++0
++91
++45
++0
++88
++44
++0
++87
++43
++0
++91
++45
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++91
++45
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++91
++46
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++91
++45
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++84
++42
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++88
++44
++0
++84
++42
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++84
++42
++0
++88
++44
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++91
++45
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++88
++44
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++84
++42
++0
++84
++42
++0
++87
++43
++0
++87
++43
++0
++87
++43
++0
++84
++42
++0
++93
++46
++0
++88
++44
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++95
++48
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++93
++46
++0
++95
++48
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++95
++48
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++91
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++95
++48
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++95
++48
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++93
++46
++0
++91
++45
++0
++91
++45
++0
++91
++45
++0
++91
++45
++0
++88
++44
++0
++91
++45
++0
++91
++45
++0
++93
++46
++0
++88
++44
++0
++96
++48
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++95
++48
++0
++98
++49
++0
++95
++48
++0
++95
++48
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++99
++50
++0
++95
++48
++0
++96
++48
++0
++98
++49
++0
++101
++50
++0
++96
++48
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++96
++48
++0
++99
++50
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++99
++50
++0
++96
++48
++0
++96
++48
++0
++98
++49
++0
++99
++50
++0
++99
++50
++0
++98
++49
++0
++98
++49
++0
++99
++50
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++95
++48
++0
++95
++48
++0
++98
++49
++0
++99
++50
++0
++99
++50
++0
++95
++48
++0
++95
++48
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++99
++50
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++95
++48
++0
++98
++49
++0
++101
++50
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++99
++50
++0
++98
++49
++0
++95
++48
++0
++98
++49
++0
++96
++48
++0
++96
++48
++0
++95
++48
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++95
++48
++0
++98
++49
++0
++96
++48
++0
++96
++48
++0
++98
++49
++0
++99
++50
++0
++96
++48
++0
++95
++48
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++99
++50
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++95
++48
++0
++96
++48
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++95
++48
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++95
++48
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++99
++50
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++99
++50
++0
++98
++49
++0
++98
++49
++0
++95
++48
++0
++95
++48
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++95
++48
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++95
++48
++0
++98
++49
++0
++95
++48
++0
++96
++48
++0
++95
++48
++0
++96
++48
++0
++98
++49
++0
++95
++48
++0
++96
++48
++0
++96
++48
++0
++99
++50
++0
++95
++48
++0
++96
++48
++0
++96
++48
++0
++98
++49
++0
++99
++50
++0
++98
++49
++0
++98
++49
++0
++95
++48
++0
++96
++48
++0
++96
++48
++0
++95
++48
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++95
++48
++0
++95
++48
++0
++96
++48
++0
++95
++48
++0
++96
++48
++0
++96
++48
++0
++96
++48
++0
++96
++48
++0
++96
++48
++0
++96
++48
++0
++95
++48
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++98
++49
++0
++95
++48
++0
++96
++48
++0
++95
++48
++0
++96
++48
++0
++98
++49
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++96
++48
++0
++96
++48
++0
++99
++50
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++98
++49
++0
++96
++48
++0
++96
++48
++0
++95
++48
++0
++98
++49
++0
++95
++48
++0
++95
++48
++0
++98
++49
++0
++96
++48
++0
++95
++48
++0
++95
++48
++0
++98
++49
++0
++95
++48
++0
++95
++48
++0
++95
++48
++0
++93
++46
++0
++96
++48
++0
++95
++48
++0
++95
++48
++0
++93
++46
++0
++96
++48
++0
++95
++48
++0
++95
++48
++0
++95
++48
++0
++95
++48
++0
++102
++51
++0
++101
++50
++0
++99
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++105
++52
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++105
++52
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++105
++52
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++105
++52
++0
++102
++51
++0
++105
++52
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++105
++52
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++105
++52
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++105
++52
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++105
++52
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++105
++52
++0
++102
++51
++0
++99
++50
++0
++102
++51
++0
++99
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++105
++52
++0
++101
++50
++0
++105
++52
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++99
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++99
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++99
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++99
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++99
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++102
++51
++0
++102
++51
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++99
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++99
++50
++0
++102
++51
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++99
++50
++0
++101
++50
++0
++101
++50
++0
++101
++50
++0
++99
++50
++0
++99
++50
++0
++98
++49
++0
++101
++50
++0
++99
++50
++0
++99
++50
++0
++101
++50
++0
++98
++49
++0
++101
++50
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++107
++54
++0
++107
++54
++0
++106
++53
++0
++107
++54
++0
++106
++53
++0
++107
++54
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++110
++55
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++107
++54
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++107
++54
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++107
++54
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++107
++54
++0
++107
++54
++0
++106
++53
++0
++107
++54
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++107
++54
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++107
++54
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++107
++54
++0
++105
++52
++0
++106
++53
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++107
++54
++0
++102
++51
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++107
++54
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++106
++53
++0
++105
++52
++0
++105
++52
++0
++107
++54
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++105
++52
++0
++102
++51
++0
++105
++52
++0
++105
++52
++0
++102
++51
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++114
++57
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++111
++56
++0
++114
++57
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++114
++57
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++114
++57
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++114
++57
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++107
++54
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++107
++54
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++111
++56
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++110
++55
++0
++110
++55
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++107
++54
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++111
++56
++0
++110
++55
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++110
++55
++0
++114
++57
++0
++110
++55
++0
++107
++54
++0
++107
++54
++0
++110
++55
++0
++107
++54
++0
++107
++54
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++110
++55
++0
++111
++56
++0
++107
++54
++0
++107
++54
++0
++106
++53
++0
++110
++55
++0
++110
++55
++0
++107
++54
++0
++107
++54
++0
++107
++54
++0
++110
++55
++0
++106
++53
++0
++106
++53
++0
++106
++53
++0
++107
++54
++0
++107
++54
++0
++107
++54
++0
++111
++56
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++111
++56
++0
++114
++57
++0
++111
++56
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++111
++56
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++111
++56
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++111
++56
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++111
++56
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++117
++59
++0
++114
++57
++0
++111
++56
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++111
++56
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++114
++57
++0
++111
++56
++0
++111
++56
++0
++111
++56
++0
++114
++57
++0
++111
++56
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++122
++62
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++124
++62
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++117
++59
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++122
++62
++0
++122
++62
++0
++119
++60
++0
++117
++59
++0
++122
++62
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++122
++62
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++122
++62
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++119
++60
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++117
++59
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++126
++63
++0
++124
++62
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++126
++63
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++122
++62
++0
++124
++62
++0
++122
++62
++0
++122
++62
++0
++122
++62
++0
++122
++62
++0
++122
++62
++0
++122
++62
++0
++122
++62
++0
++124
++62
++0
++122
++62
++0
++119
++60
++0
++122
++62
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++119
++60
++0
++126
++63
++0
++126
++63
++0
++129
++64
++0
++126
++63
++0
++126
++63
++0
++129
++64
++0
++129
++64
++0
++126
++63
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++132
++66
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++126
++63
++0
++130
++65
++0
++132
++66
++0
++130
++65
++0
++129
++64
++0
++132
++66
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++132
++66
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++132
++66
++0
++129
++64
++0
++129
++64
++0
++132
++66
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++126
++63
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++126
++63
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++126
++63
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++126
++63
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++126
++63
++0
++129
++64
++0
++132
++66
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++126
++63
++0
++129
++64
++0
++126
++63
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++126
++63
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++126
++63
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++126
++63
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++129
++64
++0
++126
++63
++0
++129
++64
++0
++129
++64
++0
++126
++63
++0
++126
++63
++0
++129
++64
++0
++130
++65
++0
++129
++64
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++126
++63
++0
++124
++62
++0
++126
++63
++0
++126
++63
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++135
++68
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++135
++68
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++135
++68
++0
++135
++68
++0
++133
++67
++0
++135
++68
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++135
++68
++0
++135
++68
++0
++133
++67
++0
++135
++68
++0
++137
++68
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++135
++68
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++135
++68
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++135
++68
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++135
++68
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++135
++68
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++135
++68
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++135
++68
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++137
++68
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++135
++68
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++135
++68
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++135
++68
++0
++133
++67
++0
++133
++67
++0
++130
++65
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++133
++67
++0
++132
++66
++0
++130
++65
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++130
++65
++0
++132
++66
++0
++132
++66
++0
++132
++66
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++129
++64
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++130
++65
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++142
++71
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++142
++71
++0
++139
++69
++0
++139
++69
++0
++142
++71
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++142
++71
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++139
++69
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++135
++68
++0
++137
++68
++0
++137
++68
++0
++137
++68
++0
++135
++68
++0
++135
++68
++0
++137
++68
++0
++137
++68
++0
++135
++68
++0
++135
++68
++0
++135
++68
++0
++137
++68
++0
++133
++67
++0
++133
++67
++0
++143
++72
++0
++142
++71
++0
++142
++71
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++146
++73
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++146
++73
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++146
++73
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++146
++73
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++146
++73
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++139
++69
++0
++143
++72
++0
++142
++71
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++142
++71
++0
++139
++69
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++142
++71
++0
++142
++71
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++139
++69
++0
++142
++71
++0
++143
++72
++0
++142
++71
++0
++139
++69
++0
++142
++71
++0
++139
++69
++0
++142
++71
++0
++142
++71
++0
++139
++69
++0
++142
++71
++0
++139
++69
++0
++142
++71
++0
++142
++71
++0
++142
++71
++0
++139
++69
++0
++142
++71
++0
++143
++72
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++151
++75
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++151
++75
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++151
++75
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++146
++73
++0
++146
++73
++0
++146
++73
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++146
++73
++0
++146
++73
++0
++148
++74
++0
++148
++74
++0
++143
++72
++0
++146
++73
++0
++143
++72
++0
++146
++73
++0
++143
++72
++0
++146
++73
++0
++143
++72
++0
++146
++73
++0
++146
++73
++0
++143
++72
++0
++146
++73
++0
++146
++73
++0
++143
++72
++0
++146
++73
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++143
++72
++0
++146
++73
++0
++152
++76
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++154
++77
++0
++151
++75
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++154
++77
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++154
++77
++0
++154
++77
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++155
++78
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++154
++77
++0
++154
++77
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++151
++75
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++151
++75
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++154
++77
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++151
++75
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++151
++75
++0
++152
++76
++0
++151
++75
++0
++151
++75
++0
++152
++76
++0
++152
++76
++0
++151
++75
++0
++151
++75
++0
++152
++76
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++151
++75
++0
++148
++74
++0
++151
++75
++0
++148
++74
++0
++148
++74
++0
++151
++75
++0
++148
++74
++0
++151
++75
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++148
++74
++0
++155
++78
++0
++155
++78
++0
++156
++78
++0
++154
++77
++0
++155
++78
++0
++155
++78
++0
++155
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++155
++78
++0
++155
++78
++0
++155
++78
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++155
++78
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++155
++78
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++155
++78
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++160
++80
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++155
++78
++0
++155
++78
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++155
++78
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++154
++77
++0
++156
++78
++0
++156
++78
++0
++155
++78
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++155
++78
++0
++158
++79
++0
++155
++78
++0
++158
++79
++0
++155
++78
++0
++156
++78
++0
++158
++79
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++155
++78
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++158
++79
++0
++155
++78
++0
++155
++78
++0
++154
++77
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++156
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++155
++78
++0
++155
++78
++0
++156
++78
++0
++155
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++155
++78
++0
++155
++78
++0
++156
++78
++0
++155
++78
++0
++155
++78
++0
++155
++78
++0
++156
++78
++0
++154
++77
++0
++155
++78
++0
++155
++78
++0
++155
++78
++0
++158
++79
++0
++155
++78
++0
++155
++78
++0
++154
++77
++0
++154
++77
++0
++152
++76
++0
++154
++77
++0
++155
++78
++0
++154
++77
++0
++155
++78
++0
++155
++78
++0
++155
++78
++0
++152
++76
++0
++154
++77
++0
++154
++77
++0
++151
++75
++0
++160
++80
++0
++160
++80
++0
++158
++79
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++165
++82
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++165
++82
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++158
++79
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++160
++80
++0
++160
++80
++0
++162
++81
++0
++160
++80
++0
++158
++79
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++158
++79
++0
++158
++79
++0
++160
++80
++0
++156
++78
++0
++158
++79
++0
++160
++80
++0
++160
++80
++0
++158
++79
++0
++158
++79
++0
++156
++78
++0
++158
++79
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++169
++85
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++169
++85
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++169
++85
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++162
++81
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++162
++81
++0
++166
++83
++0
++165
++82
++0
++165
++82
++0
++166
++83
++0
++165
++82
++0
++162
++81
++0
++165
++82
++0
++165
++82
++0
++162
++81
++0
++165
++82
++0
++165
++82
++0
++165
++82
++0
++162
++81
++0
++165
++82
++0
++162
++81
++0
++162
++81
++0
++165
++82
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++162
++81
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++171
++86
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++171
++86
++0
++171
++86
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++171
++86
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++171
++86
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++171
++86
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++171
++86
++0
++169
++85
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++170
++85
++0
++170
++85
++0
++171
++86
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++171
++86
++0
++169
++85
++0
++171
++86
++0
++169
++85
++0
++171
++86
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++171
++86
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++171
++86
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++171
++86
++0
++171
++86
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++170
++85
++0
++170
++85
++0
++169
++85
++0
++170
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++169
++85
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++169
++85
++0
++166
++83
++0
++166
++83
++0
++166
++83
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++173
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++173
++87
++0
++174
++87
++0
++174
++87
++0
++173
++87
++0
++173
++87
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++173
++87
++0
++174
++87
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++174
++87
++0
++175
++88
++0
++173
++87
++0
++175
++88
++0
++174
++87
++0
++177
++88
++0
++173
++87
++0
++175
++88
++0
++173
++87
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++173
++87
++0
++173
++87
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++177
++88
++0
++177
++88
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++173
++87
++0
++174
++87
++0
++175
++88
++0
++174
++87
++0
++177
++88
++0
++175
++88
++0
++175
++88
++0
++177
++88
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++175
++88
++0
++177
++88
++0
++174
++87
++0
++177
++88
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++175
++88
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++177
++88
++0
++173
++87
++0
++174
++87
++0
++177
++88
++0
++174
++87
++0
++175
++88
++0
++177
++88
++0
++173
++87
++0
++177
++88
++0
++173
++87
++0
++173
++87
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++173
++87
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++177
++88
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++173
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++173
++87
++0
++174
++87
++0
++171
++86
++0
++174
++87
++0
++173
++87
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++174
++87
++0
++174
++87
++0
++174
++87
++0
++173
++87
++0
++173
++87
++0
++173
++87
++0
++174
++87
++0
++174
++87
++0
++175
++88
++0
++173
++87
++0
++173
++87
++0
++173
++87
++0
++173
++87
++0
++175
++88
++0
++174
++87
++0
++173
++87
++0
++175
++88
++0
++173
++87
++0
++173
++87
++0
++174
++87
++0
++173
++87
++0
++173
++87
++0
++171
++86
++0
++173
++87
++0
++173
++87
++0
++173
++87
++0
++173
++87
++0
++173
++87
++0
++175
++88
++0
++173
++87
++0
++174
++87
++0
++174
++87
++0
++171
++86
++0
++174
++87
++0
++175
++88
++0
++174
++87
++0
++173
++87
++0
++174
++87
++0
++175
++88
++0
++174
++87
++0
++175
++88
++0
++174
++87
++0
++171
++86
++0
++173
++87
++0
++174
++87
++0
++173
++87
++0
++173
++87
++0
++173
++87
++0
++173
++87
++0
++174
++87
++0
++174
++87
++0
++171
++86
++0
++174
++87
++0
++171
++86
++0
++173
++87
++0
++174
++87
++0
++174
++87
++0
++171
++86
++0
++173
++87
++0
++173
++87
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++170
++85
++0
++171
++86
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++180
++90
++0
++180
++90
++0
++180
++90
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++180
++90
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++177
++88
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++179
++89
++0
++179
++89
++0
++179
++89
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++179
++89
++0
++177
++88
++0
++177
++88
++0
++179
++89
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++177
++88
++0
++179
++89
++0
++177
++88
++0
++175
++88
++0
++177
++88
++0
++175
++88
++0
++177
++88
++0
++174
++87
++0
++175
++88
++0
++175
++88
++0
++174
++87
++0
++180
++90
++0
++182
++91
++0
++180
++90
++0
++180
++90
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++180
++90
++0
++182
++91
++0
++180
++90
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++180
++90
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++180
++90
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++180
++90
++0
++182
++91
++0
++182
++91
++0
++180
++90
++0
++180
++90
++0
++182
++91
++0
++180
++90
++0
++180
++90
++0
++180
++90
++0
++180
++90
++0
++180
++90
++0
++180
++90
++0
++180
++90
++0
++179
++89
++0
++180
++90
++0
++180
++90
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++180
++90
++0
++179
++89
++0
++183
++92
++0
++183
++92
++0
++185
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++183
++92
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++183
++92
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++189
++94
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++183
++92
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++189
++94
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++189
++94
++0
++186
++93
++0
++186
++93
++0
++189
++94
++0
++186
++93
++0
++189
++94
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++189
++94
++0
++189
++94
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++189
++94
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++189
++94
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++183
++92
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++183
++92
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++183
++92
++0
++186
++93
++0
++186
++93
++0
++185
++93
++0
++186
++93
++0
++186
++93
++0
++183
++92
++0
++183
++92
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++183
++92
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++183
++92
++0
++185
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++185
++93
++0
++185
++93
++0
++185
++93
++0
++186
++93
++0
++185
++93
++0
++183
++92
++0
++183
++92
++0
++185
++93
++0
++185
++93
++0
++183
++92
++0
++186
++93
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++185
++93
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++183
++92
++0
++182
++91
++0
++182
++91
++0
++189
++94
++0
++189
++94
++0
++186
++93
++0
++189
++94
++0
++189
++94
++0
++186
++93
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++193
++96
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++193
++96
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++193
++96
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++190
++95
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++190
++95
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++186
++93
++0
++189
++94
++0
++186
++93
++0
++189
++94
++0
++186
++93
++0
++186
++93
++0
++189
++94
++0
++189
++94
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++186
++93
++0
++190
++95
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++195
++98
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++190
++95
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++194
++97
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++190
++95
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++190
++95
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++193
++96
++0
++190
++95
++0
++193
++96
++0
++193
++96
++0
++190
++95
++0
++193
++96
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++193
++96
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++190
++95
++0
++194
++97
++0
++195
++98
++0
++195
++98
++0
++194
++97
++0
++195
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++199
++99
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++195
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++195
++98
++0
++195
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++195
++98
++0
++195
++98
++0
++195
++98
++0
++196
++98
++0
++196
++98
++0
++195
++98
++0
++195
++98
++0
++195
++98
++0
++196
++98
++0
++195
++98
++0
++194
++97
++0
++195
++98
++0
++196
++98
++0
++195
++98
++0
++195
++98
++0
++195
++98
++0
++195
++98
++0
++194
++97
++0
++194
++97
++0
++195
++98
++0
++194
++97
++0
++195
++98
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++194
++97
++0
++193
++96
++0
++194
++97
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++199
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++203
++101
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++203
++101
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++199
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++200
++100
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++199
++99
++0
++196
++98
++0
++199
++99
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++200
++100
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++200
++100
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++203
++101
++0
++200
++100
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++200
++100
++0
++203
++101
++0
++200
++100
++0
++203
++101
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++203
++101
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++199
++99
++0
++200
++100
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++207
++104
++0
++206
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++206
++103
++0
++206
++103
++0
++207
++104
++0
++205
++103
++0
++206
++103
++0
++207
++104
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++207
++104
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++206
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++207
++104
++0
++207
++104
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++205
++103
++0
++203
++101
++0
++203
++101
++0
++203
++101
++0
++205
++103
++0
++206
++103
++0
++208
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++207
++104
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++207
++104
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++207
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++207
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++207
++104
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++207
++104
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++207
++104
++0
++207
++104
++0
++210
++105
++0
++207
++104
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++207
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++207
++104
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++207
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++207
++104
++0
++207
++104
++0
++208
++104
++0
++207
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++207
++104
++0
++210
++105
++0
++208
++104
++0
++207
++104
++0
++207
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++208
++104
++0
++208
++104
++0
++207
++104
++0
++208
++104
++0
++208
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++208
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++208
++104
++0
++208
++104
++0
++206
++103
++0
++208
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++206
++103
++0
++207
++104
++0
++206
++103
++0
++206
++103
++0
++207
++104
++0
++207
++104
++0
++206
++103
++0
++207
++104
++0
++206
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++206
++103
++0
++205
++103
++0
++205
++103
++0
++206
++103
++0
++206
++103
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++211
++106
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++210
++105
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++211
++106
++0
++213
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++213
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++210
++105
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++210
++105
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++211
++106
++0
++213
++106
++0
++211
++106
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++210
++105
++0
++213
++106
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++213
++106
++0
++210
++105
++0
++211
++106
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++210
++105
++0
++210
++105
++0
++211
++106
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++211
++106
++0
++210
++105
++0
++211
++106
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++210
++105
++0
++208
++104
++0
++210
++105
++0
++208
++104
++0
++207
++104
++0
++208
++104
++0
++210
++105
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++211
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++213
++106
++0
++211
++106
++0
++213
++106
++0
++213
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++211
++106
++0
++213
++106
++0
++210
++105
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++214
++107
++0
++217
++108
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++214
++107
++0
++214
++107
++0
++214
++107
++0
++213
++106
++0
++213
++106
++0
++214
++107
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++218
++109
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++217
++108
++0
++214
++107
++0
++218
++109
++0
++219
++110
++0
++218
++109
++0
++218
++109
++0
++219
++110
++0
++219
++110
++0
++218
++109
++0
++219
++110
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++218
++109
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++221
++111
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++221
++111
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++218
++109
++0
++219
++110
++0
++219
++110
++0
++218
++109
++0
++219
++110
++0
++219
++110
++0
++218
++109
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++218
++109
++0
++218
++109
++0
++219
++110
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++219
++110
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++218
++109
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++223
++112
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++219
++110
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++219
++110
++0
++222
++111
++0
++219
++110
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++219
++110
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++219
++110
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++219
++110
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++219
++110
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++219
++110
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++219
++110
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++219
++110
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++219
++110
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++219
++110
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++221
++111
++0
++219
++110
++0
++219
++110
++0
++221
++111
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++219
++110
++0
++218
++109
++0
++219
++110
++0
++219
++110
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++223
++112
++0
++222
++111
++0
++222
++111
++0
++223
++112
++0
++222
++111
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++222
++111
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++222
++111
++0
++223
++112
++0
++222
++111
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++222
++111
++0
++223
++112
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++222
++111
++0
++222
++111
++0
++223
++112
++0
++221
++111
++0
++223
++112
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++222
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++222
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++221
++111
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++222
++111
++0
++223
++112
++0
++223
++112
++0
++223
++112
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++226
++113
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++226
++113
++0
++226
++113
++0
++226
++113
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++229
++114
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++230
++115
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++230
++115
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++231
++116
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++233
++117
++0
++233
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++234
++117
++0
++235
++118
++0
++235
++118
++0
++234
++117
++0
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/video/logo/Makefile linux-2.6.25-m8050/drivers/video/logo/Makefile
+--- linux-git/drivers/video/logo/Makefile 2008-11-10 12:20:29.000000000 +0100
++++ linux-2.6.25-m8050/drivers/video/logo/Makefile 2008-08-13 12:20:14.000000000 +0200
+@@ -13,6 +13,7 @@
+ obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o
+ obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o
+ obj-$(CONFIG_LOGO_M32R_CLUT224) += logo_m32r_clut224.o
++obj-$(CONFIG_LOGO_M8050_CLUT224) += logo_m8050_clut224.o
+
+ obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o
+
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/drivers/video/s3c2410fb.c linux-2.6.25-m8050/drivers/video/s3c2410fb.c
+--- linux-git/drivers/video/s3c2410fb.c 2008-11-10 12:20:29.000000000 +0100
++++ linux-2.6.25-m8050/drivers/video/s3c2410fb.c 2008-10-03 16:17:18.000000000 +0200
+@@ -91,8 +91,11 @@
+ #include <asm/mach/map.h>
+ #include <asm/arch/regs-lcd.h>
+ #include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
+ #include <asm/arch/fb.h>
+
++#include <asm/plat-s3c/regs-timer.h>
++
+ #ifdef CONFIG_PM
+ #include <linux/pm.h>
+ #endif
+@@ -456,6 +459,9 @@
+ dprintk("lcdcon[4] = 0x%08lx\n", fbi->regs.lcdcon4);
+ dprintk("lcdcon[5] = 0x%08lx\n", fbi->regs.lcdcon5);
+
++ /* turn off backlight */
++// s3c2410_gpio_setpin(S3C2410_GPB3, 0);
++
+ writel(fbi->regs.lcdcon1 & ~S3C2410_LCDCON1_ENVID,
+ regs + S3C2410_LCDCON1);
+ writel(fbi->regs.lcdcon2, regs + S3C2410_LCDCON2);
+@@ -468,6 +474,9 @@
+
+ fbi->regs.lcdcon1 |= S3C2410_LCDCON1_ENVID,
+ writel(fbi->regs.lcdcon1, regs + S3C2410_LCDCON1);
++ /* turn on backlight */
++// s3c2410_gpio_setpin(S3C2410_GPB3, 1);
++
+ }
+
+ /*
+@@ -1051,6 +1060,10 @@
+
+ msleep(1);
+ clk_disable(info->clk);
++ s3c2410_gpio_setpin(S3C2410_GPC0,0);
++// s3c2410_gpio_setpin(S3C2410_GPC7,1);
++ s3c2410_gpio_setpin(S3C2440_GPJ3,1);
++ s3c2410_gpio_setpin(S3C2440_GPJ0,1);
+
+ return 0;
+ }
+@@ -1065,6 +1078,25 @@
+
+ s3c2410fb_init_registers(fbinfo);
+
++ /*restart the backlight*/
++ s3c2410_gpio_cfgpin(S3C2410_GPC0, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPC0, 1);
++ s3c2410_gpio_cfgpin(S3C2410_GPB3, S3C2410_GPIO_OUTPUT);
++ s3c2410_gpio_setpin(S3C2410_GPB3, 0);
++ s3c2410_gpio_cfgpin(S3C2410_GPB0, S3C2410_GPB0_TOUT0);
++
++ __raw_writel(0x00000002,S3C2410_TCMPB(0));
++ __raw_writel(0x000002ff,S3C2410_TCFG0);
++ __raw_writel(0x00000000,S3C2410_TCFG1);
++ __raw_writel(0x00000003,S3C2410_TCNTB(0));
++ __raw_writel(0x00080001,S3C2410_TCMPB(0));
++ __raw_writel(0x0050000a,S3C2410_TCON);
++ __raw_writel(0x00500009,S3C2410_TCON);
++
++ s3c2410_gpio_setpin(S3C2410_GPB3, 1);
++
++// s3c2410_gpio_setpin(S3C2410_GPC7, 0);
++
+ return 0;
+ }
+
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/asm-arm/arch-s3c2410/keypad.h linux-2.6.25-m8050/include/asm-arm/arch-s3c2410/keypad.h
+--- linux-git/include/asm-arm/arch-s3c2410/keypad.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/include/asm-arm/arch-s3c2410/keypad.h 2008-10-14 12:57:38.000000000 +0200
+@@ -0,0 +1,42 @@
++/*
++ * linux/include/asm-arm/arch-omap/keypad.h
++ *
++ * Copyright (C) 2006 Komal Shah <komal_shah802003@yahoo.com>
++ *
++ * 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 ASMARM_ARCH_KEYPAD_H
++#define ASMARM_ARCH_KEYPAD_H
++
++struct m8050_kp_platform_data {
++ int rows;
++ int cols;
++ int *keymap;
++ int *keymap_a;
++ int *keymap_b;
++ int *keymap_c;
++ int *keymap_d;
++ unsigned int keymapsize;
++ unsigned int rep:1;
++ unsigned long delay;
++ unsigned int dbounce:1;
++ unsigned int *row_gpios;
++ unsigned int *col_gpios;
++};
++
++/* Group (0..3) -- when multiple keys are pressed, only the
++ * keys pressed in the same group are considered as pressed. This is
++ * in order to workaround certain crappy HW designs that produce ghost
++ * keypresses. */
++#define GROUP_0 (0 << 16)
++#define GROUP_1 (1 << 16)
++#define GROUP_2 (2 << 16)
++#define GROUP_3 (3 << 16)
++#define GROUP_MASK GROUP_3
++
++#define KEY(col, row, val) (((col) << 28) | ((row) << 24) | (val))
++
++#endif
++
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/asm-arm/arch-s3c2410/map.h linux-2.6.25-m8050/include/asm-arm/arch-s3c2410/map.h
+--- linux-git/include/asm-arm/arch-s3c2410/map.h 2008-11-10 12:20:29.000000000 +0100
++++ linux-2.6.25-m8050/include/asm-arm/arch-s3c2410/map.h 2008-08-21 12:06:50.000000000 +0200
+@@ -100,6 +100,7 @@
+ #define S3C24XX_SZ_ADC SZ_1M
+
+ /* SPI */
++#define S3C24XX_VA_SPI S3C_VA_SPI
+ #define S3C2410_PA_SPI (0x59000000)
+ #define S3C24XX_SZ_SPI SZ_1M
+
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/asm-arm/arch-s3c2410/regs-sdi.h linux-2.6.25-m8050/include/asm-arm/arch-s3c2410/regs-sdi.h
+--- linux-git/include/asm-arm/arch-s3c2410/regs-sdi.h 2008-11-10 12:20:29.000000000 +0100
++++ linux-2.6.25-m8050/include/asm-arm/arch-s3c2410/regs-sdi.h 2008-07-01 13:32:15.000000000 +0200
+@@ -28,9 +28,15 @@
+ #define S3C2410_SDIDCNT (0x30)
+ #define S3C2410_SDIDSTA (0x34)
+ #define S3C2410_SDIFSTA (0x38)
++
+ #define S3C2410_SDIDATA (0x3C)
+ #define S3C2410_SDIIMSK (0x40)
+
++#define S3C2440_SDIDATA (0x40)
++#define S3C2440_SDIIMSK (0x3C)
++
++#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)
+@@ -42,7 +48,8 @@
+ #define S3C2410_SDICMDCON_LONGRSP (1<<10)
+ #define S3C2410_SDICMDCON_WAITRSP (1<<9)
+ #define S3C2410_SDICMDCON_CMDSTART (1<<8)
+-#define S3C2410_SDICMDCON_INDEX (0xff)
++#define S3C2410_SDICMDCON_SENDERHOST (1<<6)
++#define S3C2410_SDICMDCON_INDEX (0x3f)
+
+ #define S3C2410_SDICMDSTAT_CRCFAIL (1<<12)
+ #define S3C2410_SDICMDSTAT_CMDSENT (1<<11)
+@@ -51,6 +58,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)
+@@ -59,6 +69,7 @@
+ #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)
+
+@@ -68,6 +79,7 @@
+ #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)
+@@ -82,10 +94,12 @@
+ #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_TXHALF (1<<11)
+-#define S3C2410_SDIFSTA_TXEMPTY (1<<10)
++#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)
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/asm-arm/arch-s3c2410/ts.h linux-2.6.25-m8050/include/asm-arm/arch-s3c2410/ts.h
+--- linux-git/include/asm-arm/arch-s3c2410/ts.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/include/asm-arm/arch-s3c2410/ts.h 2008-05-29 07:57:07.000000000 +0200
+@@ -0,0 +1,28 @@
++/* linux/include/asm/arch-s3c2410/ts.h
++ *
++ * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
++ *
++ *
++ * 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.
++ *
++ *
++ * Changelog:
++ * 24-Mar-2005 RTP Created file
++ * 03-Aug-2005 RTP Renamed to ts.h
++ */
++
++#ifndef __ASM_ARM_TS_H
++#define __ASM_ARM_TS_H
++
++struct s3c2410_ts_mach_info {
++ int delay;
++ int presc;
++ int oversampling_shift;
++};
++
++void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info);
++
++#endif /* __ASM_ARM_TS_H */
++
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/asm-arm/plat-s3c/map.h linux-2.6.25-m8050/include/asm-arm/plat-s3c/map.h
+--- linux-git/include/asm-arm/plat-s3c/map.h 2008-11-10 12:20:31.000000000 +0100
++++ linux-2.6.25-m8050/include/asm-arm/plat-s3c/map.h 2008-08-21 12:06:14.000000000 +0200
+@@ -36,5 +36,6 @@
+ #define S3C_VA_TIMER S3C_ADDR(0x00300000) /* timer block */
+ #define S3C_VA_WATCHDOG S3C_ADDR(0x00400000) /* watchdog */
+ #define S3C_VA_UART S3C_ADDR(0x01000000) /* UART */
++#define S3C_VA_SPI S3C_ADDR(0x01100000) /* SPI */
+
+ #endif /* __ASM_PLAT_MAP_H */
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/asm-arm/plat-s3c/regs-serial.h linux-2.6.25-m8050/include/asm-arm/plat-s3c/regs-serial.h
+--- linux-git/include/asm-arm/plat-s3c/regs-serial.h 2008-11-10 12:20:31.000000000 +0100
++++ linux-2.6.25-m8050/include/asm-arm/plat-s3c/regs-serial.h 2008-07-17 15:41:40.000000000 +0200
+@@ -214,6 +214,8 @@
+ unsigned long ulcon; /* value of ulcon for port */
+ unsigned long ufcon; /* value of ufcon for port */
+
++ unsigned long ri_pin; /* gpio to use for Ring Indicator */
++
+ struct s3c24xx_uart_clksrc *clocks;
+ unsigned int clocks_size;
+ };
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/asm-arm/plat-s3c24xx/devs.h linux-2.6.25-m8050/include/asm-arm/plat-s3c24xx/devs.h
+--- linux-git/include/asm-arm/plat-s3c24xx/devs.h 2008-11-10 12:20:31.000000000 +0100
++++ linux-2.6.25-m8050/include/asm-arm/plat-s3c24xx/devs.h 2008-05-29 07:57:07.000000000 +0200
+@@ -41,6 +41,7 @@
+ extern struct platform_device s3c_device_timer2;
+ extern struct platform_device s3c_device_timer3;
+
++extern struct platform_device s3c_device_ts;
+ extern struct platform_device s3c_device_usbgadget;
+
+ /* s3c2440 specific devices */
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/asm-arm/plat-s3c24xx/mci.h linux-2.6.25-m8050/include/asm-arm/plat-s3c24xx/mci.h
+--- linux-git/include/asm-arm/plat-s3c24xx/mci.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/include/asm-arm/plat-s3c24xx/mci.h 2008-07-01 13:32:52.000000000 +0200
+@@ -0,0 +1,15 @@
++#ifndef _ARCH_MCI_H
++#define _ARCH_MCI_H
++
++struct s3c24xx_mci_pdata {
++ unsigned int wprotect_invert : 1;
++ unsigned int detect_invert : 1; /* set => detect active high. */
++
++ unsigned int gpio_detect;
++ unsigned int gpio_wprotect;
++ unsigned long ocr_avail;
++ void (*set_power)(unsigned char power_mode,
++ unsigned short vdd);
++};
++
++#endif /* _ARCH_NCI_H */
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/asm-arm/plat-s3c24xx/regs-spi.h linux-2.6.25-m8050/include/asm-arm/plat-s3c24xx/regs-spi.h
+--- linux-git/include/asm-arm/plat-s3c24xx/regs-spi.h 2008-11-10 12:20:31.000000000 +0100
++++ linux-2.6.25-m8050/include/asm-arm/plat-s3c24xx/regs-spi.h 2008-08-21 11:57:05.000000000 +0200
+@@ -15,6 +15,23 @@
+ #define S3C2410_SPI1 (0x20)
+ #define S3C2412_SPI1 (0x100)
+
++#define S3C2410_SPI0REG(x) ((x) + S3C24XX_VA_SPI)
++#define S3C2410_SPI1REG(x) ((x) + S3C24XX_VA_SPI + 0x20)
++
++#define S3C2410_SPI0CON S3C2410_SPI0REG(0x00)
++#define S3C2410_SPI0STA S3C2410_SPI0REG(0x04)
++#define S3C2410_SPI0PIN S3C2410_SPI0REG(0x08)
++#define S3C2410_SPI0PRE S3C2410_SPI0REG(0x0c)
++#define S3C2410_SPI0DTX S3C2410_SPI0REG(0x10)
++#define S3C2410_SPI0DRX S3C2410_SPI0REG(0x14)
++
++#define S3C2410_SPI1CON S3C2410_SPI1REG(0x00)
++#define S3C2410_SPI1STA S3C2410_SPI1REG(0x04)
++#define S3C2410_SPI1PIN S3C2410_SPI1REG(0x08)
++#define S3C2410_SPI1PRE S3C2410_SPI1REG(0x0c)
++#define S3C2410_SPI1DTX S3C2410_SPI1REG(0x10)
++#define S3C2410_SPI1DRX S3C2410_SPI1REG(0x14)
++
+ #define S3C2410_SPCON (0x00)
+
+ #define S3C2412_SPCON_RXFIFO_RB2 (0<<14)
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/include/linux/leds.h linux-2.6.25-m8050/include/linux/leds.h
+--- linux-git/include/linux/leds.h 2008-11-10 12:20:32.000000000 +0100
++++ linux-2.6.25-m8050/include/linux/leds.h 2008-10-10 15:50:40.000000000 +0200
+@@ -123,6 +123,15 @@
+ #define ledtrig_ide_activity() do {} while(0)
+ #endif
+
++/* Trigger specific functions */
++#ifdef CONFIG_LEDS_TRIGGER_EV_LED
++extern void ledtrig_ev_led_activity(void);
++extern void scanner_data(void);
++#else
++#define ledtrig_ev_led_activity() do {} while(0)
++#define scanner_data() do {} while(0)
++#endif
++
+ /* For the leds-gpio driver */
+ struct gpio_led {
+ const char *name;
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/kernel/printk.c linux-2.6.25-m8050/kernel/printk.c
+--- linux-git/kernel/printk.c 2008-11-10 12:20:34.000000000 +0100
++++ linux-2.6.25-m8050/kernel/printk.c 2008-09-30 12:08:46.000000000 +0200
+@@ -42,6 +42,8 @@
+ {
+ }
+
++extern void printascii(const char *);
++
+ #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
+
+ /* printk's without a loglevel use this.. */
+@@ -715,6 +717,8 @@
+ printed_len += vscnprintf(printk_buf + printed_len,
+ sizeof(printk_buf) - printed_len, fmt, args);
+
++// printascii(printk_buf);
++
+ /*
+ * Copy the output into log_buf. If the caller didn't provide
+ * appropriate log level tags, we insert them here
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/m8050-config linux-2.6.25-m8050/m8050-config
+--- linux-git/m8050-config 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/m8050-config 2008-09-12 18:47:50.000000000 +0200
+@@ -0,0 +1,950 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.25
++# Fri Sep 12 09:23:16 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ARCH_SUPPORTS_AOUT=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_GROUP_SCHED=y
++CONFIG_FAIR_GROUP_SCHED=y
++# CONFIG_RT_GROUP_SCHED is not set
++CONFIG_USER_SCHED=y
++# CONFIG_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++CONFIG_SYSFS_DEPRECATED_V2=y
++# CONFIG_RELAY is not set
++# CONFIG_NAMESPACES is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++CONFIG_EMBEDDED=y
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_COMPAT_BRK=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_TIMERFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++CONFIG_HAVE_OPROFILE=y
++# CONFIG_KPROBES is not set
++CONFIG_HAVE_KPROBES=y
++CONFIG_HAVE_KRETPROBES=y
++CONFIG_PROC_PAGE_MONITOR=y
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++# CONFIG_KMOD is not set
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++CONFIG_CLASSIC_RCU=y
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_ORION is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++# CONFIG_ARCH_MSM7X00A is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C2410_PM_DEBUG=y
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=1
++
++#
++# S3C2400 Machines
++#
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++CONFIG_MACH_AML_M8050=y
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM920T=y
++CONFIG_CPU_32v4T=y
++CONFIG_CPU_ABRT_EV4T=y
++CONFIG_CPU_CACHE_V4WT=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++# CONFIG_OABI_COMPAT is not set
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="console=ttySAC0 root=/dev/ram0"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++CONFIG_PM_DEBUG=y
++CONFIG_PM_VERBOSE=y
++CONFIG_CAN_PM_TRACE=y
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND=y
++CONFIG_SUSPEND_FREEZER=y
++CONFIG_APM_EMULATION=y
++CONFIG_ARCH_SUSPEND_POSSIBLE=y
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=y
++CONFIG_PACKET_MMAP=y
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++# CONFIG_IP_PNP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++# CONFIG_INET_LRO is not set
++# CONFIG_INET_DIAG is not set
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++CONFIG_IPV6=y
++# CONFIG_IPV6_PRIVACY is not set
++# CONFIG_IPV6_ROUTER_PREF is not set
++# CONFIG_IPV6_OPTIMISTIC_DAD is not set
++# CONFIG_INET6_AH is not set
++# CONFIG_INET6_ESP is not set
++# CONFIG_INET6_IPCOMP is not set
++# CONFIG_IPV6_MIP6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET6_XFRM_MODE_BEET is not set
++# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
++# CONFIG_IPV6_SIT is not set
++# CONFIG_IPV6_TUNNEL is not set
++# CONFIG_IPV6_MULTIPLE_TABLES is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_CAN is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++CONFIG_WIRELESS_EXT=y
++# CONFIG_MAC80211 is not set
++CONFIG_IEEE80211=y
++# CONFIG_IEEE80211_DEBUG is not set
++# CONFIG_IEEE80211_CRYPT_WEP is not set
++# CONFIG_IEEE80211_CRYPT_CCMP is not set
++# CONFIG_IEEE80211_CRYPT_TKIP is not set
++# CONFIG_IEEE80211_SOFTMAC is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++CONFIG_FW_LOADER=y
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++# CONFIG_MTD_REDBOOT_PARTS is not set
++# CONFIG_MTD_CMDLINE_PARTS is not set
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++# CONFIG_MTD_CFI is not set
++# CONFIG_MTD_JEDECPROBE is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++# CONFIG_MTD_RAM is not set
++# CONFIG_MTD_ROM is not set
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++CONFIG_MTD_NAND_S3C2410=y
++# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
++# CONFIG_MTD_NAND_S3C2410_HWECC is not set
++# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++# CONFIG_PARPORT is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=8
++CONFIG_BLK_DEV_RAM_SIZE=8192
++# CONFIG_BLK_DEV_XIP is not set
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_ENCLOSURE_SERVICES is not set
++CONFIG_AML_M8052=y
++CONFIG_HAVE_IDE=y
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++# CONFIG_NETDEVICES is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++CONFIG_INPUT_POLLDEV=y
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++CONFIG_INPUT_APMPOWER=y
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++# CONFIG_KEYBOARD_ATKBD is not set
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++CONFIG_KEYBOARD_M8050=y
++CONFIG_KEYBOARD_GPIO=y
++# CONFIG_INPUT_MOUSE is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++CONFIG_TOUCHSCREEN_S3C2410=y
++# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++CONFIG_VT_HW_CONSOLE_BINDING=y
++# CONFIG_SERIAL_NONSTANDARD is not set
++# CONFIG_INTELLIHEAD is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++# CONFIG_IPMI_HANDLER is not set
++# CONFIG_HW_RANDOM is not set
++# CONFIG_NVRAM is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++# CONFIG_I2C is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=y
++CONFIG_SPI_S3C24XX=y
++CONFIG_SPI_S3C24XX_GPIO=y
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++# CONFIG_HWMON is not set
++# CONFIG_WATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++# CONFIG_MFD_ASIC3 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++# CONFIG_FIRMWARE_EDID is not set
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++# CONFIG_FB_S1D13XXX is not set
++CONFIG_FB_S3C2410=y
++CONFIG_FB_S3C2410_DEBUG=y
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++# CONFIG_LOGO is not set
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++# CONFIG_HID_SUPPORT is not set
++# CONFIG_USB_SUPPORT is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_MMC_SPI=y
++# CONFIG_MMC_S3C is not set
++# CONFIG_NEW_LEDS is not set
++CONFIG_RTC_LIB=y
++# CONFIG_RTC_CLASS is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++# CONFIG_EXT3_FS is not set
++# CONFIG_EXT4DEV_FS is not set
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++CONFIG_DNOTIFY=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++# CONFIG_MSDOS_FS is not set
++# CONFIG_VFAT_FS is not set
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_ROMFS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++# CONFIG_NETWORK_FILESYSTEMS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++# CONFIG_DEBUG_BUGVERBOSE is not set
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_BACKTRACE_SELF_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++# CONFIG_DEBUG_STACK_USAGE is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=1
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++CONFIG_CRC_ITU_T=y
++CONFIG_CRC32=y
++CONFIG_CRC7=y
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/m8050-wireless linux-2.6.25-m8050/m8050-wireless
+--- linux-git/m8050-wireless 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/m8050-wireless 2008-10-31 14:29:36.000000000 +0100
+@@ -0,0 +1,1009 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.25
++# Fri Oct 31 08:29:20 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ARCH_SUPPORTS_AOUT=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=18
++# CONFIG_CGROUPS is not set
++CONFIG_GROUP_SCHED=y
++CONFIG_FAIR_GROUP_SCHED=y
++# CONFIG_RT_GROUP_SCHED is not set
++CONFIG_USER_SCHED=y
++# CONFIG_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++CONFIG_SYSFS_DEPRECATED_V2=y
++# CONFIG_RELAY is not set
++# CONFIG_NAMESPACES is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++CONFIG_EMBEDDED=y
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++# CONFIG_BUG is not set
++CONFIG_ELF_CORE=y
++CONFIG_COMPAT_BRK=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_TIMERFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++CONFIG_HAVE_OPROFILE=y
++# CONFIG_KPROBES is not set
++CONFIG_HAVE_KPROBES=y
++CONFIG_HAVE_KRETPROBES=y
++CONFIG_PROC_PAGE_MONITOR=y
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++# CONFIG_KMOD is not set
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++CONFIG_CLASSIC_RCU=y
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_ORION is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++# CONFIG_ARCH_MSM7X00A is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++CONFIG_S3C2410_DMA_DEBUG=y
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=1
++
++#
++# S3C2400 Machines
++#
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++CONFIG_MACH_AML_M8050=y
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM920T=y
++CONFIG_CPU_32v4T=y
++CONFIG_CPU_ABRT_EV4T=y
++CONFIG_CPU_CACHE_V4WT=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++# CONFIG_OABI_COMPAT is not set
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="console=ttySAC0 root=/dev/ram0"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_ARCH_SUSPEND_POSSIBLE=y
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=y
++CONFIG_PACKET_MMAP=y
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++# CONFIG_IP_PNP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++# CONFIG_INET_LRO is not set
++# CONFIG_INET_DIAG is not set
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++CONFIG_IPV6=y
++# CONFIG_IPV6_PRIVACY is not set
++# CONFIG_IPV6_ROUTER_PREF is not set
++# CONFIG_IPV6_OPTIMISTIC_DAD is not set
++# CONFIG_INET6_AH is not set
++# CONFIG_INET6_ESP is not set
++# CONFIG_INET6_IPCOMP is not set
++# CONFIG_IPV6_MIP6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET6_XFRM_MODE_BEET is not set
++# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
++# CONFIG_IPV6_SIT is not set
++# CONFIG_IPV6_TUNNEL is not set
++# CONFIG_IPV6_MULTIPLE_TABLES is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_CAN is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++CONFIG_WIRELESS_EXT=y
++# CONFIG_MAC80211 is not set
++CONFIG_IEEE80211=y
++# CONFIG_IEEE80211_DEBUG is not set
++# CONFIG_IEEE80211_CRYPT_WEP is not set
++# CONFIG_IEEE80211_CRYPT_CCMP is not set
++# CONFIG_IEEE80211_CRYPT_TKIP is not set
++# CONFIG_IEEE80211_SOFTMAC is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++CONFIG_FW_LOADER=y
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++# CONFIG_MTD_REDBOOT_PARTS is not set
++# CONFIG_MTD_CMDLINE_PARTS is not set
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++# CONFIG_MTD_CFI is not set
++# CONFIG_MTD_JEDECPROBE is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++# CONFIG_MTD_RAM is not set
++# CONFIG_MTD_ROM is not set
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++CONFIG_MTD_NAND_VERIFY_WRITE=y
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++CONFIG_MTD_NAND_S3C2410=y
++# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
++# CONFIG_MTD_NAND_S3C2410_HWECC is not set
++# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++# CONFIG_PARPORT is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=4
++CONFIG_BLK_DEV_RAM_SIZE=4096
++# CONFIG_BLK_DEV_XIP is not set
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++# CONFIG_MISC_DEVICES is not set
++CONFIG_HAVE_IDE=y
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_NET_ETHERNET is not set
++# CONFIG_NETDEV_1000 is not set
++# CONFIG_NETDEV_10000 is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++CONFIG_WLAN_80211=y
++CONFIG_LIBERTAS=m
++CONFIG_LIBERTAS_SDIO=m
++# CONFIG_LIBERTAS_DEBUG is not set
++# CONFIG_HOSTAP is not set
++# CONFIG_WAN is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++# CONFIG_INPUT_GENERICLEDS is not set
++
++#
++# Input Device Drivers
++#
++# CONFIG_INPUT_KEYBOARD is not set
++# CONFIG_INPUT_MOUSE is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++CONFIG_TOUCHSCREEN_S3C2410=y
++# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_LIBPS2 is not set
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++CONFIG_VT_HW_CONSOLE_BINDING=y
++# CONFIG_SERIAL_NONSTANDARD is not set
++# CONFIG_INTELLIHEAD is not set
++
++#
++# Serial drivers
++#
++# CONFIG_SERIAL_8250 is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=32
++# CONFIG_IPMI_HANDLER is not set
++# CONFIG_HW_RANDOM is not set
++# CONFIG_NVRAM is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++# CONFIG_I2C_CHARDEV is not set
++
++#
++# I2C Algorithms
++#
++# CONFIG_I2C_ALGOBIT is not set
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_DS1682 is not set
++# CONFIG_SENSORS_EEPROM is not set
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_PCF8575 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_TPS65010 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=y
++CONFIG_SPI_S3C24XX=y
++CONFIG_SPI_S3C24XX_GPIO=y
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++# CONFIG_HWMON is not set
++# CONFIG_WATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++# CONFIG_MFD_ASIC3 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++# CONFIG_FIRMWARE_EDID is not set
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++# CONFIG_FB_S1D13XXX is not set
++CONFIG_FB_S3C2410=y
++# CONFIG_FB_S3C2410_DEBUG is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_M8050_CLUT224=y
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++# CONFIG_SND_MIXER_OSS is not set
++# CONFIG_SND_PCM_OSS is not set
++# CONFIG_SND_SEQUENCER_OSS is not set
++# CONFIG_SND_DYNAMIC_MINORS is not set
++# CONFIG_SND_SUPPORT_OLD_API is not set
++# CONFIG_SND_VERBOSE_PROCFS is not set
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# SPI devices
++#
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC=y
++CONFIG_SND_S3C24XX_SOC=y
++CONFIG_SND_S3C24XX_SOC_I2S=y
++CONFIG_SND_S3C24XX_SOC_M8050_WM8750=y
++# CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650 is not set
++
++#
++# SoC Audio support for SuperH
++#
++
++#
++# ALSA SoC audio for Freescale SOCs
++#
++CONFIG_SND_SOC_WM8750=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++# CONFIG_HID_SUPPORT is not set
++# CONFIG_USB_SUPPORT is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_MMC_SPI=y
++# CONFIG_MMC_S3C is not set
++# CONFIG_NEW_LEDS is not set
++CONFIG_RTC_LIB=y
++# CONFIG_RTC_CLASS is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++# CONFIG_EXT3_FS is not set
++# CONFIG_EXT4DEV_FS is not set
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++CONFIG_DNOTIFY=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++# CONFIG_MSDOS_FS is not set
++# CONFIG_VFAT_FS is not set
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++CONFIG_JFFS2_FS_WBUF_VERIFY=y
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_ROMFS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++# CONFIG_NETWORK_FILESYSTEMS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++
++#
++# Kernel hacking
++#
++CONFIG_PRINTK_TIME=y
++# CONFIG_ENABLE_WARN_DEPRECATED is not set
++# CONFIG_ENABLE_MUST_CHECK is not set
++# CONFIG_MAGIC_SYSRQ is not set
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++# CONFIG_DEBUG_KERNEL is not set
++CONFIG_FRAME_POINTER=y
++# CONFIG_SAMPLES is not set
++# CONFIG_DEBUG_USER is not set
++CONFIG_DEBUG_S3C_UART=1
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++CONFIG_CRC_ITU_T=y
++CONFIG_CRC32=y
++CONFIG_CRC7=y
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/MAINTAINERS linux-2.6.25-m8050/MAINTAINERS
+--- linux-git/MAINTAINERS 2008-11-10 12:20:12.000000000 +0100
++++ linux-2.6.25-m8050/MAINTAINERS 2008-07-01 13:32:58.000000000 +0200
+@@ -3419,6 +3419,13 @@
+ W: http://www.ibm.com/developerworks/linux/linux390/
+ S: Supported
+
++S3C24XX SD/MMC Driver
++P: Ben Dooks
++M: ben-linux@fluff.org
++L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
++L: linux-kernel@vger.kernel.org
++S: Supported
++
+ SAA7146 VIDEO4LINUX-2 DRIVER
+ P: Michael Hunold
+ M: michael@mihu.de
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/pm-config-base linux-2.6.25-m8050/pm-config-base
+--- linux-git/pm-config-base 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/pm-config-base 2008-07-24 15:40:01.000000000 +0200
+@@ -0,0 +1,1000 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.25
++# Thu Jul 24 07:48:15 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ARCH_SUPPORTS_AOUT=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_GROUP_SCHED=y
++CONFIG_FAIR_GROUP_SCHED=y
++# CONFIG_RT_GROUP_SCHED is not set
++CONFIG_USER_SCHED=y
++# CONFIG_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++CONFIG_SYSFS_DEPRECATED_V2=y
++# CONFIG_RELAY is not set
++CONFIG_NAMESPACES=y
++# CONFIG_UTS_NS is not set
++# CONFIG_IPC_NS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_COMPAT_BRK=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_TIMERFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++CONFIG_HAVE_OPROFILE=y
++# CONFIG_KPROBES is not set
++CONFIG_HAVE_KPROBES=y
++CONFIG_HAVE_KRETPROBES=y
++CONFIG_PROC_PAGE_MONITOR=y
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++# CONFIG_KMOD is not set
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++CONFIG_CLASSIC_RCU=y
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_ORION is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++# CONFIG_ARCH_MSM7X00A is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C2410_PM_DEBUG=y
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=1
++
++#
++# S3C2400 Machines
++#
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++CONFIG_MACH_AML_M8050=y
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM920T=y
++CONFIG_CPU_32v4T=y
++CONFIG_CPU_ABRT_EV4T=y
++CONFIG_CPU_CACHE_V4WT=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++# CONFIG_OABI_COMPAT is not set
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="console=ttySAC0 root=/dev/ram0"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++CONFIG_PM_DEBUG=y
++CONFIG_PM_VERBOSE=y
++CONFIG_CAN_PM_TRACE=y
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND=y
++CONFIG_SUSPEND_FREEZER=y
++# CONFIG_APM_EMULATION is not set
++CONFIG_ARCH_SUSPEND_POSSIBLE=y
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=y
++CONFIG_PACKET_MMAP=y
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++# CONFIG_IP_PNP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++# CONFIG_INET_LRO is not set
++# CONFIG_INET_DIAG is not set
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++CONFIG_IPV6=y
++# CONFIG_IPV6_PRIVACY is not set
++# CONFIG_IPV6_ROUTER_PREF is not set
++# CONFIG_IPV6_OPTIMISTIC_DAD is not set
++# CONFIG_INET6_AH is not set
++# CONFIG_INET6_ESP is not set
++# CONFIG_INET6_IPCOMP is not set
++# CONFIG_IPV6_MIP6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET6_XFRM_MODE_BEET is not set
++# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
++# CONFIG_IPV6_SIT is not set
++# CONFIG_IPV6_TUNNEL is not set
++# CONFIG_IPV6_MULTIPLE_TABLES is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_CAN is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++CONFIG_WIRELESS_EXT=y
++# CONFIG_MAC80211 is not set
++CONFIG_IEEE80211=y
++# CONFIG_IEEE80211_DEBUG is not set
++# CONFIG_IEEE80211_CRYPT_WEP is not set
++# CONFIG_IEEE80211_CRYPT_CCMP is not set
++# CONFIG_IEEE80211_CRYPT_TKIP is not set
++# CONFIG_IEEE80211_SOFTMAC is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++CONFIG_FW_LOADER=y
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++# CONFIG_MTD_REDBOOT_PARTS is not set
++# CONFIG_MTD_CMDLINE_PARTS is not set
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++# CONFIG_MTD_CFI is not set
++# CONFIG_MTD_JEDECPROBE is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++# CONFIG_MTD_RAM is not set
++# CONFIG_MTD_ROM is not set
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++CONFIG_MTD_NAND_S3C2410=y
++# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
++# CONFIG_MTD_NAND_S3C2410_HWECC is not set
++# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++# CONFIG_PARPORT is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=8
++CONFIG_BLK_DEV_RAM_SIZE=8192
++# CONFIG_BLK_DEV_XIP is not set
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++# CONFIG_MISC_DEVICES is not set
++CONFIG_HAVE_IDE=y
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_NET_ETHERNET is not set
++# CONFIG_NETDEV_1000 is not set
++# CONFIG_NETDEV_10000 is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++CONFIG_WLAN_80211=y
++CONFIG_LIBERTAS=m
++CONFIG_LIBERTAS_SDIO=m
++CONFIG_LIBERTAS_DEBUG=y
++# CONFIG_HOSTAP is not set
++# CONFIG_WAN is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++CONFIG_INPUT_POLLDEV=y
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++CONFIG_KEYBOARD_M8050=y
++CONFIG_KEYBOARD_GPIO=y
++CONFIG_INPUT_MOUSE=y
++# CONFIG_MOUSE_PS2 is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++CONFIG_MOUSE_GPIO=y
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++CONFIG_TOUCHSCREEN_S3C2410=y
++# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++CONFIG_VT_HW_CONSOLE_BINDING=y
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++CONFIG_INTELLIHEAD=m
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++# CONFIG_I2C is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=y
++CONFIG_SPI_S3C24XX=y
++CONFIG_SPI_S3C24XX_GPIO=y
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++# CONFIG_HWMON is not set
++# CONFIG_WATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++# CONFIG_MFD_ASIC3 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++# CONFIG_FIRMWARE_EDID is not set
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++# CONFIG_FB_S1D13XXX is not set
++CONFIG_FB_S3C2410=y
++CONFIG_FB_S3C2410_DEBUG=y
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++CONFIG_DISPLAY_SUPPORT=y
++
++#
++# Display hardware drivers
++#
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
++CONFIG_FONTS=y
++CONFIG_FONT_8x8=y
++# CONFIG_FONT_8x16 is not set
++# CONFIG_FONT_6x11 is not set
++# CONFIG_FONT_7x14 is not set
++# CONFIG_FONT_PEARL_8x8 is not set
++# CONFIG_FONT_ACORN_8x8 is not set
++# CONFIG_FONT_MINI_4x6 is not set
++# CONFIG_FONT_SUN8x16 is not set
++# CONFIG_FONT_SUN12x22 is not set
++# CONFIG_FONT_10x18 is not set
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++CONFIG_LOGO_LINUX_VGA16=y
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++# CONFIG_HID_SUPPORT is not set
++# CONFIG_USB_SUPPORT is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++CONFIG_MMC_UNSAFE_RESUME=y
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_MMC_SPI=y
++CONFIG_MMC_S3C=m
++# CONFIG_NEW_LEDS is not set
++CONFIG_RTC_LIB=y
++# CONFIG_RTC_CLASS is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++# CONFIG_EXT3_FS is not set
++# CONFIG_EXT4DEV_FS is not set
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++CONFIG_DNOTIFY=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++# CONFIG_MSDOS_FS is not set
++# CONFIG_VFAT_FS is not set
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_ROMFS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++# CONFIG_NETWORK_FILESYSTEMS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_BACKTRACE_SELF_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++# CONFIG_DEBUG_STACK_USAGE is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++# CONFIG_DEBUG_S3C_PORT is not set
++CONFIG_DEBUG_S3C_UART=1
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++CONFIG_CRC_ITU_T=y
++CONFIG_CRC32=y
++CONFIG_CRC7=y
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/scripts/aml_logo.c linux-2.6.25-m8050/scripts/aml_logo.c
+--- linux-git/scripts/aml_logo.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/scripts/aml_logo.c 2008-08-13 12:17:31.000000000 +0200
+@@ -0,0 +1,6442 @@
++/*
++ * DO NOT EDIT THIS FILE!
++ *
++ * It was automatically generated from System_boot-aml.ppm
++ *
++ * Linux logo linux_logo
++ */
++
++#include <linux/linux_logo.h>
++
++static unsigned char linux_logo_data[] __initdata = {
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20,
++ 0x20, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20,
++ 0x20, 0x21, 0x20, 0x20, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x22,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x21, 0x21, 0x20, 0x20, 0x20,
++ 0x20, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x52,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
++ 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62
++};
++
++static unsigned char linux_logo_clut[] __initdata = {
++ 0x00, 0x00, 0x00, 0xc4, 0x62, 0x00, 0x02, 0x02, 0x02, 0x04, 0x02, 0x00,
++ 0x08, 0x04, 0x00, 0x0c, 0x06, 0x00, 0x0f, 0x08, 0x00, 0x13, 0x0a, 0x00,
++ 0x16, 0x0a, 0x00, 0x1a, 0x0c, 0x00, 0x1e, 0x0e, 0x00, 0x21, 0x10, 0x00,
++ 0x25, 0x12, 0x00, 0x28, 0x14, 0x00, 0x2c, 0x16, 0x00, 0x30, 0x18, 0x00,
++ 0x33, 0x1a, 0x00, 0x37, 0x1c, 0x00, 0x3a, 0x1d, 0x00, 0x3e, 0x1e, 0x00,
++ 0x42, 0x20, 0x00, 0x45, 0x22, 0x00, 0x49, 0x24, 0x00, 0x4c, 0x26, 0x00,
++ 0x50, 0x28, 0x00, 0x54, 0x2a, 0x00, 0x57, 0x2c, 0x00, 0x5b, 0x2e, 0x00,
++ 0x5e, 0x2f, 0x00, 0x62, 0x30, 0x00, 0x66, 0x32, 0x00, 0x6a, 0x34, 0x00,
++ 0x6d, 0x36, 0x00, 0x71, 0x38, 0x00, 0x74, 0x3a, 0x00, 0x78, 0x3c, 0x00,
++ 0x7c, 0x3e, 0x00, 0x7f, 0x40, 0x00, 0x83, 0x42, 0x00, 0x86, 0x42, 0x00,
++ 0x8a, 0x44, 0x00, 0x8e, 0x46, 0x00, 0x91, 0x48, 0x00, 0x95, 0x4a, 0x00,
++ 0x98, 0x4c, 0x00, 0x9c, 0x4e, 0x00, 0xa0, 0x50, 0x00, 0xa3, 0x52, 0x00,
++ 0xa7, 0x54, 0x00, 0xaa, 0x55, 0x00, 0xae, 0x56, 0x00, 0xb2, 0x58, 0x00,
++ 0xb5, 0x5a, 0x00, 0xb9, 0x5c, 0x00, 0xbd, 0x5e, 0x00, 0xc0, 0x60, 0x00,
++ 0xc8, 0x64, 0x00, 0xcb, 0x66, 0x00, 0xcf, 0x68, 0x00, 0xd2, 0x68, 0x00,
++ 0xd6, 0x6a, 0x00, 0xda, 0x6c, 0x00, 0xdd, 0x6e, 0x00, 0xe1, 0x70, 0x00,
++ 0xe4, 0x72, 0x00, 0xe8, 0x74, 0x00, 0xec, 0x76, 0x00
++};
++
++struct linux_logo linux_logo __initdata = {
++ .type = LINUX_LOGO_CLUT224,
++ .width = 240,
++ .height = 320,
++ .clutsize = 67,
++ .clut = linux_logo_clut,
++ .data = linux_logo_data
++};
++
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/scripts/System_boot-aml.ppm linux-2.6.25-m8050/scripts/System_boot-aml.ppm
+--- linux-git/scripts/System_boot-aml.ppm 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/scripts/System_boot-aml.ppm 2008-08-13 12:17:24.000000000 +0200
+@@ -0,0 +1,230404 @@
++P3
++# CREATOR: The GIMP's PNM Filter Version 1.0
++240 320
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++2
++2
++2
++2
++2
++2
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++4
++2
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++8
++4
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++12
++6
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++15
++8
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++19
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++22
++10
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++26
++12
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++30
++14
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++33
++16
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++37
++18
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++40
++20
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++44
++22
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++48
++24
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++51
++26
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++55
++28
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++58
++29
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++62
++30
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++66
++32
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++69
++34
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++73
++36
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++76
++38
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++80
++40
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++84
++42
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++87
++44
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++91
++46
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++94
++47
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++98
++48
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++102
++50
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++106
++52
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++109
++54
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++113
++56
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++116
++58
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++120
++60
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++124
++62
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++127
++64
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++131
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++134
++66
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++138
++68
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++142
++70
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++145
++72
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++149
++74
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++152
++76
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++156
++78
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++160
++80
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++163
++82
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++167
++84
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++170
++85
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++174
++86
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++178
++88
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++181
++90
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++185
++92
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++189
++94
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++192
++96
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++196
++98
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++200
++100
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++203
++102
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++207
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++210
++104
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++214
++106
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++218
++108
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++221
++110
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++225
++112
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++228
++114
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++232
++116
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
++236
++118
++0
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/codecs/wm8750.c linux-2.6.25-m8050/sound/soc/codecs/wm8750.c
+--- linux-git/sound/soc/codecs/wm8750.c 2008-11-10 12:20:38.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/codecs/wm8750.c 2008-10-27 15:38:27.000000000 +0100
+@@ -110,6 +110,7 @@
+ data[0] = (reg << 1) | ((value >> 8) & 0x0001);
+ data[1] = value & 0x00ff;
+
++// printk("WM8750: writing 0x%x to register 0x%x\n",value,reg);
+ wm8750_write_reg_cache (codec, reg, value);
+ if (codec->hw_write(codec->control_data, data, 2) == 2)
+ return 0;
+@@ -520,7 +521,7 @@
+ {12000000, 16000, 750, 0xa, 0x1},
+
+ /* 22.05k */
+- {11289600, 22050, 512, 0x1a, 0x0},
++ {11289600, 22050, 256, 0x1a, 0x0},
+ {16934400, 22050, 768, 0x1b, 0x0},
+ {12000000, 22050, 544, 0x1b, 0x1},
+
+@@ -636,6 +637,7 @@
+ return -EINVAL;
+ }
+
++ printk("writing to IFACE: 0x%x\n",iface);
+ wm8750_write(codec, WM8750_IFACE, iface);
+ return 0;
+ }
+@@ -654,20 +656,29 @@
+ /* bit size */
+ switch (params_format(params)) {
+ case SNDRV_PCM_FORMAT_S16_LE:
++ printk("PCM FORMAT S16_LE!\n");
+ break;
+ case SNDRV_PCM_FORMAT_S20_3LE:
++ printk("PCM FORMAT S20_LE!\n");
+ iface |= 0x0004;
+ break;
+ case SNDRV_PCM_FORMAT_S24_LE:
++ printk("PCM FORMAT S24_LE!\n");
+ iface |= 0x0008;
+ break;
+ case SNDRV_PCM_FORMAT_S32_LE:
++ printk("PCM FORMAT S32_LE!\n");
+ iface |= 0x000c;
+ break;
+ }
+
+ /* set iface & srate */
+ wm8750_write(codec, WM8750_IFACE, iface);
++ printk("iface=0x%x\n",iface);
++ printk("coeff=%d\n",coeff);
++ printk("coeff_div=0x%x\n",coeff_div[coeff].sr);
++ printk("coeff_div=0x%x\n",coeff_div[coeff].usb);
++
+ if (coeff >= 0)
+ wm8750_write(codec, WM8750_SRATE, srate |
+ (coeff_div[coeff].sr << 1) | coeff_div[coeff].usb);
+@@ -680,10 +691,14 @@
+ struct snd_soc_codec *codec = dai->codec;
+ u16 mute_reg = wm8750_read_reg_cache(codec, WM8750_ADCDAC) & 0xfff7;
+
+- if (mute)
++ if (mute){
+ wm8750_write(codec, WM8750_ADCDAC, mute_reg | 0x8);
+- else
++ printk("mute on!\n");
++ }
++ else {
+ wm8750_write(codec, WM8750_ADCDAC, mute_reg);
++ printk("mute off!\n");
++ }
+ return 0;
+ }
+
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/s3c24xx/Kconfig linux-2.6.25-m8050/sound/soc/s3c24xx/Kconfig
+--- linux-git/sound/soc/s3c24xx/Kconfig 2008-11-10 12:20:38.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/s3c24xx/Kconfig 2008-05-19 09:34:46.000000000 +0200
+@@ -28,6 +28,15 @@
+ Say Y if you want to add support for SoC audio on smdk2440
+ with the WM8753.
+
++config SND_S3C24XX_SOC_M8050_WM8750
++ tristate "SoC I2S Audio support for M8050 - WM8750"
++ depends on SND_S3C24XX_SOC && MACH_AML_M8050
++ select SND_S3C24XX_SOC_I2S
++ select SND_SOC_WM8750
++ help
++ Say Y if you want to add support for SoC audio on AML M8050
++ with the WM8750.
++
+ config SND_S3C24XX_SOC_SMDK2443_WM9710
+ tristate "SoC AC97 Audio support for SMDK2443 - WM9710"
+ depends on SND_S3C24XX_SOC && MACH_SMDK2443
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/s3c24xx/m8050_wm8750.c linux-2.6.25-m8050/sound/soc/s3c24xx/m8050_wm8750.c
+--- linux-git/sound/soc/s3c24xx/m8050_wm8750.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/s3c24xx/m8050_wm8750.c 2008-10-22 11:53:25.000000000 +0200
+@@ -0,0 +1,297 @@
++/* sound/soc/s3c24xx/m8050_wm8750.c
++ *
++ * Based on sound/soc/s3c24xx/jive_wm8750.c
++ * Copyright 2007 Simtec Electronics
++ * Author: Ben Dooks
++ *
++ * Based on sound/soc/pxa/spitz.c
++ * Copyright 2005 Wolfson Microelectronics PLC.
++ * Copyright 2005 Openedhand Ltd.
++ *
++ * 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.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/plat-s3c24xx/regs-iis.h>
++
++#include "s3c24xx-pcm.h"
++#include "s3c24xx-i2s.h"
++
++#include "../codecs/wm8750.h"
++
++static const char *audio_map[][2] = {
++ [0] = { "Internal Speaker", "LOUT2" },
++ [1] = { "Internal Speaker", "ROUT2" },
++ [2] = { NULL, NULL },
++
++/*
++ [0] = { "Headphone Jack", "LOUT1" },
++ [1] = { "Headphone Jack", "ROUT1" },
++ [2] = { "Internal Speaker", "LOUT2" },
++ [3] = { "Internal Speaker", "ROUT2" },
++ [4] = { "LINPUT1", "Line Input" },
++ [5] = { "RINPUT1", "Line Input" },
++ [6] = { NULL, NULL },
++*/
++};
++
++static const struct snd_soc_dapm_widget wm8750_dapm_widgets[] = {
++// SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_SPK("Internal Speaker", NULL),
++// SND_SOC_DAPM_LINE("Line In", NULL),
++};
++
++static int m8050_startup(struct snd_pcm_substream *substream)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec *codec = rtd->socdev->codec;
++
++
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++static inline int codec_set_dai_fmt(struct snd_soc_codec_dai *dai,
++ unsigned int format)
++{
++ return dai->dai_ops.set_fmt(dai, format);
++}
++
++static inline int codec_set_dai_sysclk(struct snd_soc_codec_dai *dai,
++ unsigned int clk,
++ unsigned int arg,
++ unsigned int arg2)
++{
++ return dai->dai_ops.set_sysclk(dai, clk, arg, arg2);
++}
++
++static inline int cpu_set_dai_fmt(struct snd_soc_cpu_dai *dai,
++ unsigned int format)
++{
++ return dai->dai_ops.set_fmt(dai, format);
++}
++
++static inline int cpu_set_dai_sysclk(struct snd_soc_cpu_dai *dai,
++ unsigned int clk,
++ unsigned int arg,
++ unsigned int arg2)
++{
++ return dai->dai_ops.set_sysclk(dai, clk, arg, arg2);
++}
++
++static inline int cpu_set_dai_clkdiv(struct snd_soc_cpu_dai *dai,
++ unsigned int clk,
++ unsigned int arg)
++{
++ return dai->dai_ops.set_clkdiv(dai, clk, arg);
++}
++
++
++
++static int m8050_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ unsigned int clk = 0;
++ unsigned int pll_out = 0, bclk = 0;
++ int ret = 0;
++ unsigned long iis_clkrate;
++
++ iis_clkrate = s3c24xx_i2s_get_clockrate();
++
++ switch (params_rate(params)) {
++ case 8000:
++ case 16000:
++ case 48000:
++ case 96000:
++ case 8012:
++ case 11025:
++ case 22050:
++ case 44100:
++ clk = 12000000;
++ bclk=0;
++ break;
++ }
++
++ /* set codec DAI configuration */
++ ret = codec_set_dai_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0)
++ return ret;
++
++ /* set cpu DAI configuration */
++ ret = cpu_set_dai_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0)
++ return ret;
++
++ /* set the codec system clock for DAC and ADC */
++ ret = codec_set_dai_sysclk(codec_dai, WM8750_SYSCLK, clk,
++ SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ return ret;
++
++ /* set MCLK division for sample rate */
++ ret = cpu_dai->dai_ops.set_sysclk(cpu_dai, S3C24XX_CLKSRC_MPLL,
++ 12000000,SND_SOC_CLOCK_OUT );
++ if (ret < 0)
++ return ret;
++
++ /* set MCLK division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK,
++ S3C2410_IISMOD_32FS );
++ if (ret < 0)
++ return ret;
++
++ /* set BCLK division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_BCLK,
++ 384 );
++ if (ret < 0)
++ return ret;
++
++ /* set prescaler division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
++ S3C24XX_PRESCALE(bclk,bclk));
++ if (ret < 0)
++ return ret;
++
++ return 0;
++
++}
++
++static struct snd_soc_ops m8050_ops = {
++ .startup = m8050_startup,
++ .hw_params = m8050_hw_params,
++};
++
++static const struct snd_kcontrol_new wm8750_m8050_controls[] = {
++
++};
++
++static int m8050_wm8750_init(struct snd_soc_codec *codec)
++{
++ int i, err;
++
++// snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Internal Speaker", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In", 0);
++
++ /* These endpoints are not being used. */
++ snd_soc_dapm_set_endpoint(codec, "ROUT1", 0);
++ snd_soc_dapm_set_endpoint(codec, "LOUT1", 0);
++
++ snd_soc_dapm_set_endpoint(codec, "LINPUT1", 0);
++ snd_soc_dapm_set_endpoint(codec, "LINPUT2", 0);
++ snd_soc_dapm_set_endpoint(codec, "LINPUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "RINPUT2", 0);
++ snd_soc_dapm_set_endpoint(codec, "RINPUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "OUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "MONO", 0);
++
++ /* Add m8050 specific controls */
++ for (i = 0; i < ARRAY_SIZE(wm8750_m8050_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8750_m8050_controls[i], codec, NULL));
++ if (err < 0)
++ return err;
++ }
++
++ /* Add m8050 specific widgets */
++ for (i = 0; i < ARRAY_SIZE(wm8750_dapm_widgets); i++) {
++ snd_soc_dapm_new_control(codec, &wm8750_dapm_widgets[i]);
++ }
++
++ /* Set up m8050 specific audio path audio_map */
++ for (i = 0; audio_map[i][0] != NULL; i++) {
++ printk(KERN_INFO "mapping %s => %s\n", audio_map[i][0], audio_map[i][1]);
++ snd_soc_dapm_connect_input(codec, audio_map[i][0], NULL,
++ audio_map[i][1]);
++ }
++
++ snd_soc_dapm_sync_endpoints(codec);
++ return 0;
++}
++
++static struct snd_soc_dai_link m8050_dai = {
++ .name = "wm8750",
++ .stream_name = "WM8750",
++ .cpu_dai = &s3c24xx_i2s_dai,
++ .codec_dai = &wm8750_dai,
++ .init = m8050_wm8750_init,
++ .ops = &m8050_ops,
++};
++
++/* m8050 audio machine driver */
++static struct snd_soc_machine snd_soc_machine_m8050 = {
++ .name = "M8050",
++ .dai_link = &m8050_dai,
++ .num_links = 1,
++};
++
++/* m8050 audio private data */
++static struct wm8750_setup_data m8050_wm8750_setup = {
++ .i2c_address = 0x1a,
++};
++
++/* m8050 audio subsystem */
++static struct snd_soc_device m8050_snd_devdata = {
++ .machine = &snd_soc_machine_m8050,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm8750,
++ .codec_data = &m8050_wm8750_setup,
++};
++
++static struct platform_device *m8050_snd_device;
++
++static int __init m8050_init(void)
++{
++ int ret;
++
++ printk("M8050 WM8750 Audio support\n");
++
++ if (!machine_is_aml_m8050())
++ return 0;
++
++ m8050_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!m8050_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(m8050_snd_device, &m8050_snd_devdata);
++ m8050_snd_devdata.dev = &m8050_snd_device->dev;
++ ret = platform_device_add(m8050_snd_device);
++
++ if (ret)
++ platform_device_put(m8050_snd_device);
++
++ return ret;
++}
++
++static void __exit m8050_exit(void)
++{
++ platform_device_unregister(m8050_snd_device);
++}
++
++module_init(m8050_init);
++module_exit(m8050_exit);
++
++MODULE_AUTHOR("David Anders");
++MODULE_DESCRIPTION("ALSA SoC M8050");
++MODULE_LICENSE("GPL");
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/s3c24xx/m8050_wm8750-working.c linux-2.6.25-m8050/sound/soc/s3c24xx/m8050_wm8750-working.c
+--- linux-git/sound/soc/s3c24xx/m8050_wm8750-working.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/s3c24xx/m8050_wm8750-working.c 2008-10-15 15:52:28.000000000 +0200
+@@ -0,0 +1,338 @@
++/* sound/soc/s3c24xx/m8050_wm8750.c
++ *
++ * Based on sound/soc/s3c24xx/jive_wm8750.c
++ * Copyright 2007 Simtec Electronics
++ * Author: Ben Dooks
++ *
++ * Based on sound/soc/pxa/spitz.c
++ * Copyright 2005 Wolfson Microelectronics PLC.
++ * Copyright 2005 Openedhand Ltd.
++ *
++ * 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.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/plat-s3c24xx/regs-iis.h>
++
++#include "s3c24xx-pcm.h"
++#include "s3c24xx-i2s.h"
++
++#include "../codecs/wm8750.h"
++
++static const char *audio_map[][2] = {
++ [0] = { "Internal Speaker", "LOUT2" },
++ [1] = { "Internal Speaker", "ROUT2" },
++ [2] = { NULL, NULL },
++
++/*
++ [0] = { "Headphone Jack", "LOUT1" },
++ [1] = { "Headphone Jack", "ROUT1" },
++ [2] = { "Internal Speaker", "LOUT2" },
++ [3] = { "Internal Speaker", "ROUT2" },
++ [4] = { "LINPUT1", "Line Input" },
++ [5] = { "RINPUT1", "Line Input" },
++ [6] = { NULL, NULL },
++*/
++};
++
++static const struct snd_soc_dapm_widget wm8750_dapm_widgets[] = {
++// SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_SPK("Internal Speaker", NULL),
++// SND_SOC_DAPM_LINE("Line In", NULL),
++};
++
++static int m8050_startup(struct snd_pcm_substream *substream)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec *codec = rtd->socdev->codec;
++
++
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++static inline int codec_set_dai_fmt(struct snd_soc_codec_dai *dai,
++ unsigned int format)
++{
++ return dai->dai_ops.set_fmt(dai, format);
++}
++
++static inline int codec_set_dai_sysclk(struct snd_soc_codec_dai *dai,
++ unsigned int clk,
++ unsigned int arg,
++ unsigned int arg2)
++{
++ return dai->dai_ops.set_sysclk(dai, clk, arg, arg2);
++}
++
++static inline int cpu_set_dai_fmt(struct snd_soc_cpu_dai *dai,
++ unsigned int format)
++{
++ return dai->dai_ops.set_fmt(dai, format);
++}
++
++static inline int cpu_set_dai_sysclk(struct snd_soc_cpu_dai *dai,
++ unsigned int clk,
++ unsigned int arg,
++ unsigned int arg2)
++{
++ return dai->dai_ops.set_sysclk(dai, clk, arg, arg2);
++}
++
++static inline int cpu_set_dai_clkdiv(struct snd_soc_cpu_dai *dai,
++ unsigned int clk,
++ unsigned int arg)
++{
++ return dai->dai_ops.set_clkdiv(dai, clk, arg);
++}
++
++
++
++static int m8050_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++#define WM8750SLAVE 0
++
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ unsigned int clk = 0;
++ unsigned int pll_out = 0, bclk = 0;
++ int ret = 0;
++ unsigned long iis_clkrate;
++#if WM8750SLAVE
++
++ iis_clkrate = s3c24xx_i2s_get_clockrate();
++
++ switch (params_rate(params)) {
++ case 8000:
++ case 16000:
++ case 48000:
++ case 96000:
++ clk = 12288000;
++ break;
++ case 11025:
++ case 22050:
++ case 44100:
++ clk = 11289600;
++ break;
++ }
++
++ /* set codec DAI configuration */
++ ret = codec_set_dai_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0)
++ return ret;
++
++ /* set cpu DAI configuration */
++ ret = cpu_set_dai_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0)
++ return ret;
++
++ /* set the codec system clock for DAC and ADC */
++ ret = codec_set_dai_sysclk(codec_dai, WM8750_SYSCLK, clk,
++ SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ return ret;
++
++ /* set MCLK division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK,
++ S3C2410_IISMOD_16FS );
++ if (ret < 0)
++ return ret;
++
++ /* set prescaler division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
++ S3C24XX_PRESCALE(5,5));
++ if (ret < 0)
++ return ret;
++
++ return 0;
++#else
++ struct s3c24xx_rate_calc div;
++
++ switch (params_rate(params)) {
++ case 8000:
++ case 16000:
++ case 48000:
++ case 96000:
++ clk = 12288000;
++ break;
++ case 11025:
++ case 22050:
++ case 44100:
++ clk = 11289600;
++ break;
++ }
++
++ s3c24xx_iis_calc_rate(&div, NULL, params_rate(params),
++ s3c24xx_get_iisclk());
++
++ /* set codec DAI configuration */
++ ret = codec_set_dai_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
++ if (ret < 0)
++ return ret;
++
++ /* set cpu DAI configuration */
++ ret = cpu_set_dai_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
++ if (ret < 0)
++ return ret;
++
++ /* set the codec system clock for DAC and ADC */
++ ret = codec_set_dai_sysclk(codec_dai, WM8750_SYSCLK, clk,
++ SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ return ret;
++
++// ret = cpu_set_dai_clkdiv(cpu_dai, S3C24XX_DIV_MCLK, div.fs_div);
++// if (ret < 0)
++// return ret;
++
++ ret = cpu_set_dai_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER, div.clk_div - 1);
++ if (ret < 0)
++ return ret;
++
++ return 0;
++
++
++#endif
++
++}
++
++static struct snd_soc_ops m8050_ops = {
++ .startup = m8050_startup,
++ .hw_params = m8050_hw_params,
++};
++
++static const struct snd_kcontrol_new wm8750_m8050_controls[] = {
++
++};
++
++static int m8050_wm8750_init(struct snd_soc_codec *codec)
++{
++ int i, err;
++
++// snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Internal Speaker", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In", 0);
++
++ /* These endpoints are not being used. */
++ snd_soc_dapm_set_endpoint(codec, "ROUT1", 0);
++ snd_soc_dapm_set_endpoint(codec, "LOUT1", 0);
++
++ snd_soc_dapm_set_endpoint(codec, "LINPUT1", 0);
++ snd_soc_dapm_set_endpoint(codec, "LINPUT2", 0);
++ snd_soc_dapm_set_endpoint(codec, "LINPUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "RINPUT2", 0);
++ snd_soc_dapm_set_endpoint(codec, "RINPUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "OUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "MONO", 0);
++
++ /* Add m8050 specific controls */
++ for (i = 0; i < ARRAY_SIZE(wm8750_m8050_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8750_m8050_controls[i], codec, NULL));
++ if (err < 0)
++ return err;
++ }
++
++ /* Add m8050 specific widgets */
++ for (i = 0; i < ARRAY_SIZE(wm8750_dapm_widgets); i++) {
++ snd_soc_dapm_new_control(codec, &wm8750_dapm_widgets[i]);
++ }
++
++ /* Set up m8050 specific audio path audio_map */
++ for (i = 0; audio_map[i][0] != NULL; i++) {
++ printk(KERN_INFO "mapping %s => %s\n", audio_map[i][0], audio_map[i][1]);
++ snd_soc_dapm_connect_input(codec, audio_map[i][0], NULL,
++ audio_map[i][1]);
++ }
++
++ snd_soc_dapm_sync_endpoints(codec);
++ return 0;
++}
++
++static struct snd_soc_dai_link m8050_dai = {
++ .name = "wm8750",
++ .stream_name = "WM8750",
++ .cpu_dai = &s3c24xx_i2s_dai,
++ .codec_dai = &wm8750_dai,
++ .init = m8050_wm8750_init,
++ .ops = &m8050_ops,
++};
++
++/* m8050 audio machine driver */
++static struct snd_soc_machine snd_soc_machine_m8050 = {
++ .name = "M8050",
++ .dai_link = &m8050_dai,
++ .num_links = 1,
++};
++
++/* m8050 audio private data */
++static struct wm8750_setup_data m8050_wm8750_setup = {
++ .i2c_address = 0x1a,
++};
++
++/* m8050 audio subsystem */
++static struct snd_soc_device m8050_snd_devdata = {
++ .machine = &snd_soc_machine_m8050,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm8750,
++ .codec_data = &m8050_wm8750_setup,
++};
++
++static struct platform_device *m8050_snd_device;
++
++static int __init m8050_init(void)
++{
++ int ret;
++
++ printk("M8050 WM8750 Audio support\n");
++
++ if (!machine_is_aml_m8050())
++ return 0;
++
++ m8050_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!m8050_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(m8050_snd_device, &m8050_snd_devdata);
++ m8050_snd_devdata.dev = &m8050_snd_device->dev;
++ ret = platform_device_add(m8050_snd_device);
++
++ if (ret)
++ platform_device_put(m8050_snd_device);
++
++ return ret;
++}
++
++static void __exit m8050_exit(void)
++{
++ platform_device_unregister(m8050_snd_device);
++}
++
++module_init(m8050_init);
++module_exit(m8050_exit);
++
++MODULE_AUTHOR("David Anders");
++MODULE_DESCRIPTION("ALSA SoC M8050");
++MODULE_LICENSE("GPL");
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/s3c24xx/m8050_wm8750.x.c linux-2.6.25-m8050/sound/soc/s3c24xx/m8050_wm8750.x.c
+--- linux-git/sound/soc/s3c24xx/m8050_wm8750.x.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/s3c24xx/m8050_wm8750.x.c 2008-10-15 12:18:47.000000000 +0200
+@@ -0,0 +1,310 @@
++/* sound/soc/s3c24xx/m8050_wm8750.c
++ *
++ * Based on sound/soc/s3c24xx/jive_wm8750.c
++ * Copyright 2007 Simtec Electronics
++ * Author: Ben Dooks
++ *
++ * Based on sound/soc/pxa/spitz.c
++ * Copyright 2005 Wolfson Microelectronics PLC.
++ * Copyright 2005 Openedhand Ltd.
++ *
++ * 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.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/plat-s3c24xx/regs-iis.h>
++
++#include "s3c24xx-pcm.h"
++#include "s3c24xx-i2s.h"
++
++#include "../codecs/wm8750.h"
++
++static const char *audio_map[][2] = {
++// [0] = { "Internal Speaker", "LOUT2" },
++// [1] = { "Internal Speaker", "ROUT2" },
++// [2] = { NULL, NULL },
++
++
++ [0] = { "Headphone Jack", "LOUT1" },
++ [1] = { "Headphone Jack", "ROUT1" },
++ [2] = { "Internal Speaker", "LOUT2" },
++ [3] = { "Internal Speaker", "ROUT2" },
++ [4] = { "LINPUT1", "Line Input" },
++ [5] = { "RINPUT1", "Line Input" },
++ [6] = { NULL, NULL },
++
++};
++
++static const struct snd_soc_dapm_widget wm8750_dapm_widgets[] = {
++ SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_SPK("Internal Speaker", NULL),
++ SND_SOC_DAPM_LINE("Line In", NULL),
++};
++
++static int m8050_startup(struct snd_pcm_substream *substream)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec *codec = rtd->socdev->codec;
++
++
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++static inline int codec_set_dai_fmt(struct snd_soc_codec_dai *dai,
++ unsigned int format)
++{
++ return dai->dai_ops.set_fmt(dai, format);
++}
++
++static inline int codec_set_dai_sysclk(struct snd_soc_codec_dai *dai,
++ unsigned int clk,
++ unsigned int arg,
++ unsigned int arg2)
++{
++ return dai->dai_ops.set_sysclk(dai, clk, arg, arg2);
++}
++
++static inline int cpu_set_dai_fmt(struct snd_soc_cpu_dai *dai,
++ unsigned int format)
++{
++ return dai->dai_ops.set_fmt(dai, format);
++}
++
++static inline int cpu_set_dai_sysclk(struct snd_soc_cpu_dai *dai,
++ unsigned int clk,
++ unsigned int arg,
++ unsigned int arg2)
++{
++ return dai->dai_ops.set_sysclk(dai, clk, arg, arg2);
++}
++
++static inline int cpu_set_dai_clkdiv(struct snd_soc_cpu_dai *dai,
++ unsigned int clk,
++ unsigned int arg)
++{
++ return dai->dai_ops.set_clkdiv(dai, clk, arg);
++}
++
++
++
++static int m8050_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ struct s3c24xx_rate_calc div;
++ unsigned int clk = 0;
++ unsigned int pll_out = 0, bclk = 0;
++ int ret = 0;
++ unsigned long iis_clkrate;
++
++// iis_clkrate = s3c24xx_i2s_get_clockrate();
++
++ switch (params_rate(params)) {
++ case 8000:
++ case 16000:
++ case 48000:
++ case 96000:
++ clk = 12288000;
++ break;
++ case 11025:
++ case 22050:
++ case 44100:
++ clk = 11289600;
++ break;
++ }
++
++ /* set codec DAI configuration */
++ ret = codec_set_dai_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0)
++ return ret;
++
++ /* set cpu DAI configuration */
++ ret = cpu_set_dai_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0)
++ return ret;
++
++
++ /* section for master */
++ /* set codec DAI configuration */
++// ret = codec_set_dai_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
++// SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
++// if (ret < 0)
++// return ret;
++//
++ /* set cpu DAI configuration */
++// ret = cpu_set_dai_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
++// SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
++// if (ret < 0)
++// return ret;
++
++ /* set the codec system clock for DAC and ADC */
++ ret = codec_set_dai_sysclk(codec_dai, WM8750_SYSCLK, clk,
++ SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ return ret;
++
++// /* set MCLK division for sample rate */
++// ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK,
++// S3C2410_IISMOD_16FS );
++// if (ret < 0)
++// return ret;
++
++ /* set prescaler division for sample rate */
++// ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
++// S3C24XX_PRESCALE(3,3));
++// if (ret < 0)
++// return ret;
++
++ s3c24xx_iis_calc_rate(&div, NULL, params_rate(params),
++ s3c24xx_get_iisclk());
++
++ ret = cpu_set_dai_clkdiv(cpu_dai, S3C24XX_DIV_BCLK, div.fs_div);
++ if (ret < 0)
++ return ret;
++
++ ret = cpu_set_dai_clkdiv(cpu_dai, S3C24XX_DIV_MCLK, div.clk_div - 1);
++ if (ret < 0)
++ return ret;
++
++ return 0;
++}
++
++static struct snd_soc_ops m8050_ops = {
++ .startup = m8050_startup,
++ .hw_params = m8050_hw_params,
++};
++
++static const struct snd_kcontrol_new wm8750_m8050_controls[] = {
++
++};
++
++static int m8050_wm8750_init(struct snd_soc_codec *codec)
++{
++ int i, err;
++
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Internal Speaker", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In", 0);
++
++ /* These endpoints are not being used. */
++// snd_soc_dapm_set_endpoint(codec, "ROUT1", 0);
++// snd_soc_dapm_set_endpoint(codec, "LOUT1", 0);
++
++ snd_soc_dapm_set_endpoint(codec, "LINPUT1", 0);
++ snd_soc_dapm_set_endpoint(codec, "LINPUT2", 0);
++ snd_soc_dapm_set_endpoint(codec, "LINPUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "RINPUT2", 0);
++ snd_soc_dapm_set_endpoint(codec, "RINPUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "OUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "MONO", 0);
++
++ /* Add m8050 specific controls */
++ for (i = 0; i < ARRAY_SIZE(wm8750_m8050_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8750_m8050_controls[i], codec, NULL));
++ if (err < 0)
++ return err;
++ }
++
++ /* Add m8050 specific widgets */
++ for (i = 0; i < ARRAY_SIZE(wm8750_dapm_widgets); i++) {
++ snd_soc_dapm_new_control(codec, &wm8750_dapm_widgets[i]);
++ }
++
++ /* Set up m8050 specific audio path audio_map */
++ for (i = 0; audio_map[i][0] != NULL; i++) {
++ printk(KERN_INFO "mapping %s => %s\n", audio_map[i][0], audio_map[i][1]);
++ snd_soc_dapm_connect_input(codec, audio_map[i][0], NULL,
++ audio_map[i][1]);
++ }
++
++ snd_soc_dapm_sync_endpoints(codec);
++ return 0;
++}
++
++static struct snd_soc_dai_link m8050_dai = {
++ .name = "wm8750",
++ .stream_name = "WM8750",
++ .cpu_dai = &s3c24xx_i2s_dai,
++ .codec_dai = &wm8750_dai,
++ .init = m8050_wm8750_init,
++ .ops = &m8050_ops,
++};
++
++/* m8050 audio machine driver */
++static struct snd_soc_machine snd_soc_machine_m8050 = {
++ .name = "M8050",
++ .dai_link = &m8050_dai,
++ .num_links = 1,
++};
++
++/* m8050 audio private data */
++static struct wm8750_setup_data m8050_wm8750_setup = {
++ .i2c_address = 0x1a,
++};
++
++/* m8050 audio subsystem */
++static struct snd_soc_device m8050_snd_devdata = {
++ .machine = &snd_soc_machine_m8050,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm8750,
++ .codec_data = &m8050_wm8750_setup,
++};
++
++static struct platform_device *m8050_snd_device;
++
++static int __init m8050_init(void)
++{
++ int ret;
++
++ printk("M8050 WM8750 Audio support\n");
++
++ if (!machine_is_aml_m8050())
++ return 0;
++
++ m8050_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!m8050_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(m8050_snd_device, &m8050_snd_devdata);
++ m8050_snd_devdata.dev = &m8050_snd_device->dev;
++ ret = platform_device_add(m8050_snd_device);
++
++ if (ret)
++ platform_device_put(m8050_snd_device);
++
++ return ret;
++}
++
++static void __exit m8050_exit(void)
++{
++ platform_device_unregister(m8050_snd_device);
++}
++
++module_init(m8050_init);
++module_exit(m8050_exit);
++
++MODULE_AUTHOR("David Anders");
++MODULE_DESCRIPTION("ALSA SoC M8050");
++MODULE_LICENSE("GPL");
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/s3c24xx/Makefile linux-2.6.25-m8050/sound/soc/s3c24xx/Makefile
+--- linux-git/sound/soc/s3c24xx/Makefile 2008-11-10 12:19:41.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/s3c24xx/Makefile 2008-08-04 11:51:00.000000000 +0200
+@@ -10,10 +10,12 @@
+ obj-$(CONFIG_SND_S3C2412_SOC_I2S) += snd-soc-s3c2412-i2s.o
+
+ # S3C24XX Machine Support
++snd-soc-m8050-wm8750-objs := m8050_wm8750.o
+ snd-soc-neo1973-wm8753-objs := neo1973_wm8753.o
+ snd-soc-smdk2443-wm9710-objs := smdk2443_wm9710.o
+ snd-soc-ln2440sbc-alc650-objs := ln2440sbc_alc650.o
+
++obj-$(CONFIG_SND_S3C24XX_SOC_M8050_WM8750) += snd-soc-m8050-wm8750.o
+ obj-$(CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753) += snd-soc-neo1973-wm8753.o
+ obj-$(CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710) += snd-soc-smdk2443-wm9710.o
+ obj-$(CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650) += snd-soc-ln2440sbc-alc650.o
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/s3c24xx/s3c2412-i2s.c linux-2.6.25-m8050/sound/soc/s3c24xx/s3c2412-i2s.c
+--- linux-git/sound/soc/s3c24xx/s3c2412-i2s.c 2008-11-10 12:20:38.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/s3c24xx/s3c2412-i2s.c 2008-08-08 16:42:54.000000000 +0200
+@@ -361,11 +361,15 @@
+
+ switch (params_format(params)) {
+ case SNDRV_PCM_FORMAT_S8:
++ printk("setting for S8 format!\n");
+ iismod |= S3C2412_IISMOD_8BIT;
+ break;
+ case SNDRV_PCM_FORMAT_S16_LE:
++ printk("setting for S16_LE format!\n");
+ iismod &= ~S3C2412_IISMOD_8BIT;
+ break;
++ default:
++ printk("unknown data format!\n");
+ }
+
+ writel(iismod, s3c2412_i2s.regs + S3C2412_IISMOD);
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/s3c24xx/s3c24xx-i2s.c linux-2.6.25-m8050/sound/soc/s3c24xx/s3c24xx-i2s.c
+--- linux-git/sound/soc/s3c24xx/s3c24xx-i2s.c 2008-11-10 12:20:38.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/s3c24xx/s3c24xx-i2s.c 2008-10-28 16:53:07.000000000 +0100
+@@ -46,7 +46,7 @@
+
+ #define S3C24XX_I2S_DEBUG 0
+ #if S3C24XX_I2S_DEBUG
+-#define DBG(x...) printk(KERN_DEBUG x)
++#define DBG(x...) printk(x)
+ #else
+ #define DBG(x...)
+ #endif
+@@ -184,15 +184,15 @@
+
+ DBG("Entered %s\n", __FUNCTION__);
+
+- while (1) {
+- iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
+- if (iiscon & S3C2410_IISCON_LRINDEX)
+- break;
+-
+- if (time_after(jiffies, timeout))
+- return -ETIMEDOUT;
+- }
+-
++// while (1) {
++// iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++// if (iiscon & S3C2410_IISCON_LRINDEX)
++// break;
++//
++// if (time_after(jiffies, timeout))
++// return -ETIMEDOUT;
++// }
++// udelay(500);
+ return 0;
+ }
+
+@@ -221,19 +221,24 @@
+
+ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
+ case SND_SOC_DAIFMT_CBM_CFM:
++// printk("set for CFM!!\n");
+ iismod |= S3C2410_IISMOD_SLAVE;
+ break;
+ case SND_SOC_DAIFMT_CBS_CFS:
++// printk("set for CFS!!\n");
++ iismod &= ~S3C2410_IISMOD_SLAVE;
+ break;
+ default:
+ return -EINVAL;
+ }
++ DBG("hw_params t: IISMOD: %lx \n", iismod);
+
+ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
+ case SND_SOC_DAIFMT_LEFT_J:
+ iismod |= S3C2410_IISMOD_MSB;
+ break;
+ case SND_SOC_DAIFMT_I2S:
++ iismod &= ~S3C2410_IISMOD_MSB;
+ break;
+ default:
+ return -EINVAL;
+@@ -263,10 +268,15 @@
+
+ switch (params_format(params)) {
+ case SNDRV_PCM_FORMAT_S8:
++// printk("setting for S8 format!\n");
+ break;
+ case SNDRV_PCM_FORMAT_S16_LE:
+ iismod |= S3C2410_IISMOD_16BIT;
++// printk("setting for S16_LE format!\n");
+ break;
++ default:
++ printk("unknown data format!\n");
++
+ }
+
+ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
+@@ -284,11 +294,11 @@
+ case SNDRV_PCM_TRIGGER_START:
+ case SNDRV_PCM_TRIGGER_RESUME:
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+- if (!s3c24xx_snd_is_clkmaster()) {
++// if (!s3c24xx_snd_is_clkmaster()) {
+ ret = s3c24xx_snd_lrsync();
+ if (ret)
+ goto exit_err;
+- }
++// }
+
+ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
+ s3c24xx_snd_rxctrl(1);
+@@ -312,6 +322,78 @@
+ return ret;
+ }
+
++/* default table of all avaialable root fs divisors */
++static unsigned int s3c24xx_iis_fs[] = { 256, 384, 0 };
++//static unsigned int s3c24xx_iis_fs[] = { 256, 512, 384, 768, 0 };
++
++int s3c24xx_iis_calc_rate(struct s3c24xx_rate_calc *info,
++ unsigned int *fstab,
++ unsigned int rate, struct clk *clk)
++{
++ unsigned long clkrate = clk_get_rate(clk);
++ unsigned int div;
++ unsigned int fsclk;
++ unsigned int actual;
++ unsigned int fs;
++ unsigned int fsdiv;
++ signed int deviation = 0;
++ unsigned int best_fs = 0;
++ unsigned int best_div = 0;
++ unsigned int best_rate = 0;
++ unsigned int best_deviation = INT_MAX;
++
++
++ if (fstab == NULL)
++ fstab = s3c24xx_iis_fs;
++
++ for (fs = 0;; fs++) {
++ fsdiv = s3c24xx_iis_fs[fs];
++
++ if (fsdiv == 0)
++ break;
++
++ fsclk = clkrate / fsdiv;
++ div = fsclk / rate;
++
++ if ((fsclk % rate) > (rate / 2))
++ div++;
++
++ if (div <= 1)
++ continue;
++
++ actual = clkrate / (fsdiv * div);
++ deviation = actual - rate;
++
++// printk(KERN_DEBUG "%dfs: div %d => result %d, deviation %d\n",
++// fsdiv, div, actual, deviation);
++// printk("%dfs: div %d => result %d, deviation %d\n",
++// fsdiv, div, actual, deviation);
++
++ deviation = abs(deviation);
++
++ if (deviation < best_deviation) {
++ best_fs = fsdiv;
++ best_div = div;
++ best_rate = actual;
++ best_deviation = deviation;
++ }
++
++ if (deviation == 0)
++ break;
++ }
++
++// printk(KERN_DEBUG "best: fs=%d, div=%d, rate=%d\n",
++// best_fs, best_div, best_rate);
++// printk("best: fs=%d, div=%d, rate=%d\n",
++// best_fs, best_div, best_rate);
++
++ info->fs_div = best_fs;
++ info->clk_div = best_div;
++
++ return 0;
++}
++EXPORT_SYMBOL_GPL(s3c24xx_iis_calc_rate);
++
+ /*
+ * Set S3C24xx Clock source
+ */
+@@ -347,17 +429,31 @@
+ u32 reg;
+
+ DBG("Entered %s\n", __FUNCTION__);
+-
++ DBG("started with 0x%x\n",readl(s3c24xx_i2s.regs + S3C2410_IISMOD));
+ switch (div_id) {
+ case S3C24XX_DIV_BCLK:
++ DBG("setting bclk with div=0x%x\n",div);
+ reg = readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & ~S3C2410_IISMOD_FS_MASK;
++ DBG("before reg=0x%x\n",reg);
++ switch (div) {
++ case 256:
++ div = 0x00;
++ break;
++ case 384:
++ div = 0x04;
++ break;
++ }
++
+ writel(reg | div, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ DBG("afterreg=0x%x\n",reg|div);
+ break;
+ case S3C24XX_DIV_MCLK:
++ DBG("setting mclk\n");
+ reg = readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & ~(S3C2410_IISMOD_384FS);
+ writel(reg | div, s3c24xx_i2s.regs + S3C2410_IISMOD);
+ break;
+ case S3C24XX_DIV_PRESCALER:
++ DBG("setting prescaler\n");
+ writel(div, s3c24xx_i2s.regs + S3C2410_IISPSR);
+ reg = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
+ writel(reg | S3C2410_IISCON_PSCEN, s3c24xx_i2s.regs + S3C2410_IISCON);
+@@ -365,10 +461,17 @@
+ default:
+ return -EINVAL;
+ }
++ DBG("left with 0x%x\n",readl(s3c24xx_i2s.regs + S3C2410_IISMOD));
+
+ return 0;
+ }
+
++struct clk *s3c24xx_get_iisclk(void)
++{
++ return s3c24xx_i2s.iis_clk;
++}
++EXPORT_SYMBOL_GPL(s3c24xx_get_iisclk);
++
+ /*
+ * To avoid duplicating clock code, allow machine driver to
+ * get the clockrate from here.
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/s3c24xx/s3c24xx-i2s.h linux-2.6.25-m8050/sound/soc/s3c24xx/s3c24xx-i2s.h
+--- linux-git/sound/soc/s3c24xx/s3c24xx-i2s.h 2008-11-10 12:20:38.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/s3c24xx/s3c24xx-i2s.h 2008-08-11 18:17:34.000000000 +0200
+@@ -34,4 +34,15 @@
+
+ extern struct snd_soc_cpu_dai s3c24xx_i2s_dai;
+
++struct s3c24xx_rate_calc {
++ unsigned int clk_div; /* for prescaler */
++ unsigned int fs_div; /* for root frame clock */
++};
++
++extern int s3c24xx_iis_calc_rate(struct s3c24xx_rate_calc *info,
++ unsigned int *fstab,
++ unsigned int rate, struct clk *clk);
++
++extern struct clk *s3c24xx_get_iisclk(void);
++
+ #endif /*S3C24XXI2S_H_*/
+diff -X linux-git/Documentation/dontdiff -Naur linux-git/sound/soc/s3c24xx/s3c24xx-pcm.c linux-2.6.25-m8050/sound/soc/s3c24xx/s3c24xx-pcm.c
+--- linux-git/sound/soc/s3c24xx/s3c24xx-pcm.c 2008-11-10 12:20:38.000000000 +0100
++++ linux-2.6.25-m8050/sound/soc/s3c24xx/s3c24xx-pcm.c 2008-10-28 18:10:26.000000000 +0100
+@@ -23,6 +23,8 @@
+ #include <linux/platform_device.h>
+ #include <linux/slab.h>
+ #include <linux/dma-mapping.h>
++#include <linux/interrupt.h>
++#include <linux/delay.h>
+
+ #include <sound/core.h>
+ #include <sound/pcm.h>
+@@ -37,13 +39,14 @@
+
+ #include "s3c24xx-pcm.h"
+
+-#define S3C24XX_PCM_DEBUG 0
++#define S3C24XX_PCM_DEBUG 1
+ #if S3C24XX_PCM_DEBUG
+-#define DBG(x...) printk(KERN_DEBUG x)
++#define DBG(x...) printk(x)
+ #else
+ #define DBG(x...)
+ #endif
+
++
+ static const struct snd_pcm_hardware s3c24xx_pcm_hardware = {
+ .info = SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_BLOCK_TRANSFER |
+@@ -77,6 +80,7 @@
+ struct s3c24xx_pcm_dma_params *params;
+ };
+
++
+ /* s3c24xx_pcm_enqueue
+ *
+ * place a dma buffer onto the queue for the dma system
+@@ -87,13 +91,29 @@
+ struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
+ dma_addr_t pos = prtd->dma_pos;
+ int ret;
++ int dmalimit;
+
+ DBG("Entered %s\n", __FUNCTION__);
++ DBG("dma limit: %x\n",prtd->dma_limit);
+
+- while (prtd->dma_loaded < prtd->dma_limit) {
++ if (prtd->dma_loaded == 0){
++ printk("setting dma limit to 1\n");
++ dmalimit=1;
++ }
++ else {
++ printk("setting dma limit to %d\n",prtd->dma_limit);
++ dmalimit=prtd->dma_limit;
++ }
++
++ while (prtd->dma_loaded < dmalimit) {
+ unsigned long len = prtd->dma_period;
+
+ DBG("dma_loaded: %d\n",prtd->dma_loaded);
++ DBG("dma start: %x\n",prtd->dma_start);
++ DBG("period len: %x\n",prtd->dma_period);
++ DBG("dma pos: %x\n",prtd->dma_pos);
++ DBG("dma end: %x\n",prtd->dma_end);
++ DBG("dma limit: %x\n",prtd->dma_limit);
+
+ if ((pos + len) > prtd->dma_end) {
+ len = prtd->dma_end - pos;
+@@ -106,16 +126,43 @@
+
+ if (ret == 0) {
+ prtd->dma_loaded++;
++// printk("added 1 to dma_loaded: 0x%d\n",prtd->dma_loaded);
+ pos += prtd->dma_period;
+- if (pos >= prtd->dma_end)
++ if (pos >= prtd->dma_end) {
++// printk("length of dma excedded reseting to start of 0x%x\n",prtd->dma_start);
+ pos = prtd->dma_start;
++ }
++
+ } else
+ break;
+ }
+
++ DBG("setting dma_pos=%x\n",pos);
+ prtd->dma_pos = pos;
+ }
+
++static void pcm_enqueue_tasklet(unsigned long data){
++ struct snd_pcm_substream *substream = (struct snd_pcm_substream *) data;
++ struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
++ dma_addr_t src, dst;
++
++ printk("tasklet ran!!\n");
++ while (1) {
++ s3c2410_dma_getposition(prtd->params->channel, &src, &dst);
++ printk("tasklet reports 0x%x , 0x%x\n",src,dst);
++ if (prtd->dma_start != src){
++ printk("tasklet pcm_enqueue!\n");
++ s3c24xx_pcm_enqueue(substream);
++ return;
++ }
++ else {
++ udelay(5);
++ }
++ }
++}
++
++DECLARE_TASKLET_DISABLED(enqueue_tasklet, pcm_enqueue_tasklet, 0);
++
+ static void s3c24xx_audio_buffdone(struct s3c2410_dma_chan *channel,
+ void *dev_id, int size,
+ enum s3c2410_dma_buffresult result)
+@@ -171,7 +218,7 @@
+ ret = s3c2410_dma_request(prtd->params->channel,
+ prtd->params->client, NULL);
+
+- if (ret) {
++ if (ret < 0) {
+ DBG(KERN_ERR "failed to get dma channel\n");
+ return ret;
+ }
+@@ -182,8 +229,12 @@
+
+ snd_pcm_set_runtime_buffer(substream, &substream->dma_buffer);
+
++// printk("total bytes=0x%x",totbytes);
++
+ runtime->dma_bytes = totbytes;
+
++ printk("total bytes=0x%x\n",runtime->dma_bytes);
++
+ spin_lock_irq(&prtd->lock);
+ prtd->dma_loaded = 0;
+ prtd->dma_limit = runtime->hw.periods_min;
+@@ -269,16 +320,42 @@
+
+ switch (cmd) {
+ case SNDRV_PCM_TRIGGER_START:
++ printk("PCM Start!\n");
++ prtd->state |= ST_RUNNING;
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_START);
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_STARTED);
++ tasklet_enable(&enqueue_tasklet);
++ enqueue_tasklet.data = (unsigned long) substream;
++ tasklet_schedule(&enqueue_tasklet);
++// s3c24xx_pcm_enqueue(substream);
++ break;
+ case SNDRV_PCM_TRIGGER_RESUME:
++// printk("PCM Resume!\n");
++ prtd->state |= ST_RUNNING;
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_START);
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_STARTED);
++ break;
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++// printk("PCM Pause Release!\n");
+ prtd->state |= ST_RUNNING;
+ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_START);
+ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_STARTED);
+ break;
+
+ case SNDRV_PCM_TRIGGER_STOP:
++ printk("PCM Stop!\n");
++ prtd->state &= ~ST_RUNNING;
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_STOP);
++ tasklet_disable(&enqueue_tasklet);
++// tasklet_kill(&kp_tasklet);
++ break;
+ case SNDRV_PCM_TRIGGER_SUSPEND:
++// printk("PCM Suspend!\n");
++ prtd->state &= ~ST_RUNNING;
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_STOP);
++ break;
+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++// printk("PCM Pause Push!\n");
+ prtd->state &= ~ST_RUNNING;
+ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_STOP);
+ break;
+@@ -313,7 +390,8 @@
+
+ spin_unlock(&prtd->lock);
+
+- DBG("Pointer %x %x\n",src,dst);
++ DBG("Pointer %x %x %x\n",src,dst,prtd->dma_start);
++// printk("Pointer %x %x %x\n",src,dst,prtd->dma_start);
+
+ /* we seem to be getting the odd error from the pcm library due
+ * to out-of-bounds pointers. this is maybe due to the dma engine
+@@ -322,10 +400,14 @@
+ */
+
+ if (res >= snd_pcm_lib_buffer_bytes(substream)) {
+- if (res == snd_pcm_lib_buffer_bytes(substream))
++ DBG("res>= snd_pcm_lib_buffer\n");
++ if (res == snd_pcm_lib_buffer_bytes(substream)){
++ DBG("res == snd_pcm_lib_buffer\n");
+ res = 0;
++ }
+ }
+
++ printk("pcm_pointer returns: %d\n",bytes_to_frames(substream->runtime,res));
+ return bytes_to_frames(substream->runtime, res);
+ }
+
diff --git a/packages/linux/linux-2.6.25/m8050/update-mach-types.diff b/packages/linux/linux-2.6.25/m8050/update-mach-types.diff
new file mode 100644
index 0000000000..7e950ad453
--- /dev/null
+++ b/packages/linux/linux-2.6.25/m8050/update-mach-types.diff
@@ -0,0 +1,13 @@
+---
+ arch/arm/tools/mach-types | 1 +
+ 2 files changed, 2 insertions(+)
+
+--- linux-2.6.25.orig/arch/arm/tools/mach-types
++++ linux-2.6.25/arch/arm/tools/mach-types
+@@ -1609,5 +1609,6 @@ tnb MACH_TNB TNB 1610
+ toepath MACH_TOEPATH TOEPATH 1611
+ kb9263 MACH_KB9263 KB9263 1612
+ mt7108 MACH_MT7108 MT7108 1613
+ smtr2440 MACH_SMTR2440 SMTR2440 1614
+ manao MACH_MANAO MANAO 1615
++aml_m8050 MACH_AML_M8050 AML_M8050 1644