diff --git a/README.md b/README.md index e2fbd4e..b209c83 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # Oswald -Smartwatch OS for microctroller based smartwatches, originally developed for MSP430 based MetaWatch \ No newline at end of file +Smartwatch OS for microctroller based smartwatches, originally developed for MSP430 based MetaWatchOSWALD + +Open Smart Watch Application Loadable Development + +License: LGPL (Gnu Library Public License), +permission granted for static linking, +see individual files for more / different licensing information diff --git a/linux-bt/Makefile b/linux-bt/Makefile new file mode 100644 index 0000000..7d3390d --- /dev/null +++ b/linux-bt/Makefile @@ -0,0 +1,16 @@ +CFLAGS = -Wall -O2 +SRC = l2cap_client.c +PRG = l2cap_client + +OBJS = $(SRC:.c=.o) + +all: $(PRG) + +$(PRG): $(OBJS) + $(CC) -o $(PRG) $(OBJS) -lbluetooth + +%.o: %c + $(CC) -c $(CFLAGS) -o $@ $< + +clean: + rm -f $(OBJS) $(PRG) diff --git a/linux-bt/README.txt b/linux-bt/README.txt new file mode 100644 index 0000000..9de0009 --- /dev/null +++ b/linux-bt/README.txt @@ -0,0 +1,17 @@ + +l2cap_client +License: GPLv3 + +This is a small test application to test the Bluetooth connection to +Oswald-MetaWatch. It opens a L2CAP connection to a give Bluetooth address. +After successful connection establishment it output all data received to +stdout and send data received from stdin (keyboard) to the watch. Input via +stdin is not in cbreak mode, i.e. input must be finished with CR before it +is sent to the watch. + +Building +Simply type "make". Depend on libbluetooth and its development files. + +Running +Start with Bluetooth address of the watch as cmdline argument: + l2cap_client 11:22:33:44:55:66 diff --git a/linux-bt/l2cap_client.c b/linux-bt/l2cap_client.c new file mode 100644 index 0000000..c22ac89 --- /dev/null +++ b/linux-bt/l2cap_client.c @@ -0,0 +1,147 @@ +/* + * (c) 2013 Nicole Faerber, Siegen, Germany + * licensed under GPLv2 + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +typedef enum { + CMD_NULL = 0, + CMD_INVAL, + CMD_QUIT, +} cmd_t; + +// replace "markups" with appropr. chars +char *parse_buffer(char *inbuf, int *cmd) +{ + int i,o; + static char outbuf[240]; + + memset(outbuf,0,240); + + *cmd = CMD_NULL; + + // if a line starts with a \ then it is an internal command + if (inbuf[0] == '\\') { + switch (inbuf[1]) { + case 'q': + *cmd = CMD_QUIT; + break; + default: + *cmd = CMD_INVAL; + break; + } + return NULL; + } + o=0; + for (i=0; i\n", argv[0]); + exit(2); + } + + strncpy(dest, argv[1], 18); + + // allocate a socket + s = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP); + + // set the connection parameters (who to connect to) + addr.l2_family = AF_BLUETOOTH; + addr.l2_psm = htobs(0x1001); + str2ba( dest, &addr.l2_bdaddr ); + + // connect to server + status = connect(s, (struct sockaddr *)&addr, sizeof(addr)); + + // send a message + if ( status != 0 ) { + perror("open socket"); + close(s); + return -1; + } + + fprintf(stderr, "connected\n"); + + if (fcntl(0, F_SETFL, O_NONBLOCK) != 0) + perror("stdin nonblock"); + if (fcntl(s, F_SETFL, O_NONBLOCK) != 0) + perror("socket nonblock"); + + while (1) { + FD_ZERO(&infds); + FD_SET(s, &infds); + FD_SET(0, &infds); + FD_ZERO(&efds); + FD_SET(s, &efds); + status = select(s+1, &infds, NULL, &efds, NULL); + // fprintf(stderr, "select = %d\n", status); + if ( status > 0) { + if (FD_ISSET(0, &infds)) { + len = read(0, buf, 240); + if (len > 0) { + // status = write(s, buf, len); + out = parse_buffer(buf, &cmd); + if (cmd != CMD_NULL) { + if (cmd == CMD_QUIT) { + close(s); + exit(0); + } + } else { + len = strlen(out); + status = write(s, out, len); + if (status < 0) + perror("write"); + fsync(s); + } + } + } else if (FD_ISSET(s, &infds)) { + len = read(s, buf, 240); + // fprintf(stderr, "read = %d\n", len); + for (i=0; i 0) { + while (FCTL3 & BUSY); // test busy + *Flash_ptr++ = *Data_ptr++; // Write to Flash + count--; + } + + FCTL1 = FWKEY; // Clear write bit + FCTL3 = FWKEY + LOCK; // Set LOCK bit +} + +void FlashWrite_16(unsigned int *Data_ptr, unsigned int *Flash_ptr, unsigned int count) +{ + FCTL3 = FWKEY; // Clear Lock bit + FCTL1 = FWKEY+WRT; // Enable byte/word write mode + + while (count > 0) { + while (FCTL3 & BUSY); // test busy + *Flash_ptr++ = *Data_ptr++; // Write to Flash + count--; + } + + FCTL1 = FWKEY; // Clear Erase bit + FCTL3 = FWKEY + LOCK; // Set LOCK bit +} + +void FlashWrite_32(unsigned long *Data_ptr, unsigned long *Flash_ptr, unsigned int count) +{ + FCTL3 = FWKEY; // Clear Lock bit + FCTL1 = FWKEY + BLKWRT; // Enable long-word write + + while (count > 0) { + while (FCTL3 & BUSY); // test busy + *Flash_ptr++ = *Data_ptr++; // Write to Flash + count--; + } + + FCTL1 = FWKEY; // Clear Erase bit + FCTL3 = FWKEY + LOCK; // Set LOCK bit +} + +void FlashMemoryFill_32(unsigned long value, unsigned long *Flash_ptr, unsigned int count) +{ + FCTL3 = FWKEY; // Clear Lock bit + FCTL1 = FWKEY + BLKWRT; // Enable long-word write + + while (count > 0) { + while (FCTL3 & BUSY); // test busy + *Flash_ptr++ = value; // Write to Flash + count--; + } + + FCTL1 = FWKEY; // Clear Erase bit + FCTL3 = FWKEY + LOCK; // Set LOCK bit +} diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_FLASH.h b/metawatch/F5xx_F6xx_Core_Lib/HAL_FLASH.h new file mode 100644 index 0000000..9317e5b --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_FLASH.h @@ -0,0 +1,104 @@ +/******************************************************************************* + * + * HAL_FLASH.h + * Flash Library for flash memory controller of MSP430F5xx/6xx family + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Created: Version 1.0 11/24/2009 + * Updated: Version 2.0 01/18/2011 + * + ******************************************************************************/ + +#ifndef HAL_FLASH_H +#define HAL_FLASH_H + +//****************************************************************************** +// Defines +//****************************************************************************** + +#define FLASH_STATUS_OK 0 +#define FLASH_STATUS_ERROR 1 + +/******************************************************************************* + * \brief Erase a single segment of the flash memory + * + * \param *Flash_ptr Pointer into the flash segment to erase + ******************************************************************************/ +extern void Flash_SegmentErase(unsigned int *Flash_ptr); + +/******************************************************************************* + * \brief Erase Check of the flash memory + * + * \param *Flash_ptr Pointer into the flash segment to erase + * \param len give the len in word + ******************************************************************************/ +extern unsigned char Flash_EraseCheck(unsigned int *Flash_ptr, unsigned int len); + +/******************************************************************************* + * \brief Write data into the flash memory (Byte format) + * + * \param *Data_ptr Pointer to the Data to write + * \param *Flash_ptr Pointer into the flash to write data to + * \param count number of data to write + ******************************************************************************/ +extern void FlashWrite_8(unsigned char *Data_ptr, unsigned char *Flash_ptr, unsigned int count); + +/******************************************************************************* + * \brief Write data into the flash memory (Word format) + * + * \param *Data_ptr Pointer to the Data to write + * \param *Flash_ptr Pointer into the flash to write data to + * \param count number of data to write + ******************************************************************************/ +extern void FlashWrite_16(unsigned int *Data_ptr, unsigned int *Flash_ptr, unsigned int count); + +/******************************************************************************* + * \brief Write data into the flash memory (Long format) + * + * \param *Data_ptr Pointer to the Data to write + * \param *Flash_ptr Pointer into the flash to write data to + * \param count number of data to write + ******************************************************************************/ +extern void FlashWrite_32(unsigned long *Data_ptr, unsigned long *Flash_ptr, unsigned int count); + +/******************************************************************************* + * \brief Fill data into the flash memory (Long format) + * + * \param value Pointer to the Data to write + * \param *Flash_ptr pointer into the flash to write data to + * \param count number of data to write (= byte * 4) + ******************************************************************************/ +extern void FlashMemoryFill_32(unsigned long value, unsigned long *Flash_ptr, unsigned int count); + +#endif /* HAL_FLASH_H */ diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_MACROS.h b/metawatch/F5xx_F6xx_Core_Lib/HAL_MACROS.h new file mode 100644 index 0000000..398074f --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_MACROS.h @@ -0,0 +1,51 @@ +/* **************************************************************************** + * + * HAL_MACROS.h + * Flash Library for flash memory controller of MSP430F5xx/6xx family + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Created: Version 1.0 11/24/2009 + * Updated: Version 2.0 12/15/2010 + * +******************************************************************************/ + +#ifndef HAL_MACROS_H +#define HAL_MACROS_H + +/* + * This macro is for use by other macros to form a fully valid C statement. + */ +#define st(x) do { x } while (__LINE__ == -1) + +#endif /* HAL_MACROS_H */ diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_PMAP.c b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMAP.c new file mode 100644 index 0000000..e11c448 --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMAP.c @@ -0,0 +1,78 @@ +/******************************************************************************* + * + * HAL_PMAP.c + * Port Mapper Library for PMAP controller of MSP430F5xx/6xx family + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Created: Version 1.0 11/24/2009 + * Updated: Version 2.0 12/15/2010 + * + ******************************************************************************/ + +#include "msp430.h" +#include "HAL_PMAP.h" +#include "portmacro.h" + +// Check and define PMAP function only if the device has port mapping capability +// Note: This macro is defined in the device-specific header file if this +// feature is available on a given MSP430. +#ifdef __MSP430_HAS_PORT_MAPPING__ + +void configure_ports(const unsigned char *port_mapping, unsigned char *PxMAPy, + unsigned char num_of_ports, unsigned char port_map_reconfig) +{ + uint16_t i; + + portENTER_CRITICAL(); + + // Get write-access to port mapping registers: + PMAPPWD = PMAPPW; + + if (port_map_reconfig) { + // Allow reconfiguration during runtime: + PMAPCTL = PMAPRECFG; + } + + // Configure Port Mapping: + for (i = 0; i < num_of_ports * 8; i++) { + PxMAPy[i] = port_mapping[i]; + } + + // Disable write-access to port mapping registers: + PMAPPWD = 0; + + portEXIT_CRITICAL(); +} + +#endif /* __MSP430_HAS_PORT_MAPPING__ */ diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_PMAP.h b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMAP.h new file mode 100644 index 0000000..9fb7b77 --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMAP.h @@ -0,0 +1,58 @@ +/******************************************************************************* + * + * HAL_PMAP.h + * Port Mapper Library for PMAP controller of MSP430F5xx/6xx family + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Created: Version 1.0 11/24/2009 + * Updated: Version 2.0 12/15/2010 + * + ******************************************************************************/ + +#ifndef HAL_PMAP_H +#define HAL_PMAP_H + +/******************************************************************************* + * \brief Configures the MSP430 Port Mapper + * + * \param *port_mapping Pointer to init Data + * \param PxMAPy Pointer start of first Port Mapper to initialize + * \param num_of_ports Number of Ports to initialize + * \param port_map_reconfig Flag to enable/disable reconfiguration + * + ******************************************************************************/ +extern void configure_ports(const unsigned char *port_mapping, unsigned char *PxMAPy, + unsigned char num_of_ports, unsigned char port_map_reconfig); + +#endif /* HAL_PMAP_H */ diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_PMM.c b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMM.c new file mode 100644 index 0000000..bf5e1e0 --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMM.c @@ -0,0 +1,274 @@ +/******************************************************************************* + * + * HAL_PMM.c + * Power Management Module Library for MSP430F5xx/6xx family + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Created: Version 1.0 11/24/2009 + * Updated: Version 2.0 12/15/2010 + * Modified SetVcoreUp() and SetVcoreDown() functions + * + ******************************************************************************/ + +#include "msp430.h" +#include "HAL_PMM.h" + +#define _HAL_PMM_DISABLE_SVML_ +#define _HAL_PMM_DISABLE_SVSL_ +#define _HAL_PMM_DISABLE_FULL_PERFORMANCE_ + +#ifdef _HAL_PMM_DISABLE_SVML_ +#define _HAL_PMM_SVMLE SVMLE +#else +#define _HAL_PMM_SVMLE 0 +#endif + +#ifdef _HAL_PMM_DISABLE_SVSL_ +#define _HAL_PMM_SVSLE SVSLE +#else +#define _HAL_PMM_SVSLE 0 +#endif + +#ifdef _HAL_PMM_DISABLE_FULL_PERFORMANCE_ +#define _HAL_PMM_SVSFP SVSLFP +#define _HAL_PMM_SVMFP SVMLFP +#else +#define _HAL_PMM_SVSFP 0 +#define _HAL_PMM_SVMFP 0 +#endif + +/******************************************************************************* + * \brief Increase Vcore by one level + * + * \param level Level to which Vcore needs to be increased + * \return status Success/failure + ******************************************************************************/ +static unsigned int SetVCoreUp(unsigned char level) +{ + unsigned int PMMRIE_backup, SVSMHCTL_backup, SVSMLCTL_backup; + + // The code flow for increasing the Vcore has been altered to work around + // the erratum FLASH37. + // Please refer to the Errata sheet to know if a specific device is affected + // DO NOT ALTER THIS FUNCTION + + // Open PMM registers for write access + PMMCTL0_H = 0xA5; + + // Disable dedicated Interrupts + // Backup all registers + PMMRIE_backup = PMMRIE; + PMMRIE &= ~(SVMHVLRPE | SVSHPE | SVMLVLRPE | SVSLPE | SVMHVLRIE | + SVMHIE | SVSMHDLYIE | SVMLVLRIE | SVMLIE | SVSMLDLYIE ); + SVSMHCTL_backup = SVSMHCTL; + SVSMLCTL_backup = SVSMLCTL; + + // Clear flags + PMMIFG = 0; + + // Set SVM highside to new level and check if a VCore increase is possible + SVSMHCTL = SVMHE | SVSHE | (SVSMHRRL0 * level); + + // Wait until SVM highside is settled + while ((PMMIFG & SVSMHDLYIFG) == 0); + + // Clear flag + PMMIFG &= ~SVSMHDLYIFG; + + // Check if a VCore increase is possible + if ((PMMIFG & SVMHIFG) == SVMHIFG) { // -> Vcc is too low for a Vcore increase + // recover the previous settings + PMMIFG &= ~SVSMHDLYIFG; + SVSMHCTL = SVSMHCTL_backup; + + // Wait until SVM highside is settled + while ((PMMIFG & SVSMHDLYIFG) == 0); + + // Clear all Flags + PMMIFG &= ~(SVMHVLRIFG | SVMHIFG | SVSMHDLYIFG | SVMLVLRIFG | SVMLIFG | SVSMLDLYIFG); + + PMMRIE = PMMRIE_backup; // Restore PMM interrupt enable register + PMMCTL0_H = 0x00; // Lock PMM registers for write access + return PMM_STATUS_ERROR; // return: voltage not set + } + + // Set also SVS highside to new level + // Vcc is high enough for a Vcore increase + SVSMHCTL |= (SVSHRVL0 * level); + + // Wait until SVM highside is settled + while ((PMMIFG & SVSMHDLYIFG) == 0); + + // Clear flag + PMMIFG &= ~SVSMHDLYIFG; + + // Set VCore to new level + PMMCTL0_L = PMMCOREV0 * level; + + // Set SVM, SVS low side to new level + SVSMLCTL = SVMLE | (SVSMLRRL0 * level) | SVSLE | (SVSLRVL0 * level); + + // Wait until SVM, SVS low side is settled + while ((PMMIFG & SVSMLDLYIFG) == 0); + + // Clear flag + PMMIFG &= ~SVSMLDLYIFG; + // SVS, SVM core and high side are now set to protect for the new core level + + // Restore Low side settings + // Clear all other bits _except_ level settings + SVSMLCTL &= (SVSLRVL0+SVSLRVL1+SVSMLRRL0+SVSMLRRL1+SVSMLRRL2); + + // Clear level settings in the backup register,keep all other bits + SVSMLCTL_backup &= ~(SVSLRVL0+SVSLRVL1+SVSMLRRL0+SVSMLRRL1+SVSMLRRL2); + + // Restore low-side SVS monitor settings + SVSMLCTL |= SVSMLCTL_backup; + + // Restore High side settings + // Clear all other bits except level settings + SVSMHCTL &= (SVSHRVL0+SVSHRVL1+SVSMHRRL0+SVSMHRRL1+SVSMHRRL2); + + // Clear level settings in the backup register,keep all other bits + SVSMHCTL_backup &= ~(SVSHRVL0+SVSHRVL1+SVSMHRRL0+SVSMHRRL1+SVSMHRRL2); + + // Restore backup + SVSMHCTL |= SVSMHCTL_backup; + + // Wait until high side, low side settled + while (((PMMIFG & SVSMLDLYIFG) == 0) && ((PMMIFG & SVSMHDLYIFG) == 0)); + + // Clear all Flags + PMMIFG &= ~(SVMHVLRIFG | SVMHIFG | SVSMHDLYIFG | SVMLVLRIFG | SVMLIFG | SVSMLDLYIFG); + + PMMRIE = PMMRIE_backup; // Restore PMM interrupt enable register + PMMCTL0_H = 0x00; // Lock PMM registers for write access + + return PMM_STATUS_OK; +} + +/******************************************************************************* + * \brief Decrease Vcore by one level + * + * \param level Level to which Vcore needs to be decreased + * \return status Success/failure + ******************************************************************************/ +static unsigned int SetVCoreDown(unsigned char level) +{ + unsigned int PMMRIE_backup, SVSMHCTL_backup, SVSMLCTL_backup; + + // The code flow for decreasing the Vcore has been altered to work around + // the erratum FLASH37. + // Please refer to the Errata sheet to know if a specific device is affected + // DO NOT ALTER THIS FUNCTION + + // Open PMM registers for write access + PMMCTL0_H = 0xA5; + + // Disable dedicated Interrupts + // Backup all registers + PMMRIE_backup = PMMRIE; + PMMRIE &= ~(SVMHVLRPE | SVSHPE | SVMLVLRPE | SVSLPE | SVMHVLRIE | + SVMHIE | SVSMHDLYIE | SVMLVLRIE | SVMLIE | SVSMLDLYIE ); + SVSMHCTL_backup = SVSMHCTL; + SVSMLCTL_backup = SVSMLCTL; + + // Clear flags + PMMIFG &= ~(SVMHIFG | SVSMHDLYIFG | SVMLIFG | SVSMLDLYIFG); + + // Set SVM, SVS high & low side to new settings in normal mode + SVSMHCTL = SVMHE | (SVSMHRRL0 * level) | SVSHE | (SVSHRVL0 * level); + SVSMLCTL = SVMLE | (SVSMLRRL0 * level) | SVSLE | (SVSLRVL0 * level); + + // Wait until SVM high side and SVM low side is settled + while ((PMMIFG & SVSMHDLYIFG) == 0 || (PMMIFG & SVSMLDLYIFG) == 0); + + // Clear flags + PMMIFG &= ~(SVSMHDLYIFG + SVSMLDLYIFG); + // SVS, SVM core and high side are now set to protect for the new core level + + // Set VCore to new level + PMMCTL0_L = PMMCOREV0 * level; + + // Restore Low side settings + // Clear all other bits _except_ level settings + SVSMLCTL &= (SVSLRVL0+SVSLRVL1+SVSMLRRL0+SVSMLRRL1+SVSMLRRL2); + + // Clear level settings in the backup register,keep all other bits + SVSMLCTL_backup &= ~(SVSLRVL0+SVSLRVL1+SVSMLRRL0+SVSMLRRL1+SVSMLRRL2); + + // Restore low-side SVS monitor settings + SVSMLCTL |= SVSMLCTL_backup; + + // Restore High side settings + // Clear all other bits except level settings + SVSMHCTL &= (SVSHRVL0+SVSHRVL1+SVSMHRRL0+SVSMHRRL1+SVSMHRRL2); + + // Clear level settings in the backup register, keep all other bits + SVSMHCTL_backup &= ~(SVSHRVL0+SVSHRVL1+SVSMHRRL0+SVSMHRRL1+SVSMHRRL2); + + // Restore backup + SVSMHCTL |= SVSMHCTL_backup; + + // Wait until high side, low side settled + while (((PMMIFG & SVSMLDLYIFG) == 0) && ((PMMIFG & SVSMHDLYIFG) == 0)); + + // Clear all Flags + PMMIFG &= ~(SVMHVLRIFG | SVMHIFG | SVSMHDLYIFG | SVMLVLRIFG | SVMLIFG | SVSMLDLYIFG); + + PMMRIE = PMMRIE_backup; // Restore PMM interrupt enable register + PMMCTL0_H = 0x00; // Lock PMM registers for write access + return PMM_STATUS_OK; // Return: OK +} + +unsigned int SetVCore(unsigned char level) +{ + unsigned int actlevel; + unsigned int status; + + status = 0; + level &= PMMCOREV_3; // Set Mask for Max. level + actlevel = (PMMCTL0 & PMMCOREV_3); // Get actual VCore + // step by step increase or decrease + while (((level != actlevel) && (status == 0)) || (level < actlevel)) { + if (level > actlevel) { + status = SetVCoreUp(++actlevel); + } + else { + status = SetVCoreDown(--actlevel); + } + } + + return status; +} diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_PMM.d b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMM.d new file mode 100644 index 0000000..ebe26fa --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMM.d @@ -0,0 +1,7 @@ +HAL_PMM.o: F5xx_F6xx_Core_Lib/HAL_PMM.c \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/msp430.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/msp430f5438a.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/iomacros.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/in430.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/intrinsics.h \ + F5xx_F6xx_Core_Lib/HAL_PMM.h F5xx_F6xx_Core_Lib/HAL_MACROS.h diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_PMM.h b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMM.h new file mode 100644 index 0000000..c56020a --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_PMM.h @@ -0,0 +1,105 @@ +/******************************************************************************* + * + * HAL_PMM.h + * Power Management Module Library for MSP430F5xx/6xx family + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Created: Version 1.0 11/24/2009 + * Updated: Version 2.0 12/15/2010 + * + ******************************************************************************/ + +#ifndef HAL_PMM_H +#define HAL_PMM_H + +#include "HAL_MACROS.h" + +/******************************************************************************* + * Macros + ******************************************************************************/ +#define ENABLE_SVSL() st(PMMCTL0_H = 0xA5; SVSMLCTL |= SVSLE; PMMCTL0_H = 0x00;) +#define DISABLE_SVSL() st(PMMCTL0_H = 0xA5; SVSMLCTL &= ~SVSLE; PMMCTL0_H = 0x00;) +#define ENABLE_SVML() st(PMMCTL0_H = 0xA5; SVSMLCTL |= SVMLE; PMMCTL0_H = 0x00;) +#define DISABLE_SVML() st(PMMCTL0_H = 0xA5; SVSMLCTL &= ~SVMLE; PMMCTL0_H = 0x00;) +#define ENABLE_SVSH() st(PMMCTL0_H = 0xA5; SVSMHCTL |= SVSHE; PMMCTL0_H = 0x00;) +#define DISABLE_SVSH() st(PMMCTL0_H = 0xA5; SVSMHCTL &= ~SVSHE; PMMCTL0_H = 0x00;) +#define ENABLE_SVMH() st(PMMCTL0_H = 0xA5; SVSMHCTL |= SVMHE; PMMCTL0_H = 0x00;) +#define DISABLE_SVMH() st(PMMCTL0_H = 0xA5; SVSMHCTL &= ~SVMHE; PMMCTL0_H = 0x00;) +#define ENABLE_SVSL_SVML() st(PMMCTL0_H = 0xA5; SVSMLCTL |= (SVSLE + SVMLE); PMMCTL0_H = 0x00;) +#define DISABLE_SVSL_SVML() st(PMMCTL0_H = 0xA5; SVSMLCTL &= ~(SVSLE + SVMLE); PMMCTL0_H = 0x00;) +#define ENABLE_SVSH_SVMH() st(PMMCTL0_H = 0xA5; SVSMHCTL |= (SVSHE + SVMHE); PMMCTL0_H = 0x00;) +#define DISABLE_SVSH_SVMH() st(PMMCTL0_H = 0xA5; SVSMHCTL &= ~(SVSHE + SVMHE); PMMCTL0_H = 0x00;) + +#define ENABLE_SVSL_RESET() st(PMMCTL0_H = 0xA5; PMMRIE |= SVSLPE; PMMCTL0_H = 0x00;) +#define DISABLE_SVSL_RESET() st(PMMCTL0_H = 0xA5; PMMRIE &= ~SVSLPE; PMMCTL0_H = 0x00;) +#define ENABLE_SVML_INTERRUPT() st(PMMCTL0_H = 0xA5; PMMRIE |= SVMLIE; PMMCTL0_H = 0x00;) +#define DISABLE_SVML_INTERRUPT() st(PMMCTL0_H = 0xA5; PMMRIE &= ~SVMLIE; PMMCTL0_H = 0x00;) +#define ENABLE_SVSH_RESET() st(PMMCTL0_H = 0xA5; PMMRIE |= SVSHPE; PMMCTL0_H = 0x00;) +#define DISABLE_SVSH_RESET() st(PMMCTL0_H = 0xA5; PMMRIE &= ~SVSHPE; PMMCTL0_H = 0x00;) +#define ENABLE_SVMH_INTERRUPT() st(PMMCTL0_H = 0xA5; PMMRIE |= SVMHIE; PMMCTL0_H = 0x00;) +#define DISABLE_SVMH_INTERRUPT() st(PMMCTL0_H = 0xA5; PMMRIE &= ~SVMHIE; PMMCTL0_H = 0x00;) +#define CLEAR_PMM_IFGS() st(PMMCTL0_H = 0xA5; PMMIFG = 0; PMMCTL0_H = 0x00;) + +// These settings use SVSH/LACE = 0 +#define SVSL_ENABLED_IN_LPM_FAST_WAKE() st(PMMCTL0_H = 0xA5; SVSMLCTL |= (SVSLFP+SVSLMD); SVSMLCTL &= ~SVSMLACE; PMMCTL0_H = 0x00;) +#define SVSL_ENABLED_IN_LPM_SLOW_WAKE() st(PMMCTL0_H = 0xA5; SVSMLCTL |= SVSLMD; SVSMLCTL &= ~(SVSLFP+SVSMLACE); PMMCTL0_H = 0x00;) + +#define SVSL_DISABLED_IN_LPM_FAST_WAKE() st(PMMCTL0_H = 0xA5; SVSMLCTL |= SVSLFP; SVSMLCTL &= ~(SVSLMD+SVSMLACE); PMMCTL0_H = 0x00;) +#define SVSL_DISABLED_IN_LPM_SLOW_WAKE() st(PMMCTL0_H = 0xA5; SVSMLCTL &= ~(SVSLFP+SVSMLACE+SVSLMD); PMMCTL0_H = 0x00;) + +#define SVSH_ENABLED_IN_LPM_NORM_PERF() st(PMMCTL0_H = 0xA5; SVSMHCTL |= SVSHMD; SVSMHCTL &= ~(SVSMHACE+SVSHFP); PMMCTL0_H = 0x00;) +#define SVSH_ENABLED_IN_LPM_FULL_PERF() st(PMMCTL0_H = 0xA5; SVSMHCTL |= (SVSHMD+SVSHFP); SVSMHCTL &= ~SVSMHACE; PMMCTL0_H = 0x00;) + +#define SVSH_DISABLED_IN_LPM_NORM_PERF() st(PMMCTL0_H = 0xA5; SVSMHCTL &= ~(SVSMHACE+SVSHFP+SVSHMD);PMMCTL0_H = 0x00;) +#define SVSH_DISABLED_IN_LPM_FULL_PERF() st(PMMCTL0_H = 0xA5; SVSMHCTL |= SVSHFP; SVSMHCTL &= ~(SVSMHACE+SVSHMD); PMMCTL0_H = 0x00;) + +// These setting use SVSH/LACE = 1 +#define SVSL_OPTIMIZED_IN_LPM_FAST_WAKE() st(PMMCTL0_H = 0xA5; SVSMLCTL |= (SVSLFP+SVSLMD+SVSMLACE); PMMCTL0_H = 0x00;) +#define SVSH_OPTIMIZED_IN_LPM_FULL_PERF() st(PMMCTL0_H = 0xA5; SVSMHCTL |= (SVSHMD+SVSHFP+SVSMHACE); PMMCTL0_H = 0x00;) + +/******************************************************************************* + * Defines + ******************************************************************************/ +#define PMM_STATUS_OK 0 +#define PMM_STATUS_ERROR 1 + +/******************************************************************************* + * \brief Set Vcore to expected level + * + * \param level Level to which Vcore needs to be increased/decreased + * \return status Success/failure + ******************************************************************************/ +extern unsigned int SetVCore(unsigned char level); + +#endif /* HAL_PMM_H */ diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_TLV.c b/metawatch/F5xx_F6xx_Core_Lib/HAL_TLV.c new file mode 100644 index 0000000..4001672 --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_TLV.c @@ -0,0 +1,158 @@ +/******************************************************************************* + * + * HAL_TLV.c + * Provides Functions to Read the TLV Data Section of the MSP430 Devices + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Updated: Version 2.0 01/17/2011 + * + ******************************************************************************/ + +#include "msp430.h" +#include "HAL_TLV.h" + +void Get_TLV_Info(unsigned char tag, unsigned char instance, unsigned char *length, unsigned int **data_address) +{ + char *TLV_address = (char *)TLV_START; // TLV Structure Start Address + + while((TLV_address < (char *)TLV_END) + && ((*TLV_address != tag) || instance) // check for tag and instance + && (*TLV_address != TLV_TAGEND)) // do range check first + { + if (*TLV_address == tag) instance--; // repeat till requested instance is reached + TLV_address += *(TLV_address + 1) + 2; // add (Current TAG address + LENGTH) + 2 + } + + if (*TLV_address == tag) // Check if Tag match happened.. + { + *length = *(TLV_address + 1); // Return length = Address + 1 + *data_address = (unsigned int *)(TLV_address + 2); // Return address of first data/value info = Address + 2 + } + else // If there was no tag match and the end of TLV structure was reached.. + { + *length = 0; // Return 0 for TAG not found + *data_address = 0; // Return 0 for TAG not found + } +} + +unsigned int Get_Device_Type(void) +{ + unsigned int *pDeviceType = (unsigned int *)DEVICE_ID_0; + return pDeviceType[0]; // Return Value from TLV Table +} + +unsigned int Get_TLV_Memory(unsigned char instance) +{ + unsigned char *pPDTAG; + unsigned char bPDTAG_bytes; + unsigned int count; + + instance *= 2; // set tag for word access comparison + + // TLV access Function Call + Get_TLV_Info(TLV_PDTAG, 0, &bPDTAG_bytes, (unsigned int **)&pPDTAG); // Get Peripheral data pointer + + for (count = 0;count <= instance; count += 2) + { + if (pPDTAG[count] == 0) return 0; // Return 0 if end reached + if (count == instance) return (pPDTAG[count] | pPDTAG[count+1]<<8); + } + + return 0; // Return 0: not found +} + +unsigned int Get_TLV_Peripheral(unsigned char tag, unsigned char instance) +{ + unsigned char *pPDTAG; + unsigned char bPDTAG_bytes; + unsigned int count = 0; + unsigned int pcount = 0; + + Get_TLV_Info(TLV_PDTAG, 0, &bPDTAG_bytes, (unsigned int **)&pPDTAG); // Get Peripheral data pointer + + // read memory configuration from TLV to get offset for Peripherals + while (Get_TLV_Memory(count)) { + count++; + } + + pcount = pPDTAG[count * 2 + 1]; // get number of Peripheral entries + count++; // inc count to first Periperal + pPDTAG += count*2; // adjust point to first address of Peripheral + count = 0; // set counter back to 0 + pcount *= 2; // align pcount for work comparision + + // TLV access Function Call + for (count = 0; count <= pcount; count += 2) { + if (pPDTAG[count+1] == tag) { // test if required Peripheral is found + if (instance > 0) { // test if required instance is found + instance--; + } + else { + return (pPDTAG[count] | pPDTAG[count + 1] << 8); // Return found data + } + } + } + + return 0; // Return 0: not found +} + +unsigned char Get_TLV_Interrupt(unsigned char tag) +{ + unsigned char *pPDTAG; + unsigned char bPDTAG_bytes; + unsigned int count = 0; + unsigned int pcount = 0; + + Get_TLV_Info(TLV_PDTAG, 0, &bPDTAG_bytes, (unsigned int **)&pPDTAG); // Get Peripheral data pointer + + // read memory configuration from TLV to get offset for Peripherals + while (Get_TLV_Memory(count)) + { + count++; + } + + pcount = pPDTAG[count * 2 + 1]; + count++; // inc count to first Periperal + pPDTAG += (pcount + count) * 2; // adjust point to first address of Peripheral + count = 0; // set counter back to 0 + + // TLV access Function Call + for (count = 0; count <= tag; count += 2) + { + if (pPDTAG[count] == 0) return 0; // Return 0: not found/end of table + if (count == tag) return (pPDTAG[count]); // Return found data + } + + return 0; // Return 0: not found +} diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_TLV.h b/metawatch/F5xx_F6xx_Core_Lib/HAL_TLV.h new file mode 100644 index 0000000..9b616c3 --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_TLV.h @@ -0,0 +1,226 @@ +/******************************************************************************* + * + * HAL_TLV.c + * Provides Functions to Read the TLV Data Section of the MSP430 Devices + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Updated: Version 2.0 01/17/2011 + * + ******************************************************************************/ + +#ifndef HAL_TLV_H +#define HAL_TLV_H + +/******************************************************************************* + * Device Descriptors - Fixed Memory Locations + ******************************************************************************/ +#define DEVICE_ID_0 (0x1A04) +#define DEVICE_ID_1 (0x1A05) + +/******************************************************************************* + * Data Types + ******************************************************************************/ +struct s_TLV_Die_Record { + unsigned char die_record[10]; +}; + +struct s_TLV_ADC_Cal_Data { + unsigned int adc_gain_factor; + unsigned int adc_offset; + unsigned int adc_ref15_30_temp; + unsigned int adc_ref15_85_temp; + unsigned int adc_ref20_30_temp; + unsigned int adc_ref20_85_temp; + unsigned int adc_ref25_30_temp; + unsigned int adc_ref25_85_temp; +}; + +struct s_TLV_Timer_D_Cal_Data { + unsigned int TDH0CTL1_64; + unsigned int TDH0CTL1_128; + unsigned int TDH0CTL1_200; + unsigned int TDH0CTL1_256; +}; + +struct s_TLV_REF_Cal_Data { + unsigned int ref_ref15; + unsigned int ref_ref20; + unsigned int adc_ref25; +}; + +/******************************************************************************* + * Tag Defines + ******************************************************************************/ +#define TLV_LDTAG (0x01) /* Legacy descriptor (1xx, 2xx, + 4xx families) */ +#define TLV_PDTAG (0x02) /* Peripheral discovery descriptor */ +#define TLV_Reserved3 (0x03) /* Future usage */ +#define TLV_Reserved4 (0x04) /* Future usage */ +#define TLV_BLANK (0x05) /* Blank descriptor */ +#define TLV_Reserved6 (0x06) /* Future usage */ +#define TLV_Reserved7 (0x07) /* Serial Number */ +#define TLV_DIERECORD (0x08) /* Die Record */ +#define TLV_ADCCAL (0x11) /* ADC12 calibration */ +#define TLV_ADC12CAL (0x11) /* ADC12 calibration */ +#define TLV_ADC10CAL (0x13) /* ADC10 calibration */ +#define TLV_REFCAL (0x12) /* REF calibration */ +#define TLV_TIMER_D_CAL (0x15) /* Timer_Dx calibration */ +#define TLV_TAGEXT (0xFE) /* Tag extender */ +#define TLV_TAGEND (0xFF) /* Tag End of Table */ + +/******************************************************************************* + * Peripheral Defines + ******************************************************************************/ +#define TLV_PID_NO_MODULE (0x00) /* No Module */ +#define TLV_PID_PORTMAPPING (0x10) /* Port Mapping */ +#define TLV_PID_MSP430CPUXV2 (0x23) /* MSP430CPUXV2 */ +#define TLV_PID_JTAG (0x09) /* JTAG */ +#define TLV_PID_SBW (0x0F) /* SBW */ +#define TLV_PID_EEM_XS (0x02) /* EEM X-Small */ +#define TLV_PID_EEM_S (0x03) /* EEM Small */ +#define TLV_PID_EEM_M (0x04) /* EEM Medium */ +#define TLV_PID_EEM_L (0x05) /* EEM Large */ +#define TLV_PID_PMM (0x30) /* PMM */ +#define TLV_PID_PMM_FR (0x32) /* PMM FRAM */ +#define TLV_PID_FCTL (0x39) /* Flash */ +#define TLV_PID_CRC16 (0x3C) /* CRC16 */ +#define TLV_PID_CRC16_RB (0x3D) /* CRC16 Reverse */ +#define TLV_PID_WDT_A (0x40) /* WDT_A */ +#define TLV_PID_SFR (0x41) /* SFR */ +#define TLV_PID_SYS (0x42) /* SYS */ +#define TLV_PID_RAMCTL (0x44) /* RAMCTL */ +#define TLV_PID_DMA_1 (0x46) /* DMA 1 */ +#define TLV_PID_DMA_3 (0x47) /* DMA 3 */ +#define TLV_PID_UCS (0x48) /* UCS */ +#define TLV_PID_DMA_6 (0x4A) /* DMA 6 */ +#define TLV_PID_DMA_2 (0x4B) /* DMA 2 */ +#define TLV_PID_PORT1_2 (0x51) /* Port 1 + 2 / A */ +#define TLV_PID_PORT3_4 (0x52) /* Port 3 + 4 / B */ +#define TLV_PID_PORT5_6 (0x53) /* Port 5 + 6 / C */ +#define TLV_PID_PORT7_8 (0x54) /* Port 7 + 8 / D */ +#define TLV_PID_PORT9_10 (0x55) /* Port 9 + 10 / E */ +#define TLV_PID_PORT11_12 (0x56) /* Port 11 + 12 / F */ +#define TLV_PID_PORTU (0x5E) /* Port U */ +#define TLV_PID_PORTJ (0x5F) /* Port J */ +#define TLV_PID_TA2 (0x60) /* Timer A2 */ +#define TLV_PID_TA3 (0x61) /* Timer A1 */ +#define TLV_PID_TA5 (0x62) /* Timer A5 */ +#define TLV_PID_TA7 (0x63) /* Timer A7 */ +#define TLV_PID_TB3 (0x65) /* Timer B3 */ +#define TLV_PID_TB5 (0x66) /* Timer B5 */ +#define TLV_PID_TB7 (0x67) /* Timer B7 */ +#define TLV_PID_RTC (0x68) /* RTC */ +#define TLV_PID_BT_RTC (0x69) /* BT + RTC */ +#define TLV_PID_BBS (0x6A) /* Battery Backup Switch */ +#define TLV_PID_RTC_B (0x6B) /* RTC_B */ +#define TLV_PID_TD2 (0x6C) /* Timer D2 */ +#define TLV_PID_TD3 (0x6D) /* Timer D1 */ +#define TLV_PID_TD5 (0x6E) /* Timer D5 */ +#define TLV_PID_TD7 (0x6F) /* Timer D7 */ +#define TLV_PID_TEC (0x70) /* Imer Event Control */ +#define TLV_PID_RTC_C (0x71) /* RTC_C */ +#define TLV_PID_AES (0x80) /* AES */ +#define TLV_PID_MPY16 (0x84) /* MPY16 */ +#define TLV_PID_MPY32 (0x85) /* MPY32 */ +#define TLV_PID_MPU (0x86) /* MPU */ +#define TLV_PID_USCI_AB (0x90) /* USCI_AB */ +#define TLV_PID_USCI_A (0x91) /* USCI_A */ +#define TLV_PID_USCI_B (0x92) /* USCI_B */ +#define TLV_PID_EUSCI_A (0x94) /* eUSCI_A */ +#define TLV_PID_EUSCI_B (0x95) /* eUSCI_B */ +#define TLV_PID_REF (0xA0) /* Shared Reference */ +#define TLV_PID_COMP_B (0xA8) /* COMP_B */ +#define TLV_PID_COMP_D (0xA9) /* COMP_D */ +#define TLV_PID_USB (0x98) /* USB */ +#define TLV_PID_LCD_B (0xB1) /* LCD_B */ +#define TLV_PID_LCD_C (0xB2) /* LCD_C */ +#define TLV_PID_DAC12_A (0xC0) /* DAC12_A */ +#define TLV_PID_SD16_B_1 (0xC8) /* SD16_B 1 Channel */ +#define TLV_PID_SD16_B_2 (0xC9) /* SD16_B 2 Channel */ +#define TLV_PID_SD16_B_3 (0xCA) /* SD16_B 3 Channel */ +#define TLV_PID_SD16_B_4 (0xCB) /* SD16_B 4 Channel */ +#define TLV_PID_SD16_B_5 (0xCC) /* SD16_B 5 Channel */ +#define TLV_PID_SD16_B_6 (0xCD) /* SD16_B 6 Channel */ +#define TLV_PID_SD16_B_7 (0xCE) /* SD16_B 7 Channel */ +#define TLV_PID_SD16_B_8 (0xCF) /* SD16_B 8 Channel */ +#define TLV_PID_ADC12_A (0xD1) /* ADC12_A */ +#define TLV_PID_ADC10_A (0xD3) /* ADC10_A */ +#define TLV_PID_ADC10_B (0xD4) /* ADC10_B */ +#define TLV_PID_SD16_A (0xD8) /* SD16_A */ +#define TLV_PID_TI_BSL (0xFC) /* BSL */ + +/******************************************************************************* + * \brief Get Information out of the TLV Table + * + * \param tag Tag of the TLV entry + * \param instance Instance of the Tag of the TLV entry + * \param *length return: Length of the information if found + * \param **data_address return: start pointer of Data + ******************************************************************************/ +void Get_TLV_Info(unsigned char tag, unsigned char instance, unsigned char *length, + unsigned int **data_address); + +/******************************************************************************* + * \brief Get Device Type out of the TLV Table + * + * \return Device dependent value + ******************************************************************************/ +unsigned int Get_Device_Type(void); + +/******************************************************************************* + * \brief Get Memory Info out of the TLV Table + * + * \param instance Index of the Instance [0..] + * \return Memory Data found + ******************************************************************************/ +unsigned int Get_TLV_Memory(unsigned char instance); + +/******************************************************************************* + * \brief Get Peripheral Info out of the TLV Table + * + * \param tag Tag of the TLV entry + * \param instance Index of the Instance [0..] + * \return Peripheral Data found + ******************************************************************************/ +unsigned int Get_TLV_Peripheral(unsigned char tag, unsigned char instance); + +/******************************************************************************* + * \brief Get Interrupt Info out of the TLV Table + * + * \param tag Tag of the TLV entry + * \return Interrupt Data found + ******************************************************************************/ +unsigned char Get_TLV_Interrupt(unsigned char tag); + +#endif /* HAL_TLV_H */ diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_UCS.c b/metawatch/F5xx_F6xx_Core_Lib/HAL_UCS.c new file mode 100644 index 0000000..ae015f6 --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_UCS.c @@ -0,0 +1,340 @@ +/******************************************************************************* + * + * HAL_UCS.c + * Provides Functions to Initialize the UCS/FLL and clock sources + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Created: Version 1.0 11/24/2009 + * Updated: Version 2.0 12/15/2010 + * Added Functions: XT2_Stop() and XT1_Stop() + * Modified all functions to preserve drive settings + * + ******************************************************************************/ + +#include "msp430.h" +#include "HAL_UCS.h" +// #include "hal_calibration.h" + +/******************************************************************************* + * Check and define required Defines + ******************************************************************************/ +#ifndef XT1LFOFFG // Defines if not available in header file +#define XT1LFOFFG 0 +#endif + +#ifndef XT1HFOFFG // Defines if not available in header file +#define XT1HFOFFG 0 +#endif + +#ifndef XT2OFFG // Defines if not available in header file +#define XT2OFFG 0 +#endif + +#ifndef XTS // Defines if not available in header file +#define XTS 0 +#endif + +#ifndef XT2DRIVE_3 // Defines if not available in header file +#define XT2DRIVE_3 0 +#endif + + +/******************************************************************************* + * \brief Initializes FLL of the UCS + * + * \param fsystem Required system frequency (MCLK) in kHz + * \param ratio Ratio between fsystem and FLLREFCLK + ******************************************************************************/ +static void Init_FLL(unsigned int fsystem, unsigned int ratio); + + +#if 0 +void LFXT_Start(unsigned int xtdrive) +{ + // If the drive setting is not already set to maximum + // Set it to max for LFXT startup + if ((UCSCTL6 & XT1DRIVE_3)!= XT1DRIVE_3) { + UCSCTL6_L |= XT1DRIVE1_L + XT1DRIVE0_L; // Highest drive setting for XT1startup + } + + while (SFRIFG1 & OFIFG) { // Check OFIFG fault flag + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG); // Clear OSC flaut Flags fault flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } + + UCSCTL6 = (UCSCTL6 & ~(XT1DRIVE_3)) | (xtdrive); // set requested Drive mode +} +#endif + +unsigned int LFXT_Start_Timeout(unsigned int xtdrive, unsigned int timeout) +{ + // add in capacitor setting + //SetOscillatorCapacitorValues(); + + // If the drive setting is not already set to maximum + // Set it to max for LFXT startup + if ((UCSCTL6 & XT1DRIVE_3)!= XT1DRIVE_3) { + UCSCTL6_L |= XT1DRIVE1_L+XT1DRIVE0_L; // Highest drive setting for XT1startup + } + + while ((SFRIFG1 & OFIFG) && timeout--){ // Check OFIFG fault flag + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG); // Clear OSC flaut Flags fault flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } + + UCSCTL6 = (UCSCTL6 & ~(XT1DRIVE_3)) |(xtdrive); // set Drive mode + + // add in capacitor setting + //SetOscillatorCapacitorValues(); + + if (timeout) + return (UCS_STATUS_OK); + else + return (UCS_STATUS_ERROR); +} + +#if 0 +void XT1_Start(unsigned int xtdrive) +{ + // Check if drive value is the expected one + if ((UCSCTL6 & XT1DRIVE_3) != xtdrive) { + UCSCTL6 &= ~XT1DRIVE_3; // Clear XT1drive field + UCSCTL6 |= xtdrive; // Set requested value + } + + UCSCTL6 &= ~XT1OFF; // Enable XT1 + UCSCTL6 |= XTS; // Enable HF mode + + while (SFRIFG1 & OFIFG) { // Check OFIFG fault flag + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG); // Clear OSC flaut Flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } +} + +unsigned int XT1_Start_Timeout(unsigned int xtdrive, unsigned int timeout) +{ + // Check if drive value is the expected one + if ((UCSCTL6 & XT1DRIVE_3) != xtdrive) { + UCSCTL6 &= ~XT1DRIVE_3; // Clear XT1drive field + UCSCTL6 |= xtdrive; // Set requested value + } + + UCSCTL6 &= ~XT1OFF; // Enable XT1 + UCSCTL6 |= XTS; // Enable HF mode + + while ((SFRIFG1 & OFIFG) && timeout--) { // Check OFIFG fault flag + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG); // Clear OSC flaut Flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } + + if (timeout) { + return UCS_STATUS_OK; + } + else { + return UCS_STATUS_ERROR; + } +} + +void XT1_Bypass(void) +{ + UCSCTL6 |= XT1BYPASS; + + while (SFRIFG1 & OFIFG) { // Check OFIFG fault flag + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG); // Clear OSC flaut Flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } +} +#endif + +void XT1_Stop(void) +{ + UCSCTL6 |= XT1OFF; // Switch off XT1 oscillator +} + +#if 0 +void XT2_Start(unsigned int xtdrive) +{ + // Check if drive value is the expected one + if ((UCSCTL6 & XT2DRIVE_3) != xtdrive) { + UCSCTL6 &= ~XT2DRIVE_3; // Clear XT2drive field + UCSCTL6 |= xtdrive; // Set requested value + } + + UCSCTL6 &= ~XT2OFF; + + while (SFRIFG1 & OFIFG) { // Check OFIFG fault flag + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG); // Clear OSC flaut Flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } +} + +unsigned int XT2_Start_Timeout(unsigned int xtdrive, unsigned int timeout) +{ + // Check if drive value is the expected one + if ((UCSCTL6 & XT2DRIVE_3) != xtdrive) { + UCSCTL6 &= ~XT2DRIVE_3; // Clear XT2drive field + UCSCTL6 |= xtdrive; // Set requested value + } + + UCSCTL6 &= ~XT2OFF; + + while ((SFRIFG1 & OFIFG) && timeout--) { // Check OFIFG fault flag + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG); // Clear OSC flaut Flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } + + if (timeout) { + return UCS_STATUS_OK; + } + else { + return UCS_STATUS_ERROR; + } +} + +void XT2_Bypass(void) +{ +#ifdef XT2BYPASS // On devices without XT2 this function will be empty + UCSCTL6 |= XT2BYPASS; + + while (SFRIFG1 & OFIFG) { // Check OFIFG fault flag + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG); // Clear OSC flaut Flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } +#endif +} + +void XT2_Stop(void) +{ + UCSCTL6 |= XT2OFF; // Switch off XT2 oscillator +} +#endif + +void Init_FLL_Settle(unsigned int fsystem, unsigned int ratio) +{ + volatile unsigned int x; + + // x = ratio * 32; + x = ratio << 5; + Init_FLL(fsystem, ratio); + + /* from changes in Init_FLL we know that fll is now enabled */ + while (x--) { + __delay_cycles(30); + } +} + +static void Init_FLL(unsigned int fsystem, unsigned int ratio) +{ + unsigned int d, dco_div_bits; + unsigned int mode; + +#if 0 + unsigned int srRegisterState; +#endif + + mode = 0; + + /* we only run this at startup and we want the fll enabled on exit */ +#if 0 + // Save actual state of FLL loop control, then disable it. This is needed to + // prevent the FLL from acting as we are making fundamental modifications to + // the clock setup. + srRegisterState = __get_SR_register() & SCG0; +#endif + + d = ratio; + dco_div_bits = FLLD__2; // Have at least a divider of 2 + + if (fsystem > 16000) { + d >>= 1 ; + mode = 1; + } + else { + fsystem <<= 1; // fsystem = fsystem * 2 + } + + while (d > 512) { + dco_div_bits = dco_div_bits + FLLD0; // Set next higher div level + d >>= 1; + } + + // Disable FLL + __bis_SR_register(SCG0); + + UCSCTL0 = 0x0000; // Set DCO to lowest Tap + + UCSCTL2 &= ~(0x03FF); // Reset FN bits + UCSCTL2 = dco_div_bits | (d - 1); + + if (fsystem <= 630) // fsystem < 0.63MHz + UCSCTL1 = DCORSEL_0; + else if (fsystem < 1250) // 0.63MHz < fsystem < 1.25MHz + UCSCTL1 = DCORSEL_1; + else if (fsystem < 2500) // 1.25MHz < fsystem < 2.5MHz + UCSCTL1 = DCORSEL_2; + else if (fsystem < 5000) // 2.5MHz < fsystem < 5MHz + UCSCTL1 = DCORSEL_3; + else if (fsystem < 10000) // 5MHz < fsystem < 10MHz + UCSCTL1 = DCORSEL_4; + else if (fsystem < 20000) // 10MHz < fsystem < 20MHz + UCSCTL1 = DCORSEL_5; + else if (fsystem < 40000) // 20MHz < fsystem < 40MHz + UCSCTL1 = DCORSEL_6; + else + UCSCTL1 = DCORSEL_7; + + // Re-enable FLL + __bic_SR_register(SCG0); + + while (SFRIFG1 & OFIFG) { // Check OFIFG fault flag + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG); // Clear OSC flaut Flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } + + /* Init fll is only run at startup - We want the fll enabled when + * this function is complete (so don't save a restore setting) + */ +#if 0 + // Restore previous SCG0 + __bis_SR_register(srRegisterState); +#endif + + if (mode == 1) { // fsystem > 16000 + SELECT_MCLK_SMCLK(SELM__DCOCLK + SELS__DCOCLK); // Select DCOCLK + } + else { + SELECT_MCLK_SMCLK(SELM__DCOCLKDIV + SELS__DCOCLKDIV); // Select DCODIVCLK + } + +} diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_UCS.d b/metawatch/F5xx_F6xx_Core_Lib/HAL_UCS.d new file mode 100644 index 0000000..cd525bd --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_UCS.d @@ -0,0 +1,7 @@ +HAL_UCS.o: F5xx_F6xx_Core_Lib/HAL_UCS.c \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/msp430.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/msp430f5438a.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/iomacros.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/in430.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/intrinsics.h \ + F5xx_F6xx_Core_Lib/HAL_UCS.h F5xx_F6xx_Core_Lib/HAL_MACROS.h diff --git a/metawatch/F5xx_F6xx_Core_Lib/HAL_UCS.h b/metawatch/F5xx_F6xx_Core_Lib/HAL_UCS.h new file mode 100644 index 0000000..1c5b418 --- /dev/null +++ b/metawatch/F5xx_F6xx_Core_Lib/HAL_UCS.h @@ -0,0 +1,163 @@ +/******************************************************************************* + * + * HAL_UCS.h + * Provides Functions to Initialize the UCS/FLL and clock sources + * + * + * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Created: Version 1.0 11/24/2009 + * Updated: Version 2.0 12/15/2010 + * Added Functions: XT2_Stop() and XT1_Stop() + * + ******************************************************************************/ + +#ifndef HAL_UCS_H +#define HAL_UCS_H + +#include "HAL_MACROS.h" + +/******************************************************************************* + * Macros + ******************************************************************************/ + +/* Select source for FLLREF e.g. SELECT_FLLREF(SELREF__XT1CLK) */ +#define SELECT_FLLREF(source) st(UCSCTL3 = (UCSCTL3 & ~(SELREF_7)) | (source);) +/* Select source for ACLK e.g. SELECT_ACLK(SELA__XT1CLK) */ +#define SELECT_ACLK(source) st(UCSCTL4 = (UCSCTL4 & ~(SELA_7)) | (source);) +/* Select source for MCLK e.g. SELECT_MCLK(SELM__XT2CLK) */ +#define SELECT_MCLK(source) st(UCSCTL4 = (UCSCTL4 & ~(SELM_7)) | (source);) +/* Select source for SMCLK e.g. SELECT_SMCLK(SELS__XT2CLK) */ +#define SELECT_SMCLK(source) st(UCSCTL4 = (UCSCTL4 & ~(SELS_7)) | (source);) +/* Select source for MCLK and SMCLK e.g. SELECT_MCLK_SMCLK(SELM__DCOCLK + SELS__DCOCLK) */ +#define SELECT_MCLK_SMCLK(sources) st(UCSCTL4 = (UCSCTL4 & ~(SELM_7 + SELS_7)) | (sources);) + +/* set ACLK/x */ +#define ACLK_DIV(x) st(UCSCTL5 = (UCSCTL5 & ~(DIVA_7)) | (DIVA__##x);) +/* set MCLK/x */ +#define MCLK_DIV(x) st(UCSCTL5 = (UCSCTL5 & ~(DIVM_7)) | (DIVM__##x);) +/* set SMCLK/x */ +#define SMCLK_DIV(x) st(UCSCTL5 = (UCSCTL5 & ~(DIVS_7)) | (DIVS__##x);) +/* Select divider for FLLREF e.g. SELECT_FLLREFDIV(2) */ +#define SELECT_FLLREFDIV(x) st(UCSCTL3 = (UCSCTL3 & ~(FLLREFDIV_7))|(FLLREFDIV__##x);) + +/******************************************************************************* + * Defines + ******************************************************************************/ +#define UCS_STATUS_OK 0 +#define UCS_STATUS_ERROR 1 + +#if 0 +/******************************************************************************* + * \brief Startup routine for 32kHz Crystal on LFXT1 + * + * \param xtdrive Bits defining the LFXT drive mode after startup + ******************************************************************************/ +extern void LFXT_Start(unsigned int xtdrive); +#endif + +/******************************************************************************* + * \brief Startup routine for 32kHz Crystal on LFXT1 with timeout counter + * + * \param xtdrive Bits defining the LFXT drive mode after startup + * \param timeout Value for the timeout counter + ******************************************************************************/ +extern unsigned int LFXT_Start_Timeout(unsigned int xtdrive, unsigned int timeout); + +#if 0 +/******************************************************************************* + * \brief Startup routine for XT1 + * + * \param xtdrive Bits defining the XT drive mode + ******************************************************************************/ +extern void XT1_Start(unsigned int xtdrive); + +/******************************************************************************* + * \brief Startup routine for XT1 with timeout counter + * + * \param xtdrive Bits defining the XT drive mode + * \param timeout Value for the timeout counter + ******************************************************************************/ +extern unsigned int XT1_Start_Timeout(unsigned int xtdrive, unsigned int timeout); + +/******************************************************************************* + * \brief Use XT1 in Bypasss mode + ******************************************************************************/ +extern void XT1_Bypass(void); + +#endif + +/******************************************************************************* + * \brief Stop XT1 oscillator + ******************************************************************************/ +extern void XT1_Stop(void); + +#if 0 +/******************************************************************************* + * \brief Startup routine for XT2 + * + * \param xtdrive Bits defining the XT drive mode + ******************************************************************************/ +extern void XT2_Start(unsigned int xtdrive); + +/******************************************************************************* + * \brief Startup routine for XT2 with timeout counter + * + * \param xtdrive Bits defining the XT drive mode + * \param timeout Value for the timeout counter + ******************************************************************************/ +extern unsigned int XT2_Start_Timeout(unsigned int xtdrive, unsigned int timeout); + +/******************************************************************************* + * \brief Use XT2 in Bypasss mode for MCLK + ******************************************************************************/ +extern void XT2_Bypass(void); + +/******************************************************************************* + * \brief Stop XT2 oscillator + ******************************************************************************/ +extern void XT2_Stop(void); + +#endif + +/******************************************************************************* + * \brief Initializes FLL of the UCS and wait till settled before allowing + * code execution to resume. The use of this function is preferred + * over the use of Init_FLL(). + * + * \param fsystem Required system frequency (MCLK) in kHz + * \param ratio Ratio between fsystem and FLLREFCLK + ******************************************************************************/ +extern void Init_FLL_Settle(unsigned int fsystem, unsigned int ratio); + + +#endif /* HAL_UCS_H */ diff --git a/metawatch/Makefile b/metawatch/Makefile new file mode 100644 index 0000000..388e510 --- /dev/null +++ b/metawatch/Makefile @@ -0,0 +1,138 @@ +# +# Makefile for msp430 +# adapted from the example Makefile from the mspgcc project +# +# 'make' builds everything +# 'make clean' deletes everything except source files and Makefile +# You need to set TARGET, MCU and SOURCES for your project. +# TARGET is the name of the executable file to be produced +# $(TARGET).elf $(TARGET).hex and $(TARGET).txt nad $(TARGET).map are all generated. +# The TXT file is used for BSL loading, the ELF can be used for JTAG use +# +TARGET = oswald_mw +MCU = msp430f5438a +MEMMODEL = -mmemory-model=huge -fdata-sections -ffunction-sections # -mdata-region=far +# -gdwarf-2 -fdata-sections -ffunction-sections +#MEMMODEL = -mmpy=16 -msr20 -md20 -gdwarf-2 -fdata-sections -ffunction-sections +# MEMMODEL = -mmemory-model=medium -misr20 +#MEMMODEL = -mmemory-model=medium + +#APPCONFIG = -DDIGITAL -DMW_DEVBOARD_V2 +#APPCONFIG = -DDIGITAL -DMW_DEVBOARD_V2 -DWITH_BTSTACK +#APPCONFIG = -DDIGITAL -DMW_DEVBOARD_V2 -DCC256x_TRANSP +#APPCONFIG = -DDIGITAL -DMW_DIGITAL_V2 -DMW_DEBUG_UART +APPCONFIG = -DDIGITAL -DMW_DIGITAL_V2 + +#BTCC256x_SCRIPT = bluetooth_init_cc2560_2.44.c +BTCC256x_SCRIPT = bluetooth_init_cc2564_2.8.c + +# List all the source files here +# eg if you have a source file foo.c then list it here + +OSWALD_SRC = ../ui/oswald_main.c ../ui/oswald_screens.c \ + ../ui/oswald_watch_faces.c \ + ../ui/oswald_strings.c ../ui/calendar.c \ + ../ui/oswald_graphics.c ../ui/oswald_fonts.c \ + ../ui/embedvm.c + +SOURCES = mw_main.c mw_uart.c mw_lcd.c mw_adc.c mw_bt.c \ + mw_acc.c $(BTCC256x_SCRIPT) \ + bt_hci.c bt_l2cap.c \ + oswald_hal.c $(OSWALD_SRC) \ + F5xx_F6xx_Core_Lib/HAL_PMM.c \ + F5xx_F6xx_Core_Lib/HAL_UCS.c +# $(BT_SMALLTOOTH_SRC) +# $(BT_STACK_SRC) \ + +#BT_STACK_INC = -Ibtstack/ -Ibtstack/include/ +#BT_SMALLTOOTH_INV = -IBluetooth/ +# Include are located in the Include directory +#INCLUDES = $(BT_STACK_INC) +#INCLUDES = $(BT_SMALLTOOTH_INV) +INCLUDES = -I../ui/ + +# BUILDNO = \"\#$(shell cat .buildno)-$(shell date +%y%m%d)\" +BUILDNO = \"$(shell date +%y%m%d)-\#$(shell cat .buildno)\" + +# Add or subtract whatever MSPGCC flags you want. There are plenty more +####################################################################################### +CFLAGS = -mmcu=$(MCU) $(MEMMODEL) -g -Os -Wall -Wunused $(INCLUDES) $(APPCONFIG) -DBUILDNO=$(BUILDNO) +ASFLAGS = -mmcu=$(MCU) $(MEMMODEL) -x assembler-with-cpp -Wa,-gstabs +LDFLAGS = -mmcu=$(MCU) $(MEMMODEL) -Wl,-gc-sections -Wl,-Map=$(TARGET).map +######################################################################################## +CC = msp430-gcc +LD = msp430-ld +AR = msp430-ar +AS = msp430-gcc +GASP = msp430-gasp +NM = msp430-nm +OBJCOPY = msp430-objcopy +RANLIB = msp430-ranlib +STRIP = msp430-strip +SIZE = msp430-size +READELF = msp430-readelf +MAKETXT = srec_cat +CP = cp -p +RM = rm -f +MV = mv +######################################################################################## +# the file which will include dependencies +DEPEND = $(SOURCES:.c=.d) + +# all the object files +OBJECTS = $(SOURCES:.c=.o) + +all: .buildno $(TARGET).elf $(TARGET).hex $(TARGET).txt + +prog: $(TARGET).hex + mspdebug tilib -d /dev/ttyACM3 -v 2500 "prog $(TARGET).hex" + +prog_watch: $(TARGET).hex + mspdebug rf2500 -v 2500 "prog $(TARGET).hex" + +$(TARGET).elf: $(OBJECTS) + echo "Linking $@" + $(CC) $(OBJECTS) $(LDFLAGS) $(LIBS) -o $@ + echo + echo ">>>> Size of Firmware <<<<" + $(SIZE) $(TARGET).elf + echo + +%.hex: %.elf + $(OBJCOPY) -O ihex $< $@ + +%.txt: %.hex + $(MAKETXT) -O $@ -TITXT $< -I + unix2dos $(TARGET).txt +# The above line is required for the DOS based TI BSL tool to be able to read the txt file generated from linux/unix systems. + +%.o: %.c + echo "Compiling $<" + $(CC) -c $(CFLAGS) -o $@ $< + +# rule for making assembler source listing, to see the code +%.lst: %.c + $(CC) -c $(ASFLAGS) -Wa,-anlhd $< > $@ + +# include the dependencies unless we're going to clean, then forget about them. +ifneq ($(MAKECMDGOALS), clean) +-include $(DEPEND) +endif +# dependencies file +# includes also considered, since some of these are our own +# (otherwise use -MM instead of -M) +%.d: %.c + echo "Generating dependencies $@ from $<" + $(CC) -M ${CFLAGS} $< >$@ + +#.SILENT: +.PHONY: clean +clean: + -$(RM) $(OBJECTS) + -$(RM) $(TARGET).* + -$(RM) $(SOURCES:.c=.lst) + -$(RM) $(DEPEND) + +.buildno: $(OBJECTS) + @if ! test -f .buildno; then echo 0 > .buildno; fi + @echo $$(($$(cat .buildno) + 1)) > .buildno diff --git a/metawatch/README.txt b/metawatch/README.txt new file mode 100644 index 0000000..692900b --- /dev/null +++ b/metawatch/README.txt @@ -0,0 +1,4 @@ + +To compile basically just type "make". +Have a look into the Makefile for configurable options, like watch type, +Bluetooth firmware version etc. diff --git a/metawatch/bluetooth_init_cc2560_2.44.bts b/metawatch/bluetooth_init_cc2560_2.44.bts new file mode 120000 index 0000000..952d842 --- /dev/null +++ b/metawatch/bluetooth_init_cc2560_2.44.bts @@ -0,0 +1 @@ +CC2560_BT_SP_BTS/bluetooth_init_cc2560_2.44.bts \ No newline at end of file diff --git a/metawatch/bluetooth_init_cc2560_2.44.c b/metawatch/bluetooth_init_cc2560_2.44.c new file mode 100644 index 0000000..858309c --- /dev/null +++ b/metawatch/bluetooth_init_cc2560_2.44.c @@ -0,0 +1,3289 @@ +// init script created from bluetooth_init_cc2560_2.44.bts +#include + +const char *cc256x_version = "CC2560 v2.44"; + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +const uint8_t cc256x_init_script[] = { + + // #-------------------------------------------------------------------------------- + // # Description : ORCA-Trio BTIP 2.0 ROM Initialization Script + // # + // # Compatibility: BL6450, WL1271/3 2.0 ROM + // # + // # Last Updated: 21-Dec-2011 11:53:12.59 + // # + // # Version : TI_P31.123 + // # + // # + // # + // # Notes : Use this script on BL6450, WL1271/3 2.0 ROM device only (FW v2.0.31) + // #-------------------------------------------------------------------------------- + // + // ################################################################# + // ## START of Panasonic Adds-On + // ################################################################# + // + // ## Change UART baudrate + // + // + // ################################################################# + // ## END of Panasonic Adds-On + // ################################################################# + // + 0x01, 0x37, 0xfe, 0x02, 0x02, 0x1f, + + // + 0x01, 0x0f, 0xfd, 0x01, 0x01, + + 0x01, 0x63, 0xfd, 0x1c, 0x04, 0x04, 0x00, 0xbc, 0x02, 0xef, 0xcd, 0xab, 0x89, 0xef, 0xcd, + 0xab, 0x89, 0x03, 0x06, 0x0a, 0x20, 0x03, 0x4b, 0x38, 0x1f, 0xbf, 0xb5, 0xb0, 0x01, 0x08, + 0x06, 0x0d, + + 0x01, 0x01, 0xff, 0x06, 0xa0, 0x09, 0x1a, 0x00, 0x03, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x7e, 0x09, 0x1a, 0x00, 0xc4, 0x04, + + 0x01, 0x01, 0xff, 0x06, 0xa0, 0x09, 0x1a, 0x00, 0x02, 0x00, + + 0x01, 0x2e, 0xfd, 0x0d, 0x00, 0x2c, 0x01, 0x0a, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + + // + 0x01, 0x05, 0xff, 0xff, 0x90, 0x5f, 0x08, 0x00, 0xfa, 0x02, 0x1f, 0x1f, 0x7b, 0x41, 0x00, + 0x44, 0x24, 0x61, 0x09, 0x00, 0x00, 0x05, 0xc0, 0x03, 0xc0, 0x1e, 0x08, 0x05, 0x00, 0x04, + 0xc0, 0x03, 0xc0, 0x1e, 0x08, 0x3d, 0x01, 0x04, 0xc0, 0x03, 0xc0, 0x1e, 0x08, 0x76, 0x02, + 0x04, 0xc0, 0x03, 0xc0, 0x1e, 0x08, 0xae, 0x03, 0x04, 0xc0, 0x03, 0xc0, 0x1e, 0x08, 0xae, + 0x0b, 0x01, 0x00, 0x34, 0x30, 0x41, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x49, 0x0a, 0x1c, 0x2c, 0x32, 0x12, 0x78, 0x04, 0x2a, 0x02, 0xd1, 0x09, 0x78, 0x04, 0x29, + 0x01, 0xd0, 0x06, 0x21, 0x00, 0xe0, 0x07, 0x21, 0x41, 0x60, 0x02, 0x48, 0x1b, 0x30, 0xf7, + 0x46, 0x84, 0x4d, 0x08, 0x00, 0x4d, 0x24, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x11, 0xd0, 0x0a, 0x78, 0xff, 0x2a, 0x0e, + 0xd1, 0xc2, 0x78, 0x00, 0x2a, 0x0b, 0xd1, 0x42, 0x7e, 0x01, 0x2a, 0x08, 0xd1, 0x42, 0x8c, + 0x0d, 0x2a, 0x05, 0xd1, 0x03, 0x4a, 0x80, 0x8c, 0x90, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x08, + 0x70, 0xf7, 0x46, 0xc0, 0x46, 0x26, 0x11, 0x00, 0x00, 0xf8, 0xb5, 0x07, 0x7f, 0x01, 0x79, + 0x00, 0x91, 0x80, 0x69, 0x06, 0x89, 0xdf, 0x49, 0x29, 0x31, 0x82, 0x88, 0x8a, 0x42, 0x07, + 0xd1, 0xdb, 0x49, 0x09, 0x88, 0xb1, 0x42, 0x01, 0xd1, 0x16, 0x24, 0x04, 0xe0, 0x22, 0x24, + 0x02, 0xe0, 0xff, 0x21, 0x29, 0x31, 0x0c, 0x5c, 0x01, 0x25, 0xae, 0x46, 0xd5, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0x00, 0x98, 0x00, 0x28, 0x07, 0xd0, 0x00, 0x2f, 0x05, 0xd0, 0x30, 0x1c, + 0x21, 0x1c, 0xae, 0x46, + + 0x01, 0x05, 0xff, 0xff, 0x8a, 0x60, 0x08, 0x00, 0xfa, 0xeb, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0xea, 0x49, 0xeb, 0x4a, 0x11, 0x32, 0x15, 0x20, 0xae, 0x46, 0xea, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0xea, 0x48, 0xe9, 0x49, 0x08, 0x18, 0xf8, 0xbd, 0xfc, 0xb5, 0x41, 0x68, 0xc9, 0x48, + 0x01, 0x60, 0x01, 0x24, 0xa6, 0x46, 0xe6, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x00, 0x20, 0xa6, + 0x46, 0xe5, 0x49, 0xfe, 0x44, 0x08, 0x47, 0xbd, 0x27, 0x00, 0x20, 0x05, 0x1c, 0xbf, 0x4e, + 0x02, 0x3e, 0xf6, 0x20, 0x85, 0x55, 0xff, 0x20, 0x12, 0x30, 0xa6, 0x46, 0xed, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0xa4, 0x20, 0x85, 0x51, 0xa8, 0x20, 0x85, 0x51, 0x01, 0x20, 0x40, 0x03, + 0xea, 0x49, 0x08, 0x80, 0xa6, 0x46, 0xe9, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x8c, 0x25, 0xa8, + 0x59, 0x00, 0x28, 0x05, 0xd0, 0xa6, 0x46, 0xe6, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x20, + 0xa8, 0x51, 0xb8, 0x5d, 0xe4, 0x4f, 0x02, 0x28, 0x01, 0xd0, 0x00, 0x94, 0x16, 0xe0, 0xd9, + 0x20, 0x80, 0x5d, 0x23, 0x21, 0x09, 0x01, 0x41, 0x43, 0x78, 0x18, 0xff, 0x21, 0x29, 0x31, + 0x16, 0x22, 0x0a, 0x54, 0xa6, 0x46, 0xdd, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xff, 0x20, 0x10, + 0x30, 0x0a, 0x21, 0xa6, 0x46, 0xdb, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x20, 0x00, 0x90, + 0xbe, 0x20, 0x80, 0x19, 0x01, 0x90, 0x00, 0x25, 0x25, 0xe0, 0x39, 0x78, 0xff, 0x29, 0x09, + 0xd0, 0xff, 0x20, 0x29, 0x30, 0x16, 0x21, 0xc1, 0x55, 0x38, 0x1c, 0xa6, 0x46, 0xba, 0x49, + 0xfe, 0x44, 0x08, 0x47, 0x30, 0x78, 0x01, 0x35, 0x23, 0x21, 0x09, 0x01, 0xcf, 0x19, 0x1a, + 0xe0, 0x28, 0x1c, 0xa6, 0x46, 0xce, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x01, 0x98, 0x28, 0x5c, + 0x23, 0x21, 0x09, 0x01, + + 0x01, 0x05, 0xff, 0xff, 0x84, 0x61, 0x08, 0x00, 0xfa, 0x41, 0x43, 0x78, 0x18, 0xff, 0x21, + 0x29, 0x31, 0x16, 0x22, 0x0a, 0x54, 0xa6, 0x46, 0xae, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x01, + 0x35, 0xc5, 0x20, 0x80, 0x5d, 0x85, 0x42, 0xe7, 0xd3, 0xc2, 0x4e, 0x30, 0x78, 0x00, 0x25, + 0x85, 0x42, 0xd0, 0xd3, 0xa6, 0x46, 0xc1, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x00, 0x98, 0x01, + 0x28, 0x0a, 0xd1, 0x86, 0x48, 0x00, 0x68, 0xc3, 0x21, 0x00, 0x22, 0xa6, 0x46, 0xbc, 0x4b, + 0xfe, 0x44, 0x18, 0x47, 0x00, 0x20, 0x81, 0x49, 0x08, 0x60, 0xba, 0x48, 0x0f, 0x30, 0xfc, + 0xbd, 0xba, 0x48, 0x17, 0x30, 0xf7, 0x46, 0x10, 0xb5, 0x0c, 0x21, 0x81, 0x60, 0xb8, 0x49, + 0xb8, 0x4c, 0x22, 0x1c, 0xad, 0x32, 0x1c, 0x20, 0x01, 0x23, 0x9e, 0x46, 0x94, 0x4b, 0xfe, + 0x44, 0x18, 0x47, 0x20, 0x1c, 0x9f, 0x30, 0x10, 0xbd, 0x10, 0xb5, 0x81, 0x68, 0x04, 0x22, + 0xc2, 0x60, 0xb1, 0x4a, 0x0a, 0x60, 0x41, 0x68, 0x41, 0x61, 0xb0, 0x49, 0xae, 0x4c, 0x22, + 0x1c, 0x9d, 0x32, 0x1c, 0x20, 0x01, 0x23, 0x9e, 0x46, 0x8a, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x20, 0x1c, 0xaf, 0x30, 0x10, 0xbd, 0xf0, 0xb5, 0x47, 0x68, 0x08, 0x24, 0xe1, 0x19, 0xa9, + 0x4d, 0x28, 0x1c, 0x50, 0x38, 0x0a, 0x22, 0x01, 0x26, 0xb6, 0x46, 0xa9, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0xe0, 0x48, 0x00, 0x78, 0x01, 0x28, 0x0e, 0xd1, 0x38, 0x1c, 0x0a, 0x22, 0x2b, + 0x78, 0x01, 0x7a, 0x19, 0x40, 0x29, 0x70, 0x01, 0x30, 0x01, 0x35, 0x01, 0x3a, 0xf7, 0xd1, + 0xe0, 0x19, 0xb6, 0x46, 0x9d, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x9d, 0x48, 0x0d, 0x30, 0xf0, + 0xbd, 0x01, 0x1c, 0x56, 0x48, 0x06, 0x30, 0x02, 0x68, 0x9b, 0x48, 0x00, 0x2a, 0x03, 0xd0, + 0x08, 0x22, 0x8a, 0x60, + + 0x01, 0x05, 0xff, 0xff, 0x7e, 0x62, 0x08, 0x00, 0xfa, 0x0b, 0x30, 0xf7, 0x46, 0x83, 0x30, + 0xf7, 0x46, 0x70, 0xb5, 0x43, 0x69, 0x1c, 0x68, 0x81, 0x89, 0x6e, 0x4a, 0x95, 0x48, 0x00, + 0x29, 0x01, 0xd0, 0x14, 0x3a, 0x2d, 0xe0, 0xa5, 0x88, 0x85, 0x21, 0xc9, 0x00, 0x8d, 0x42, + 0x06, 0xd0, 0x91, 0x49, 0x0e, 0x1c, 0x08, 0x3e, 0xb5, 0x42, 0x01, 0xd0, 0x8d, 0x42, 0x20, + 0xd1, 0xd9, 0x7f, 0x00, 0x29, 0x1d, 0xd1, 0x42, 0x21, 0xc9, 0x5c, 0x01, 0x29, 0x01, 0xd0, + 0x02, 0x29, 0x17, 0xd1, 0x20, 0x21, 0xc9, 0x18, 0x4d, 0x78, 0x09, 0x78, 0x29, 0x43, 0x09, + 0x09, 0x10, 0xd3, 0x40, 0x25, 0xe9, 0x5a, 0x33, 0x26, 0x36, 0x01, 0x0e, 0x42, 0x0a, 0xd0, + 0x33, 0x22, 0x12, 0x01, 0x91, 0x43, 0xe9, 0x52, 0xff, 0x21, 0x29, 0x31, 0x00, 0x22, 0x0a, + 0x55, 0xff, 0x30, 0x88, 0x30, 0x70, 0xbd, 0x30, 0x3a, 0x10, 0x18, 0x70, 0xbd, 0x10, 0xb5, + 0x04, 0x1c, 0xa0, 0x69, 0xff, 0x28, 0x13, 0xd1, 0x7a, 0x48, 0x00, 0x78, 0xff, 0x28, 0x0f, + 0xd0, 0x01, 0x20, 0x86, 0x46, 0x78, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x78, 0x4a, 0x78, 0x4b, + 0x18, 0x78, 0x51, 0x78, 0x88, 0x42, 0x02, 0xd0, 0x11, 0x78, 0x88, 0x42, 0x01, 0xd1, 0xff, + 0x20, 0x18, 0x70, 0xff, 0x20, 0x60, 0x60, 0x73, 0x48, 0x45, 0x30, 0x10, 0xbd, 0x70, 0xb5, + 0x05, 0x1c, 0x2e, 0x6a, 0x71, 0x48, 0x01, 0x68, 0x00, 0x29, 0x12, 0xd1, 0x70, 0x48, 0x08, + 0x21, 0x01, 0x24, 0xa6, 0x46, 0x6f, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x00, 0xd1, + 0x3d, 0x20, 0x00, 0x04, 0x6d, 0x49, 0x08, 0x1a, 0x93, 0x21, 0x49, 0x00, 0xa6, 0x46, 0x6b, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x6c, 0x48, 0x70, 0x43, 0x6a, 0x4a, 0x10, 0x1a, 0x01, 0x22, + 0x96, 0x46, 0x67, 0x4a, + + 0x01, 0x05, 0xff, 0xff, 0x78, 0x63, 0x08, 0x00, 0xfa, 0xfe, 0x44, 0x10, 0x47, 0xff, 0x39, + 0x09, 0x39, 0x08, 0x04, 0x00, 0x14, 0x68, 0x61, 0x66, 0x49, 0x2f, 0x48, 0x6c, 0x38, 0x40, + 0x18, 0x70, 0xbd, 0x03, 0x21, 0x41, 0x60, 0x0f, 0x21, 0x89, 0x01, 0x81, 0x60, 0x62, 0x48, + 0x43, 0x30, 0xf7, 0x46, 0x10, 0xb5, 0x01, 0x1c, 0x07, 0x23, 0x60, 0x4a, 0x00, 0x20, 0x34, + 0x24, 0xa4, 0x5c, 0xa1, 0x42, 0x06, 0xd1, 0x33, 0x24, 0xa4, 0x5c, 0x01, 0x2c, 0x02, 0xd1, + 0x40, 0x1c, 0x00, 0x06, 0x00, 0x0e, 0xac, 0x32, 0x01, 0x3b, 0xf1, 0xd1, 0x10, 0xbd, 0x52, + 0x0f, 0x08, 0x00, 0x85, 0xf2, 0x00, 0x00, 0xdd, 0x03, 0x00, 0x00, 0xcc, 0x5f, 0x08, 0x00, + 0xf0, 0xb5, 0x3c, 0x21, 0x57, 0x48, 0x12, 0x38, 0x02, 0x78, 0x01, 0x2a, 0x25, 0xd1, 0x09, + 0x5c, 0x00, 0x29, 0x22, 0xd0, 0x40, 0x68, 0x00, 0x27, 0x2c, 0x21, 0x0d, 0x18, 0x38, 0x1c, + 0x01, 0x24, 0xa6, 0x46, 0x4d, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x06, 0x1c, 0x38, 0x1c, 0xa6, + 0x46, 0x49, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x80, 0x19, 0x28, 0x70, 0x20, 0x1c, 0xa6, 0x46, + 0x46, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x06, 0x1c, 0x20, 0x1c, 0xa6, 0x46, 0x42, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0x80, 0x19, 0x68, 0x70, 0x01, 0x20, 0x40, 0x02, 0x41, 0x49, 0x08, 0x80, + 0x41, 0x48, 0xa9, 0x30, 0xf0, 0xbd, 0x53, 0x99, 0x02, 0x00, 0x33, 0x68, 0x08, 0x00, 0x41, + 0x36, 0x00, 0x00, 0xa1, 0x69, 0x08, 0x00, 0x9f, 0x02, 0x00, 0x00, 0xb9, 0xd1, 0x01, 0x00, + 0xb1, 0x2e, 0x05, 0x00, 0x01, 0x0f, 0x02, 0x00, 0x10, 0xb5, 0x28, 0x49, 0x3e, 0x31, 0x09, + 0x78, 0x37, 0x4c, 0x00, 0x29, 0x0f, 0xd0, 0x22, 0x49, 0x48, 0x78, 0x09, 0x78, 0xac, 0x22, + 0x4a, 0x43, 0x2d, 0x49, + + 0x01, 0x05, 0xff, 0xff, 0x72, 0x64, 0x08, 0x00, 0xfa, 0x34, 0x31, 0x89, 0x5c, 0x01, 0x22, + 0x96, 0x46, 0xd6, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x20, 0x1c, 0x35, 0x30, 0x10, 0xbd, 0x3b, + 0x21, 0xc1, 0x60, 0x20, 0x1c, 0x40, 0x1d, 0x10, 0xbd, 0x61, 0x7d, 0x03, 0x00, 0x0c, 0x12, + 0x08, 0x00, 0xc9, 0x02, 0x01, 0x00, 0x4d, 0xee, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0xb5, + 0x02, 0x01, 0x00, 0x6d, 0x00, 0x01, 0x00, 0x21, 0x50, 0x08, 0x00, 0x09, 0x0d, 0x01, 0x00, + 0x75, 0x59, 0x04, 0x00, 0xd3, 0x96, 0x02, 0x00, 0x63, 0x08, 0x00, 0x00, 0x3d, 0x9d, 0x04, + 0x00, 0xfd, 0x61, 0x08, 0x00, 0xad, 0x35, 0x03, 0x00, 0x32, 0x2e, 0x33, 0x31, 0xdd, 0x61, + 0x08, 0x00, 0xf2, 0x13, 0x08, 0x00, 0x97, 0x6f, 0x01, 0x00, 0x5d, 0x8c, 0x01, 0x00, 0xc1, + 0x78, 0x05, 0x00, 0x45, 0xee, 0x00, 0x00, 0x61, 0x20, 0x01, 0x00, 0x0f, 0x04, 0x00, 0x00, + 0x12, 0x25, 0x08, 0x00, 0x71, 0x9a, 0x01, 0x00, 0x5f, 0x1f, 0x08, 0x00, 0x72, 0x25, 0x08, + 0x00, 0x55, 0x9e, 0x01, 0x00, 0x8c, 0x51, 0x08, 0x00, 0x46, 0x75, 0x1a, 0x00, 0xdb, 0xae, + 0x04, 0x00, 0x00, 0x00, 0x91, 0x02, 0x2d, 0x6a, 0x05, 0x00, 0x67, 0xe6, 0x11, 0x03, 0x20, + 0x30, 0x06, 0x00, 0xcd, 0x60, 0x03, 0x00, 0x29, 0xd6, 0x02, 0x00, 0x94, 0x1a, 0x08, 0x00, + 0xa1, 0x63, 0x08, 0x00, 0x3b, 0xa3, 0x01, 0x00, 0x44, 0x7c, 0x1a, 0x00, 0x5d, 0x4c, 0x02, + 0x00, 0x46, 0x24, 0x08, 0x00, 0x8f, 0x49, 0x02, 0x00, 0xfc, 0xb5, 0x41, 0x68, 0x01, 0x91, + 0x01, 0x8a, 0x80, 0x68, 0x80, 0x7b, 0xcf, 0x4a, 0x14, 0x1c, 0x3e, 0x3c, 0x27, 0x8e, 0xce, + 0x4d, 0x1a, 0x4e, 0x01, 0x29, 0x36, 0xd1, 0x02, 0x28, 0x00, 0xd0, 0x03, 0x28, 0x00, 0xd1, + 0xdb, 0xe0, 0x00, 0x28, + + 0x01, 0x05, 0xff, 0xff, 0x6c, 0x65, 0x08, 0x00, 0xfa, 0x2c, 0xd1, 0x00, 0x2f, 0x03, 0xd0, + 0x82, 0x2f, 0x01, 0xd0, 0x50, 0x2f, 0x0c, 0xd1, 0x00, 0x20, 0x20, 0x86, 0x25, 0x80, 0x30, + 0x78, 0x01, 0x28, 0x06, 0xd1, 0xc2, 0x48, 0x09, 0x21, 0x01, 0x22, 0x96, 0x46, 0xd7, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0xd3, 0x48, 0x87, 0x42, 0x0c, 0xd1, 0xd3, 0x48, 0x20, 0x86, 0x25, + 0x80, 0x30, 0x78, 0x01, 0x28, 0x06, 0xd1, 0xba, 0x48, 0x09, 0x21, 0x01, 0x22, 0x96, 0x46, + 0xcf, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xdb, 0x48, 0x87, 0x42, 0x40, 0xd1, 0x11, 0x20, 0x40, + 0x01, 0x20, 0x86, 0x28, 0x1c, 0xf6, 0xe0, 0xa2, 0x52, 0x08, 0x00, 0x01, 0x28, 0x00, 0xd1, + 0x90, 0xe0, 0x02, 0x29, 0x59, 0xd1, 0x00, 0x28, 0x2d, 0xd1, 0x00, 0x2f, 0x06, 0xd0, 0xc3, + 0x48, 0x87, 0x42, 0x03, 0xd0, 0x11, 0x20, 0x40, 0x01, 0x87, 0x42, 0x0c, 0xd1, 0x00, 0x20, + 0x20, 0x86, 0x65, 0x80, 0x30, 0x78, 0x01, 0x28, 0x06, 0xd1, 0xa6, 0x48, 0x0a, 0x21, 0x01, + 0x22, 0x96, 0x46, 0xbb, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xb8, 0x48, 0x87, 0x42, 0x10, 0xd0, + 0x31, 0x78, 0xc6, 0x48, 0x87, 0x42, 0x3a, 0xd1, 0x65, 0x80, 0x82, 0x20, 0x20, 0x86, 0x01, + 0x29, 0x64, 0xd1, 0x9d, 0x48, 0x0a, 0x21, 0x01, 0x22, 0x96, 0x46, 0xb2, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0xc4, 0xe0, 0x65, 0x80, 0x50, 0x20, 0x20, 0x86, 0xc0, 0xe0, 0x01, 0x28, 0x36, + 0xd0, 0x02, 0x28, 0x01, 0xd0, 0x03, 0x28, 0x68, 0xd1, 0x00, 0x2f, 0x02, 0xd0, 0xa9, 0x48, + 0x87, 0x42, 0x02, 0xd1, 0x11, 0x20, 0x40, 0x01, 0x20, 0x86, 0x50, 0x2f, 0x02, 0xd0, 0xa4, + 0x48, 0x87, 0x42, 0x03, 0xd1, 0x25, 0x80, 0x11, 0x20, 0x40, 0x01, 0x20, 0x86, 0x82, 0x2f, + 0x01, 0xd1, 0xaf, 0x48, + + 0x01, 0x05, 0xff, 0xff, 0x66, 0x66, 0x08, 0x00, 0xfa, 0x20, 0x86, 0xe3, 0x48, 0x00, 0x21, + 0x01, 0x25, 0xae, 0x46, 0xe4, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x01, 0xd1, 0xe0, + 0x48, 0x00, 0xe0, 0xe0, 0x48, 0x60, 0x80, 0x30, 0x78, 0x01, 0x28, 0x6b, 0xd1, 0x81, 0x4c, + 0x20, 0x1c, 0x09, 0x21, 0xae, 0x46, 0x96, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x20, 0x1c, 0x0a, + 0x21, 0xae, 0x46, 0xda, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x87, 0xe0, 0x00, 0x2f, 0x08, 0xd0, + 0x11, 0x20, 0x40, 0x01, 0x87, 0x42, 0x04, 0xd0, 0x82, 0x2f, 0x02, 0xd0, 0x9b, 0x48, 0x87, + 0x42, 0x13, 0xd1, 0x8b, 0x48, 0x20, 0x86, 0x00, 0x20, 0x60, 0x80, 0x30, 0x78, 0x01, 0x28, + 0x06, 0xd1, 0x71, 0x48, 0x0a, 0x21, 0x01, 0x22, 0x96, 0x46, 0x86, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x82, 0x2f, 0x02, 0xd0, 0x92, 0x48, 0x87, 0x42, 0x00, 0xd1, 0x25, 0x80, 0x50, 0x2f, + 0x66, 0xd1, 0x7f, 0x48, 0x20, 0x86, 0x00, 0x20, 0x60, 0x80, 0x61, 0xe0, 0x11, 0x20, 0x40, + 0x01, 0x87, 0x42, 0x05, 0xd0, 0x8a, 0x48, 0x87, 0x42, 0x02, 0xd0, 0x65, 0x80, 0x82, 0x20, + 0x00, 0xe0, 0x87, 0x48, 0x20, 0x86, 0x00, 0x20, 0x20, 0x80, 0x30, 0x78, 0x01, 0x28, 0x50, + 0xd1, 0x5f, 0x48, 0x09, 0x21, 0x01, 0x22, 0x96, 0x46, 0x74, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x48, 0xe0, 0x82, 0x2f, 0x24, 0xd0, 0x00, 0x2f, 0x22, 0xd0, 0x11, 0x20, 0x40, 0x01, 0x87, + 0x42, 0x1e, 0xd0, 0x7c, 0x48, 0x87, 0x42, 0x1b, 0xd0, 0x6b, 0x48, 0x87, 0x42, 0x3a, 0xd1, + 0x69, 0x48, 0x20, 0x86, 0xad, 0x48, 0x00, 0x21, 0x01, 0x25, 0xae, 0x46, 0xae, 0x4a, 0xfe, + 0x44, 0x10, 0x47, 0x00, 0x28, 0x01, 0xd1, 0xa9, 0x48, 0x00, 0xe0, 0xa9, 0x48, 0x20, 0x80, + 0x30, 0x78, 0x01, 0x28, + + 0x01, 0x05, 0xff, 0xff, 0x60, 0x67, 0x08, 0x00, 0xfa, 0x28, 0xd1, 0x4b, 0x48, 0x09, 0x21, + 0xae, 0x46, 0xa7, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x21, 0xe0, 0x50, 0x20, 0x20, 0x86, 0x65, + 0x80, 0x30, 0x78, 0x01, 0x28, 0x0d, 0xd1, 0x44, 0x4e, 0x30, 0x1c, 0x09, 0x21, 0x01, 0x25, + 0xae, 0x46, 0xa0, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x30, 0x1c, 0x0a, 0x21, 0xae, 0x46, 0x56, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x97, 0x48, 0x00, 0x21, 0x01, 0x22, 0x96, 0x46, 0x98, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x02, 0xd1, 0x94, 0x48, 0x05, 0x1c, 0x07, 0xe7, 0x93, + 0x48, 0x20, 0x80, 0x00, 0x21, 0x68, 0x46, 0x01, 0x70, 0x01, 0x98, 0xf3, 0x21, 0x88, 0x22, + 0x06, 0x23, 0x01, 0x24, 0xa6, 0x46, 0xe6, 0x4c, 0xfe, 0x44, 0x20, 0x47, 0xe5, 0x48, 0xff, + 0x30, 0x66, 0x30, 0xfc, 0xbd, 0x2b, 0x49, 0x02, 0x00, 0x30, 0xb5, 0xe3, 0x49, 0xe3, 0x4a, + 0x37, 0x32, 0x10, 0x20, 0x01, 0x24, 0xa6, 0x46, 0xe4, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xe3, + 0x48, 0x00, 0x78, 0xdf, 0x4d, 0x00, 0x28, 0x03, 0xd1, 0x28, 0x1c, 0xff, 0x30, 0x32, 0x30, + 0x30, 0xbd, 0x01, 0x28, 0x01, 0xd0, 0x04, 0x28, 0x0b, 0xd1, 0xa6, 0x46, 0xda, 0x48, 0xfe, + 0x44, 0x00, 0x47, 0x7a, 0x48, 0x0e, 0x38, 0x04, 0x21, 0x00, 0x22, 0xa6, 0x46, 0xea, 0x4b, + 0xfe, 0x44, 0x18, 0x47, 0x28, 0x1c, 0xff, 0x30, 0x70, 0x30, 0x30, 0xbd, 0xe8, 0x49, 0x09, + 0x68, 0x81, 0x60, 0xe7, 0x48, 0x3f, 0x30, 0xf7, 0x46, 0x81, 0x69, 0xe4, 0x4a, 0x11, 0x60, + 0xe9, 0x49, 0x81, 0x60, 0xe9, 0x48, 0x13, 0x30, 0xf7, 0x46, 0x00, 0xb5, 0xe8, 0x49, 0xca, + 0x4a, 0xff, 0x32, 0x1c, 0x32, 0x10, 0x20, 0x01, 0x23, 0x9e, 0x46, 0xc9, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0xe4, 0x48, + + 0x01, 0x05, 0xff, 0xff, 0x5a, 0x68, 0x08, 0x00, 0xfa, 0x00, 0x78, 0x00, 0x28, 0x02, 0xd1, + 0x00, 0x20, 0xe3, 0x49, 0x08, 0x60, 0xc1, 0x48, 0x8d, 0x30, 0x00, 0xbd, 0x10, 0xb5, 0x01, + 0x24, 0xa6, 0x46, 0xbf, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xde, 0x4a, 0x11, 0x68, 0x08, 0x20, + 0x08, 0x43, 0x10, 0x60, 0xa6, 0x46, 0xdc, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xdc, 0x48, 0x47, + 0x30, 0x10, 0xbd, 0xdc, 0x7c, 0x1a, 0x00, 0xff, 0xff, 0x00, 0x00, 0x30, 0xb5, 0xc4, 0x69, + 0x02, 0x23, 0xd8, 0x4a, 0x15, 0x68, 0xd8, 0x49, 0xa5, 0x42, 0x14, 0xd1, 0x15, 0x79, 0x02, + 0x2d, 0x11, 0xd1, 0x15, 0x7b, 0x26, 0x2d, 0x0e, 0xd1, 0xff, 0x25, 0x2a, 0x35, 0x2d, 0x5d, + 0x02, 0x2d, 0x09, 0xd1, 0x01, 0x22, 0xff, 0x20, 0x16, 0x30, 0x02, 0x55, 0xff, 0x20, 0x19, + 0x30, 0x02, 0x55, 0x08, 0x1c, 0xf5, 0x30, 0x30, 0xbd, 0x4c, 0x32, 0x01, 0x3b, 0xe3, 0xd1, + 0x42, 0x68, 0x16, 0x32, 0x42, 0x60, 0x08, 0x1c, 0xe1, 0x30, 0x30, 0xbd, 0x54, 0x04, 0x00, + 0x00, 0x04, 0x04, 0x00, 0x00, 0x15, 0xab, 0x04, 0x00, 0xf0, 0xb5, 0x07, 0x1c, 0x0a, 0x25, + 0xc4, 0x4c, 0x00, 0x26, 0x20, 0x78, 0x00, 0x28, 0x09, 0xd0, 0x60, 0x1c, 0x39, 0x1c, 0x06, + 0x22, 0x01, 0x23, 0x9e, 0x46, 0xc0, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x00, 0x28, 0x03, 0xd0, + 0x0c, 0x34, 0x01, 0x36, 0x01, 0x3d, 0xee, 0xd1, 0x30, 0x06, 0x00, 0x0e, 0xf0, 0xbd, 0xc0, + 0x46, 0xa2, 0x02, 0x00, 0x00, 0x70, 0xb5, 0x05, 0x1c, 0x68, 0x68, 0xe9, 0x69, 0x00, 0x29, + 0x14, 0xd1, 0x10, 0x30, 0x01, 0x24, 0xa6, 0x46, 0xb5, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x06, + 0x1c, 0x0a, 0x2e, 0x0f, 0xd0, 0xff, 0x30, 0x14, 0x30, 0x00, 0x04, 0x00, 0x0c, 0xa6, 0x46, + 0xb1, 0x49, 0xfe, 0x44, + + 0x01, 0x05, 0xff, 0xff, 0x54, 0x69, 0x08, 0x00, 0xfa, 0x08, 0x47, 0x0c, 0x20, 0x70, 0x43, + 0xab, 0x49, 0x01, 0xe0, 0xff, 0x21, 0x33, 0x31, 0x00, 0x22, 0x0a, 0x54, 0x68, 0x68, 0x68, + 0x61, 0xaa, 0x48, 0x40, 0x1d, 0x70, 0xbd, 0x10, 0xb5, 0x04, 0x1c, 0xe0, 0x69, 0x39, 0x21, + 0x09, 0x5c, 0x25, 0x29, 0x0b, 0xd1, 0xff, 0x21, 0x29, 0x31, 0x09, 0x5c, 0x22, 0x29, 0x06, + 0xd1, 0x10, 0x30, 0x05, 0x21, 0x01, 0x22, 0x96, 0x46, 0xa2, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x38, 0x20, 0xa0, 0x61, 0xa1, 0x48, 0x13, 0x30, 0x10, 0xbd, 0x40, 0x1e, 0x80, 0x00, 0xa0, + 0x4b, 0x19, 0x50, 0x9e, 0x49, 0x0a, 0x50, 0xf7, 0x46, 0x01, 0x69, 0x8a, 0x04, 0xd2, 0x0f, + 0x53, 0x03, 0x8a, 0x05, 0x92, 0x0d, 0x1a, 0x43, 0x01, 0xd1, 0x9b, 0x4a, 0x11, 0x40, 0x01, + 0x61, 0x9a, 0x49, 0x81, 0x61, 0x9a, 0x48, 0x1f, 0x30, 0xf7, 0x46, 0x30, 0xb5, 0x04, 0x1c, + 0x99, 0x48, 0x05, 0x78, 0x60, 0x68, 0x01, 0x21, 0x8e, 0x46, 0x97, 0x49, 0xfe, 0x44, 0x08, + 0x47, 0x01, 0x1c, 0xa0, 0x61, 0x96, 0x48, 0x03, 0xd0, 0x00, 0x2d, 0x01, 0xd0, 0x17, 0x30, + 0x30, 0xbd, 0x11, 0x30, 0x30, 0xbd, 0xc0, 0x46, 0x22, 0xf6, 0x1a, 0x00, 0xea, 0x80, 0x00, + 0x00, 0xea, 0xba, 0x00, 0x00, 0x59, 0xae, 0x04, 0x00, 0xfd, 0xaa, 0x04, 0x00, 0x30, 0xb5, + 0x04, 0x1c, 0x01, 0x25, 0xae, 0x46, 0x8b, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x00, 0x28, 0x0e, + 0xd0, 0x8a, 0x48, 0x00, 0x78, 0x03, 0x28, 0x03, 0xd0, 0x01, 0x28, 0x01, 0xd0, 0x04, 0x28, + 0x06, 0xd1, 0x87, 0x48, 0x29, 0x1c, 0x00, 0x22, 0xae, 0x46, 0x87, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0x37, 0x20, 0x60, 0x60, 0x83, 0x48, 0xff, 0x30, 0xaa, 0x30, 0x30, 0xbd, 0xf0, 0xb5, + 0x06, 0x1c, 0xf5, 0x69, + + 0x01, 0x05, 0xff, 0xff, 0x4e, 0x6a, 0x08, 0x00, 0xfa, 0x34, 0x6a, 0x39, 0x27, 0x78, 0x5d, + 0x00, 0x28, 0x31, 0xd0, 0x7f, 0x48, 0x01, 0x1c, 0x0b, 0x39, 0x22, 0x88, 0x8a, 0x42, 0x02, + 0xd1, 0xa9, 0x88, 0x81, 0x42, 0x01, 0xd0, 0x01, 0x20, 0x27, 0xe0, 0x78, 0x5d, 0x25, 0x28, + 0x11, 0xd1, 0x3b, 0x20, 0x40, 0x5d, 0x01, 0x28, 0x05, 0xd1, 0x28, 0x1c, 0x01, 0x21, 0x8e, + 0x46, 0x77, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x10, 0x20, 0x40, 0x19, 0xa1, 0x7a, 0x01, 0x22, + 0x96, 0x46, 0x62, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xa1, 0x7a, 0x28, 0x1c, 0x01, 0x24, 0xa6, + 0x46, 0x70, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x28, 0x1c, 0x00, 0x21, 0xa6, 0x46, 0x6e, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x00, 0x20, 0x78, 0x55, 0x3b, 0x21, 0x48, 0x55, 0xa8, 0x80, 0x00, + 0x20, 0x70, 0x60, 0x66, 0x48, 0x2f, 0x30, 0xf0, 0xbd, 0x69, 0x48, 0x01, 0x68, 0x69, 0x48, + 0x02, 0x78, 0x69, 0x48, 0x02, 0x2a, 0x03, 0xd0, 0x09, 0x8a, 0x05, 0x29, 0x03, 0xda, 0x04, + 0xe0, 0x09, 0x8a, 0x04, 0x29, 0x01, 0xdb, 0x43, 0x30, 0xf7, 0x46, 0x35, 0x30, 0xf7, 0x46, + 0x63, 0x48, 0x63, 0x49, 0x09, 0x68, 0x01, 0x60, 0x63, 0x49, 0x81, 0x80, 0x63, 0x4a, 0x11, + 0x68, 0x81, 0x60, 0x91, 0x88, 0x81, 0x81, 0x63, 0x48, 0x00, 0x88, 0x60, 0x49, 0x08, 0x80, + 0x60, 0x48, 0xa1, 0x30, 0xf7, 0x46, 0xf8, 0xb5, 0x07, 0x1c, 0x07, 0x26, 0x61, 0x4d, 0x00, + 0x24, 0x00, 0x94, 0x32, 0x20, 0x40, 0x5d, 0x02, 0x28, 0x14, 0xd1, 0x37, 0x20, 0x40, 0x5d, + 0x5b, 0x49, 0x08, 0x18, 0x40, 0x00, 0x02, 0x21, 0x01, 0x22, 0x96, 0x46, 0x5b, 0x4a, 0xfe, + 0x44, 0x10, 0x47, 0x00, 0x28, 0x07, 0xd0, 0x9a, 0x20, 0x40, 0x5d, 0x00, 0x28, 0x01, 0xd1, + 0x01, 0x24, 0x01, 0xe0, + + 0x01, 0x05, 0xff, 0xff, 0x48, 0x6b, 0x08, 0x00, 0xfa, 0x01, 0x20, 0x00, 0x90, 0xac, 0x35, + 0x01, 0x3e, 0xe3, 0xd1, 0xfc, 0x61, 0x00, 0x98, 0x38, 0x62, 0x4f, 0x48, 0x43, 0x30, 0xf8, + 0xbd, 0xc0, 0x46, 0xb9, 0x34, 0x03, 0x00, 0x09, 0xef, 0x02, 0x00, 0x43, 0x68, 0x08, 0x00, + 0x3d, 0x31, 0x05, 0x00, 0xa9, 0xb7, 0x04, 0x00, 0x8d, 0x62, 0x02, 0x00, 0xa1, 0x69, 0x08, + 0x00, 0x70, 0x55, 0x08, 0x00, 0x70, 0xb5, 0x4b, 0x48, 0x05, 0x78, 0x00, 0x24, 0x46, 0x48, + 0x00, 0x88, 0x80, 0x09, 0x10, 0xd3, 0x01, 0x20, 0x06, 0x1c, 0x86, 0x46, 0x44, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0x00, 0x28, 0x08, 0xd0, 0x3c, 0x22, 0x44, 0x49, 0x08, 0x78, 0x01, 0x28, + 0x03, 0xd1, 0x50, 0x5c, 0x00, 0x28, 0x00, 0xd0, 0x34, 0x1c, 0x3e, 0x48, 0xff, 0x2d, 0x01, + 0xd0, 0x00, 0x2c, 0x01, 0xd0, 0x41, 0x30, 0x70, 0xbd, 0x0d, 0x30, 0x70, 0xbd, 0xb9, 0xab, + 0x04, 0x00, 0xdc, 0x5f, 0x08, 0x00, 0x0b, 0xd8, 0x04, 0x00, 0xc1, 0x69, 0x82, 0x69, 0x51, + 0x1a, 0x01, 0x61, 0x37, 0x48, 0x73, 0x30, 0xf7, 0x46, 0xc0, 0x46, 0x35, 0xff, 0x00, 0x00, + 0x41, 0x36, 0x00, 0x00, 0xd9, 0x67, 0x08, 0x00, 0x07, 0x53, 0x08, 0x00, 0xc4, 0x30, 0x19, + 0x00, 0x84, 0x51, 0x08, 0x00, 0x95, 0x04, 0x01, 0x00, 0x99, 0x5f, 0x03, 0x00, 0x9c, 0x14, + 0x08, 0x00, 0xdf, 0xd7, 0x01, 0x00, 0x34, 0x15, 0x08, 0x00, 0x13, 0x84, 0x05, 0x00, 0xf1, + 0x68, 0x08, 0x00, 0x25, 0x32, 0x04, 0x00, 0x61, 0x7d, 0x03, 0x00, 0xef, 0x9f, 0x02, 0x00, + 0x29, 0xd5, 0x01, 0x00, 0x04, 0xf3, 0x1a, 0x00, 0x80, 0x7b, 0x08, 0x00, 0xff, 0xe7, 0x00, + 0x00, 0x08, 0x14, 0x08, 0x00, 0xb5, 0xa4, 0x03, 0x00, 0x5f, 0x50, 0x08, 0x00, 0x49, 0xa0, + 0x02, 0x00, 0x0b, 0x97, + + 0x01, 0x05, 0xff, 0xff, 0x42, 0x6c, 0x08, 0x00, 0xfa, 0x02, 0x00, 0xf9, 0xb3, 0x02, 0x00, + 0x26, 0x25, 0x08, 0x00, 0x20, 0x01, 0x1a, 0x00, 0x79, 0x98, 0x01, 0x00, 0x65, 0xab, 0x04, + 0x00, 0x11, 0x04, 0x00, 0x00, 0xb7, 0xc8, 0x01, 0x00, 0xd3, 0xfe, 0x00, 0x00, 0x7d, 0x98, + 0x02, 0x00, 0x11, 0x00, 0x01, 0x00, 0x90, 0x49, 0x08, 0x00, 0x76, 0x53, 0x08, 0x00, 0xb7, + 0x2a, 0x02, 0x00, 0x88, 0x0b, 0x1a, 0x00, 0x94, 0x5f, 0x08, 0x00, 0x61, 0x09, 0x00, 0x00, + 0xb8, 0x64, 0x06, 0x00, 0x34, 0x33, 0x19, 0x00, 0xfd, 0xa0, 0x03, 0x00, 0xd0, 0x5f, 0x08, + 0x00, 0x11, 0x01, 0x0d, 0x00, 0x97, 0x4d, 0x02, 0x00, 0x94, 0x1a, 0x08, 0x00, 0x9f, 0xae, + 0x04, 0x00, 0x7a, 0x7f, 0x1a, 0x00, 0x03, 0x28, 0x04, 0x00, 0xb7, 0x95, 0x01, 0x00, 0x12, + 0x25, 0x08, 0x00, 0x34, 0x24, 0x08, 0x00, 0x19, 0x8f, 0x02, 0x00, 0x70, 0xb5, 0x06, 0x1c, + 0xdc, 0x4d, 0x28, 0x68, 0xdc, 0x4c, 0x00, 0x28, 0x01, 0xd1, 0x08, 0x34, 0x0b, 0xe0, 0x28, + 0x68, 0xc3, 0x21, 0x00, 0x22, 0x01, 0x23, 0x9e, 0x46, 0xd8, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x00, 0x20, 0x28, 0x60, 0xff, 0x34, 0x97, 0x34, 0x34, 0x62, 0x70, 0xbd, 0x10, 0xb5, 0x40, + 0x69, 0x00, 0x7a, 0x80, 0x06, 0x84, 0x0e, 0x07, 0x2c, 0x01, 0xd0, 0x09, 0x2c, 0x06, 0xd1, + 0x00, 0x20, 0x0f, 0x21, 0x01, 0x22, 0x96, 0x46, 0xce, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x0f, + 0x2c, 0x15, 0xd1, 0xcd, 0x48, 0x00, 0x78, 0x01, 0x28, 0x11, 0xd1, 0xcc, 0x4a, 0x11, 0x88, + 0x10, 0x20, 0x08, 0x43, 0x10, 0x80, 0xca, 0x48, 0x03, 0x21, 0x06, 0x22, 0x01, 0x24, 0xa6, + 0x46, 0xc9, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x96, 0x20, 0xa6, 0x46, 0xc7, 0x49, 0xfe, 0x44, + 0x08, 0x47, 0x10, 0xbd, + + 0x01, 0x05, 0xff, 0xff, 0x3c, 0x6d, 0x08, 0x00, 0xfa, 0x70, 0xb5, 0x05, 0x1c, 0xee, 0x69, + 0x68, 0x69, 0x40, 0x78, 0x31, 0x28, 0x1f, 0xd1, 0xc3, 0x4c, 0xc3, 0x48, 0x03, 0x78, 0x00, + 0x21, 0x02, 0xe0, 0x48, 0x1c, 0x01, 0x06, 0x09, 0x0e, 0x99, 0x42, 0x15, 0xda, 0x23, 0x20, + 0x00, 0x01, 0x48, 0x43, 0x20, 0x18, 0x38, 0x22, 0x12, 0x5c, 0x0a, 0x2a, 0xf2, 0xd1, 0x00, + 0x21, 0x01, 0x24, 0xa6, 0x46, 0xba, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x74, 0x80, 0x03, 0x20, + 0x30, 0x80, 0xb8, 0x49, 0xaf, 0x20, 0xc0, 0x00, 0x40, 0x18, 0x28, 0x62, 0x70, 0xbd, 0xfe, + 0xb5, 0x02, 0x90, 0x81, 0x8a, 0x84, 0x69, 0xab, 0x48, 0x00, 0x78, 0xb3, 0x4a, 0x8a, 0x1a, + 0x1e, 0xd0, 0x1a, 0x3a, 0x00, 0xd1, 0xa2, 0xe0, 0x01, 0x3a, 0x00, 0xd1, 0x8b, 0xe0, 0xe6, + 0x4b, 0xd2, 0x1a, 0x7e, 0xd0, 0x3c, 0x3a, 0x04, 0xd0, 0x16, 0x3a, 0x63, 0xd0, 0x04, 0x3a, + 0x28, 0xd0, 0xfe, 0xbd, 0x01, 0x28, 0x1a, 0xd1, 0xe1, 0x48, 0x0b, 0x21, 0x09, 0x19, 0x0a, + 0x23, 0x0c, 0x78, 0x02, 0x78, 0x22, 0x40, 0x0a, 0x70, 0x01, 0x30, 0x01, 0x31, 0x01, 0x3b, + 0xf7, 0xd1, 0xfe, 0xbd, 0x20, 0x1c, 0x00, 0x21, 0x6a, 0x46, 0x01, 0x25, 0xae, 0x46, 0xd9, + 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x68, 0x46, 0xae, 0x46, 0xd7, 0x49, 0xfe, 0x44, 0x08, 0x47, + 0x00, 0x28, 0x00, 0xd0, 0x87, 0xe0, 0x20, 0x1c, 0x4e, 0x21, 0x02, 0x22, 0x6b, 0x46, 0xae, + 0x46, 0xd3, 0x4c, 0xfe, 0x44, 0x20, 0x47, 0x49, 0xe0, 0x0b, 0x20, 0x06, 0x57, 0xd1, 0x48, + 0x07, 0x1c, 0x10, 0x3f, 0x11, 0x22, 0x94, 0x46, 0x0f, 0x23, 0x00, 0x22, 0x85, 0x56, 0xea, + 0x0f, 0x52, 0x19, 0x52, 0x10, 0x96, 0x42, 0x05, 0xdc, 0xfd, 0x56, 0xea, 0x0f, 0x52, 0x19, + 0x52, 0x10, 0x96, 0x42, + + 0x01, 0x05, 0xff, 0xff, 0x36, 0x6e, 0x08, 0x00, 0xfa, 0x03, 0xdc, 0x01, 0x38, 0x01, 0x3b, + 0xef, 0xd1, 0x03, 0xe0, 0xe1, 0x48, 0x03, 0x70, 0x00, 0x20, 0x84, 0x46, 0x88, 0x05, 0x00, + 0x0f, 0x80, 0x01, 0x40, 0x28, 0x07, 0xdb, 0x62, 0x46, 0x20, 0x1c, 0x01, 0x23, 0x9e, 0x46, + 0xdc, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x1f, 0xe0, 0x88, 0x0a, 0x80, 0x01, 0x89, 0x05, 0x89, + 0x0d, 0x01, 0x43, 0x09, 0x04, 0x09, 0x0c, 0x62, 0x46, 0x20, 0x1c, 0x01, 0x23, 0x9e, 0x46, + 0x70, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x10, 0xe0, 0x06, 0x20, 0xa0, 0x80, 0xd2, 0x48, 0x00, + 0x78, 0x02, 0x28, 0x00, 0xdb, 0x01, 0x20, 0xa0, 0x73, 0x01, 0x23, 0x63, 0x80, 0x20, 0x1c, + 0xe8, 0x49, 0x00, 0x22, 0x9e, 0x46, 0xe7, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xe4, 0x49, 0xff, + 0x31, 0x23, 0x31, 0x02, 0x98, 0x01, 0x62, 0xfe, 0xbd, 0xe4, 0x49, 0xe4, 0x48, 0x42, 0x1c, + 0x05, 0x20, 0x01, 0x23, 0x9e, 0x46, 0xe3, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xfe, 0xbd, 0x20, + 0x1c, 0x00, 0x21, 0x6a, 0x46, 0x01, 0x25, 0xae, 0x46, 0x9f, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x68, 0x46, 0xae, 0x46, 0x9e, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x1d, 0x21, 0x09, 0x19, 0xae, + 0x46, 0xeb, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xfe, 0xbd, 0x20, 0x1c, 0x00, 0x21, 0x01, 0x25, + 0xae, 0x46, 0xe8, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xae, 0x46, 0xe7, 0x49, 0xfe, 0x44, 0x08, + 0x47, 0x19, 0x21, 0x09, 0x19, 0xae, 0x46, 0xe2, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xfe, 0xbd, + 0xf0, 0xb5, 0x06, 0x1c, 0xb4, 0x8a, 0xb7, 0x69, 0xe7, 0x48, 0x84, 0x42, 0x0d, 0xdc, 0x84, + 0x42, 0x70, 0xd0, 0x6a, 0x38, 0x20, 0x1a, 0x67, 0xd0, 0x10, 0x38, 0x59, 0xd0, 0x08, 0x38, + 0x50, 0xd0, 0x46, 0x38, + + 0x01, 0x05, 0xff, 0xff, 0x30, 0x6f, 0x08, 0x00, 0xfa, 0x42, 0xd0, 0x04, 0x38, 0x39, 0xd0, + 0xf0, 0xbd, 0xe2, 0x48, 0x20, 0x1a, 0x2e, 0xd0, 0x03, 0x38, 0x07, 0xd0, 0x59, 0x38, 0x26, + 0xd0, 0x01, 0x38, 0x1d, 0xd0, 0xff, 0x38, 0xf6, 0x38, 0x13, 0xd0, 0xf0, 0xbd, 0xdd, 0x48, + 0x00, 0x78, 0x01, 0x28, 0x5e, 0xd0, 0xdc, 0x48, 0x00, 0x78, 0xff, 0x28, 0x5a, 0xd0, 0xeb, + 0x48, 0x00, 0x78, 0x01, 0x28, 0x56, 0xd1, 0x38, 0x1c, 0x01, 0x21, 0x8e, 0x46, 0xd1, 0x49, + 0xfe, 0x44, 0x08, 0x47, 0x44, 0xe0, 0x38, 0x1c, 0x01, 0x21, 0x8e, 0x46, 0xcf, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0x3d, 0xe0, 0x38, 0x1c, 0x01, 0x21, 0x8e, 0x46, 0xcc, 0x49, 0xfe, 0x44, + 0x08, 0x47, 0x36, 0xe0, 0xf8, 0x7a, 0xeb, 0x49, 0x08, 0x70, 0x32, 0xe0, 0x38, 0x1c, 0x01, + 0x21, 0x8e, 0x46, 0xe9, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x33, 0xe0, 0x38, 0x1c, 0x01, 0x21, + 0x8e, 0x46, 0xe6, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x24, 0xe0, 0x38, 0x1c, 0x01, 0x25, 0xae, + 0x46, 0xe4, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x38, 0x1c, 0xae, 0x46, 0xe2, 0x49, 0xfe, 0x44, + 0x08, 0x47, 0x18, 0xe0, 0x38, 0x1c, 0x01, 0x21, 0x8e, 0x46, 0xe0, 0x49, 0xfe, 0x44, 0x08, + 0x47, 0x11, 0xe0, 0x38, 0x1c, 0x01, 0x25, 0xae, 0x46, 0xdd, 0x49, 0xfe, 0x44, 0x08, 0x47, + 0x38, 0x1c, 0xae, 0x46, 0xdc, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x05, 0xe0, 0x38, 0x1c, 0x01, + 0x21, 0x8e, 0x46, 0xd9, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x38, 0x1c, 0x21, 0x1c, 0x00, 0x22, + 0x01, 0x23, 0x9e, 0x46, 0xeb, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xe9, 0x48, 0x9c, 0x30, 0x30, + 0x62, 0xf0, 0xbd, 0xe9, 0x49, 0x09, 0x78, 0x01, 0x29, 0x03, 0xd0, 0xe8, 0x49, 0x09, 0x78, + 0x00, 0x29, 0x02, 0xd1, + + 0x01, 0x05, 0xff, 0xff, 0x2a, 0x70, 0x08, 0x00, 0xfa, 0xe7, 0x49, 0x0e, 0x31, 0x01, 0x62, + 0xf7, 0x46, 0xc0, 0x46, 0xcc, 0x5f, 0x08, 0x00, 0x65, 0x0d, 0x02, 0x00, 0xd3, 0x96, 0x02, + 0x00, 0xb9, 0x6e, 0x03, 0x00, 0xa2, 0x52, 0x08, 0x00, 0x44, 0x7f, 0x1a, 0x00, 0x6a, 0x0a, + 0x1a, 0x00, 0x65, 0xab, 0x04, 0x00, 0x3f, 0x4a, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x21, + 0x50, 0x08, 0x00, 0xb7, 0xc8, 0x01, 0x00, 0xe1, 0xa1, 0x00, 0x00, 0x0e, 0x04, 0x00, 0x00, + 0x30, 0xb5, 0xa8, 0x49, 0x09, 0x78, 0x40, 0x69, 0x3f, 0x22, 0x82, 0x1a, 0x01, 0x2a, 0x45, + 0xd9, 0x0f, 0x3a, 0xd3, 0x48, 0x1f, 0xd0, 0x2d, 0x3a, 0x5d, 0xd1, 0x00, 0x24, 0x00, 0x78, + 0x80, 0x08, 0x0f, 0xd3, 0x01, 0x25, 0xae, 0x46, 0xcf, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x00, + 0x28, 0x07, 0xd0, 0x01, 0x38, 0x03, 0xd0, 0x02, 0x38, 0x03, 0xd0, 0x01, 0x38, 0x02, 0xd1, + 0x02, 0x24, 0x00, 0xe0, 0x2c, 0x1c, 0xcb, 0x48, 0x32, 0x38, 0x21, 0x1c, 0x0b, 0x22, 0x01, + 0x23, 0x9e, 0x46, 0xc9, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x30, 0xbd, 0x00, 0x78, 0x40, 0x08, + 0x3c, 0xd3, 0x01, 0x29, 0x3a, 0xd1, 0xc1, 0x48, 0x01, 0x78, 0xc1, 0x48, 0x00, 0x29, 0x09, + 0xd0, 0x04, 0x29, 0x0d, 0xd1, 0x06, 0x21, 0x08, 0x22, 0x01, 0x23, 0x9e, 0x46, 0xc0, 0x4b, + 0xfe, 0x44, 0x18, 0x47, 0x05, 0xe0, 0x01, 0x21, 0x00, 0x22, 0x8e, 0x46, 0xbc, 0x4b, 0xfe, + 0x44, 0x18, 0x47, 0xed, 0x48, 0x02, 0x30, 0x01, 0x21, 0x03, 0x22, 0x8e, 0x46, 0xb8, 0x4b, + 0xfe, 0x44, 0x18, 0x47, 0x30, 0xbd, 0x00, 0x29, 0x1a, 0xd1, 0xe8, 0x49, 0x01, 0x39, 0x4a, + 0x78, 0xe5, 0x48, 0x00, 0x2a, 0x0d, 0xd1, 0x0c, 0x22, 0x51, 0x56, 0x00, 0x29, 0x09, 0xdd, + 0x32, 0x29, 0x07, 0xda, + + 0x01, 0x05, 0xff, 0xff, 0x24, 0x71, 0x08, 0x00, 0xfa, 0x16, 0x21, 0x00, 0x22, 0x01, 0x23, + 0x9e, 0x46, 0xec, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x30, 0xbd, 0x19, 0x21, 0x00, 0x22, 0x01, + 0x23, 0x9e, 0x46, 0xe8, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x30, 0xbd, 0xda, 0x07, 0x00, 0x00, + 0xa2, 0x13, 0x08, 0x00, 0xad, 0x24, 0x00, 0x00, 0x81, 0xf4, 0x00, 0x00, 0x81, 0x97, 0x02, + 0x00, 0x27, 0x31, 0x19, 0x00, 0x70, 0xb5, 0xe2, 0x48, 0x00, 0x78, 0xe0, 0x49, 0x08, 0x70, + 0x6a, 0x48, 0x00, 0x78, 0x01, 0x28, 0x17, 0xd0, 0xdf, 0x4d, 0x86, 0x3d, 0x28, 0x1c, 0x04, + 0x21, 0x01, 0x24, 0xa6, 0x46, 0xec, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x1f, 0xd1, + 0x28, 0x1c, 0x08, 0x21, 0xa6, 0x46, 0xe9, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x28, 0x1c, 0x07, + 0x21, 0xa6, 0x46, 0xe6, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x70, 0xbd, 0xc2, 0x4d, 0x4c, 0x35, + 0x28, 0x1c, 0x00, 0x26, 0x31, 0x1c, 0x01, 0x24, 0xa6, 0x46, 0xea, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0xe8, 0x49, 0x08, 0x80, 0x28, 0x1c, 0x1c, 0x21, 0x32, 0x1c, 0xa6, 0x46, 0xc8, 0x4b, + 0xfe, 0x44, 0x18, 0x47, 0x70, 0xbd, 0xc0, 0x46, 0x7f, 0x19, 0x08, 0x00, 0xe9, 0x96, 0x02, + 0x00, 0xa3, 0x10, 0x08, 0x00, 0xf0, 0xb5, 0x06, 0x1c, 0x35, 0x8b, 0x7e, 0x48, 0x00, 0x78, + 0x04, 0x28, 0x26, 0xd1, 0xde, 0x4f, 0x38, 0x1c, 0x00, 0x21, 0x01, 0x24, 0xa6, 0x46, 0xdc, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x29, 0x01, 0x01, 0x43, 0x2d, 0x02, 0x0d, 0x43, 0x38, 0x1c, + 0x0c, 0x21, 0xa6, 0x46, 0xd7, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x03, 0x28, 0x43, 0x38, + 0x80, 0xb6, 0x4d, 0x3a, 0x3d, 0x38, 0x1c, 0x08, 0x21, 0xa6, 0x46, 0xd2, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0x41, 0x1c, + + 0x01, 0x05, 0xff, 0xff, 0x1e, 0x72, 0x08, 0x00, 0xfa, 0x28, 0x68, 0xa6, 0x46, 0xd1, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0xe9, 0x60, 0xce, 0x48, 0xda, 0x30, 0x30, 0x62, 0xf0, 0xbd, 0xc0, + 0x46, 0x25, 0x00, 0x00, 0x00, 0x55, 0x0c, 0x00, 0x00, 0xbd, 0x97, 0x02, 0x00, 0xa9, 0x60, + 0x08, 0x00, 0x63, 0x08, 0x00, 0x00, 0xa1, 0x69, 0x08, 0x00, 0x00, 0xb5, 0x30, 0x48, 0x00, + 0x78, 0x01, 0x28, 0x0c, 0xd1, 0xc5, 0x49, 0x08, 0x88, 0x10, 0x22, 0x90, 0x43, 0x08, 0x80, + 0xc3, 0x48, 0x00, 0x21, 0x06, 0x22, 0x01, 0x23, 0x9e, 0x46, 0x5d, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0x00, 0xbd, 0x00, 0xb5, 0x40, 0x69, 0x41, 0x7c, 0x0f, 0x29, 0x07, 0xd1, 0x00, 0x7c, + 0x01, 0x28, 0x04, 0xd1, 0x01, 0x20, 0x86, 0x46, 0xe7, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x00, + 0xbd, 0xc0, 0x46, 0x15, 0x60, 0x08, 0x00, 0x7d, 0x24, 0x00, 0x00, 0xc3, 0xf3, 0x00, 0x00, + 0x00, 0xb5, 0x40, 0x69, 0x00, 0x7a, 0x0f, 0x28, 0x04, 0xd1, 0x01, 0x20, 0x86, 0x46, 0xde, + 0x48, 0xfe, 0x44, 0x00, 0x47, 0x00, 0xbd, 0xc0, 0x46, 0x76, 0xfd, 0x00, 0x00, 0x39, 0x05, + 0x18, 0x00, 0x55, 0x00, 0x18, 0x00, 0x5d, 0x04, 0x18, 0x00, 0x7f, 0xfd, 0x00, 0x00, 0xd5, + 0x5f, 0x08, 0x00, 0xd3, 0x5f, 0x08, 0x00, 0x30, 0xb5, 0xa0, 0x4c, 0x21, 0x88, 0x0e, 0x48, + 0x00, 0x78, 0x01, 0x28, 0x1a, 0xd0, 0x83, 0x4d, 0x86, 0x3d, 0x28, 0x1c, 0x04, 0x21, 0x01, + 0x24, 0xa6, 0x46, 0x90, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x1b, 0xd1, 0x28, 0x1c, + 0x08, 0x21, 0xa6, 0x46, 0xcc, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x28, 0x1c, 0x07, 0x21, 0xa6, + 0x46, 0xc9, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x0e, 0xe0, 0xc0, 0x46, 0xa2, 0x52, 0x08, 0x00, + 0xc4, 0x4d, 0xa9, 0x42, + + 0x01, 0x05, 0xff, 0xff, 0x18, 0x73, 0x08, 0x00, 0xfa, 0x08, 0xd0, 0x63, 0x48, 0x4c, 0x30, + 0x00, 0x22, 0x01, 0x23, 0x9e, 0x46, 0x6e, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x25, 0x80, 0x6e, + 0x48, 0x00, 0x78, 0x6c, 0x49, 0x09, 0x78, 0x81, 0x42, 0x04, 0xd0, 0x01, 0x20, 0x86, 0x46, + 0x89, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x30, 0xbd, 0xd2, 0x5f, 0x08, 0x00, 0x01, 0x00, 0x18, + 0x00, 0xab, 0x06, 0x18, 0x00, 0x95, 0x52, 0x00, 0x00, 0xad, 0x03, 0x18, 0x00, 0x19, 0x06, + 0x18, 0x00, 0xed, 0x53, 0x00, 0x00, 0x99, 0x00, 0x18, 0x00, 0x01, 0x07, 0x18, 0x00, 0x00, + 0xb5, 0x40, 0x69, 0x00, 0x88, 0x01, 0x04, 0x09, 0x0e, 0x0a, 0x02, 0x09, 0x21, 0x89, 0x02, + 0x51, 0x1a, 0x04, 0xd0, 0x0f, 0x20, 0x40, 0x02, 0x09, 0x1a, 0x0e, 0xd0, 0x00, 0xbd, 0x00, + 0x06, 0x00, 0x0e, 0x09, 0x28, 0x12, 0xd1, 0xa8, 0x49, 0xa8, 0x4a, 0x09, 0x32, 0x05, 0x20, + 0x01, 0x23, 0x9e, 0x46, 0xa9, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x00, 0xbd, 0xa5, 0x49, 0xa5, + 0x48, 0x42, 0x1d, 0x05, 0x20, 0x01, 0x23, 0x9e, 0x46, 0xa4, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x00, 0xbd, 0xc0, 0x46, 0x11, 0x67, 0x00, 0x00, 0xb5, 0x41, 0x05, 0x00, 0x37, 0x10, 0x08, + 0x00, 0x30, 0x25, 0x08, 0x00, 0x5f, 0x44, 0x05, 0x00, 0x4e, 0x50, 0x08, 0x00, 0xed, 0x01, + 0x01, 0x00, 0x70, 0x55, 0x08, 0x00, 0x88, 0x7c, 0x1a, 0x00, 0x48, 0x31, 0x19, 0x00, 0x65, + 0xab, 0x04, 0x00, 0x7b, 0xab, 0x04, 0x00, 0x30, 0xb5, 0x01, 0x24, 0xa6, 0x46, 0xda, 0x48, + 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0xd9, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0xe5, + 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0xe4, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, + 0xe3, 0x48, 0xfe, 0x44, + + 0x01, 0x05, 0xff, 0xff, 0x12, 0x74, 0x08, 0x00, 0xfa, 0x00, 0x47, 0xde, 0x4d, 0x6a, 0x78, + 0x01, 0x2a, 0x08, 0xd1, 0xa6, 0x46, 0xe0, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0xdf, + 0x48, 0xfe, 0x44, 0x00, 0x47, 0x6a, 0x78, 0xde, 0x4b, 0x18, 0x78, 0x00, 0x28, 0x1b, 0xd0, + 0xde, 0x49, 0x01, 0x28, 0x12, 0xd0, 0xdb, 0x4d, 0x2d, 0x78, 0x03, 0x28, 0x02, 0xd0, 0x00, + 0x2d, 0x02, 0xd1, 0x11, 0xe0, 0x00, 0x2d, 0x09, 0xd0, 0x02, 0x28, 0x0d, 0xd1, 0x03, 0x20, + 0x18, 0x70, 0xa0, 0x20, 0x08, 0x70, 0x59, 0x20, 0x48, 0x70, 0x32, 0x20, 0x04, 0xe0, 0x02, + 0x20, 0x18, 0x70, 0x00, 0x20, 0x08, 0x70, 0x48, 0x70, 0x88, 0x70, 0x01, 0x2a, 0x18, 0xd1, + 0xd0, 0x48, 0x00, 0x21, 0xa6, 0x46, 0xcf, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x01, 0x1c, 0x3b, + 0x48, 0x05, 0xd1, 0x0a, 0x21, 0xa6, 0x46, 0x29, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x05, 0xe0, + 0x0a, 0x21, 0xa6, 0x46, 0x65, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x02, 0x24, 0xe1, 0x48, 0x00, + 0x68, 0x41, 0x21, 0x0c, 0x54, 0x30, 0xbd, 0xc0, 0x46, 0x0c, 0x74, 0x1a, 0x00, 0x1e, 0xf6, + 0x1a, 0x00, 0x7d, 0x51, 0x08, 0x00, 0x10, 0xb5, 0xdc, 0x4c, 0xdd, 0x48, 0x00, 0x78, 0x21, + 0x78, 0x81, 0x42, 0x0d, 0xdd, 0x07, 0x21, 0xd9, 0x48, 0x00, 0x22, 0x32, 0x23, 0x1b, 0x5c, + 0x00, 0x2b, 0x02, 0xd0, 0x52, 0x1c, 0x12, 0x06, 0x12, 0x0e, 0xac, 0x30, 0x01, 0x39, 0xf5, + 0xd1, 0x22, 0x70, 0x10, 0xbd, 0x1f, 0xac, 0x04, 0x00, 0xd6, 0x5f, 0x08, 0x00, 0x0a, 0x53, + 0x08, 0x00, 0x04, 0x7d, 0x1a, 0x00, 0xf0, 0xb5, 0x01, 0x24, 0xa6, 0x46, 0xd2, 0x48, 0xfe, + 0x44, 0x00, 0x47, 0xa6, 0x46, 0xcd, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x28, 0x10, 0xd0, + 0x11, 0x27, 0x09, 0x26, + + 0x01, 0x05, 0xff, 0xff, 0x0c, 0x75, 0x08, 0x00, 0xfa, 0xca, 0x4d, 0x3e, 0x20, 0x40, 0x5d, + 0xff, 0x28, 0x06, 0xd0, 0x3b, 0x20, 0x47, 0x55, 0x28, 0x1c, 0xa6, 0x46, 0xc7, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0x4c, 0x35, 0x01, 0x3e, 0xf1, 0xd1, 0xf0, 0xbd, 0x77, 0xae, 0x04, 0x00, + 0xfd, 0xaa, 0x04, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0xc2, 0x48, 0x04, 0x21, 0x01, 0x22, 0x96, + 0x46, 0x9d, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x02, 0xd0, 0x84, 0x48, 0x34, 0x30, + 0x20, 0x62, 0x10, 0xbd, 0xc0, 0x46, 0xd8, 0x5f, 0x08, 0x00, 0xd1, 0xae, 0x04, 0x00, 0x1e, + 0x60, 0x1a, 0x00, 0x9f, 0xae, 0x04, 0x00, 0x47, 0xa5, 0x03, 0x00, 0x2d, 0x6a, 0x05, 0x00, + 0x44, 0x7f, 0x1a, 0x00, 0x6a, 0x0a, 0x1a, 0x00, 0x30, 0xb5, 0x04, 0x1c, 0x20, 0x69, 0xa1, + 0x69, 0x00, 0x29, 0x44, 0xd0, 0x02, 0x78, 0xff, 0x2a, 0x41, 0xd0, 0x8a, 0x88, 0x89, 0x18, + 0x08, 0x22, 0xca, 0x42, 0x3c, 0xd0, 0x09, 0x7a, 0x4a, 0x08, 0xc9, 0x07, 0xc9, 0x0f, 0xc3, + 0x78, 0x00, 0x2b, 0x0a, 0xd0, 0x11, 0x2a, 0x08, 0xd1, 0x8b, 0x42, 0x06, 0xd1, 0xc3, 0x7f, + 0xdb, 0x08, 0x03, 0xd3, 0xa6, 0x4b, 0x1b, 0x78, 0xdb, 0x08, 0x1b, 0xd2, 0x3a, 0x23, 0x1b, + 0x5c, 0x25, 0x2b, 0x01, 0xd1, 0x17, 0x2a, 0x0d, 0xd0, 0x39, 0x23, 0x1b, 0x5c, 0x0a, 0x2b, + 0x20, 0xd1, 0x0f, 0x2a, 0x1e, 0xd1, 0x0f, 0x22, 0x2a, 0x23, 0x01, 0x25, 0xae, 0x46, 0x9d, + 0x4d, 0xfe, 0x44, 0x28, 0x47, 0x13, 0xe0, 0x17, 0x22, 0x2a, 0x23, 0x01, 0x25, 0xae, 0x46, + 0x99, 0x4d, 0xfe, 0x44, 0x28, 0x47, 0x0b, 0xe0, 0xff, 0x22, 0x8a, 0x32, 0x11, 0x23, 0x13, + 0x54, 0xff, 0x22, 0x89, 0x32, 0x11, 0x54, 0x01, 0x21, 0x8e, 0x46, 0x95, 0x49, 0xfe, 0x44, + 0x08, 0x47, 0x92, 0x48, + + 0x01, 0x05, 0xff, 0xff, 0x06, 0x76, 0x08, 0x00, 0xfa, 0xf0, 0x30, 0x20, 0x62, 0x30, 0xbd, + 0x00, 0xb5, 0x92, 0x49, 0x93, 0x48, 0x92, 0x4a, 0x12, 0x18, 0x15, 0x20, 0x01, 0x23, 0x9e, + 0x46, 0x08, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x00, 0xbd, 0x4d, 0x72, 0x08, 0x00, 0xff, 0xff, + 0x00, 0x00, 0x15, 0xab, 0x04, 0x00, 0x6d, 0x62, 0x08, 0x00, 0x45, 0xee, 0x00, 0x00, 0x27, + 0x62, 0x08, 0x00, 0x5d, 0x8c, 0x01, 0x00, 0xa1, 0x69, 0x08, 0x00, 0x70, 0xb5, 0x05, 0x1c, + 0x6e, 0x69, 0x28, 0x69, 0x29, 0x7e, 0xc9, 0x1e, 0x55, 0xd0, 0x21, 0x39, 0x43, 0xd0, 0x01, + 0x39, 0x01, 0x29, 0x2d, 0xd9, 0x02, 0x39, 0x01, 0x29, 0x16, 0xd9, 0x58, 0x39, 0x77, 0xd1, + 0xff, 0x21, 0x8d, 0x31, 0x89, 0x5d, 0x0c, 0x29, 0x72, 0xd1, 0x7c, 0x49, 0xc2, 0x78, 0x4a, + 0x70, 0x02, 0x79, 0x8a, 0x70, 0x42, 0x79, 0xca, 0x70, 0x82, 0x79, 0x0a, 0x71, 0xc2, 0x79, + 0x4a, 0x71, 0x02, 0x7a, 0xca, 0x80, 0x80, 0x7a, 0x08, 0x81, 0x70, 0xbd, 0x71, 0x7e, 0x00, + 0x29, 0x5f, 0xd0, 0x26, 0x21, 0x89, 0x5d, 0x03, 0x29, 0x5b, 0xda, 0xc2, 0x78, 0xf9, 0x21, + 0x11, 0x40, 0xc1, 0x70, 0x01, 0x79, 0x49, 0x06, 0x49, 0x0e, 0x01, 0x71, 0x42, 0x79, 0xfe, + 0x21, 0x11, 0x40, 0x41, 0x71, 0x70, 0xbd, 0x31, 0x7e, 0x00, 0x29, 0x4b, 0xd0, 0x00, 0x78, + 0x03, 0x28, 0x48, 0xda, 0x71, 0x7f, 0xf9, 0x20, 0x08, 0x40, 0x70, 0x77, 0xb0, 0x7f, 0x40, + 0x06, 0x40, 0x0e, 0xb0, 0x77, 0xf1, 0x7f, 0xfe, 0x20, 0x08, 0x40, 0xf0, 0x77, 0x70, 0xbd, + 0x01, 0x24, 0xa6, 0x46, 0x57, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0x52, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0x00, 0x28, 0x30, 0xd0, 0x5d, 0x48, 0x5c, 0x49, 0x08, 0x18, 0x28, 0x62, + 0x70, 0xbd, 0x00, 0x78, + + 0x01, 0x05, 0xff, 0xff, 0x00, 0x77, 0x08, 0x00, 0xfa, 0x11, 0x28, 0x28, 0xd1, 0xff, 0x20, + 0x71, 0x30, 0x80, 0x19, 0x01, 0x24, 0xa6, 0x46, 0x58, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x81, + 0x21, 0xc9, 0x00, 0x00, 0x88, 0x88, 0x42, 0x1b, 0xd1, 0x55, 0x49, 0xb0, 0x88, 0x88, 0x42, + 0x17, 0xd1, 0x3a, 0x20, 0x80, 0x5d, 0x00, 0x28, 0x03, 0xd1, 0x39, 0x21, 0x89, 0x5d, 0x0f, + 0x29, 0x0d, 0xd0, 0x0f, 0x28, 0x0d, 0xd1, 0x39, 0x20, 0x80, 0x5d, 0x00, 0x28, 0x09, 0xd1, + 0x00, 0x21, 0xb1, 0x80, 0x30, 0x1c, 0xa6, 0x46, 0x4b, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x70, + 0xbd, 0x00, 0x20, 0xb0, 0x80, 0x70, 0xbd, 0xbb, 0x2e, 0x05, 0x00, 0x71, 0x8d, 0x02, 0x00, + 0x70, 0xb5, 0x05, 0x1c, 0x6e, 0x69, 0x49, 0x48, 0x00, 0x78, 0x01, 0x28, 0x0e, 0xd1, 0x03, + 0x20, 0x42, 0x49, 0x01, 0x24, 0xa6, 0x46, 0x42, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x30, 0x1c, + 0xa6, 0x46, 0x40, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x40, 0x48, 0x1a, 0x30, 0x28, 0x62, 0x70, + 0xbd, 0xc0, 0x46, 0xa1, 0x52, 0x08, 0x00, 0x75, 0x59, 0x04, 0x00, 0xb5, 0x74, 0x08, 0x00, + 0xf1, 0x74, 0x08, 0x00, 0xd9, 0x5b, 0x18, 0x00, 0x61, 0x5c, 0x18, 0x00, 0x22, 0x50, 0x08, + 0x00, 0x20, 0x24, 0x08, 0x00, 0x10, 0x31, 0x19, 0x00, 0x4a, 0x75, 0x1a, 0x00, 0x59, 0xae, + 0x04, 0x00, 0xf0, 0xb5, 0xa4, 0xb0, 0x06, 0x1c, 0x31, 0x7c, 0x75, 0x69, 0xa8, 0x7c, 0x00, + 0x28, 0x03, 0xd1, 0x28, 0x68, 0xc0, 0x78, 0x00, 0x28, 0x25, 0xd1, 0x04, 0x29, 0x23, 0xd1, + 0x28, 0x68, 0x01, 0x78, 0x1b, 0x20, 0x01, 0x24, 0xa6, 0x46, 0x2b, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x01, 0x06, 0x09, 0x0e, 0x68, 0x46, 0xa6, 0x46, 0x28, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x12, 0x21, 0x4f, 0x19, + + 0x01, 0x05, 0xff, 0xff, 0xfa, 0x77, 0x08, 0x00, 0xfa, 0x01, 0x06, 0x09, 0x0e, 0x68, 0x46, + 0x3a, 0x1c, 0xa6, 0x46, 0x24, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xe8, 0x74, 0x15, 0x48, 0x39, + 0x1c, 0xa6, 0x46, 0x22, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x01, 0xd0, 0x02, 0x20, + 0x30, 0x61, 0x24, 0xb0, 0xf0, 0xbd, 0x38, 0x24, 0x08, 0x00, 0x2b, 0x10, 0x08, 0x00, 0x94, + 0x1a, 0x08, 0x00, 0x21, 0x50, 0x08, 0x00, 0xcd, 0x05, 0x01, 0x00, 0xb4, 0x46, 0x08, 0x00, + 0xd1, 0x34, 0x02, 0x00, 0xed, 0x01, 0x01, 0x00, 0x4a, 0x0c, 0x1a, 0x00, 0x99, 0x16, 0x08, + 0x00, 0xcb, 0xbf, 0x00, 0x00, 0xd1, 0xbe, 0x00, 0x00, 0xbf, 0x00, 0x03, 0x00, 0x45, 0x60, + 0x08, 0x00, 0x89, 0x02, 0x00, 0x00, 0xb9, 0xd1, 0x01, 0x00, 0x08, 0x60, 0x08, 0x00, 0x22, + 0x0c, 0x00, 0x00, 0x4d, 0xa8, 0x00, 0x00, 0x55, 0xf3, 0x03, 0x00, 0x05, 0x04, 0x00, 0x00, + 0xb7, 0xc8, 0x01, 0x00, 0xab, 0x05, 0x00, 0x00, 0x39, 0xa7, 0x04, 0x00, 0x4d, 0xee, 0x03, + 0x00, 0x7d, 0xbb, 0x03, 0x00, 0xd2, 0x5f, 0x08, 0x00, 0xaf, 0xf3, 0x04, 0x00, 0xb9, 0x08, + 0x01, 0x00, 0x87, 0x2d, 0x01, 0x00, 0xad, 0xaf, 0x02, 0x00, 0xff, 0xb5, 0x68, 0x46, 0xfe, + 0xf0, 0xfb, 0xf9, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x5b, 0xfd, 0xff, 0xbd, + 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x96, 0xfd, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, + 0xf7, 0x3b, 0xfa, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x52, 0xfe, 0xff, 0xbd, + 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x43, 0xff, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, + 0xf7, 0x6c, 0xff, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x8f, 0xfe, 0xff, 0xbd, + 0xff, 0xb5, 0x68, 0x46, + + 0x01, 0x05, 0xff, 0x83, 0xf4, 0x78, 0x08, 0x00, 0x7e, 0xff, 0xf7, 0xa6, 0xfe, 0xff, 0xbd, + 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x19, 0xfe, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, + 0xf7, 0xef, 0xf9, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x3b, 0xfa, 0xff, 0xbd, + 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x7d, 0xfb, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, + 0xf7, 0xc9, 0xf9, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0xed, 0xfa, 0xff, 0xbd, + 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x97, 0xfb, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, + 0xf7, 0xaa, 0xfc, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0xbf, 0xfc, 0xff, 0xbd, + 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x8b, 0xfc, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, + 0xf7, 0xfb, 0xfb, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x32, 0xfc, 0xff, 0xbd, + + + 0x01, 0x05, 0xff, 0x0d, 0x74, 0x7b, 0x08, 0x00, 0x08, 0x00, 0xb5, 0xf8, 0xf0, 0xf3, 0xfe, + 0x00, 0xbd, + + 0x01, 0x05, 0xff, 0x85, 0x80, 0x7b, 0x08, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5f, + 0x18, 0x00, 0x0f, 0x6b, 0x08, 0x00, 0x49, 0x6a, 0x08, 0x00, 0x27, 0x62, 0x08, 0x00, 0x87, + 0x62, 0x08, 0x00, 0xfb, 0x62, 0x08, 0x00, 0xe1, 0x5f, 0x08, 0x00, 0xeb, 0x6a, 0x08, 0x00, + 0x37, 0x63, 0x08, 0x00, 0x91, 0x63, 0x08, 0x00, 0x59, 0x64, 0x08, 0x00, 0xd9, 0x63, 0x08, + 0x00, 0xd1, 0x6b, 0x08, 0x00, 0x81, 0x6b, 0x08, 0x00, 0x43, 0x68, 0x08, 0x00, 0x6d, 0x68, + 0x08, 0x00, 0x99, 0x68, 0x08, 0x00, 0xaf, 0x69, 0x08, 0x00, 0x27, 0x68, 0x08, 0x00, 0x33, + 0x68, 0x08, 0x00, 0x5d, 0x5f, 0x18, 0x00, 0x29, 0x69, 0x08, 0x00, 0x71, 0x69, 0x08, 0x00, + 0xcf, 0x69, 0x08, 0x00, 0x0d, 0x6a, 0x08, 0x00, 0xd7, 0x61, 0x08, 0x00, 0xdd, 0x61, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x6a, 0x08, 0x00, 0x45, 0x65, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x85, 0x04, 0xf3, 0x1a, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xa8, 0x4e, + 0x02, 0x00, 0xb0, 0x4d, 0x02, 0x00, 0xe4, 0xc8, 0x01, 0x00, 0x62, 0x8c, 0x01, 0x00, 0xcc, + 0x22, 0x01, 0x00, 0x98, 0x9e, 0x01, 0x00, 0x5c, 0x24, 0x03, 0x00, 0x8c, 0xa1, 0x03, 0x00, + 0xc4, 0x62, 0x03, 0x00, 0x68, 0xd6, 0x02, 0x00, 0x92, 0x49, 0x02, 0x00, 0x64, 0x4c, 0x02, + 0x00, 0x8a, 0x8f, 0x02, 0x00, 0xc2, 0x95, 0x01, 0x00, 0x74, 0x31, 0x05, 0x00, 0xdc, 0x5f, + 0x03, 0x00, 0xbe, 0xd8, 0x01, 0x00, 0xd2, 0xa4, 0x03, 0x00, 0x14, 0xd8, 0x04, 0x00, 0x52, + 0x36, 0x00, 0x00, 0x78, 0x4f, 0x02, 0x00, 0x28, 0x32, 0x04, 0x00, 0x3a, 0xd5, 0x01, 0x00, + 0x0c, 0x97, 0x02, 0x00, 0x20, 0x9a, 0x01, 0x00, 0x4c, 0x9d, 0x04, 0x00, 0x4a, 0x36, 0x03, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x2a, 0x02, 0x00, 0x12, 0xef, 0x02, 0x00, 0xff, 0xff, + 0xff, 0xff, + + 0x01, 0x05, 0xff, 0xff, 0x00, 0x00, 0x18, 0x00, 0xfa, 0xf0, 0xb5, 0xff, 0xb0, 0xfc, 0xb0, + 0x05, 0x1c, 0x00, 0x21, 0x01, 0x24, 0xa6, 0x46, 0xe1, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xeb, + 0x7b, 0xe0, 0x49, 0xfa, 0x2b, 0x12, 0xdc, 0xda, 0x1c, 0x92, 0x10, 0x05, 0xd0, 0x01, 0xae, + 0x07, 0x68, 0x37, 0x60, 0x04, 0x36, 0x01, 0x3a, 0xfa, 0xd1, 0x68, 0x46, 0x03, 0x70, 0x28, + 0x1c, 0x00, 0x22, 0x01, 0xab, 0xa6, 0x46, 0xd8, 0x4c, 0xfe, 0x44, 0x20, 0x47, 0x05, 0xe0, + 0x28, 0x1c, 0x1e, 0x22, 0xa6, 0x46, 0xd5, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x7f, 0xb0, 0x7c, + 0xb0, 0xf0, 0xbd, 0x7e, 0xb5, 0x0f, 0x20, 0x6d, 0x46, 0x28, 0x72, 0xd1, 0x48, 0x00, 0x78, + 0xe8, 0x80, 0x7d, 0x26, 0xf6, 0x00, 0x04, 0xe0, 0x0a, 0x20, 0xa6, 0x46, 0xce, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0x68, 0x46, 0x01, 0x24, 0xa6, 0x46, 0xed, 0x49, 0xfe, 0x44, 0x08, 0x47, + 0x00, 0x28, 0x05, 0xd0, 0x30, 0x1c, 0x41, 0x1e, 0x0e, 0x04, 0x36, 0x0c, 0x00, 0x28, 0xec, + 0xd1, 0xa6, 0x46, 0xe8, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x7e, 0xbd, 0xfc, 0xb5, 0x06, 0x1c, + 0xf1, 0x7a, 0x00, 0x91, 0x01, 0x21, 0x0c, 0x1c, 0x8e, 0x46, 0xbb, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x05, 0x1c, 0xb0, 0x7d, 0x01, 0x90, 0xde, 0x48, 0x00, 0x78, 0xe0, 0x4e, 0x00, 0x28, + 0x00, 0xd0, 0xc3, 0xe0, 0x69, 0x1c, 0x00, 0xd1, 0xc0, 0xe0, 0x30, 0x1c, 0x00, 0x78, 0x01, + 0x28, 0x02, 0xd1, 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, 0x68, 0x43, + 0xd8, 0x49, 0x08, 0x18, 0xd8, 0x49, 0xa6, 0x46, 0xd8, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x09, + 0x04, 0x09, 0x0c, 0xd8, 0x48, 0x04, 0x30, 0x06, 0x22, 0xa6, 0x46, 0xd5, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0xd4, 0x48, + + 0x01, 0x05, 0xff, 0xff, 0xfa, 0x00, 0x18, 0x00, 0xfa, 0x5a, 0x30, 0x00, 0x21, 0xa6, 0x46, + 0xd3, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x06, 0x1c, 0xd0, 0x48, 0x08, 0x21, 0xa6, 0x46, 0xd0, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x86, 0x19, 0x14, 0x2e, 0x00, 0xd8, 0x14, 0x26, 0xcd, 0x4f, + 0x38, 0x1c, 0x0a, 0x21, 0xa6, 0x46, 0xcc, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x06, 0x28, 0x43, + 0xd0, 0x00, 0x98, 0x01, 0x28, 0x40, 0xd0, 0xc0, 0x48, 0x00, 0x78, 0x01, 0x28, 0x02, 0xd1, + 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, 0x68, 0x43, 0xbc, 0x49, 0x08, + 0x18, 0xbc, 0x49, 0xa6, 0x46, 0xbc, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x88, 0x1b, 0x01, 0x04, + 0x09, 0x0c, 0x00, 0x26, 0x38, 0x1c, 0x32, 0x1c, 0xa6, 0x46, 0xb8, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0xf0, 0x48, 0x08, 0x21, 0xa6, 0x46, 0xb7, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x07, 0x1c, + 0xec, 0x48, 0x31, 0x1c, 0xa6, 0x46, 0xb4, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xb8, 0x42, 0x06, + 0xdd, 0xe8, 0x48, 0x31, 0x1c, 0xa6, 0x46, 0xb0, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x05, 0xe0, + 0xe5, 0x48, 0x08, 0x21, 0xa6, 0x46, 0xac, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x07, 0x1c, 0xa9, + 0x48, 0x31, 0x1c, 0xa6, 0x46, 0xa9, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x3e, 0x18, 0x08, 0x36, + 0x2c, 0xe0, 0x38, 0x1c, 0x14, 0x21, 0x00, 0x22, 0xa6, 0x46, 0xa2, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0xd9, 0x48, 0x08, 0x21, 0xa6, 0x46, 0xa1, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x07, 0x1c, + 0xd6, 0x48, 0x00, 0x21, 0xa6, 0x46, 0x9d, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xb8, 0x42, 0x06, + 0xdd, 0xd2, 0x48, 0x00, 0x21, 0xa6, 0x46, 0x99, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x05, 0xe0, + 0xce, 0x48, 0x08, 0x21, + + 0x01, 0x05, 0xff, 0xff, 0xf4, 0x01, 0x18, 0x00, 0xfa, 0xa6, 0x46, 0x96, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0x07, 0x1c, 0x93, 0x48, 0x00, 0x21, 0xa6, 0x46, 0x92, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x38, 0x18, 0x36, 0x18, 0x1e, 0x36, 0x89, 0x48, 0x00, 0x78, 0x01, 0x28, 0x02, 0xd1, + 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, 0x68, 0x43, 0x85, 0x49, 0x08, + 0x18, 0x85, 0x49, 0xa6, 0x46, 0x85, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x70, 0x18, 0x01, 0x04, + 0x09, 0x0c, 0xbd, 0x48, 0x00, 0x22, 0xa6, 0x46, 0xbd, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x93, + 0xe0, 0x01, 0x28, 0x00, 0xd0, 0xa1, 0xe0, 0x69, 0x1c, 0x00, 0xd1, 0x8f, 0xe0, 0x7e, 0x48, + 0x7e, 0x30, 0x00, 0x21, 0xa6, 0x46, 0xeb, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x07, 0x1c, 0x7a, + 0x48, 0x82, 0x30, 0x00, 0x21, 0xa6, 0x46, 0xe6, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xc7, 0x19, + 0x76, 0x48, 0x02, 0x38, 0x00, 0x21, 0xa6, 0x46, 0xe4, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xe3, + 0x49, 0x01, 0x28, 0x34, 0xd0, 0x00, 0x98, 0x01, 0x28, 0x31, 0xd0, 0x30, 0x78, 0x01, 0x28, + 0x02, 0xd1, 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, 0x68, 0x43, 0x67, + 0x49, 0x08, 0x18, 0x67, 0x49, 0xa6, 0x46, 0x67, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xc8, 0x1b, + 0x01, 0x04, 0x09, 0x0c, 0xd7, 0x48, 0xa6, 0x46, 0xd7, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x30, + 0x78, 0x01, 0x28, 0x02, 0xd1, 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, + 0x68, 0x43, 0x5b, 0x49, 0x08, 0x18, 0x5b, 0x49, 0xa6, 0x46, 0x5b, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x48, 0x1d, 0x01, 0x04, 0x09, 0x0c, 0x93, 0x48, 0x00, 0x22, 0xa6, 0x46, 0x92, 0x4b, + 0xfe, 0x44, 0x18, 0x47, + + 0x01, 0x05, 0xff, 0xff, 0xee, 0x02, 0x18, 0x00, 0xfa, 0x3e, 0xe0, 0x08, 0x1c, 0x00, 0x21, + 0xa6, 0x46, 0xc7, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x53, 0x48, 0x90, 0x30, 0x00, 0x21, 0xa6, + 0x46, 0xc3, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x30, 0x78, 0x01, 0x28, 0x02, 0xd1, 0x01, 0x20, + 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, 0x68, 0x43, 0x47, 0x49, 0x08, 0x18, 0x47, + 0x49, 0xa6, 0x46, 0x47, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x09, 0x04, 0x09, 0x0c, 0x47, 0x48, + 0x8e, 0x30, 0xa6, 0x46, 0xb7, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x30, 0x78, 0x01, 0x28, 0x02, + 0xd1, 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, 0x68, 0x43, 0x3b, 0x49, + 0x08, 0x18, 0x3b, 0x49, 0xa6, 0x46, 0x3b, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x78, 0x18, 0x05, + 0x30, 0x01, 0x04, 0x09, 0x0c, 0x73, 0x48, 0x00, 0x22, 0xa6, 0x46, 0x72, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0x2f, 0x48, 0x00, 0x78, 0x01, 0x28, 0x0c, 0xd1, 0x00, 0x98, 0x00, 0x28, 0x09, + 0xd0, 0x01, 0x98, 0xff, 0x28, 0x06, 0xd1, 0x32, 0x48, 0x04, 0x21, 0x08, 0x22, 0xa6, 0x46, + 0xda, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xfc, 0xbd, 0xc0, 0x46, 0x91, 0x24, 0x00, 0x00, 0x7f, + 0xfd, 0x00, 0x00, 0x29, 0x42, 0x05, 0x00, 0xb5, 0x41, 0x05, 0x00, 0x7e, 0x51, 0x08, 0x00, + 0x3f, 0x4a, 0x04, 0x00, 0x70, 0xb5, 0x45, 0x7b, 0x86, 0x7b, 0x1e, 0x49, 0x09, 0x78, 0x01, + 0x29, 0x37, 0xd1, 0x00, 0x7b, 0x40, 0x1e, 0x07, 0xd0, 0x01, 0x38, 0x03, 0xd0, 0x01, 0x38, + 0x30, 0xd1, 0x00, 0x21, 0x02, 0xe0, 0x02, 0x21, 0x00, 0xe0, 0x03, 0x21, 0x1e, 0x48, 0x32, + 0x30, 0x07, 0x22, 0x01, 0x24, 0xa6, 0x46, 0xc7, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xc5, 0x48, + 0x01, 0x2d, 0x11, 0xd0, + + 0x01, 0x05, 0xff, 0xff, 0xe8, 0x03, 0x18, 0x00, 0xfa, 0x00, 0x2d, 0x08, 0xd0, 0x02, 0x2d, + 0x1c, 0xd1, 0x00, 0x21, 0x0e, 0x22, 0xa6, 0x46, 0xc1, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x70, + 0xbd, 0x03, 0x21, 0x0e, 0x22, 0xa6, 0x46, 0xbd, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x70, 0xbd, + 0x00, 0x2e, 0x06, 0xd1, 0x02, 0x21, 0x0e, 0x22, 0xa6, 0x46, 0xb9, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0x70, 0xbd, 0x21, 0x1c, 0x0e, 0x22, 0xa6, 0x46, 0xb5, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x70, 0xbd, 0xa2, 0x52, 0x08, 0x00, 0xe7, 0x63, 0x04, 0x00, 0x23, 0xda, 0x03, 0x00, 0x0b, + 0x53, 0x08, 0x00, 0x3f, 0x42, 0x0f, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x2d, 0x6a, 0x05, 0x00, + 0xbd, 0xac, 0x04, 0x00, 0x16, 0x74, 0x1a, 0x00, 0xd1, 0xae, 0x04, 0x00, 0x42, 0x74, 0x1a, + 0x00, 0x81, 0xae, 0x04, 0x00, 0xf0, 0xb5, 0xdc, 0x49, 0x09, 0x78, 0x01, 0x29, 0x60, 0xd1, + 0xc2, 0x7a, 0xd4, 0x49, 0x0a, 0x70, 0xd4, 0x49, 0x03, 0x7b, 0x0b, 0x70, 0x40, 0x7b, 0xd3, + 0x4b, 0x18, 0x70, 0x00, 0x2a, 0x55, 0xd1, 0x9e, 0x4d, 0x2f, 0x1c, 0xb4, 0x3f, 0xd1, 0x4e, + 0x01, 0x24, 0xa6, 0x46, 0xd0, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x39, 0x88, 0x01, 0x40, 0x48, + 0x08, 0x05, 0xd0, 0x30, 0x1c, 0x41, 0x1e, 0x0e, 0x04, 0x36, 0x0c, 0x00, 0x28, 0xf0, 0xd1, + 0xa6, 0x46, 0xc9, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x39, 0x88, 0x01, 0x40, 0x48, 0x08, 0x04, + 0xd0, 0x58, 0x20, 0xa6, 0x46, 0xe8, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x26, 0x0c, 0x20, + 0x02, 0x1c, 0xe6, 0x48, 0x31, 0x1c, 0xa6, 0x46, 0xe5, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x08, + 0x20, 0x02, 0x1c, 0x28, 0x1c, 0x28, 0x38, 0x31, 0x1c, 0xa6, 0x46, 0xe2, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0x04, 0x3d, + + 0x01, 0x05, 0xff, 0xff, 0xe2, 0x04, 0x18, 0x00, 0xfa, 0x28, 0x1c, 0x21, 0x1c, 0x0c, 0x22, + 0xa6, 0x46, 0x84, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xde, 0x48, 0x08, 0x30, 0x08, 0x21, 0xa6, + 0x46, 0xdb, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x14, 0x20, 0xa6, 0x46, 0xdb, 0x49, 0xfe, 0x44, + 0x08, 0x47, 0xd8, 0x48, 0x07, 0x21, 0xa6, 0x46, 0x3f, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xaa, + 0x49, 0x08, 0x70, 0x28, 0x1c, 0x31, 0x1c, 0x0c, 0x22, 0xa6, 0x46, 0x76, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0x3e, 0x80, 0xf0, 0xbd, 0xc0, 0x46, 0x44, 0x74, 0x1a, 0x00, 0x04, 0x60, 0x1a, + 0x00, 0xf3, 0xac, 0x04, 0x00, 0xf0, 0xb5, 0x85, 0xb0, 0x6c, 0x46, 0x0b, 0x21, 0x09, 0x18, + 0x68, 0x46, 0x14, 0x22, 0x01, 0x26, 0xb6, 0x46, 0xca, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x20, + 0x78, 0x01, 0x28, 0x01, 0xd0, 0x02, 0x28, 0x12, 0xd1, 0x9a, 0x48, 0x00, 0x78, 0x04, 0xab, + 0x00, 0x22, 0x99, 0x56, 0x81, 0x42, 0x0b, 0xdd, 0x99, 0x56, 0x08, 0x1a, 0x03, 0x06, 0x1b, + 0x0e, 0x10, 0x21, 0x68, 0x46, 0x40, 0x1c, 0x85, 0x56, 0xed, 0x1a, 0x05, 0x70, 0x01, 0x39, + 0xf9, 0xd1, 0x21, 0x78, 0xbd, 0x48, 0x00, 0x29, 0x30, 0xd0, 0x01, 0x39, 0x26, 0xd0, 0x01, + 0x39, 0x1d, 0xd0, 0x01, 0x39, 0x31, 0xd1, 0x67, 0x1c, 0x05, 0x1c, 0x78, 0x3d, 0x58, 0x20, + 0x40, 0x19, 0x39, 0x1c, 0x10, 0x22, 0xb6, 0x46, 0xb3, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x68, + 0x20, 0x40, 0x19, 0x39, 0x1c, 0x10, 0x22, 0xb6, 0x46, 0xaf, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x78, 0x20, 0x40, 0x19, 0x39, 0x1c, 0x10, 0x22, 0xb6, 0x46, 0xab, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0x15, 0xe0, 0x61, 0x1c, 0x10, 0x22, 0xb6, 0x46, 0xa8, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x0e, 0xe0, 0x61, 0x1c, + + 0x01, 0x05, 0xff, 0xff, 0xdc, 0x05, 0x18, 0x00, 0xfa, 0x10, 0x38, 0x10, 0x22, 0xb6, 0x46, + 0xa4, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x06, 0xe0, 0x61, 0x1c, 0x20, 0x38, 0x10, 0x22, 0xb6, + 0x46, 0xa0, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x60, 0x8a, 0xa0, 0x49, 0x08, 0x80, 0x05, 0xb0, + 0xf0, 0xbd, 0xc0, 0x46, 0xdb, 0xae, 0x04, 0x00, 0xf9, 0xae, 0x04, 0x00, 0x59, 0xae, 0x04, + 0x00, 0x92, 0x74, 0x1a, 0x00, 0xe9, 0xac, 0x04, 0x00, 0xf8, 0xb5, 0x04, 0x1c, 0x27, 0x7b, + 0xe0, 0x7a, 0x97, 0x49, 0x09, 0x78, 0x81, 0x42, 0x3f, 0xd1, 0x93, 0x48, 0x24, 0x38, 0x00, + 0x88, 0x61, 0x7b, 0x81, 0x42, 0x39, 0xd1, 0xa0, 0x7b, 0x00, 0x90, 0x93, 0x48, 0x05, 0x1c, + 0x02, 0x3d, 0x28, 0x1c, 0x14, 0x21, 0x01, 0x26, 0xb6, 0x46, 0x8f, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x8e, 0x48, 0x0b, 0x21, 0x00, 0x22, 0xb6, 0x46, 0x82, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x28, 0x1c, 0x14, 0x21, 0xb6, 0x46, 0x81, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x88, 0x4d, 0x06, + 0x3d, 0xb8, 0x01, 0xe8, 0x82, 0x2f, 0x8a, 0x19, 0x20, 0x28, 0x82, 0x02, 0x20, 0xb6, 0x46, + 0x7d, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x98, 0x00, 0x28, 0x10, 0xd0, 0x00, 0x98, 0xc0, + 0x1c, 0x82, 0x10, 0xa1, 0x7c, 0xe0, 0x7c, 0x00, 0x02, 0x08, 0x43, 0x21, 0x7d, 0x09, 0x04, + 0x01, 0x43, 0x60, 0x7d, 0x00, 0x06, 0x08, 0x43, 0x28, 0x60, 0x04, 0x34, 0x01, 0x3a, 0xf1, + 0xd1, 0x2f, 0x82, 0xf8, 0xbd, 0x30, 0xb5, 0xc5, 0x7a, 0x01, 0x24, 0xa6, 0x46, 0x76, 0x49, + 0xfe, 0x44, 0x08, 0x47, 0x75, 0x48, 0x01, 0x78, 0x75, 0x48, 0x00, 0x2d, 0x0d, 0xd0, 0x01, + 0x2d, 0x01, 0xd0, 0x02, 0x2d, 0x12, 0xd1, 0x0c, 0x22, 0x4a, 0x43, 0x72, 0x49, 0x89, 0x18, + 0x0c, 0x22, 0xa6, 0x46, + + 0x01, 0x05, 0xff, 0xff, 0xd6, 0x06, 0x18, 0x00, 0xfa, 0x67, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x30, 0xbd, 0x0c, 0x22, 0x4a, 0x43, 0x6e, 0x49, 0x89, 0x18, 0x0c, 0x22, 0xa6, 0x46, 0x62, + 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x30, 0xbd, 0xc0, 0x46, 0x1f, 0xac, 0x04, 0x00, 0xb4, 0x7c, + 0x1a, 0x00, 0x65, 0xab, 0x04, 0x00, 0xf0, 0xb5, 0x07, 0x1c, 0x01, 0x24, 0xa6, 0x46, 0x65, + 0x49, 0xfe, 0x44, 0x08, 0x47, 0x7e, 0x7b, 0x2f, 0x4d, 0x01, 0x3d, 0x68, 0x78, 0x71, 0x08, + 0x30, 0xd1, 0xb9, 0x7b, 0x00, 0x28, 0x17, 0xd1, 0x01, 0x29, 0x0d, 0xd1, 0x61, 0x48, 0x0a, + 0x38, 0x00, 0x21, 0x04, 0x22, 0xa6, 0x46, 0x4c, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x20, 0x1c, + 0x21, 0x1c, 0x8e, 0x46, 0x5a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x59, 0x48, 0x68, 0x38, 0x0a, + 0x21, 0xa6, 0x46, 0x47, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x14, 0xe0, 0x01, 0x28, 0x14, 0xd1, + 0x41, 0x48, 0x00, 0x21, 0x04, 0x22, 0xa6, 0x46, 0x40, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x20, + 0x1c, 0x05, 0x21, 0xa6, 0x46, 0x4e, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x4e, 0x48, 0x00, 0x21, + 0xa6, 0x46, 0x43, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x68, 0x78, 0xb9, 0x7b, 0x00, 0x28, 0x1a, + 0xd1, 0x01, 0x29, 0x18, 0xd1, 0x02, 0x2e, 0x05, 0xd0, 0x03, 0x2e, 0x03, 0xd0, 0x04, 0x2e, + 0x01, 0xd0, 0x01, 0x2e, 0x10, 0xd1, 0xf8, 0x7b, 0x00, 0x28, 0x0d, 0xd1, 0x42, 0x48, 0x54, + 0x38, 0x00, 0x21, 0x0a, 0x1c, 0xa6, 0x46, 0x42, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x3f, 0x48, + 0x21, 0x1c, 0x8e, 0x46, 0x34, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xf0, 0xbd, 0xc0, 0x46, 0xd4, + 0x5f, 0x08, 0x00, 0xd5, 0x5f, 0x08, 0x00, 0xd3, 0x5f, 0x08, 0x00, 0xff, 0x7f, 0x00, 0x00, + 0x1d, 0x05, 0x04, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0xd0, 0x07, 0x18, 0x00, 0xfa, 0xa2, 0x52, 0x08, 0x00, 0x00, 0x20, + 0x4d, 0x49, 0x08, 0x70, 0x36, 0x49, 0x08, 0x1c, 0xbc, 0x38, 0x84, 0x22, 0x12, 0x18, 0x34, + 0x4b, 0x43, 0x62, 0x34, 0x4b, 0xd3, 0x63, 0x34, 0x4b, 0x03, 0x61, 0x34, 0x4b, 0xcb, 0x67, + 0x34, 0x4b, 0x53, 0x67, 0x34, 0x4b, 0x43, 0x61, 0x34, 0x4b, 0x93, 0x67, 0x34, 0x4b, 0xcb, + 0x66, 0x34, 0x49, 0x81, 0x65, 0x34, 0x49, 0x81, 0x62, 0x34, 0x49, 0xd1, 0x67, 0x34, 0x49, + 0x51, 0x65, 0x34, 0x49, 0x01, 0x60, 0x34, 0x49, 0xd1, 0x60, 0x34, 0x49, 0x01, 0x65, 0x34, + 0x49, 0xc1, 0x64, 0x34, 0x49, 0x11, 0x60, 0x34, 0x49, 0x11, 0x62, 0x34, 0x49, 0xc1, 0x66, + 0x37, 0x49, 0x09, 0x78, 0x01, 0x29, 0x01, 0xd1, 0x32, 0x49, 0x81, 0x64, 0x32, 0x49, 0x81, + 0x61, 0x34, 0x48, 0x01, 0x78, 0x01, 0x29, 0x05, 0xd1, 0x33, 0x21, 0x40, 0x68, 0x0a, 0x5c, + 0x12, 0x07, 0x12, 0x0f, 0x0a, 0x54, 0xf7, 0x46, 0xc0, 0x46, 0x1b, 0xa7, 0x04, 0x00, 0x16, + 0xf6, 0x1a, 0x00, 0xb9, 0xab, 0x04, 0x00, 0x7b, 0xab, 0x04, 0x00, 0xfd, 0xaa, 0x04, 0x00, + 0x00, 0xf0, 0x1a, 0x00, 0x3f, 0x4a, 0x04, 0x00, 0xc1, 0x78, 0x05, 0x00, 0x38, 0x31, 0x19, + 0x00, 0x3c, 0x20, 0x08, 0x00, 0x7d, 0x51, 0x08, 0x00, 0x15, 0xab, 0x04, 0x00, 0x06, 0x02, + 0x19, 0x00, 0x01, 0x71, 0x00, 0x00, 0xba, 0x52, 0x08, 0x00, 0x48, 0x31, 0x19, 0x00, 0x3c, + 0x09, 0x18, 0x00, 0x18, 0x09, 0x18, 0x00, 0x1d, 0x50, 0x00, 0x00, 0x85, 0x67, 0x05, 0x00, + 0x04, 0x7d, 0x1a, 0x00, 0x1e, 0xf6, 0x1a, 0x00, 0x65, 0xab, 0x04, 0x00, 0x80, 0x4e, 0x08, + 0x00, 0x05, 0x79, 0x08, 0x00, 0x23, 0x79, 0x08, 0x00, 0x2d, 0x79, 0x08, 0x00, 0x19, 0x79, + 0x08, 0x00, 0x0f, 0x79, + + 0x01, 0x05, 0xff, 0xff, 0xca, 0x08, 0x18, 0x00, 0xfa, 0x08, 0x00, 0x37, 0x79, 0x08, 0x00, + 0x5f, 0x79, 0x08, 0x00, 0x69, 0x79, 0x08, 0x00, 0x55, 0x79, 0x08, 0x00, 0x41, 0x79, 0x08, + 0x00, 0x4b, 0x79, 0x08, 0x00, 0xfb, 0x78, 0x08, 0x00, 0xb5, 0x78, 0x08, 0x00, 0xc9, 0x78, + 0x08, 0x00, 0xe7, 0x78, 0x08, 0x00, 0xbf, 0x78, 0x08, 0x00, 0xf1, 0x78, 0x08, 0x00, 0xd3, + 0x78, 0x08, 0x00, 0xdd, 0x78, 0x08, 0x00, 0xa1, 0x78, 0x08, 0x00, 0xab, 0x78, 0x08, 0x00, + 0x22, 0x50, 0x08, 0x00, 0xa2, 0x52, 0x08, 0x00, 0x34, 0x24, 0x08, 0x00, 0x00, 0x10, 0x80, + 0x0f, 0x40, 0x0f, 0x00, 0x0f, 0x80, 0x0e, 0xc0, 0x0d, 0xc0, 0x0f, 0x40, 0x0f, 0x00, 0x0f, + 0xc0, 0x0e, 0x40, 0x0e, 0xc0, 0x0d, 0x40, 0x10, 0xc0, 0x0f, 0x80, 0x0f, 0x40, 0x0f, 0xc0, + 0x0e, 0x00, 0x0e, 0x80, 0x0e, 0x40, 0x0e, 0xc0, 0x0d, 0x80, 0x0d, 0x00, 0x0d, 0x40, 0x0c, + 0xc0, 0x0d, 0x80, 0x0d, 0x40, 0x0d, 0xc0, 0x0c, 0xc0, 0x0c, 0x40, 0x0c, 0x00, 0x0e, 0x00, + 0x0e, 0x80, 0x0d, 0x80, 0x0d, 0x00, 0x0d, 0x80, 0x0c, 0xf0, 0xb5, 0x91, 0xb0, 0xd9, 0x48, + 0x06, 0xc8, 0x68, 0x46, 0x0c, 0x90, 0x06, 0xc0, 0xd8, 0x48, 0x06, 0xc8, 0x02, 0xa8, 0x06, + 0xc0, 0xd7, 0x48, 0x06, 0xc8, 0x04, 0xa8, 0x06, 0xc0, 0xd6, 0x48, 0x06, 0xc8, 0x06, 0xa8, + 0x06, 0xc0, 0xd5, 0x48, 0x06, 0xc8, 0x08, 0xa8, 0x06, 0xc0, 0xd4, 0x48, 0x06, 0xc8, 0x0a, + 0xa8, 0x06, 0xc0, 0xd3, 0x4e, 0x02, 0x20, 0x30, 0x70, 0x1f, 0x23, 0x73, 0x70, 0xb3, 0x70, + 0x7b, 0x20, 0xf0, 0x70, 0x03, 0x20, 0x02, 0x22, 0xcf, 0x4f, 0x39, 0x1c, 0x01, 0x39, 0x01, + 0x24, 0xa6, 0x46, 0xf1, 0x4d, 0xfe, 0x44, 0x28, 0x47, 0xb2, 0x78, 0xf3, 0x78, 0x03, 0x20, + 0x39, 0x1c, 0xa6, 0x46, + + 0x01, 0x05, 0xff, 0xff, 0xc4, 0x09, 0x18, 0x00, 0xfa, 0xed, 0x4d, 0xfe, 0x44, 0x28, 0x47, + 0x03, 0x20, 0x39, 0x1c, 0x01, 0x31, 0xa6, 0x46, 0xeb, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xa6, + 0x46, 0xeb, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xe8, 0x49, 0x08, 0x60, 0xea, 0x48, 0xe9, 0x49, + 0x08, 0x80, 0xea, 0x48, 0x04, 0x70, 0xff, 0x20, 0xe9, 0x49, 0x08, 0x70, 0x00, 0x25, 0xe9, + 0x48, 0x05, 0x70, 0xa6, 0x46, 0xe8, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xe8, 0x4a, 0x28, 0x1c, + 0x01, 0x1c, 0x13, 0x68, 0x00, 0x2b, 0x02, 0xd0, 0x23, 0x1c, 0x8b, 0x40, 0x18, 0x43, 0x04, + 0x32, 0x01, 0x31, 0x20, 0x29, 0xf5, 0xd3, 0xe7, 0x4f, 0x39, 0x1c, 0x84, 0x31, 0x08, 0x60, + 0xe0, 0x48, 0x05, 0x60, 0xe5, 0x48, 0x40, 0x78, 0x01, 0x28, 0x08, 0xd1, 0xf0, 0x78, 0x40, + 0x06, 0x41, 0x0e, 0x1d, 0x20, 0x00, 0x02, 0x08, 0x43, 0xdb, 0x49, 0x09, 0x68, 0x88, 0x86, + 0xdb, 0x48, 0x06, 0x1c, 0xb4, 0x72, 0xda, 0x48, 0x01, 0x78, 0xda, 0x48, 0x2a, 0x1c, 0xa6, + 0x46, 0xf0, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xf0, 0x48, 0x48, 0x30, 0x0c, 0x21, 0xa6, 0x46, + 0xed, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xed, 0x48, 0x04, 0x21, 0xa6, 0x46, 0xea, 0x4a, 0xfe, + 0x44, 0x10, 0x47, 0x38, 0x1c, 0x05, 0x21, 0xa6, 0x46, 0xe7, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0xe9, 0x48, 0x4c, 0x38, 0x02, 0x21, 0xa6, 0x46, 0xe4, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xff, + 0x20, 0x44, 0x30, 0x85, 0x55, 0xf2, 0x20, 0x80, 0x5d, 0xe2, 0x4e, 0x64, 0x28, 0x08, 0xda, + 0xe1, 0x48, 0x09, 0x21, 0xa6, 0x46, 0xe1, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x06, 0x00, + 0x0e, 0x01, 0xe0, 0x80, 0x07, 0x80, 0x0f, 0xb0, 0x75, 0x0d, 0x96, 0xdd, 0x49, 0x48, 0x70, + 0xdf, 0x4f, 0x3e, 0x1c, + + 0x01, 0x05, 0xff, 0xff, 0xbe, 0x0a, 0x18, 0x00, 0xfa, 0xaa, 0x3e, 0xa5, 0x21, 0x88, 0x55, + 0xa6, 0x46, 0xda, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0xd9, 0x48, 0xfe, 0x44, 0x00, + 0x47, 0x05, 0x20, 0x01, 0x1c, 0xd2, 0x48, 0xa6, 0x46, 0xd7, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x01, 0x1c, 0x38, 0x1c, 0x2a, 0x1c, 0xa6, 0x46, 0xd5, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xd7, + 0x48, 0x07, 0x1c, 0x02, 0x3f, 0x38, 0x1c, 0x05, 0x21, 0xa6, 0x46, 0xd1, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0x38, 0x1c, 0x08, 0x21, 0xa6, 0x46, 0xce, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xce, + 0x4f, 0x38, 0x1c, 0x04, 0x21, 0x2a, 0x1c, 0xa6, 0x46, 0xc9, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x04, 0x20, 0x02, 0x1c, 0x38, 0x1c, 0x11, 0x1c, 0xa6, 0x46, 0xc5, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0xc7, 0x48, 0x04, 0x70, 0xbc, 0x48, 0x0a, 0x30, 0x06, 0x21, 0x2a, 0x1c, 0xa6, 0x46, + 0xc0, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xf2, 0x48, 0x1b, 0x21, 0xc1, 0x81, 0xc1, 0x48, 0x02, + 0x30, 0x02, 0x21, 0x07, 0x22, 0xa6, 0x46, 0xef, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x8d, 0x4f, + 0x7f, 0x08, 0x0e, 0x96, 0xb3, 0x4e, 0xec, 0x48, 0x80, 0x78, 0x00, 0x28, 0x32, 0xd1, 0x13, + 0x21, 0xe8, 0x48, 0xc1, 0x81, 0x94, 0x48, 0x40, 0x78, 0x00, 0x28, 0x16, 0xd0, 0x01, 0x28, + 0x29, 0xd1, 0xb5, 0x48, 0x04, 0x21, 0xa6, 0x46, 0xa5, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xb2, + 0x48, 0x08, 0x38, 0x29, 0x1c, 0x0a, 0x1c, 0xa6, 0x46, 0xab, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x20, 0x1c, 0x04, 0x21, 0xa6, 0x46, 0xde, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x14, 0xe0, 0x03, + 0x20, 0x01, 0x1c, 0xa9, 0x48, 0xa6, 0x46, 0x9a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xa7, 0x48, + 0x0a, 0x38, 0x29, 0x1c, + + 0x01, 0x05, 0xff, 0xff, 0xb8, 0x0b, 0x18, 0x00, 0xfa, 0x0c, 0x22, 0xa6, 0x46, 0xa0, 0x4b, + 0xfe, 0x44, 0x18, 0x47, 0x20, 0x1c, 0x03, 0x21, 0xa6, 0x46, 0xd3, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0xd3, 0x49, 0x08, 0x1c, 0x0f, 0x91, 0x40, 0x38, 0x0f, 0x90, 0x0a, 0x9a, 0xc2, 0x63, + 0x0c, 0x98, 0x82, 0x8d, 0x0a, 0x80, 0x21, 0x1c, 0xce, 0x48, 0x98, 0x30, 0xa6, 0x46, 0x8b, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xcb, 0x48, 0x00, 0x99, 0x01, 0x60, 0x01, 0x99, 0x41, 0x60, + 0x02, 0x99, 0x01, 0x62, 0x03, 0x99, 0x41, 0x62, 0x04, 0x99, 0x01, 0x63, 0x05, 0x99, 0x41, + 0x63, 0x06, 0x99, 0x81, 0x64, 0x07, 0x99, 0xc1, 0x64, 0x08, 0x99, 0x01, 0x66, 0x09, 0x99, + 0x41, 0x66, 0x9c, 0x30, 0x21, 0x1c, 0xa6, 0x46, 0x7d, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x66, + 0x48, 0x40, 0x78, 0xf3, 0x49, 0x00, 0x28, 0x5d, 0xd1, 0x08, 0x27, 0x08, 0x1c, 0x4e, 0x38, + 0x07, 0x21, 0x3a, 0x1c, 0xa6, 0x46, 0xed, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x70, 0x78, 0x00, + 0x28, 0x10, 0xd0, 0x01, 0x28, 0x0e, 0xd0, 0xea, 0x48, 0x0d, 0x21, 0x2a, 0x1c, 0xa6, 0x46, + 0x6f, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xe7, 0x48, 0x18, 0x21, 0x3a, 0x1c, 0xa6, 0x46, 0x6c, + 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x0e, 0xe0, 0xe3, 0x4f, 0x38, 0x1c, 0x10, 0x21, 0x2a, 0x1c, + 0xa6, 0x46, 0x67, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x38, 0x1c, 0x1c, 0x21, 0x08, 0x22, 0xa6, + 0x46, 0x64, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x70, 0x78, 0x00, 0x28, 0x0d, 0xd1, 0x0c, 0x20, + 0x80, 0x57, 0x00, 0x28, 0x09, 0xdd, 0x32, 0x28, 0x07, 0xda, 0xd7, 0x48, 0x42, 0x38, 0x16, + 0x21, 0x2a, 0x1c, 0xa6, 0x46, 0x5b, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xd3, 0x48, 0x04, 0x30, + 0x05, 0x21, 0x08, 0x22, + + 0x01, 0x05, 0xff, 0xff, 0xb2, 0x0c, 0x18, 0x00, 0xfa, 0xa6, 0x46, 0xda, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0xcf, 0x48, 0x44, 0x38, 0x04, 0x21, 0x2a, 0x1c, 0xa6, 0x46, 0xcb, 0x4b, 0xfe, + 0x44, 0x18, 0x47, 0x79, 0xe1, 0x9c, 0x5f, 0x08, 0x00, 0xa4, 0x5f, 0x08, 0x00, 0xac, 0x5f, + 0x08, 0x00, 0xb4, 0x5f, 0x08, 0x00, 0xbc, 0x5f, 0x08, 0x00, 0xc4, 0x5f, 0x08, 0x00, 0x7c, + 0x7b, 0x08, 0x00, 0xc6, 0x05, 0x00, 0x00, 0x01, 0x28, 0x00, 0xd0, 0x68, 0xe1, 0xee, 0x48, + 0x06, 0x1c, 0x88, 0x3e, 0xa6, 0x46, 0xe8, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x31, 0x88, 0x01, + 0x40, 0x48, 0x08, 0x05, 0xd0, 0x38, 0x1c, 0x41, 0x1e, 0x0f, 0x04, 0x3f, 0x0c, 0x00, 0x28, + 0xf1, 0xd1, 0xa6, 0x46, 0xe1, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x31, 0x88, 0x01, 0x40, 0x48, + 0x08, 0x04, 0xd0, 0x58, 0x20, 0xa6, 0x46, 0xdd, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x2f, 0x1c, + 0xb1, 0x48, 0xb4, 0x30, 0x39, 0x1c, 0xa6, 0x46, 0xda, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x02, + 0x28, 0x00, 0xdc, 0x27, 0x1c, 0xac, 0x48, 0xf4, 0x30, 0x29, 0x1c, 0xa6, 0x46, 0xd5, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x38, 0x43, 0xd4, 0x4f, 0x35, 0xd1, 0xa7, 0x48, 0xbc, 0x30, 0x29, + 0x1c, 0xa6, 0x46, 0xd0, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x01, 0x28, 0x2c, 0xd0, 0x38, 0x1c, + 0x09, 0x21, 0x06, 0x22, 0xa6, 0x46, 0x28, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x2b, 0xe0, 0xc0, + 0x46, 0x4f, 0xa7, 0x04, 0x00, 0x39, 0xa7, 0x04, 0x00, 0xdc, 0x5f, 0x08, 0x00, 0x0b, 0xd8, + 0x04, 0x00, 0xd8, 0x5f, 0x08, 0x00, 0xff, 0xff, 0x00, 0x00, 0xd5, 0x5f, 0x08, 0x00, 0xd3, + 0x5f, 0x08, 0x00, 0xd4, 0x5f, 0x08, 0x00, 0xd5, 0x07, 0x18, 0x00, 0x80, 0x7b, 0x08, 0x00, + 0xcc, 0x5f, 0x08, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0xac, 0x0d, 0x18, 0x00, 0xfa, 0x38, 0x24, 0x08, 0x00, 0x5c, 0x4f, + 0x08, 0x00, 0xc8, 0x52, 0x08, 0x00, 0x02, 0x20, 0x19, 0x00, 0x00, 0xf3, 0x1a, 0x00, 0xa1, + 0x52, 0x08, 0x00, 0x38, 0x1c, 0x0c, 0x21, 0x06, 0x22, 0xa6, 0x46, 0x11, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0x38, 0x1c, 0x0c, 0x21, 0xa6, 0x46, 0x0f, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xb3, + 0x49, 0x10, 0x91, 0x08, 0x8f, 0x38, 0x31, 0x10, 0x91, 0x04, 0x28, 0x33, 0xda, 0x82, 0x48, + 0x2a, 0x30, 0x18, 0x21, 0x2a, 0x1c, 0xa6, 0x46, 0x07, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xab, + 0x48, 0x32, 0x30, 0x02, 0x21, 0x0a, 0x1c, 0xa6, 0x46, 0x42, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x04, 0x20, 0x10, 0x99, 0x08, 0x80, 0x1f, 0xe0, 0x1f, 0xac, 0x04, 0x00, 0xfd, 0xaa, 0x04, + 0x00, 0x10, 0x60, 0x1a, 0x00, 0xa4, 0x52, 0x08, 0x00, 0xc4, 0x61, 0x1a, 0x00, 0x81, 0xae, + 0x04, 0x00, 0x7c, 0x51, 0x08, 0x00, 0xdd, 0x5e, 0x03, 0x00, 0x39, 0x6f, 0x03, 0x00, 0x6a, + 0x31, 0x19, 0x00, 0x9f, 0xae, 0x04, 0x00, 0xb9, 0xab, 0x04, 0x00, 0x15, 0xab, 0x04, 0x00, + 0x6e, 0x50, 0x1a, 0x00, 0x07, 0x10, 0x08, 0x00, 0x1e, 0xf6, 0x1a, 0x00, 0x2a, 0x1c, 0x97, + 0x48, 0x0c, 0x38, 0x97, 0x49, 0xa6, 0x46, 0x97, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x02, 0x20, + 0x01, 0x1c, 0x95, 0x4f, 0x38, 0x1c, 0x0a, 0x38, 0xa6, 0x46, 0x8f, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x38, 0x1c, 0x07, 0x21, 0x2a, 0x1c, 0xa6, 0x46, 0x5d, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x38, 0x1c, 0x07, 0x21, 0x03, 0x22, 0xa6, 0x46, 0x59, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x38, + 0x1c, 0x02, 0x38, 0x07, 0x21, 0x0c, 0x22, 0xa6, 0x46, 0x55, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x8a, 0x48, 0x0c, 0x90, + + 0x01, 0x05, 0xff, 0xff, 0xa6, 0x0e, 0x18, 0x00, 0xfa, 0x02, 0x38, 0x0c, 0x90, 0x37, 0x21, + 0xa6, 0x46, 0x85, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x0c, 0x98, 0x08, 0x21, 0x07, 0x22, 0xa6, + 0x46, 0x82, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x82, 0x48, 0x04, 0x21, 0xa6, 0x46, 0x7e, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x7f, 0x48, 0x02, 0x30, 0x29, 0x1c, 0xa6, 0x46, 0x76, 0x4a, 0xfe, + 0x44, 0x10, 0x47, 0x7c, 0x48, 0x05, 0x80, 0x7c, 0x48, 0x00, 0x78, 0x00, 0x28, 0x1d, 0xd0, + 0x04, 0x28, 0x29, 0xd1, 0x6f, 0x48, 0x06, 0x21, 0x08, 0x22, 0xa6, 0x46, 0x3f, 0x4b, 0xfe, + 0x44, 0x18, 0x47, 0x77, 0x48, 0x03, 0x21, 0x02, 0x22, 0xa6, 0x46, 0x88, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0x1a, 0xe0, 0xc0, 0x46, 0x04, 0x14, 0x08, 0x00, 0x65, 0xab, 0x04, 0x00, 0x0c, + 0x53, 0x08, 0x00, 0x85, 0x67, 0x05, 0x00, 0x9c, 0x0b, 0x1a, 0x00, 0x08, 0x09, 0x1a, 0x00, + 0x2a, 0x1c, 0x61, 0x48, 0x21, 0x1c, 0x8e, 0x46, 0x31, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x69, + 0x48, 0x03, 0x21, 0x2a, 0x1c, 0xa6, 0x46, 0x7a, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x2d, 0x48, + 0x78, 0x30, 0x07, 0x21, 0xa6, 0x46, 0x59, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xa6, 0x46, 0x62, + 0x48, 0xfe, 0x44, 0x00, 0x47, 0x28, 0x48, 0x0c, 0x90, 0x32, 0x38, 0x0c, 0x90, 0x29, 0x1c, + 0x2a, 0x1c, 0xa6, 0x46, 0x23, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x03, 0x20, 0x02, 0x1c, 0x0c, + 0x98, 0x29, 0x1c, 0xa6, 0x46, 0x1f, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x1f, 0x48, 0x10, 0x30, + 0x0c, 0x21, 0xa6, 0x46, 0x4b, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xff, 0x20, 0xd3, 0x30, 0x0f, + 0x99, 0x08, 0x80, 0x53, 0x48, 0x10, 0x99, 0xc8, 0x83, 0x18, 0x48, 0x0c, 0x90, 0x22, 0x38, + 0x0c, 0x90, 0x03, 0x21, + + 0x01, 0x05, 0xff, 0xff, 0xa0, 0x0f, 0x18, 0x00, 0xfa, 0xa6, 0x46, 0x5b, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0x96, 0x20, 0xa6, 0x46, 0x4d, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x0c, 0x98, 0x03, + 0x21, 0xa6, 0x46, 0x3d, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x35, 0x80, 0x54, 0x48, 0x40, 0x78, + 0x49, 0x4e, 0x00, 0x28, 0x1a, 0xd1, 0x0b, 0x48, 0x16, 0x30, 0x07, 0x21, 0xa6, 0x46, 0x45, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x0f, 0xd1, 0x0e, 0x98, 0x88, 0x30, 0x0d, 0x99, + 0x89, 0x7d, 0x0c, 0x22, 0x51, 0x43, 0x71, 0x18, 0xa6, 0x46, 0x40, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0x30, 0xe0, 0x7b, 0xab, 0x04, 0x00, 0x4e, 0x74, 0x1a, 0x00, 0x45, 0x48, 0x40, 0x78, + 0x01, 0x28, 0x0f, 0xd0, 0x0e, 0x98, 0x88, 0x30, 0x0d, 0x99, 0x89, 0x7d, 0x0c, 0x22, 0x51, + 0x43, 0x38, 0x4b, 0x59, 0x18, 0xa6, 0x46, 0x36, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x1b, 0xe0, + 0xc0, 0x46, 0xf7, 0xab, 0x04, 0x00, 0x07, 0x20, 0x34, 0x4f, 0xb8, 0x70, 0x0e, 0x98, 0x88, + 0x30, 0x0d, 0x99, 0x89, 0x7d, 0x0c, 0x22, 0x51, 0x43, 0x71, 0x18, 0xa6, 0x46, 0x2d, 0x4b, + 0xfe, 0x44, 0x18, 0x47, 0x38, 0x1c, 0x06, 0x21, 0xa6, 0x46, 0x32, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x2b, 0x48, 0x05, 0x70, 0x54, 0x21, 0x0e, 0x98, 0x0d, 0x52, 0x0e, 0x98, 0x45, 0x81, + 0x94, 0x30, 0x2e, 0x49, 0x89, 0x78, 0x2a, 0x1c, 0xa6, 0x46, 0x26, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0x03, 0x20, 0xf2, 0x22, 0x2b, 0x49, 0x50, 0x54, 0x23, 0x21, 0xc9, 0x00, 0x23, 0x4a, + 0x88, 0x5c, 0x01, 0x30, 0x88, 0x54, 0x22, 0x48, 0x05, 0x70, 0x19, 0x20, 0x80, 0x01, 0x26, + 0x49, 0x08, 0x80, 0x6e, 0x21, 0x24, 0x48, 0x41, 0x74, 0x55, 0x20, 0xc0, 0x00, 0x1d, 0x49, + 0x08, 0x80, 0x11, 0xb0, + + 0x01, 0x05, 0xff, 0x93, 0x9a, 0x10, 0x18, 0x00, 0x8e, 0xf0, 0xbd, 0x1d, 0x05, 0x04, 0x00, + 0x1b, 0xa7, 0x04, 0x00, 0x77, 0xae, 0x04, 0x00, 0x6a, 0x74, 0x1a, 0x00, 0x88, 0x7c, 0x1a, + 0x00, 0xfd, 0xaa, 0x04, 0x00, 0x10, 0x60, 0x1a, 0x00, 0xdd, 0x03, 0x00, 0x00, 0xf3, 0xac, + 0x04, 0x00, 0x0c, 0x30, 0x1a, 0x00, 0x4b, 0xac, 0x04, 0x00, 0x35, 0xac, 0x04, 0x00, 0x06, + 0x0f, 0x1a, 0x00, 0x68, 0x60, 0x1a, 0x00, 0x70, 0x55, 0x08, 0x00, 0xb0, 0x7c, 0x1a, 0x00, + 0x15, 0x60, 0x03, 0x00, 0x53, 0x51, 0x00, 0x00, 0x3f, 0x4a, 0x04, 0x00, 0x59, 0xae, 0x04, + 0x00, 0x18, 0x09, 0x18, 0x00, 0xc1, 0x78, 0x05, 0x00, 0x3c, 0x09, 0x18, 0x00, 0x10, 0x20, + 0x19, 0x00, 0x9f, 0x51, 0x08, 0x00, 0x67, 0xac, 0x04, 0x00, 0x88, 0x4c, 0x08, 0x00, 0xd2, + 0x5f, 0x08, 0x00, 0xd0, 0x5f, 0x08, 0x00, 0x15, 0xab, 0x04, 0x00, 0xa1, 0x52, 0x08, 0x00, + 0x0c, 0x53, 0x08, 0x00, 0x5c, 0x4f, 0x08, 0x00, 0x04, 0x14, 0x08, 0x00, 0x65, 0xab, 0x04, + 0x00, + + 0x01, 0x05, 0xff, 0xff, 0xd8, 0x5b, 0x18, 0x00, 0xfa, 0xf0, 0xb5, 0xbe, 0x49, 0x04, 0x39, + 0x4f, 0x68, 0x33, 0x20, 0xc0, 0x5d, 0x00, 0x09, 0x84, 0x46, 0x08, 0x78, 0x01, 0x28, 0x37, + 0xd1, 0xba, 0x48, 0x06, 0x78, 0x00, 0x24, 0x25, 0x1c, 0x22, 0x1c, 0x1b, 0xe0, 0x23, 0x20, + 0x00, 0x01, 0x50, 0x43, 0xb6, 0x49, 0x0b, 0x18, 0x38, 0x20, 0xc0, 0x5c, 0x00, 0x28, 0x0f, + 0xd0, 0x18, 0x78, 0xac, 0x21, 0x41, 0x43, 0xb3, 0x48, 0x33, 0x30, 0x40, 0x5c, 0x01, 0x28, + 0x07, 0xd0, 0xff, 0x20, 0x22, 0x30, 0xc0, 0x5c, 0x01, 0x28, 0x01, 0xd1, 0x01, 0x25, 0x00, + 0xe0, 0x01, 0x24, 0x50, 0x1c, 0x02, 0x06, 0x12, 0x0e, 0xb2, 0x42, 0xe1, 0xdb, 0x00, 0x20, + 0x00, 0x2d, 0x02, 0xd0, 0x00, 0x2c, 0x00, 0xd1, 0x01, 0x20, 0x60, 0x45, 0x0b, 0xd0, 0x33, + 0x21, 0xc9, 0x19, 0x0a, 0x78, 0x12, 0x07, 0x12, 0x0f, 0x00, 0x01, 0x10, 0x43, 0x08, 0x70, + 0x01, 0x20, 0x40, 0x02, 0x9d, 0x49, 0x08, 0x80, 0xf0, 0xbd, 0x70, 0xb5, 0x07, 0x26, 0x9e, + 0x4d, 0x32, 0x20, 0x40, 0x5d, 0x02, 0x28, 0x0c, 0xd1, 0x37, 0x20, 0x40, 0x5d, 0x9c, 0x49, + 0x08, 0x18, 0x40, 0x00, 0x02, 0x21, 0x01, 0x24, 0xa6, 0x46, 0x9b, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x00, 0x28, 0x03, 0xd1, 0xac, 0x35, 0x01, 0x3e, 0xeb, 0xd1, 0x70, 0xbd, 0x95, 0x48, + 0x09, 0x21, 0xa6, 0x46, 0x96, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x70, 0xbd, 0xf0, 0xb5, 0x8d, + 0xb0, 0x06, 0x90, 0x93, 0x4c, 0x20, 0x88, 0x40, 0x08, 0x07, 0x90, 0xe0, 0x7f, 0x00, 0x21, + 0x08, 0x91, 0x41, 0x09, 0x0f, 0xd3, 0x98, 0x4a, 0x11, 0x78, 0x00, 0x29, 0x08, 0xd0, 0x92, + 0x78, 0x91, 0x42, 0x05, 0xd0, 0x01, 0x21, 0x01, 0x43, 0x08, 0x06, 0x00, 0x0e, 0xe0, 0x77, + 0x02, 0xe0, 0x10, 0x20, + + 0x01, 0x05, 0xff, 0xff, 0xd2, 0x5c, 0x18, 0x00, 0xfa, 0xe0, 0x77, 0xe0, 0x7f, 0x8e, 0x49, + 0x09, 0x91, 0x02, 0x39, 0x09, 0x91, 0x40, 0x08, 0x1b, 0xd3, 0x67, 0x7f, 0x02, 0x2f, 0x18, + 0xdb, 0x08, 0x9e, 0x38, 0x1c, 0x03, 0x21, 0x01, 0x25, 0xae, 0x46, 0x82, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0x00, 0x28, 0x00, 0xd0, 0x2e, 0x1c, 0x38, 0x1c, 0x03, 0x21, 0xae, 0x46, 0x7e, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x71, 0x18, 0xa0, 0x8c, 0x40, 0x08, 0xae, 0x46, 0x7b, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x01, 0xe0, 0xa0, 0x8c, 0x41, 0x08, 0x21, 0x85, 0x08, 0x9f, 0xa7, + 0x77, 0xe7, 0x85, 0x85, 0x20, 0x40, 0x00, 0x01, 0x25, 0xae, 0x46, 0x75, 0x49, 0xfe, 0x44, + 0x08, 0x47, 0x43, 0x20, 0x80, 0x00, 0xae, 0x46, 0x72, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x20, + 0x8d, 0x00, 0x90, 0x07, 0x98, 0x01, 0x90, 0x6b, 0x48, 0x02, 0x7b, 0xe3, 0x7f, 0x03, 0x20, + 0x82, 0x21, 0xae, 0x46, 0x6c, 0x4e, 0xfe, 0x44, 0x30, 0x47, 0x67, 0x48, 0x00, 0x7b, 0x0a, + 0x90, 0x0b, 0x97, 0x03, 0x28, 0x13, 0xd1, 0x20, 0x88, 0x41, 0x08, 0x0c, 0x91, 0x26, 0x8d, + 0x30, 0x1c, 0xae, 0x46, 0x62, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x07, 0xd0, 0x31, + 0x1c, 0x0c, 0x98, 0xae, 0x46, 0x5e, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x00, 0xd1, + 0x0b, 0x95, 0x0b, 0x9e, 0x4e, 0x48, 0x01, 0x78, 0x01, 0x29, 0x07, 0xd1, 0x3c, 0x21, 0x09, + 0x5c, 0x00, 0x29, 0x03, 0xd0, 0x40, 0x8e, 0x40, 0x09, 0x00, 0xd3, 0x08, 0x95, 0x00, 0x2e, + 0x29, 0xd0, 0x08, 0x98, 0x00, 0x28, 0x26, 0xd1, 0x27, 0x8d, 0x38, 0x1c, 0x07, 0x99, 0xae, + 0x46, 0x51, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x08, 0x04, 0x00, 0x0c, 0x0c, 0x90, 0x38, 0x1c, + 0x07, 0x99, 0xae, 0x46, + + 0x01, 0x05, 0xff, 0xff, 0xcc, 0x5d, 0x18, 0x00, 0xfa, 0x4c, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x08, 0x04, 0x00, 0x0c, 0x01, 0xd0, 0x02, 0x21, 0x00, 0xe0, 0x29, 0x1c, 0x09, 0x98, 0x81, + 0x70, 0x07, 0x98, 0x39, 0x1c, 0x2f, 0x1c, 0xae, 0x46, 0x45, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x0c, 0x98, 0x01, 0x43, 0x08, 0x04, 0x00, 0x0c, 0xe0, 0x85, 0x09, 0x99, 0x08, 0x80, 0x02, + 0xe0, 0x09, 0x98, 0x0a, 0x99, 0x81, 0x70, 0x09, 0x98, 0x80, 0x78, 0x41, 0x08, 0x19, 0xd3, + 0x20, 0x1c, 0x01, 0x8d, 0x00, 0x2f, 0x0d, 0xd1, 0x00, 0x2e, 0x0b, 0xd0, 0x07, 0x98, 0x88, + 0x42, 0x08, 0xdd, 0x48, 0x08, 0x09, 0x18, 0x85, 0x20, 0x40, 0x00, 0xae, 0x46, 0x38, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x05, 0xe0, 0x85, 0x20, 0x40, 0x00, 0xae, 0x46, 0x34, 0x4a, 0xfe, + 0x44, 0x10, 0x47, 0x34, 0x48, 0x00, 0x78, 0x80, 0x08, 0x18, 0xd3, 0x00, 0x2f, 0x0f, 0xd1, + 0x00, 0x2e, 0x0d, 0xd0, 0x21, 0x8d, 0x07, 0x98, 0x81, 0x42, 0x09, 0xdb, 0x07, 0x98, 0x41, + 0x08, 0x41, 0x18, 0x43, 0x20, 0x80, 0x00, 0xae, 0x46, 0x2a, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x06, 0xe0, 0x07, 0x99, 0x43, 0x20, 0x80, 0x00, 0xae, 0x46, 0x26, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x1f, 0x48, 0x00, 0x78, 0x80, 0x06, 0x80, 0x0e, 0x1d, 0x49, 0x08, 0x70, 0x08, 0x1c, + 0x01, 0x7b, 0x29, 0x40, 0x68, 0x46, 0x01, 0x72, 0x21, 0x8d, 0x41, 0x81, 0x61, 0x8c, 0x49, + 0x08, 0x81, 0x81, 0x87, 0x73, 0x17, 0x49, 0x09, 0x7b, 0x49, 0x08, 0x29, 0x40, 0x01, 0x74, + 0x07, 0x99, 0x41, 0x82, 0xa1, 0x88, 0x49, 0x08, 0x81, 0x82, 0x87, 0x75, 0xa0, 0x20, 0x02, + 0xa9, 0xae, 0x46, 0x19, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x15, 0x49, 0xff, 0x31, 0x5d, 0x31, + 0x06, 0x98, 0x01, 0x62, + + 0x01, 0x05, 0xff, 0xff, 0xc6, 0x5e, 0x18, 0x00, 0xfa, 0x0d, 0xb0, 0xf0, 0xbd, 0xc0, 0x46, + 0x34, 0x24, 0x08, 0x00, 0x44, 0x7c, 0x1a, 0x00, 0x38, 0x24, 0x08, 0x00, 0x21, 0x50, 0x08, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x94, 0x1a, 0x08, 0x00, 0x11, 0x01, 0x0d, 0x00, 0x46, 0x7f, + 0x1a, 0x00, 0x9f, 0xae, 0x04, 0x00, 0xfd, 0xaa, 0x04, 0x00, 0xe2, 0x11, 0x08, 0x00, 0x02, + 0x12, 0x08, 0x00, 0xe1, 0x60, 0x05, 0x00, 0xe1, 0x60, 0x05, 0x00, 0x61, 0x7d, 0x03, 0x00, + 0x6f, 0xa7, 0x04, 0x00, 0x43, 0x7a, 0x03, 0x00, 0x04, 0x10, 0x08, 0x00, 0x55, 0xf9, 0x00, + 0x00, 0x2b, 0x10, 0x08, 0x00, 0xaf, 0xf3, 0x04, 0x00, 0x30, 0xb5, 0x5b, 0x4d, 0x0a, 0x20, + 0x41, 0x19, 0x5a, 0x48, 0x04, 0x22, 0x01, 0x24, 0xa6, 0x46, 0x5d, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0xa6, 0x46, 0x57, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0x56, 0x48, 0xfe, 0x44, + 0x00, 0x47, 0x00, 0x28, 0x05, 0xd0, 0x29, 0x8b, 0x58, 0x20, 0xa6, 0x46, 0x53, 0x4a, 0xfe, + 0x44, 0x10, 0x47, 0x53, 0x48, 0x6b, 0x30, 0x30, 0xbd, 0xfe, 0xb5, 0x00, 0x90, 0x5a, 0x48, + 0x00, 0x78, 0x01, 0x28, 0x00, 0xd0, 0x8b, 0xe0, 0x50, 0x4d, 0x3c, 0x20, 0x40, 0x19, 0x01, + 0x90, 0x47, 0x48, 0x00, 0x26, 0x01, 0x24, 0x69, 0x8e, 0x09, 0x09, 0x21, 0x40, 0x40, 0x8d, + 0x00, 0x09, 0x20, 0x40, 0x88, 0x42, 0x04, 0xd0, 0x49, 0x48, 0x00, 0x78, 0x03, 0x28, 0x00, + 0xd1, 0x26, 0x1c, 0x08, 0x20, 0x40, 0x19, 0x3e, 0x49, 0x30, 0x22, 0xa6, 0x46, 0x4c, 0x4b, + 0xfe, 0x44, 0x18, 0x47, 0x00, 0x2e, 0x03, 0xd0, 0xa6, 0x46, 0x42, 0x48, 0xfe, 0x44, 0x00, + 0x47, 0x49, 0x4e, 0x49, 0x48, 0x00, 0x78, 0x00, 0x27, 0x62, 0xe0, 0x30, 0x78, 0xff, 0x28, + 0x5c, 0xd0, 0x38, 0x20, + + 0x01, 0x05, 0xff, 0xff, 0xc0, 0x5f, 0x18, 0x00, 0xfa, 0x80, 0x5d, 0x0c, 0x28, 0x58, 0xd1, + 0x00, 0x20, 0x02, 0x90, 0x3b, 0x48, 0x0b, 0x21, 0xa6, 0x46, 0x42, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x00, 0x28, 0x04, 0xd0, 0x2d, 0x48, 0x40, 0x8d, 0xc0, 0x08, 0x00, 0xd3, 0x02, 0x94, + 0x02, 0x98, 0x00, 0x28, 0x0b, 0xd0, 0x28, 0x78, 0x01, 0x28, 0x08, 0xd1, 0x01, 0x98, 0x00, + 0x78, 0x00, 0x28, 0x04, 0xd0, 0xff, 0x20, 0x1e, 0x30, 0x81, 0x5d, 0x01, 0x29, 0x2a, 0xd0, + 0x2d, 0x48, 0x0b, 0x21, 0xa6, 0x46, 0x34, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x0a, + 0xd0, 0x1f, 0x48, 0x40, 0x8d, 0xc0, 0x08, 0x06, 0xd2, 0x28, 0x78, 0x01, 0x28, 0x03, 0xd1, + 0x01, 0x98, 0x00, 0x78, 0x00, 0x28, 0x07, 0xd1, 0x23, 0x48, 0x0b, 0x21, 0xa6, 0x46, 0x2b, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x1f, 0xd1, 0xf0, 0x7e, 0xc0, 0x08, 0x1c, 0xd3, + 0x1f, 0x48, 0x00, 0x78, 0x00, 0x28, 0x18, 0xd0, 0xff, 0x20, 0x21, 0x30, 0x80, 0x5d, 0x40, + 0x08, 0x13, 0xd3, 0xff, 0x20, 0x1e, 0x30, 0x84, 0x55, 0x0f, 0xe0, 0x00, 0x21, 0x81, 0x55, + 0x70, 0x78, 0x4c, 0x21, 0x41, 0x43, 0x17, 0x48, 0x40, 0x18, 0x3b, 0x23, 0x1a, 0x5c, 0x21, + 0x1c, 0x11, 0x43, 0x19, 0x54, 0xa6, 0x46, 0x14, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x01, 0x37, + 0x17, 0x48, 0x00, 0x78, 0x87, 0x42, 0x9a, 0xd3, 0x00, 0x98, 0x41, 0x68, 0x09, 0x78, 0x41, + 0x60, 0x0f, 0x48, 0x40, 0x1d, 0xfe, 0xbd, 0x50, 0x7f, 0x1a, 0x00, 0x46, 0x24, 0x08, 0x00, + 0x25, 0x4e, 0x02, 0x00, 0xa3, 0x4a, 0x02, 0x00, 0x43, 0x7a, 0x03, 0x00, 0x4b, 0x4e, 0x02, + 0x00, 0xc1, 0x78, 0x05, 0x00, 0x34, 0x24, 0x08, 0x00, 0x0e, 0x12, 0x08, 0x00, 0x55, 0xf9, + 0x00, 0x00, 0xca, 0x74, + + 0x01, 0x05, 0xff, 0x2b, 0xba, 0x60, 0x18, 0x00, 0x26, 0x1a, 0x00, 0x3c, 0x10, 0x08, 0x00, + 0xb4, 0x46, 0x08, 0x00, 0xd1, 0x34, 0x02, 0x00, 0x75, 0x4f, 0x02, 0x00, 0xa2, 0x52, 0x08, + 0x00, 0xc1, 0x78, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x21, 0x50, 0x08, 0x00, 0x59, 0xae, + 0x04, 0x00, + + 0x01, 0x83, 0xff, 0x14, 0x75, 0x7b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // + // + // + 0x01, 0xdc, 0xfd, 0x03, 0x00, 0x00, 0x12, + + // ##-------------------------------------------------------------------------------- + // ## Description: BTIP2.0 PHY FW Initialization Script + // ## Version: 2.54 - Modified with TPC default values + // ##-------------------------------------------------------------------------------- + // + 0x01, 0x01, 0xff, 0x06, 0x00, 0x24, 0x19, 0x00, 0x01, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0x00, 0x40, 0x19, 0x00, 0xfa, 0x00, 0x0c, 0x00, 0x20, 0xb9, 0x2d, + 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, + 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, + 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0x25, 0x27, 0x00, 0x00, 0xfb, 0x24, 0x00, 0x00, 0xf7, + 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, + 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, + 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, + 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xf7, 0x2d, 0x00, 0x00, 0xd3, + 0x07, 0x00, 0x20, 0xf7, 0x2d, 0x00, 0x00, 0x07, 0x07, 0x00, 0x20, 0x2d, 0xe9, 0xf0, 0x43, + 0x81, 0x46, 0x00, 0x26, 0x7b, 0x4c, 0x01, 0x27, 0x7b, 0x48, 0x26, 0x73, 0x04, 0xf8, 0x04, + 0x7c, 0x00, 0x78, 0xdf, 0xf8, 0xc0, 0x82, 0x00, 0x28, 0x0c, 0xbf, 0x98, 0xf8, 0x7a, 0x10, + 0x98, 0xf8, 0x78, 0x10, 0x77, 0x48, 0x00, 0x88, 0x75, 0x4d, 0x20, 0xf4, 0x7c, 0x50, 0x40, + 0xea, 0x01, 0x20, 0x68, 0x80, 0xa8, 0x88, 0x98, 0xf8, 0x7e, 0x10, 0x20, 0xf0, 0x7f, 0x00, + 0x01, 0x43, 0x38, 0x46, 0xa9, 0x80, 0x27, 0x70, 0x02, 0xf0, 0x50, 0xfb, 0x26, 0x70, 0x38, + 0x46, 0x02, 0xf0, 0x4c, 0xfb, 0x26, 0x71, 0x27, 0x72, 0x4f, 0xf0, 0x30, 0x00, 0x05, 0xf8, + 0x01, 0x0c, 0x84, 0xf8, + + 0x01, 0x05, 0xff, 0xff, 0xfa, 0x40, 0x19, 0x00, 0xfa, 0xfc, 0x60, 0x84, 0xf8, 0x0c, 0x61, + 0x84, 0xf8, 0x2c, 0x61, 0x28, 0x88, 0x20, 0xf4, 0x00, 0x70, 0x40, 0xf4, 0x80, 0x70, 0x28, + 0x80, 0x98, 0xf8, 0x76, 0x00, 0x88, 0xb1, 0x62, 0x48, 0x00, 0x88, 0x40, 0x08, 0x0d, 0xd3, + 0x61, 0x48, 0x07, 0x72, 0x80, 0xf8, 0x40, 0x61, 0x06, 0x70, 0x28, 0x88, 0x20, 0xf0, 0x07, + 0x00, 0x28, 0x80, 0x98, 0xf8, 0x77, 0x00, 0x40, 0xf0, 0x01, 0x00, 0x03, 0xe0, 0x98, 0xf8, + 0x77, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x88, 0xf8, 0x77, 0x00, 0x84, 0xf8, 0x54, 0x70, 0x02, + 0x20, 0x84, 0xf8, 0x50, 0x70, 0x84, 0xf8, 0x4c, 0x90, 0x02, 0xf0, 0x16, 0xfb, 0xbd, 0xe8, + 0xf0, 0x83, 0x2d, 0xe9, 0xf0, 0x47, 0x52, 0x4c, 0x81, 0x46, 0x52, 0x48, 0x01, 0x25, 0x25, + 0x70, 0x00, 0x88, 0xdf, 0xf8, 0x28, 0x81, 0x92, 0x46, 0x00, 0x28, 0x40, 0x46, 0x4c, 0x4e, + 0x02, 0xd0, 0x6a, 0x30, 0x1f, 0x21, 0x01, 0x70, 0x84, 0xf8, 0x80, 0x52, 0x05, 0x20, 0x02, + 0xf0, 0xfd, 0xfa, 0x25, 0x73, 0x28, 0x46, 0x02, 0xf0, 0xf9, 0xfa, 0x00, 0x27, 0x27, 0x73, + 0xb9, 0xf1, 0x00, 0x0f, 0x25, 0x71, 0x25, 0x72, 0x44, 0x46, 0x04, 0xf1, 0xc2, 0x04, 0x14, + 0xbf, 0x40, 0xf6, 0xff, 0x70, 0x40, 0xf2, 0x73, 0x50, 0x24, 0xf8, 0xa4, 0x0c, 0x38, 0x46, + 0x02, 0xf0, 0xe6, 0xfa, 0xb9, 0xf1, 0x00, 0x0f, 0x14, 0xbf, 0x0f, 0x20, 0x05, 0x20, 0x04, + 0xf8, 0xa2, 0x0c, 0x03, 0x20, 0x04, 0xf8, 0xa1, 0x0c, 0x28, 0x46, 0x02, 0xf0, 0xd9, 0xfa, + 0x38, 0x48, 0x04, 0xf8, 0xa1, 0x7c, 0x05, 0x70, 0x86, 0xf8, 0xf0, 0x50, 0x38, 0x46, 0x02, + 0xf0, 0xd0, 0xfa, 0x20, 0x88, 0x40, 0xf0, 0x0c, 0x00, 0x20, 0x80, 0x08, 0x20, 0x02, 0xf0, + 0xc9, 0xfa, 0xba, 0xf1, + + 0x01, 0x05, 0xff, 0xff, 0xf4, 0x41, 0x19, 0x00, 0xfa, 0x00, 0x0f, 0x0f, 0xd0, 0x86, 0xf8, + 0xf0, 0x70, 0x38, 0x46, 0x02, 0xf0, 0xc1, 0xfa, 0x86, 0xf8, 0xf0, 0x50, 0x38, 0x46, 0x02, + 0xf0, 0xbc, 0xfa, 0x20, 0x88, 0x20, 0xf0, 0x08, 0x00, 0x40, 0xf0, 0x04, 0x00, 0x20, 0x80, + 0x86, 0xf8, 0x04, 0x90, 0x35, 0x70, 0xbd, 0xe8, 0xf0, 0x87, 0xf0, 0xb5, 0x11, 0x20, 0x24, + 0x4d, 0x01, 0x24, 0x24, 0x4e, 0xe8, 0x70, 0x02, 0x20, 0x34, 0x70, 0x02, 0xf0, 0xa7, 0xfa, + 0x34, 0x71, 0x02, 0x20, 0x02, 0xf0, 0xa3, 0xfa, 0x34, 0x74, 0x02, 0x20, 0x86, 0xf8, 0x34, + 0x40, 0x02, 0xf0, 0x9d, 0xfa, 0x85, 0xf8, 0x4a, 0x40, 0x20, 0x46, 0x34, 0x73, 0x02, 0xf0, + 0x97, 0xfa, 0x00, 0x27, 0x85, 0xf8, 0x4a, 0x70, 0x02, 0x20, 0x02, 0xf0, 0x91, 0xfa, 0x28, + 0x88, 0x40, 0xf4, 0xff, 0x50, 0x28, 0x80, 0x86, 0xf8, 0x28, 0x40, 0x08, 0x20, 0x85, 0xf8, + 0x20, 0x7f, 0x02, 0xf0, 0x86, 0xfa, 0x12, 0x20, 0xe8, 0x70, 0xf0, 0xbd, 0x30, 0xb1, 0x0f, + 0x49, 0x08, 0x88, 0x40, 0xf4, 0x40, 0x70, 0x08, 0x80, 0x4c, 0x20, 0x08, 0x73, 0x70, 0x47, + 0x04, 0x03, 0x04, 0x42, 0xe4, 0x08, 0x00, 0x20, 0x1a, 0x20, 0x00, 0x40, 0x1c, 0x20, 0x00, + 0x40, 0x14, 0x22, 0x00, 0x40, 0x00, 0x40, 0x04, 0x42, 0x80, 0x1b, 0x04, 0x42, 0x80, 0x04, + 0x04, 0x42, 0x0e, 0x03, 0x00, 0x20, 0xe0, 0x20, 0x00, 0x42, 0x64, 0x11, 0x00, 0x40, 0x80, + 0x2c, 0x02, 0x42, 0x4a, 0x10, 0x00, 0x40, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x40, 0x0d, + 0x86, 0x4b, 0x00, 0x90, 0x86, 0x48, 0x4f, 0xf0, 0x00, 0x09, 0x83, 0xf8, 0x32, 0x90, 0x83, + 0xf8, 0x33, 0x90, 0x80, 0xf8, 0x00, 0x90, 0x18, 0x7d, 0x22, 0x4c, 0x00, 0x28, 0x06, 0xbf, + 0xe0, 0x8e, 0x02, 0x1c, + + 0x01, 0x05, 0xff, 0xff, 0xee, 0x42, 0x19, 0x00, 0xfa, 0x94, 0xf8, 0x35, 0x20, 0xb1, 0x48, + 0xaf, 0x4e, 0x01, 0x88, 0x62, 0xf3, 0x1f, 0x31, 0x02, 0x46, 0x01, 0x92, 0x11, 0x80, 0x94, + 0xf8, 0x33, 0x10, 0x60, 0x8b, 0x40, 0x18, 0xd1, 0x88, 0x60, 0xf3, 0x1f, 0x31, 0xd1, 0x80, + 0xaa, 0x4a, 0x48, 0x46, 0x11, 0x78, 0x51, 0x29, 0x08, 0xbf, 0x01, 0x20, 0x02, 0x90, 0xa7, + 0x48, 0x4f, 0x46, 0xc5, 0x8b, 0x01, 0x8c, 0x03, 0x97, 0x04, 0x97, 0x05, 0x97, 0x06, 0x97, + 0x07, 0x93, 0xdd, 0xf8, 0x00, 0xc0, 0xa3, 0x4b, 0xa3, 0x4f, 0xbc, 0xf1, 0x00, 0x0f, 0x19, + 0xd0, 0x9c, 0x46, 0xcd, 0xf8, 0x20, 0xc0, 0x4f, 0xf4, 0x80, 0x53, 0xac, 0xf8, 0x30, 0x30, + 0xa0, 0xf8, 0x22, 0x90, 0x09, 0x91, 0xe8, 0x13, 0x82, 0x46, 0xb7, 0xf8, 0x9c, 0x00, 0x40, + 0x08, 0x34, 0xbf, 0x94, 0xf8, 0x5f, 0x10, 0x94, 0xf8, 0x61, 0x10, 0x94, 0xf8, 0x3b, 0x00, + 0x11, 0xe0, 0xc0, 0x46, 0x00, 0x02, 0x00, 0x20, 0x08, 0x93, 0x4f, 0xf0, 0x10, 0x01, 0x19, + 0x86, 0xa0, 0xf8, 0x06, 0x90, 0x45, 0x88, 0x80, 0x88, 0x09, 0x90, 0x94, 0xf8, 0x39, 0x00, + 0x94, 0xf8, 0x65, 0x10, 0xdd, 0xf8, 0x18, 0xa0, 0x01, 0x44, 0x4f, 0xea, 0xc1, 0x00, 0x08, + 0x99, 0x08, 0x80, 0x02, 0x98, 0x08, 0x99, 0x78, 0xb9, 0x01, 0x20, 0x01, 0xf8, 0x07, 0x0c, + 0x08, 0x88, 0x89, 0x88, 0x00, 0x1f, 0x88, 0x42, 0x04, 0xda, 0x11, 0x78, 0x21, 0x20, 0xff, + 0x22, 0x02, 0xf0, 0x2c, 0xfa, 0x08, 0x20, 0x02, 0xf0, 0x0a, 0xfa, 0x4f, 0xea, 0x65, 0x00, + 0x00, 0xf0, 0x1f, 0x00, 0x0a, 0x90, 0xa7, 0x48, 0x94, 0xf8, 0x77, 0x10, 0x4f, 0xf0, 0x01, + 0x08, 0x0b, 0x90, 0x07, 0x9b, 0x90, 0xf8, 0x5c, 0x0e, 0x4f, 0xea, 0xa5, 0x12, 0x02, 0xf0, + 0x7f, 0x02, 0x98, 0x72, + + 0x01, 0x05, 0xff, 0xff, 0xe8, 0x43, 0x19, 0x00, 0xfa, 0xa1, 0x48, 0x00, 0x88, 0x83, 0xf8, + 0x0b, 0x80, 0x18, 0x81, 0x60, 0x88, 0x60, 0xb9, 0x28, 0x2a, 0xbc, 0xbf, 0x02, 0xf2, 0xb1, + 0x40, 0x40, 0x00, 0x05, 0xdb, 0x4f, 0xea, 0x65, 0x10, 0x00, 0xf0, 0xfe, 0x00, 0x00, 0xf6, + 0x13, 0x10, 0x80, 0xb2, 0x0c, 0x90, 0x0c, 0x9a, 0x97, 0x48, 0x4c, 0xf2, 0x50, 0x33, 0x00, + 0xfb, 0x02, 0xf0, 0x0d, 0x90, 0x78, 0x89, 0x95, 0x4a, 0x6f, 0xf3, 0x9f, 0x20, 0x03, 0xfb, + 0x00, 0x25, 0x94, 0xf8, 0x76, 0x00, 0x30, 0xb1, 0x48, 0x09, 0x04, 0xd3, 0x0d, 0x98, 0x29, + 0x46, 0x01, 0xf0, 0xbb, 0xfd, 0xa0, 0xb9, 0xb4, 0xf8, 0xac, 0x01, 0x0c, 0x99, 0x80, 0xb9, + 0x4f, 0xf4, 0xfa, 0x30, 0x48, 0x43, 0xb4, 0xf9, 0x06, 0x10, 0xa0, 0xeb, 0x41, 0x10, 0x00, + 0xf5, 0x7a, 0x60, 0x4f, 0xf4, 0xfa, 0x51, 0xb0, 0xfb, 0xf1, 0xf0, 0x80, 0xb2, 0xcd, 0xf8, + 0x38, 0x80, 0x05, 0xe0, 0x0d, 0x98, 0x29, 0x46, 0x01, 0xf0, 0xc1, 0xfd, 0x06, 0x99, 0x0e, + 0x91, 0x81, 0x49, 0x4f, 0xf4, 0x96, 0x72, 0x81, 0x4d, 0xc1, 0xeb, 0x00, 0x51, 0xb1, 0xfb, + 0xf2, 0xf1, 0x40, 0x31, 0xc1, 0xf3, 0xd0, 0x11, 0xa6, 0xf6, 0x64, 0x72, 0x11, 0x60, 0xb4, + 0xf9, 0x08, 0x10, 0xb4, 0xf9, 0x06, 0x20, 0x89, 0x18, 0x26, 0xf8, 0x2c, 0x1c, 0x77, 0x49, + 0x01, 0xeb, 0x60, 0x01, 0xb1, 0xfb, 0xf0, 0xf0, 0x26, 0xf8, 0x2a, 0x0c, 0x00, 0x98, 0x08, + 0x99, 0x00, 0x28, 0x40, 0xf0, 0x8a, 0x80, 0xa1, 0xf8, 0x20, 0x90, 0x02, 0x20, 0x88, 0x83, + 0x0a, 0x98, 0x03, 0x28, 0x14, 0xdb, 0x78, 0x6a, 0x70, 0x65, 0xb8, 0x6a, 0xb0, 0x65, 0xf8, + 0x6a, 0xf0, 0x65, 0x38, 0x6b, 0x30, 0x66, 0x78, 0x6b, 0x70, 0x66, 0xb8, 0x6b, 0xb0, 0x66, + 0x0a, 0x98, 0x80, 0x10, + + 0x01, 0x05, 0xff, 0xff, 0xe2, 0x44, 0x19, 0x00, 0xfa, 0x86, 0xf8, 0x76, 0x00, 0x0c, 0xe0, + 0xd0, 0x08, 0x00, 0x20, 0x10, 0x01, 0x04, 0x42, 0x0a, 0x98, 0x07, 0xeb, 0xc0, 0x00, 0xc1, + 0x68, 0x71, 0x65, 0x00, 0x69, 0xb0, 0x65, 0x86, 0xf8, 0x76, 0x80, 0x4f, 0xf0, 0x3f, 0x0a, + 0x4f, 0xf4, 0x80, 0x70, 0xa6, 0xf8, 0x6c, 0xa0, 0x85, 0xf8, 0xe0, 0x9c, 0xa6, 0xf8, 0x74, + 0x00, 0x05, 0x20, 0xa6, 0xf8, 0x7a, 0x00, 0x1f, 0x20, 0xa6, 0xf8, 0x78, 0x00, 0x82, 0x20, + 0x86, 0xf8, 0x8d, 0x00, 0x4f, 0xf4, 0x9b, 0x70, 0xa6, 0xf8, 0x7e, 0x00, 0x4f, 0xf4, 0xc3, + 0x70, 0xa6, 0xf8, 0x7c, 0x00, 0x43, 0xf2, 0x3a, 0x50, 0xa6, 0xf8, 0x88, 0x00, 0x42, 0xf2, + 0x09, 0x30, 0xa6, 0xf8, 0x90, 0x00, 0x41, 0xf2, 0x1b, 0x40, 0xa6, 0xf8, 0x92, 0x00, 0x04, + 0x20, 0x86, 0xf8, 0x96, 0x00, 0x3a, 0x20, 0x86, 0xf8, 0x95, 0x00, 0x4f, 0xf4, 0xa3, 0x70, + 0xa6, 0xf8, 0xa2, 0x00, 0xe4, 0x20, 0xa6, 0xf8, 0xa6, 0x00, 0xa6, 0xf8, 0xa4, 0x00, 0x7a, + 0x20, 0xa6, 0xf8, 0xa0, 0x00, 0x6c, 0x20, 0xf0, 0x80, 0x4f, 0xf6, 0x94, 0x70, 0x30, 0x81, + 0x1a, 0x20, 0x70, 0x82, 0xf0, 0x83, 0x30, 0x8e, 0x6f, 0xf3, 0x09, 0x00, 0x40, 0xf4, 0xcd, + 0x70, 0x30, 0x86, 0x85, 0xf8, 0x20, 0x98, 0x85, 0xf8, 0x00, 0x80, 0xb0, 0x8a, 0x20, 0xf4, + 0x60, 0x60, 0x40, 0xf4, 0xa0, 0x60, 0xb0, 0x82, 0x85, 0xf8, 0x30, 0x94, 0x30, 0x88, 0x20, + 0xf4, 0x40, 0x70, 0x30, 0x80, 0xcc, 0xe0, 0xc0, 0x46, 0x68, 0x10, 0x00, 0x40, 0x08, 0x20, + 0x00, 0x40, 0x1c, 0x09, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x3c, 0x24, 0x00, 0x40, 0xc0, + 0x00, 0x00, 0x20, 0x08, 0x99, 0x31, 0x20, 0xba, 0xf1, 0x00, 0x0f, 0x08, 0x84, 0x86, 0xf8, + 0x76, 0x80, 0x0a, 0x98, + + 0x01, 0x05, 0xff, 0xff, 0xdc, 0x45, 0x19, 0x00, 0xfa, 0x00, 0xf0, 0x07, 0x00, 0x0a, 0x90, + 0x29, 0x48, 0x52, 0xd1, 0xf9, 0x6b, 0xb1, 0x65, 0x39, 0x6c, 0x31, 0x66, 0x79, 0x6c, 0xb1, + 0x66, 0x97, 0xf8, 0x95, 0x10, 0x19, 0xb1, 0x4f, 0xf0, 0x07, 0x01, 0x86, 0xf8, 0x76, 0x10, + 0x1f, 0x21, 0xa6, 0xf8, 0x6c, 0x10, 0x00, 0x88, 0xa6, 0xf8, 0x74, 0x00, 0x04, 0x20, 0xa6, + 0xf8, 0x7a, 0x00, 0x13, 0x20, 0xa6, 0xf8, 0x78, 0x00, 0xad, 0x20, 0x86, 0xf8, 0x8d, 0x00, + 0x4f, 0xf4, 0xa8, 0x70, 0xa6, 0xf8, 0xa2, 0x00, 0xee, 0x20, 0xa6, 0xf8, 0xa6, 0x00, 0xa6, + 0xf8, 0xa4, 0x00, 0x83, 0x20, 0xa6, 0xf8, 0xa0, 0x00, 0xa6, 0xf8, 0x06, 0x90, 0xa6, 0xf8, + 0x08, 0x90, 0x30, 0x8e, 0x6f, 0xf3, 0x09, 0x00, 0x40, 0xf0, 0x64, 0x00, 0x30, 0x86, 0x85, + 0xf8, 0x00, 0x90, 0xb0, 0x8a, 0x20, 0xf4, 0x70, 0x60, 0x40, 0xf4, 0x00, 0x70, 0xb0, 0x82, + 0x85, 0xf8, 0x30, 0x84, 0x30, 0x88, 0x20, 0xf4, 0x00, 0x70, 0x40, 0xf4, 0x80, 0x70, 0x48, + 0xe0, 0xc0, 0x46, 0x64, 0x8c, 0x03, 0x42, 0x18, 0x1c, 0x00, 0x40, 0x40, 0x42, 0x0f, 0x00, + 0x00, 0xab, 0x87, 0x04, 0x6a, 0xff, 0xff, 0x5f, 0xeb, 0x51, 0xb8, 0x1e, 0x00, 0x0f, 0x02, + 0x42, 0xb0, 0x03, 0x00, 0x20, 0xb7, 0xf8, 0x96, 0x10, 0xa6, 0xf8, 0x5a, 0x10, 0x0f, 0x21, + 0xa6, 0xf8, 0x6c, 0x10, 0x80, 0x1c, 0x00, 0x88, 0xa6, 0xf8, 0x74, 0x00, 0x05, 0x20, 0xa6, + 0xf8, 0x7a, 0x00, 0x1f, 0x20, 0xa6, 0xf8, 0x78, 0x00, 0x82, 0x20, 0x86, 0xf8, 0x8d, 0x00, + 0x4f, 0xf4, 0xa3, 0x70, 0xa6, 0xf8, 0xa2, 0x00, 0xe4, 0x20, 0xa6, 0xf8, 0xa6, 0x00, 0xa6, + 0xf8, 0xa4, 0x00, 0x7a, 0x20, 0xa6, 0xf8, 0xa0, 0x00, 0x6c, 0x20, 0xf0, 0x80, 0x4f, 0xf6, + 0x94, 0x70, 0x30, 0x81, + + 0x01, 0x05, 0xff, 0xff, 0xd6, 0x46, 0x19, 0x00, 0xfa, 0x30, 0x8e, 0x6f, 0xf3, 0x09, 0x00, + 0x40, 0xf4, 0xcd, 0x70, 0x30, 0x86, 0x85, 0xf8, 0x00, 0x80, 0xb0, 0x8a, 0x20, 0xf4, 0x60, + 0x60, 0x40, 0xf4, 0xa0, 0x60, 0xb0, 0x82, 0x85, 0xf8, 0x30, 0x94, 0x30, 0x88, 0x20, 0xf4, + 0x40, 0x70, 0x30, 0x80, 0xaa, 0x20, 0x85, 0xf8, 0xe0, 0x8c, 0xa6, 0xf8, 0x7e, 0x00, 0xfa, + 0x20, 0xa6, 0xf8, 0x7c, 0x00, 0x43, 0xf2, 0x28, 0x60, 0xa6, 0xf8, 0x88, 0x00, 0x41, 0xf2, + 0x08, 0x30, 0xa6, 0xf8, 0x90, 0x00, 0x00, 0xf1, 0x01, 0x00, 0xa6, 0xf8, 0x92, 0x00, 0x02, + 0x20, 0x86, 0xf8, 0x96, 0x00, 0x32, 0x20, 0x86, 0xf8, 0x95, 0x00, 0x1a, 0x20, 0x70, 0x82, + 0xf0, 0x83, 0xb4, 0xf8, 0x62, 0x00, 0x00, 0x28, 0x0c, 0xbf, 0x85, 0xf8, 0x20, 0x98, 0x85, + 0xf8, 0x20, 0x88, 0x4f, 0xf0, 0x3f, 0x0a, 0x40, 0xf6, 0x12, 0x00, 0xb0, 0x84, 0x41, 0x20, + 0x06, 0xf8, 0x12, 0x0c, 0x09, 0x98, 0x03, 0x28, 0x05, 0xd1, 0xa0, 0x88, 0x40, 0x08, 0x28, + 0xbf, 0xdd, 0xf8, 0x18, 0xb0, 0x00, 0xd2, 0xc3, 0x46, 0xa5, 0xf5, 0x70, 0x60, 0x80, 0xf8, + 0x00, 0xb0, 0xb4, 0xf9, 0x06, 0x10, 0xfa, 0x20, 0x01, 0xfb, 0x00, 0xf1, 0x0d, 0x98, 0x40, + 0x1a, 0x01, 0xf0, 0x27, 0xfb, 0x07, 0x99, 0x00, 0xf5, 0x00, 0x03, 0x09, 0x68, 0x0f, 0x91, + 0xdd, 0xf8, 0x3c, 0xc0, 0x0d, 0x9a, 0x19, 0x0e, 0x0c, 0xfb, 0x11, 0x21, 0x00, 0x29, 0xb8, + 0xbf, 0x49, 0x42, 0x74, 0x4a, 0x8a, 0x42, 0x1b, 0xdd, 0xb4, 0xf8, 0xee, 0x10, 0x01, 0xf0, + 0x01, 0x01, 0x03, 0x91, 0x03, 0xf0, 0x7f, 0x43, 0x1b, 0x1a, 0x0f, 0x98, 0x10, 0x33, 0x59, + 0x11, 0x00, 0xf5, 0x80, 0x70, 0x40, 0x0a, 0x4f, 0xf4, 0x00, 0x72, 0x00, 0xfb, 0x01, 0x20, + 0x80, 0x12, 0x4f, 0xf4, + + 0x01, 0x05, 0xff, 0xff, 0xd0, 0x47, 0x19, 0x00, 0xfa, 0x00, 0x41, 0x40, 0xf2, 0x5b, 0x32, + 0x02, 0xfb, 0x00, 0x10, 0x00, 0x14, 0x26, 0xf8, 0x14, 0x0c, 0x58, 0x46, 0xff, 0xf7, 0x59, + 0xfc, 0x07, 0x98, 0x80, 0x7b, 0x60, 0xb1, 0x02, 0x98, 0x50, 0xb9, 0x00, 0x98, 0x00, 0x28, + 0x07, 0xbf, 0x08, 0x98, 0x80, 0xf8, 0x11, 0x80, 0x08, 0x98, 0x80, 0xf8, 0x13, 0x80, 0x01, + 0xf0, 0x82, 0xfe, 0x0e, 0x9a, 0x58, 0x46, 0xff, 0xf7, 0xa7, 0xfc, 0x0c, 0x98, 0x41, 0x46, + 0x01, 0xf0, 0x0d, 0xfb, 0x07, 0x98, 0x00, 0x7d, 0x40, 0xb9, 0x06, 0x98, 0x07, 0x21, 0x01, + 0xf0, 0xe6, 0xfa, 0x0b, 0x98, 0x00, 0x78, 0x0b, 0x99, 0xc0, 0x43, 0x08, 0x70, 0x94, 0xf8, + 0x76, 0x00, 0x28, 0xb1, 0x08, 0x98, 0xa0, 0xf5, 0x0a, 0x70, 0x00, 0x88, 0x40, 0x08, 0x05, + 0xd2, 0x01, 0x98, 0x40, 0x8a, 0x01, 0x99, 0x40, 0xf0, 0x07, 0x00, 0x48, 0x82, 0xa6, 0xf6, + 0x68, 0x70, 0x80, 0xf8, 0x00, 0xa0, 0x96, 0x48, 0x0f, 0x90, 0x80, 0xf8, 0x5c, 0x80, 0xa6, + 0xf6, 0x62, 0x60, 0x02, 0x78, 0xa6, 0xf6, 0x62, 0x60, 0x00, 0x88, 0xa6, 0xf6, 0x62, 0x61, + 0x40, 0xf0, 0x0f, 0x00, 0x08, 0x80, 0xa6, 0xf6, 0x62, 0x60, 0x00, 0x88, 0x02, 0xf0, 0x0f, + 0x02, 0x20, 0xf0, 0x0f, 0x00, 0x02, 0x43, 0xa6, 0xf6, 0x62, 0x60, 0x02, 0x80, 0xff, 0xf7, + 0xcb, 0xfc, 0x08, 0x98, 0x30, 0xf8, 0x10, 0x0c, 0x07, 0x99, 0xc0, 0x11, 0x00, 0xf0, 0x01, + 0x00, 0x81, 0xf8, 0x32, 0x00, 0x40, 0x46, 0x86, 0xf8, 0x54, 0x81, 0x01, 0xf0, 0x6e, 0xff, + 0x01, 0xf0, 0x73, 0xfa, 0x94, 0xf9, 0x52, 0x10, 0x81, 0x42, 0xbc, 0xbf, 0x07, 0x98, 0x80, + 0xf8, 0x33, 0x80, 0x02, 0x98, 0x00, 0x28, 0x40, 0xf0, 0x64, 0x81, 0x03, 0x98, 0x18, 0xb1, + 0xa5, 0xf2, 0xdc, 0x50, + + 0x01, 0x05, 0xff, 0xff, 0xca, 0x48, 0x19, 0x00, 0xfa, 0x80, 0xf8, 0x00, 0x90, 0x00, 0x98, + 0x00, 0x28, 0x14, 0xbf, 0x07, 0x20, 0x03, 0x20, 0x08, 0x99, 0xdf, 0xf8, 0x34, 0xa2, 0x01, + 0xf8, 0x33, 0x0c, 0x00, 0x98, 0x20, 0xb9, 0x0a, 0x98, 0x81, 0x10, 0x50, 0x46, 0x00, 0x1d, + 0x01, 0x80, 0x09, 0x98, 0x03, 0x28, 0x4d, 0xd0, 0x00, 0x98, 0x01, 0x28, 0x08, 0xd0, 0xb7, + 0xf8, 0xa8, 0x00, 0x08, 0x99, 0xc0, 0x00, 0xa0, 0xf5, 0x18, 0x70, 0x08, 0x80, 0x88, 0x20, + 0x00, 0xe0, 0x81, 0x20, 0x01, 0xf0, 0x56, 0xff, 0x07, 0x46, 0x38, 0x0a, 0x07, 0x98, 0x03, + 0xd2, 0x90, 0xf8, 0x32, 0x00, 0x01, 0x28, 0x07, 0xd1, 0xa5, 0xf2, 0xdc, 0x50, 0x80, 0xf8, + 0x00, 0x80, 0xcd, 0xf8, 0x10, 0x80, 0x06, 0x98, 0x03, 0x90, 0x00, 0x98, 0x38, 0xbb, 0x38, + 0x0a, 0x02, 0xd3, 0x08, 0x20, 0x01, 0xf0, 0x3f, 0xff, 0x86, 0xf8, 0x54, 0x81, 0x40, 0x46, + 0x01, 0xf0, 0x1c, 0xff, 0x01, 0xf0, 0x21, 0xfa, 0x94, 0xf9, 0xc1, 0x10, 0x81, 0x42, 0x0f, + 0xdb, 0x07, 0x98, 0x90, 0xf8, 0x32, 0x00, 0x01, 0x28, 0x0a, 0xd0, 0x94, 0xf8, 0xc0, 0x00, + 0x40, 0x08, 0x0e, 0xd3, 0x09, 0x98, 0x60, 0xb9, 0x01, 0xf0, 0xcc, 0xfd, 0x0a, 0xe1, 0x28, + 0xe7, 0x09, 0x00, 0x03, 0x98, 0xff, 0xf7, 0x80, 0xfc, 0x0a, 0x20, 0x01, 0xf0, 0x00, 0xff, + 0x85, 0xf8, 0x00, 0x88, 0x09, 0x98, 0x02, 0x28, 0x01, 0xd1, 0x01, 0xf0, 0x79, 0xfb, 0x09, + 0x98, 0x03, 0x28, 0x2a, 0xd1, 0xb4, 0xf8, 0x5c, 0x00, 0x38, 0xb3, 0x86, 0xf8, 0x54, 0x81, + 0x40, 0x46, 0x01, 0xf0, 0xee, 0xfe, 0x01, 0xf0, 0xf3, 0xf9, 0x94, 0xf9, 0xc1, 0x10, 0x81, + 0x42, 0x18, 0xdb, 0x01, 0xf0, 0x66, 0xfb, 0x4f, 0xf4, 0xfa, 0x60, 0x01, 0xf0, 0x18, 0xff, + 0x91, 0x20, 0x01, 0xf0, + + 0x01, 0x05, 0xff, 0xff, 0xc4, 0x49, 0x19, 0x00, 0xfa, 0xfd, 0xfe, 0x07, 0x46, 0x17, 0xf0, + 0x81, 0x0f, 0x0b, 0xd1, 0x01, 0xf0, 0xb3, 0xfb, 0x64, 0x20, 0x01, 0xf0, 0x0c, 0xff, 0x91, + 0x20, 0x01, 0xf0, 0xf1, 0xfe, 0x07, 0x46, 0x17, 0xf0, 0x81, 0x0f, 0xdb, 0xd0, 0x38, 0x0a, + 0x01, 0xd3, 0x01, 0xf0, 0xa5, 0xfb, 0x00, 0x98, 0x01, 0x28, 0x04, 0xd1, 0x38, 0x0a, 0x02, + 0xd3, 0x40, 0x46, 0x01, 0xf0, 0xe1, 0xfe, 0x00, 0x98, 0x10, 0xb9, 0x40, 0x46, 0x01, 0xf0, + 0xdc, 0xfe, 0x28, 0x20, 0x01, 0xf0, 0xfa, 0xfe, 0x00, 0x98, 0x01, 0x28, 0x02, 0xd1, 0x03, + 0x98, 0xff, 0xf7, 0x32, 0xfc, 0xb4, 0xf8, 0x4e, 0x00, 0x00, 0xf1, 0x01, 0x00, 0xa4, 0xf8, + 0x4e, 0x00, 0x03, 0x98, 0xe0, 0xb9, 0x94, 0xf8, 0xc0, 0x00, 0xdd, 0xf8, 0x18, 0xb0, 0x00, + 0x11, 0x00, 0xf0, 0x07, 0x00, 0x02, 0x28, 0x08, 0xbf, 0xc3, 0x46, 0xbb, 0xf1, 0x00, 0x0f, + 0x0d, 0xd1, 0x01, 0x28, 0x09, 0x98, 0x0c, 0xd0, 0x58, 0xb9, 0x04, 0x98, 0x48, 0xb1, 0x07, + 0x98, 0x90, 0xf8, 0x32, 0x00, 0x28, 0xb9, 0x07, 0x98, 0x90, 0xf8, 0x33, 0x00, 0x08, 0xb9, + 0xcd, 0xf8, 0x14, 0x80, 0x84, 0xf8, 0x0c, 0x90, 0x05, 0x98, 0x18, 0xb9, 0x0a, 0x20, 0x01, + 0xf0, 0x89, 0xfe, 0x03, 0xe0, 0x01, 0xf0, 0x06, 0xfb, 0x84, 0xf8, 0x0c, 0x80, 0x00, 0x98, + 0x10, 0xb9, 0x0a, 0x98, 0x03, 0x28, 0x16, 0xdb, 0x96, 0xf8, 0x99, 0x00, 0x03, 0x28, 0x08, + 0xbf, 0x04, 0x20, 0x00, 0x99, 0x00, 0x29, 0x08, 0xbf, 0xaa, 0xf8, 0x04, 0x00, 0x0d, 0xd0, + 0x8a, 0xf8, 0x06, 0x00, 0x96, 0xf8, 0x98, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x8a, 0xf8, 0x07, + 0x00, 0x04, 0xe0, 0xc0, 0x46, 0x08, 0x20, 0x00, 0x42, 0xaa, 0xf8, 0x04, 0x90, 0x35, 0x4f, + 0x0a, 0x20, 0x87, 0xf8, + + 0x01, 0x05, 0xff, 0xff, 0xbe, 0x4a, 0x19, 0x00, 0xfa, 0x24, 0x90, 0x01, 0xf0, 0x60, 0xfe, + 0x86, 0xf8, 0x54, 0x81, 0x40, 0x46, 0x01, 0xf0, 0x5b, 0xfe, 0x87, 0xf8, 0x00, 0x90, 0x0f, + 0x98, 0x80, 0xf8, 0x00, 0x90, 0x0c, 0x20, 0x01, 0xf0, 0x7c, 0xfe, 0x08, 0x98, 0x80, 0x8b, + 0x01, 0x28, 0x08, 0xbf, 0xcd, 0xf8, 0x18, 0x80, 0xe0, 0x89, 0x84, 0xf8, 0x0d, 0x90, 0x01, + 0x28, 0x0f, 0xd1, 0x06, 0x98, 0x01, 0x28, 0x0c, 0xd1, 0x05, 0x98, 0x01, 0x28, 0x09, 0xd1, + 0xbb, 0xf1, 0x00, 0x0f, 0x06, 0xd1, 0x01, 0xf0, 0x17, 0xfb, 0x84, 0xf8, 0x0d, 0x80, 0x06, + 0xe0, 0x30, 0x00, 0x00, 0x20, 0x85, 0xf8, 0x00, 0x98, 0x06, 0x20, 0x01, 0xf0, 0x33, 0xfe, + 0x85, 0xf8, 0x40, 0x88, 0x00, 0x98, 0x08, 0x99, 0x00, 0x28, 0x2f, 0xd1, 0x04, 0x20, 0x01, + 0xf8, 0x33, 0x0c, 0x10, 0x20, 0x01, 0xf0, 0x66, 0xfe, 0x09, 0x20, 0x01, 0xf0, 0x42, 0xfe, + 0x61, 0x7b, 0x01, 0x29, 0x08, 0xbf, 0x85, 0xf8, 0x00, 0x98, 0x40, 0x08, 0x0a, 0xd3, 0x07, + 0x98, 0x90, 0xf8, 0x32, 0x00, 0x30, 0xb9, 0x07, 0x98, 0x90, 0xf8, 0x33, 0x00, 0x10, 0xb9, + 0x40, 0xf2, 0x14, 0x60, 0xb0, 0x84, 0x08, 0x98, 0x06, 0x21, 0x00, 0xf8, 0x33, 0x1c, 0x64, + 0x20, 0x01, 0xf0, 0x4a, 0xfe, 0x09, 0x20, 0x01, 0xf0, 0x31, 0xfe, 0x40, 0x08, 0x08, 0xd3, + 0x0a, 0x20, 0x01, 0xf0, 0x03, 0xfe, 0xa5, 0xf5, 0xb2, 0x65, 0x87, 0xf8, 0x1c, 0x90, 0x85, + 0xf8, 0x00, 0x80, 0x10, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x90, 0x2c, 0x02, 0x42, 0x30, 0xb5, + 0x29, 0x4c, 0x00, 0x25, 0x20, 0x78, 0x01, 0x28, 0x47, 0xd1, 0x28, 0x48, 0x02, 0x46, 0xbe, + 0x3a, 0x15, 0x80, 0x95, 0x70, 0x15, 0x71, 0x95, 0x71, 0xb2, 0xf8, 0x42, 0x10, 0xc9, 0xb2, + 0xa2, 0xf8, 0x42, 0x10, + + 0x01, 0x05, 0xff, 0xff, 0xb8, 0x4b, 0x19, 0x00, 0xfa, 0x21, 0x49, 0x0d, 0x70, 0xa2, 0xf6, + 0xf4, 0x31, 0x0d, 0x80, 0xa2, 0xf6, 0xf2, 0x31, 0x0d, 0x80, 0x00, 0x88, 0x20, 0xf0, 0x03, + 0x00, 0xa2, 0xf8, 0xbe, 0x00, 0xb1, 0x48, 0x81, 0x6b, 0xa2, 0xf6, 0xfc, 0x33, 0x19, 0x60, + 0xc1, 0x6b, 0xa2, 0xf6, 0xf8, 0x33, 0x19, 0x60, 0x90, 0xf8, 0x41, 0x10, 0xac, 0x4b, 0x19, + 0x70, 0x90, 0xf8, 0x40, 0x10, 0x82, 0xf8, 0xe1, 0x15, 0x90, 0xf8, 0x42, 0x10, 0x82, 0xf8, + 0xdd, 0x14, 0x90, 0xf8, 0x43, 0x10, 0x82, 0xf8, 0xdc, 0x14, 0x41, 0x6c, 0xa6, 0x4a, 0x11, + 0x60, 0xa6, 0x49, 0x90, 0xf8, 0x48, 0x20, 0x81, 0xf8, 0x7a, 0x20, 0x90, 0xf8, 0x49, 0x00, + 0x81, 0xf8, 0x7e, 0x00, 0x28, 0x46, 0x01, 0xf0, 0xd1, 0xfa, 0x09, 0x48, 0x00, 0x78, 0x10, + 0xb9, 0x10, 0x20, 0x08, 0x49, 0x08, 0x80, 0x25, 0x70, 0x30, 0xbd, 0x01, 0x12, 0x49, 0x42, + 0x08, 0x43, 0xc0, 0xb2, 0x70, 0x47, 0x24, 0x09, 0x00, 0x20, 0x4c, 0x8c, 0x03, 0x42, 0xd6, + 0x1c, 0x00, 0x40, 0x87, 0x00, 0x00, 0x20, 0x1e, 0x24, 0x00, 0x40, 0x2d, 0xe9, 0xf0, 0x4f, + 0xad, 0xf1, 0x7c, 0x0d, 0x04, 0x93, 0x05, 0x92, 0x06, 0x91, 0x91, 0x49, 0x07, 0x90, 0x40, + 0x08, 0x08, 0x91, 0x94, 0x49, 0x09, 0x91, 0x95, 0x49, 0x0a, 0x91, 0x96, 0x49, 0x0b, 0x91, + 0xc0, 0xf0, 0x70, 0x81, 0xdf, 0xf8, 0x20, 0x82, 0x8c, 0x48, 0x01, 0x46, 0x89, 0x1e, 0x0a, + 0x68, 0xc8, 0xf8, 0x38, 0x20, 0x4a, 0x68, 0xc8, 0xf8, 0x3c, 0x20, 0x84, 0x4a, 0x12, 0x1f, + 0x92, 0xf8, 0x05, 0x31, 0x88, 0xf8, 0x40, 0x30, 0x80, 0x4d, 0x2b, 0x78, 0x88, 0xf8, 0x41, + 0x30, 0x53, 0x78, 0x88, 0xf8, 0x42, 0x30, 0x13, 0x78, 0x88, 0xf8, 0x43, 0x30, 0x52, 0x68, + 0xc8, 0xf8, 0x44, 0x20, + + 0x01, 0x05, 0xff, 0xff, 0xb2, 0x4c, 0x19, 0x00, 0xfa, 0xdd, 0xf8, 0x20, 0x90, 0x99, 0xf8, + 0x7a, 0x20, 0x88, 0xf8, 0x48, 0x20, 0x99, 0xf8, 0x7e, 0x20, 0x88, 0xf8, 0x49, 0x20, 0x99, + 0xf8, 0x78, 0x20, 0x89, 0xf8, 0x7a, 0x20, 0x99, 0xf8, 0x7c, 0x20, 0x89, 0xf8, 0x7e, 0x20, + 0x19, 0x22, 0x8a, 0x70, 0x00, 0x24, 0x72, 0x49, 0x0c, 0x91, 0x81, 0xf8, 0x20, 0x40, 0x0c, + 0x70, 0x01, 0x88, 0x21, 0xf4, 0x00, 0x61, 0x41, 0xf4, 0xe0, 0x61, 0x01, 0x80, 0x6f, 0x4f, + 0xa7, 0xf5, 0xa3, 0x71, 0x00, 0x88, 0x20, 0xf4, 0x40, 0x50, 0x08, 0x80, 0x3f, 0x20, 0xa7, + 0xf5, 0xa2, 0x71, 0x08, 0x70, 0x08, 0x20, 0xa7, 0xf2, 0x43, 0x11, 0x08, 0x70, 0x3c, 0x20, + 0xa7, 0xf5, 0xa1, 0x71, 0x08, 0x70, 0x4f, 0xf0, 0x18, 0x0b, 0xa7, 0xf2, 0x41, 0x10, 0x80, + 0xf8, 0x00, 0xb0, 0x63, 0x48, 0x01, 0xf0, 0x55, 0xf8, 0x01, 0x22, 0xc7, 0xf8, 0xf4, 0x0a, + 0x0d, 0x92, 0x2a, 0x70, 0x99, 0xf8, 0xd4, 0x00, 0x00, 0x11, 0x40, 0xf0, 0x10, 0x00, 0x87, + 0xf8, 0x91, 0x0f, 0x99, 0xf8, 0xd4, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x87, 0xf8, 0x90, 0x0f, + 0xd8, 0xf8, 0x04, 0x00, 0xc7, 0xf8, 0x94, 0x0f, 0x59, 0x48, 0x4f, 0xf4, 0xa0, 0x71, 0x09, + 0x9d, 0x84, 0x80, 0x41, 0x80, 0x85, 0xf8, 0x9f, 0x45, 0x0a, 0x9e, 0x51, 0x20, 0x96, 0xf8, + 0x00, 0xa0, 0x30, 0x70, 0x20, 0x46, 0x25, 0xf8, 0x42, 0x4c, 0x88, 0xf8, 0x14, 0x20, 0xff, + 0xf7, 0xa3, 0xfa, 0x42, 0xf2, 0x09, 0x00, 0x86, 0xf8, 0x00, 0xa0, 0x38, 0x80, 0xb9, 0xf8, + 0xae, 0x00, 0x25, 0xf8, 0x4a, 0x0c, 0x4c, 0x48, 0x0e, 0x90, 0x06, 0x98, 0x0f, 0x90, 0x05, + 0x98, 0x10, 0x90, 0x0b, 0x98, 0xdd, 0xf8, 0x10, 0xa0, 0x86, 0x1c, 0x11, 0x90, 0x45, 0xf6, + 0xe3, 0x50, 0x12, 0x90, + + 0x01, 0x05, 0xff, 0xff, 0xac, 0x4d, 0x19, 0x00, 0xfa, 0x0d, 0xf1, 0x07, 0x00, 0xcd, 0xf8, + 0x4c, 0xb0, 0x14, 0x90, 0x0d, 0xf1, 0x0b, 0x00, 0x15, 0x90, 0x0d, 0xf1, 0x03, 0x00, 0x16, + 0x90, 0xad, 0xf1, 0x01, 0x00, 0x17, 0x90, 0x40, 0xf6, 0x6c, 0x10, 0x18, 0x90, 0x3f, 0x48, + 0x19, 0x94, 0xcd, 0xf8, 0x68, 0x80, 0x1b, 0x90, 0x19, 0x98, 0x28, 0xb1, 0x25, 0xf8, 0x42, + 0x4c, 0x18, 0x98, 0x0d, 0x99, 0x01, 0xf0, 0x24, 0xf8, 0xdd, 0xf8, 0x34, 0x80, 0xdd, 0xf8, + 0x38, 0xb0, 0x40, 0x46, 0x8b, 0xf8, 0x00, 0x80, 0x01, 0xf0, 0xc5, 0xfc, 0xd7, 0xf8, 0x24, + 0x0b, 0x8b, 0xf8, 0x00, 0x40, 0x17, 0x99, 0x01, 0xf8, 0x01, 0x0f, 0x17, 0x91, 0x16, 0x9a, + 0x01, 0x0a, 0x02, 0xf8, 0x01, 0x1f, 0x16, 0x92, 0x15, 0x9a, 0x01, 0x0c, 0x02, 0xf8, 0x01, + 0x1f, 0x15, 0x92, 0x14, 0x99, 0x00, 0x0e, 0x01, 0xf8, 0x01, 0x0f, 0x14, 0x91, 0x99, 0xf8, + 0xcc, 0x10, 0x28, 0x88, 0xaa, 0xf1, 0x02, 0x0a, 0x61, 0xf3, 0x1f, 0x20, 0x28, 0x80, 0x8b, + 0xf8, 0xbc, 0x86, 0x09, 0xf1, 0xcb, 0x08, 0x4f, 0xf0, 0x05, 0x0b, 0x1a, 0x98, 0x1b, 0x99, + 0x00, 0x68, 0x13, 0x9a, 0xb0, 0xfb, 0xf1, 0xf1, 0xb9, 0xf8, 0xb2, 0x00, 0x42, 0x43, 0xb9, + 0xf8, 0xb6, 0x00, 0x40, 0x02, 0xa0, 0xeb, 0x12, 0x10, 0x00, 0x0c, 0x48, 0x43, 0x81, 0x01, + 0x01, 0xeb, 0x40, 0x11, 0x12, 0x98, 0xb1, 0xfb, 0xf0, 0xf0, 0x80, 0xb2, 0x2a, 0xf8, 0x02, + 0x0f, 0x25, 0xf8, 0x4e, 0x0c, 0x28, 0x88, 0x18, 0xf8, 0x01, 0x1f, 0x61, 0xf3, 0x1f, 0x20, + 0x28, 0x80, 0x0d, 0x98, 0xa7, 0xf2, 0x4b, 0x11, 0x08, 0x70, 0x01, 0xf0, 0x79, 0xfc, 0x4f, + 0xf4, 0x80, 0x70, 0x1d, 0xe0, 0xd0, 0x08, 0x00, 0x20, 0x00, 0x3f, 0x04, 0x42, 0xf8, 0x20, + 0x00, 0x40, 0x00, 0x02, + + 0x01, 0x05, 0xff, 0xff, 0xa6, 0x4e, 0x19, 0x00, 0xfa, 0x00, 0x20, 0x80, 0x03, 0x02, 0x42, + 0x1e, 0x10, 0x00, 0x40, 0x64, 0x11, 0x00, 0x40, 0x00, 0x09, 0x3d, 0x00, 0x5a, 0x1c, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x20, 0x1c, 0x09, 0x00, 0x20, 0x90, 0x85, 0x03, 0x42, 0x40, 0x04, + 0x00, 0x20, 0xa0, 0x86, 0x01, 0x00, 0xa0, 0xf1, 0x01, 0x00, 0x0c, 0x99, 0x91, 0xf8, 0xa0, + 0x11, 0x09, 0xb9, 0x00, 0x28, 0xf7, 0xd1, 0xa7, 0xf5, 0x9c, 0x71, 0x0f, 0x9a, 0x09, 0x88, + 0x22, 0xf8, 0x02, 0x1b, 0x0f, 0x92, 0xa7, 0xf5, 0x9b, 0x71, 0x10, 0x9a, 0x09, 0x88, 0x22, + 0xf8, 0x02, 0x1b, 0x10, 0x92, 0x11, 0x99, 0x21, 0xf8, 0x08, 0x4b, 0x11, 0x91, 0x34, 0x80, + 0x74, 0x80, 0xb4, 0x80, 0x13, 0x99, 0x40, 0x31, 0x13, 0x91, 0x12, 0x99, 0x08, 0x36, 0xbb, + 0xf1, 0x01, 0x0b, 0x01, 0xf1, 0x28, 0x01, 0x12, 0x91, 0x91, 0xd1, 0x18, 0x98, 0x14, 0x30, + 0x80, 0xb2, 0x18, 0x90, 0x19, 0x98, 0x0a, 0xf1, 0x02, 0x0a, 0x40, 0x1c, 0x04, 0x28, 0x19, + 0x90, 0xff, 0xf4, 0x50, 0xaf, 0xec, 0x80, 0xb5, 0xf8, 0x7c, 0x00, 0x40, 0xf0, 0x03, 0x00, + 0xa5, 0xf8, 0x7c, 0x00, 0x0f, 0x20, 0x87, 0xf8, 0x00, 0x0b, 0x0d, 0x98, 0x01, 0xf0, 0x19, + 0xfc, 0x87, 0xf8, 0x00, 0x4b, 0x07, 0x98, 0x0a, 0x9c, 0x80, 0x08, 0xc0, 0xf0, 0x90, 0x81, + 0x20, 0x78, 0x41, 0x28, 0x12, 0xbf, 0x07, 0x25, 0x77, 0x48, 0x05, 0x78, 0x40, 0xf2, 0x6e, + 0x20, 0x01, 0xf0, 0x47, 0xfc, 0x00, 0x26, 0x37, 0x46, 0x00, 0x2d, 0xba, 0x46, 0xb0, 0x46, + 0x4f, 0xf4, 0x8e, 0x70, 0x1c, 0x94, 0x00, 0xf0, 0x6a, 0x81, 0x09, 0x9c, 0x14, 0x90, 0x4f, + 0xf4, 0x8d, 0x70, 0x15, 0x90, 0x4f, 0xf4, 0x8f, 0x70, 0x16, 0x90, 0x4f, 0xf4, 0x90, 0x70, + 0x17, 0x90, 0x4f, 0xf4, + + 0x01, 0x05, 0xff, 0xff, 0xa0, 0x4f, 0x19, 0x00, 0xfa, 0x9a, 0x70, 0x0e, 0x90, 0x69, 0x48, + 0x1d, 0x90, 0x01, 0x20, 0x0a, 0x90, 0x0d, 0x95, 0x08, 0x9d, 0xd1, 0x46, 0xdd, 0xf8, 0x2c, + 0xb0, 0x08, 0x96, 0x50, 0x46, 0x09, 0x90, 0x64, 0x48, 0x1e, 0x90, 0x04, 0x98, 0x10, 0x90, + 0x06, 0x98, 0x18, 0x90, 0x05, 0x98, 0x07, 0x90, 0x04, 0x20, 0x0c, 0x90, 0x09, 0x98, 0x19, + 0x90, 0x0d, 0xf1, 0x07, 0x00, 0x0f, 0x90, 0x0d, 0xf1, 0x0b, 0x00, 0x1a, 0x90, 0x0d, 0xf1, + 0x03, 0x00, 0x13, 0x90, 0xad, 0xf1, 0x01, 0x00, 0x12, 0x90, 0x12, 0x99, 0x11, 0xf8, 0x01, + 0x0f, 0x00, 0x02, 0x12, 0x91, 0x24, 0xf8, 0x42, 0x0c, 0x13, 0x98, 0x10, 0xf8, 0x01, 0x1f, + 0x13, 0x90, 0x04, 0xf8, 0x40, 0x1c, 0x1a, 0x98, 0x10, 0xf8, 0x01, 0x1f, 0x1a, 0x90, 0x04, + 0xf8, 0x3e, 0x1c, 0x0f, 0x98, 0x10, 0xf8, 0x01, 0x1f, 0x0f, 0x90, 0x05, 0xf1, 0xcb, 0x00, + 0x04, 0xf8, 0x3c, 0x1c, 0x11, 0x90, 0x05, 0x20, 0x1b, 0x90, 0x10, 0x98, 0x80, 0x1e, 0x10, + 0x90, 0x18, 0x98, 0x80, 0x1e, 0x18, 0x90, 0x07, 0x98, 0x80, 0x1e, 0x07, 0x90, 0x10, 0x99, + 0x31, 0xf8, 0x02, 0x0f, 0x10, 0x91, 0x24, 0xf8, 0x4e, 0x0c, 0x11, 0x98, 0x10, 0xf8, 0x01, + 0x1f, 0x11, 0x90, 0x20, 0x88, 0x61, 0xf3, 0x1f, 0x20, 0x20, 0x80, 0x18, 0x99, 0x31, 0xf8, + 0x02, 0x0f, 0x18, 0x91, 0xa4, 0xf6, 0x36, 0x41, 0x08, 0x80, 0x07, 0x99, 0x31, 0xf8, 0x02, + 0x0f, 0x07, 0x91, 0xa4, 0xf6, 0x34, 0x41, 0x08, 0x80, 0x1c, 0x98, 0x0a, 0x99, 0x00, 0x78, + 0x41, 0x28, 0x2f, 0xd0, 0xa4, 0xf6, 0x42, 0x40, 0x01, 0x70, 0x38, 0x46, 0xff, 0xf7, 0xd5, + 0xfd, 0x0b, 0xf8, 0x06, 0x00, 0x40, 0x46, 0xff, 0xf7, 0xd0, 0xfd, 0x5e, 0x44, 0x70, 0x70, + 0x50, 0x46, 0xff, 0xf7, + + 0x01, 0x05, 0xff, 0xff, 0x9a, 0x50, 0x19, 0x00, 0xfa, 0xcb, 0xfd, 0xb0, 0x70, 0x48, 0x46, + 0xff, 0xf7, 0xc7, 0xfd, 0xf0, 0x70, 0x08, 0x99, 0x8a, 0x01, 0x02, 0xeb, 0x01, 0x12, 0x19, + 0x99, 0x89, 0x18, 0x1d, 0x9a, 0x12, 0x78, 0x00, 0x2a, 0xfb, 0xd0, 0x8e, 0xb2, 0xa4, 0xf6, + 0x24, 0x41, 0x0f, 0x88, 0xa4, 0xf6, 0x26, 0x41, 0xb1, 0xf8, 0x00, 0x80, 0xa4, 0xf6, 0x2a, + 0x41, 0xb1, 0xf8, 0x00, 0xa0, 0xa4, 0xf6, 0x28, 0x41, 0xb1, 0xf8, 0x00, 0x90, 0x9e, 0xe0, + 0x0a, 0x9e, 0x30, 0x46, 0x01, 0xf0, 0x50, 0xfb, 0xa4, 0xf6, 0x42, 0x40, 0x06, 0x70, 0x09, + 0x98, 0x01, 0xf0, 0x4a, 0xfb, 0x1d, 0x98, 0x00, 0x78, 0x00, 0x28, 0xfb, 0xd0, 0xa4, 0xf6, + 0x24, 0x40, 0x07, 0x88, 0xa4, 0xf6, 0x26, 0x40, 0xb0, 0xf8, 0x00, 0x80, 0xa4, 0xf6, 0x2a, + 0x40, 0xb0, 0xf8, 0x00, 0xa0, 0x47, 0x45, 0xa4, 0xf6, 0x28, 0x40, 0xb0, 0xf8, 0x00, 0x90, + 0xb4, 0xbf, 0x40, 0x46, 0x38, 0x1c, 0xca, 0x45, 0xb4, 0xbf, 0x49, 0x46, 0x51, 0x46, 0x88, + 0x42, 0xb8, 0xbf, 0x08, 0x1c, 0x14, 0x99, 0x69, 0x5a, 0x81, 0x42, 0x0f, 0xdb, 0x15, 0x99, + 0x69, 0x5a, 0x81, 0x42, 0x46, 0xdc, 0x95, 0xf8, 0xd5, 0x00, 0x16, 0x99, 0x00, 0xf0, 0x0f, + 0x00, 0x09, 0xe0, 0x16, 0x01, 0x00, 0x20, 0x00, 0x05, 0x02, 0x42, 0x40, 0x24, 0x00, 0x40, + 0x95, 0xf8, 0xd5, 0x00, 0x00, 0x11, 0x17, 0x99, 0x6e, 0x5a, 0x00, 0x2e, 0x84, 0xf8, 0x9f, + 0x05, 0x31, 0xd0, 0xa4, 0xf6, 0x36, 0x40, 0x09, 0x9f, 0x07, 0x80, 0xa4, 0xf6, 0x34, 0x40, + 0x07, 0x80, 0xdd, 0xf8, 0x28, 0x80, 0x40, 0x46, 0x01, 0xf0, 0x03, 0xfb, 0xa4, 0xf6, 0x42, + 0x40, 0x80, 0xf8, 0x00, 0x80, 0x38, 0x46, 0x01, 0xf0, 0xfc, 0xfa, 0x1d, 0x98, 0x00, 0x78, + 0x00, 0x28, 0xfb, 0xd0, + + 0x01, 0x05, 0xff, 0xff, 0x94, 0x51, 0x19, 0x00, 0xfa, 0xa4, 0xf6, 0x24, 0x40, 0x00, 0x88, + 0x70, 0x43, 0x00, 0x12, 0x87, 0xb2, 0xa4, 0xf6, 0x26, 0x40, 0x00, 0x88, 0x70, 0x43, 0x00, + 0x12, 0x1f, 0xfa, 0x80, 0xf8, 0xa4, 0xf6, 0x2a, 0x40, 0x00, 0x88, 0x70, 0x43, 0x00, 0x12, + 0x1f, 0xfa, 0x80, 0xfa, 0xa4, 0xf6, 0x28, 0x40, 0x00, 0x88, 0x46, 0x43, 0x30, 0x12, 0x1f, + 0xfa, 0x80, 0xf9, 0x19, 0x98, 0x86, 0xb2, 0x70, 0x00, 0x3b, 0xf8, 0x00, 0x10, 0xb9, 0x42, + 0xb8, 0xbf, 0x2b, 0xf8, 0x00, 0x70, 0x0b, 0xeb, 0x46, 0x00, 0x80, 0x1c, 0x01, 0x88, 0x41, + 0x45, 0xb8, 0xbf, 0xa0, 0xf8, 0x00, 0x80, 0x41, 0x88, 0x51, 0x45, 0xb8, 0xbf, 0xa0, 0xf8, + 0x02, 0xa0, 0x81, 0x88, 0x49, 0x45, 0xb8, 0xbf, 0xa0, 0xf8, 0x04, 0x90, 0x09, 0x98, 0x84, + 0xf8, 0x9f, 0x05, 0x0a, 0x98, 0x84, 0xf8, 0xdb, 0x07, 0x1e, 0x98, 0x01, 0x88, 0x0e, 0x98, + 0x28, 0x5a, 0xb1, 0xeb, 0xc0, 0x0f, 0x32, 0xdc, 0x19, 0x99, 0x09, 0x1d, 0x19, 0x91, 0x1b, + 0x99, 0x49, 0x1e, 0x1b, 0x91, 0x7f, 0xf4, 0x08, 0xaf, 0x07, 0x99, 0x89, 0x1c, 0x07, 0x91, + 0x18, 0x99, 0x89, 0x1c, 0x18, 0x91, 0x10, 0x99, 0x89, 0x1c, 0x10, 0x91, 0x0c, 0x99, 0x49, + 0x1e, 0x0c, 0x91, 0x7f, 0xf4, 0xd3, 0xae, 0x09, 0x98, 0x01, 0xf0, 0x9c, 0xfa, 0x08, 0x99, + 0x49, 0x1c, 0x08, 0x91, 0x0d, 0x99, 0x49, 0x1e, 0x0d, 0x91, 0x7f, 0xf4, 0xb2, 0xae, 0x1c, + 0x98, 0x00, 0x78, 0x41, 0x28, 0x0d, 0xd0, 0x38, 0x46, 0x0b, 0x9a, 0xff, 0xf7, 0xe3, 0xfc, + 0x90, 0x55, 0x40, 0x46, 0xff, 0xf7, 0xdf, 0xfc, 0xb6, 0x18, 0x70, 0x70, 0x50, 0x46, 0xff, + 0xf7, 0xda, 0xfc, 0xb0, 0x70, 0x1f, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x10, 0xb5, 0xad, 0xf1, + 0x78, 0x0d, 0x58, 0x4c, + + 0x01, 0x05, 0xff, 0xff, 0x8e, 0x52, 0x19, 0x00, 0xfa, 0x4f, 0xf0, 0x00, 0x00, 0x84, 0xf8, + 0x57, 0x00, 0x57, 0x48, 0x00, 0x78, 0x58, 0xb9, 0x01, 0x20, 0x56, 0x49, 0x08, 0x70, 0x14, + 0xab, 0x0a, 0xaa, 0x69, 0x46, 0x03, 0x20, 0xff, 0xf7, 0xd1, 0xfc, 0xff, 0x20, 0x84, 0xf8, + 0x57, 0x00, 0x1e, 0xb0, 0x10, 0xbd, 0x4f, 0x48, 0x01, 0x78, 0x02, 0x29, 0x03, 0xd1, 0x00, + 0x21, 0x4e, 0x4a, 0x11, 0x70, 0x01, 0x70, 0x4d, 0x49, 0x10, 0x20, 0x08, 0x80, 0x70, 0x47, + 0xf0, 0xb5, 0x4c, 0x4a, 0x11, 0x88, 0x53, 0x88, 0x8b, 0x42, 0xd8, 0xbf, 0x19, 0x1c, 0x54, + 0x88, 0x93, 0x88, 0xa2, 0xf8, 0xa0, 0x10, 0xa3, 0x42, 0xb4, 0xbf, 0x26, 0x1c, 0x1e, 0x1c, + 0x11, 0x46, 0x0d, 0x88, 0xae, 0x42, 0x05, 0xdc, 0xa3, 0x42, 0xa8, 0xbf, 0xa1, 0xf8, 0xa2, + 0x30, 0x25, 0x46, 0x01, 0xda, 0xa2, 0xf8, 0xa2, 0x50, 0x4c, 0x27, 0xa4, 0x32, 0xce, 0x88, + 0x8d, 0x88, 0x0b, 0x88, 0x4c, 0x88, 0xae, 0x42, 0xb4, 0xbf, 0xac, 0x46, 0xb4, 0x46, 0x9c, + 0x42, 0xb4, 0xbf, 0x9e, 0x46, 0xa6, 0x46, 0xf4, 0x45, 0x04, 0xdc, 0xae, 0x42, 0xa8, 0xbf, + 0x35, 0x1c, 0x2c, 0x46, 0x01, 0xe0, 0x9c, 0x42, 0x00, 0xdb, 0x23, 0x46, 0x13, 0x80, 0x7f, + 0x1e, 0x01, 0xf1, 0x02, 0x01, 0x02, 0xf1, 0x02, 0x02, 0xe2, 0xd1, 0x08, 0x88, 0x4b, 0x88, + 0x83, 0x42, 0xb4, 0xbf, 0x04, 0x1c, 0x1c, 0x1c, 0x89, 0x88, 0xa1, 0x42, 0x03, 0xdd, 0x83, + 0x42, 0xa8, 0xbf, 0x18, 0x1c, 0x01, 0x46, 0x11, 0x80, 0xf0, 0xbd, 0x2d, 0xe9, 0xf0, 0x41, + 0xad, 0xf1, 0xa0, 0x0d, 0x27, 0x4d, 0x22, 0x4c, 0x02, 0x20, 0xa9, 0x89, 0x20, 0x70, 0x4f, + 0xf6, 0xff, 0x76, 0x48, 0xb2, 0x00, 0x28, 0x0a, 0xdc, 0x00, 0x02, 0x40, 0x42, 0x80, 0xb2, + 0x01, 0xf0, 0x97, 0xfa, + + 0x01, 0x05, 0xff, 0xff, 0x88, 0x53, 0x19, 0x00, 0xfa, 0x42, 0xf6, 0x5d, 0x71, 0x41, 0x43, + 0x09, 0x0c, 0x0e, 0x46, 0xa9, 0x89, 0x16, 0x4a, 0x00, 0x23, 0x0d, 0xf1, 0x04, 0x0c, 0x6f, + 0xf0, 0x00, 0x07, 0xee, 0x46, 0x6f, 0xf0, 0xff, 0x38, 0x13, 0x25, 0x08, 0x32, 0x6d, 0x1e, + 0x03, 0xf1, 0x04, 0x03, 0x4c, 0xf8, 0x08, 0x7b, 0x42, 0xf8, 0x04, 0x8b, 0x4e, 0xf8, 0x08, + 0x7b, 0xf5, 0xd1, 0x4f, 0xf6, 0xff, 0x77, 0x0d, 0xeb, 0x43, 0x0c, 0x00, 0x25, 0x03, 0x23, + 0x5b, 0x1e, 0x02, 0xf8, 0x01, 0x5b, 0x2c, 0xf8, 0x02, 0x7b, 0xf9, 0xd1, 0x48, 0x0a, 0x06, + 0xd3, 0x68, 0x46, 0xff, 0xf7, 0x78, 0xff, 0x31, 0x46, 0x68, 0x46, 0x01, 0xf0, 0x3f, 0xfe, + 0x28, 0xb0, 0x25, 0x70, 0xbd, 0xe8, 0xf0, 0x81, 0x30, 0x00, 0x00, 0x20, 0xde, 0x08, 0x00, + 0x20, 0x24, 0x09, 0x00, 0x20, 0x87, 0x00, 0x00, 0x20, 0x1e, 0x24, 0x00, 0x40, 0x40, 0x04, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0xb5, 0x0a, 0x20, 0x01, 0xf0, 0xd6, 0xf9, 0x80, + 0x08, 0x05, 0xd3, 0x02, 0x20, 0x01, 0xf0, 0xb3, 0xf9, 0x02, 0x49, 0x01, 0x20, 0x08, 0x70, + 0x00, 0xbd, 0xc0, 0x46, 0x24, 0x20, 0x00, 0x42, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x38, + 0x0d, 0xa0, 0x49, 0x00, 0x90, 0xa1, 0x4a, 0x01, 0x91, 0x9f, 0x49, 0x01, 0x27, 0x02, 0x91, + 0x0f, 0x70, 0x13, 0x78, 0x00, 0x21, 0x51, 0x2b, 0x08, 0xbf, 0x39, 0x1c, 0x03, 0x91, 0x9c, + 0x4c, 0x9d, 0x4e, 0xdf, 0xf8, 0x80, 0x82, 0x31, 0xbb, 0x00, 0x98, 0x68, 0xb1, 0x40, 0x46, + 0x24, 0x30, 0x00, 0x88, 0x40, 0x08, 0x39, 0xbf, 0x94, 0xf8, 0x5e, 0x10, 0x20, 0x1c, 0x20, + 0x1c, 0x90, 0xf8, 0x60, 0x10, 0x90, 0xf8, 0x3a, 0x00, 0x03, 0xe0, 0x94, 0xf8, 0x38, 0x00, + 0x94, 0xf8, 0x64, 0x10, + + 0x01, 0x05, 0xff, 0xff, 0x82, 0x54, 0x19, 0x00, 0xfa, 0x09, 0x18, 0xc8, 0x00, 0x30, 0x80, + 0x30, 0x46, 0xc0, 0x1f, 0x07, 0x70, 0x30, 0x88, 0xb1, 0x88, 0x00, 0x1f, 0x88, 0x42, 0x04, + 0xda, 0x11, 0x78, 0x21, 0x20, 0xff, 0x22, 0x01, 0xf0, 0xb9, 0xf9, 0x08, 0x20, 0x01, 0xf0, + 0x97, 0xf9, 0x88, 0x4b, 0x89, 0x49, 0x1d, 0x88, 0x04, 0x91, 0x05, 0x96, 0xa6, 0xf1, 0x34, + 0x06, 0x05, 0x96, 0x00, 0x9a, 0x86, 0x49, 0x4f, 0xf0, 0x00, 0x06, 0x62, 0xb9, 0x06, 0x96, + 0x0a, 0x46, 0x07, 0x92, 0x31, 0x46, 0x82, 0xf8, 0x0f, 0x17, 0x05, 0x9a, 0xa2, 0xf8, 0x64, + 0x70, 0x05, 0xf0, 0x03, 0x06, 0x2a, 0x46, 0x0f, 0xe0, 0x07, 0x91, 0x81, 0xf8, 0x0f, 0x77, + 0x4f, 0xf4, 0x80, 0x71, 0x05, 0x9a, 0xa2, 0xf8, 0x64, 0x10, 0x9a, 0x8b, 0x4f, 0xea, 0xe2, + 0x31, 0x4f, 0xf0, 0x00, 0x06, 0x06, 0x96, 0x4f, 0xf0, 0x03, 0x06, 0x8e, 0x46, 0x4f, 0xea, + 0xe2, 0x01, 0x4f, 0xea, 0xe2, 0x12, 0x02, 0xf0, 0x7f, 0x02, 0x08, 0x96, 0x94, 0x46, 0x08, + 0x9a, 0x01, 0xf0, 0x0f, 0x01, 0xdf, 0xf8, 0xa4, 0x92, 0x05, 0xf0, 0x04, 0x0a, 0xa6, 0x4e, + 0xba, 0xb1, 0x52, 0x1e, 0x04, 0xd0, 0x52, 0x1e, 0x01, 0x2a, 0x4a, 0x46, 0x23, 0xd9, 0x25, + 0xe0, 0xea, 0x08, 0x0a, 0xd3, 0x1a, 0x8a, 0x12, 0x11, 0x02, 0xf0, 0x0f, 0x02, 0x8a, 0x42, + 0x03, 0xdd, 0x89, 0x1a, 0x0f, 0x31, 0xc9, 0xb2, 0x00, 0xe0, 0x0f, 0x21, 0x94, 0xf9, 0xc9, + 0x30, 0x42, 0x46, 0x13, 0xe0, 0xba, 0xf1, 0x00, 0x0f, 0x09, 0xd0, 0x1a, 0x8a, 0x02, 0xf0, + 0x0f, 0x02, 0x8a, 0x42, 0x03, 0xdd, 0x89, 0x1a, 0x0f, 0x31, 0xc9, 0xb2, 0x00, 0xe0, 0x0f, + 0x21, 0x4a, 0x46, 0x94, 0xf9, 0xc8, 0x30, 0x10, 0x32, 0x01, 0xe0, 0x94, 0xf9, 0xc7, 0x30, + 0x55, 0x56, 0xdd, 0xf8, + + 0x01, 0x05, 0xff, 0xff, 0x7c, 0x55, 0x19, 0x00, 0xfa, 0x00, 0x80, 0x94, 0xf8, 0xc6, 0x20, + 0xb8, 0xf1, 0x00, 0x0f, 0x02, 0xd1, 0xab, 0x42, 0xb8, 0xbf, 0x12, 0x11, 0x02, 0xf0, 0x01, + 0x0b, 0x92, 0x08, 0x2c, 0xbf, 0xc0, 0x22, 0x60, 0x22, 0x09, 0x92, 0x08, 0x9a, 0x04, 0xeb, + 0x41, 0x00, 0x02, 0xb3, 0x52, 0x1e, 0x19, 0xd0, 0x52, 0x1e, 0x01, 0x2a, 0x2b, 0xd8, 0x04, + 0xeb, 0x41, 0x00, 0xb0, 0xf8, 0xd4, 0x01, 0xbb, 0xf1, 0x00, 0x0f, 0x4f, 0xf4, 0x00, 0x71, + 0x09, 0xd0, 0x40, 0xf2, 0x55, 0x42, 0x02, 0xfb, 0x00, 0x10, 0x80, 0x12, 0x41, 0x0a, 0x14, + 0xbf, 0x40, 0xf2, 0xff, 0x10, 0x80, 0xb2, 0x07, 0x99, 0xa1, 0xf8, 0x41, 0x07, 0x14, 0xe0, + 0x04, 0xeb, 0x41, 0x00, 0xb0, 0xf8, 0x14, 0x22, 0x01, 0xe0, 0xb0, 0xf8, 0xf4, 0x21, 0x4f, + 0xf4, 0x00, 0x71, 0x07, 0x98, 0x40, 0xf2, 0xd5, 0x23, 0x03, 0xfb, 0x02, 0x11, 0x00, 0xf2, + 0x41, 0x70, 0x4f, 0xea, 0xa1, 0x21, 0x01, 0x80, 0x20, 0xf8, 0x02, 0x2c, 0x6e, 0x48, 0x96, + 0xf8, 0x03, 0x17, 0x01, 0x73, 0x0a, 0x90, 0x03, 0x98, 0x38, 0xb9, 0x94, 0xf9, 0x67, 0x00, + 0xa8, 0x42, 0xa4, 0xbf, 0x94, 0xf8, 0x66, 0x00, 0x86, 0xf8, 0x03, 0x07, 0x0a, 0x98, 0xc0, + 0x7c, 0x38, 0xb9, 0x06, 0x98, 0xb4, 0xf9, 0x86, 0x10, 0xa9, 0x42, 0xa8, 0xbf, 0x38, 0x1c, + 0x0a, 0x99, 0x88, 0x74, 0x0a, 0x98, 0x01, 0x99, 0x41, 0xf6, 0x11, 0x75, 0x80, 0x7c, 0xaa, + 0x46, 0xbb, 0xf1, 0x00, 0x0f, 0x81, 0xf8, 0xa4, 0x00, 0x0a, 0x98, 0x05, 0xeb, 0x06, 0x01, + 0x80, 0x7c, 0x20, 0x44, 0x90, 0xf8, 0xa4, 0x20, 0x08, 0x88, 0x20, 0xf4, 0x70, 0x60, 0x40, + 0xea, 0x02, 0x20, 0x2a, 0xf8, 0x06, 0x00, 0x37, 0xd1, 0x94, 0xf8, 0x35, 0x20, 0x31, 0xf8, + 0x0a, 0x0c, 0x62, 0xf3, + + 0x01, 0x05, 0xff, 0xff, 0x76, 0x56, 0x19, 0x00, 0xfa, 0x1f, 0x30, 0x21, 0xf8, 0x0a, 0x0c, + 0x08, 0x98, 0x80, 0x08, 0x0e, 0xd3, 0x50, 0x48, 0x00, 0x78, 0x02, 0x28, 0x18, 0xbf, 0x04, + 0x28, 0x08, 0xd1, 0x50, 0x46, 0xa0, 0xf1, 0x04, 0x00, 0x81, 0x5b, 0x6f, 0xf3, 0x1f, 0x31, + 0x41, 0xf4, 0x00, 0x51, 0x09, 0xe0, 0x94, 0xf8, 0x33, 0x00, 0x62, 0x8b, 0x12, 0x18, 0x50, + 0x46, 0xa0, 0xf1, 0x04, 0x00, 0x81, 0x5b, 0x62, 0xf3, 0x1f, 0x31, 0x81, 0x53, 0x21, 0xe0, + 0x80, 0x1d, 0x04, 0x42, 0x10, 0x01, 0x04, 0x42, 0x1c, 0x09, 0x00, 0x20, 0x00, 0x02, 0x00, + 0x20, 0x3c, 0x24, 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x0a, 0x03, 0x00, 0x20, 0xf1, 0x10, + 0x00, 0x40, 0x38, 0x01, 0x00, 0x20, 0x28, 0x46, 0xa0, 0xf1, 0x0a, 0x00, 0x82, 0x19, 0x94, + 0xf8, 0x34, 0x30, 0x11, 0x88, 0x63, 0xf3, 0x1f, 0x31, 0x81, 0x53, 0x94, 0xf8, 0x32, 0x10, + 0xd0, 0x88, 0x61, 0xf3, 0x1f, 0x30, 0xd0, 0x80, 0x04, 0x98, 0x00, 0x88, 0x80, 0x08, 0x24, + 0xbf, 0xa1, 0x48, 0x07, 0x70, 0x08, 0x98, 0x05, 0x99, 0xdf, 0xf8, 0x80, 0x82, 0x4f, 0xea, + 0x00, 0x10, 0x40, 0xf0, 0x01, 0x00, 0xa1, 0xf8, 0x54, 0x00, 0x60, 0x88, 0x50, 0xb9, 0xbc, + 0xf1, 0x28, 0x0f, 0xb9, 0xbf, 0x0c, 0xf2, 0xb1, 0x40, 0x40, 0x00, 0x4f, 0xea, 0x4c, 0x00, + 0x00, 0xf6, 0x13, 0x10, 0x80, 0xb2, 0x0b, 0x90, 0x09, 0x98, 0x0b, 0x99, 0xbe, 0xf1, 0x00, + 0x0f, 0x4f, 0xea, 0x00, 0x60, 0x00, 0xeb, 0x61, 0x00, 0xb0, 0xfb, 0xf1, 0xf0, 0x07, 0x99, + 0x4f, 0xea, 0x80, 0x00, 0xc1, 0xf8, 0x9f, 0x07, 0x18, 0xbf, 0x29, 0x20, 0x04, 0xd1, 0x00, + 0x98, 0x00, 0x28, 0x14, 0xbf, 0x40, 0x20, 0x52, 0x20, 0x09, 0x99, 0x48, 0x43, 0x0b, 0x99, + 0xc0, 0x02, 0x00, 0xeb, + + 0x01, 0x05, 0xff, 0xff, 0x70, 0x57, 0x19, 0x00, 0xfa, 0x61, 0x00, 0x90, 0xfb, 0xf1, 0xf0, + 0x07, 0x99, 0xa1, 0xf8, 0x2b, 0x07, 0xe1, 0x8a, 0x85, 0x48, 0x49, 0x08, 0x21, 0xd2, 0x06, + 0x99, 0x88, 0xf8, 0x00, 0x10, 0x88, 0xf8, 0x10, 0x70, 0x41, 0xf6, 0x43, 0x31, 0x8b, 0x5b, + 0x04, 0x9a, 0x23, 0xf0, 0x07, 0x03, 0x12, 0x88, 0x4f, 0xea, 0x22, 0x12, 0x02, 0xf0, 0x0f, + 0x02, 0x42, 0xea, 0x03, 0x02, 0x8a, 0x53, 0x07, 0x70, 0x40, 0xf2, 0xb6, 0x40, 0x40, 0xf2, + 0xef, 0x29, 0x13, 0xe0, 0xc0, 0x46, 0x01, 0x01, 0x00, 0x40, 0x18, 0x01, 0x00, 0x20, 0xd0, + 0x08, 0x00, 0x20, 0x5a, 0x01, 0x00, 0x20, 0x88, 0xf8, 0x00, 0x70, 0x06, 0x99, 0x88, 0xf8, + 0x10, 0x10, 0x06, 0x99, 0x01, 0x70, 0x40, 0xf2, 0xf2, 0x40, 0x40, 0xf2, 0x6d, 0x29, 0x0c, + 0x90, 0x0a, 0x98, 0x40, 0x7b, 0x60, 0xb1, 0x03, 0x98, 0x50, 0xb9, 0x00, 0x98, 0x00, 0x28, + 0x07, 0xbf, 0x05, 0x98, 0x80, 0xf8, 0x45, 0x70, 0x05, 0x98, 0x80, 0xf8, 0x47, 0x70, 0x00, + 0xf0, 0x85, 0xfe, 0x02, 0x98, 0x80, 0xf8, 0x00, 0xb2, 0x02, 0x98, 0xbb, 0xf1, 0x00, 0x0f, + 0x80, 0xf8, 0xf0, 0x71, 0x14, 0xbf, 0x94, 0xf8, 0x79, 0x10, 0x94, 0xf8, 0x78, 0x10, 0x05, + 0xf1, 0x0a, 0x05, 0xbb, 0xf1, 0x00, 0x0f, 0xa8, 0x5b, 0x20, 0xf4, 0x7c, 0x50, 0x40, 0xea, + 0x01, 0x20, 0xa8, 0x53, 0x14, 0xbf, 0x94, 0xf8, 0x7d, 0x10, 0x94, 0xf8, 0x7c, 0x10, 0x50, + 0x46, 0x00, 0xf1, 0x0c, 0x00, 0x85, 0x19, 0x2a, 0x88, 0x22, 0xf0, 0x7f, 0x02, 0x11, 0x43, + 0x81, 0x53, 0x02, 0x98, 0x80, 0xf8, 0xf4, 0x71, 0x38, 0x46, 0x00, 0xf0, 0x97, 0xff, 0x06, + 0x98, 0x02, 0x99, 0x81, 0xf8, 0xf4, 0x01, 0x38, 0x46, 0x00, 0xf0, 0x90, 0xff, 0x35, 0xf8, + 0x06, 0x0c, 0x20, 0xf0, + + 0x01, 0x05, 0xff, 0xff, 0x6a, 0x58, 0x19, 0x00, 0xfa, 0x08, 0x00, 0x40, 0xf0, 0x04, 0x00, + 0x25, 0xf8, 0x06, 0x0c, 0x07, 0x98, 0x4f, 0xf0, 0xb1, 0x0a, 0x80, 0xf8, 0x28, 0xaf, 0x10, + 0x20, 0x68, 0x80, 0x35, 0xf8, 0x04, 0x0c, 0x20, 0xf4, 0x80, 0x70, 0x40, 0xf4, 0x00, 0x70, + 0x25, 0xf8, 0x04, 0x0c, 0xb5, 0xf8, 0xd2, 0x00, 0x40, 0xf0, 0x70, 0x00, 0xa5, 0xf8, 0xd2, + 0x00, 0x30, 0x88, 0xb7, 0x4d, 0x40, 0xf0, 0x30, 0x00, 0x30, 0x80, 0x05, 0xf8, 0x98, 0x7c, + 0x06, 0x98, 0x0d, 0x90, 0x07, 0x99, 0xc1, 0xf8, 0x6f, 0x0b, 0x2f, 0x70, 0xe0, 0x8a, 0x40, + 0x08, 0x38, 0xbf, 0x2f, 0x72, 0x38, 0x46, 0x00, 0xf0, 0x5f, 0xff, 0x06, 0x98, 0x28, 0x70, + 0xe0, 0x8a, 0x40, 0x08, 0x3c, 0xbf, 0x06, 0x98, 0x28, 0x72, 0x03, 0x98, 0x60, 0xb9, 0xbb, + 0xf1, 0x01, 0x0f, 0x0e, 0xd1, 0x94, 0xf8, 0x84, 0x00, 0x07, 0x99, 0x81, 0xf8, 0x2d, 0x0b, + 0x94, 0xf8, 0x82, 0x00, 0x07, 0x99, 0x81, 0xf8, 0x2b, 0x0b, 0xbb, 0xf1, 0x01, 0x0f, 0x4f, + 0xf0, 0x2e, 0x00, 0x04, 0xd0, 0x08, 0x98, 0x80, 0x08, 0x2c, 0xbf, 0x31, 0x20, 0x50, 0x46, + 0x07, 0x99, 0xbb, 0xf1, 0x00, 0x0f, 0x81, 0xf8, 0x28, 0x0f, 0x02, 0x98, 0x80, 0xf8, 0xf0, + 0xb2, 0x0d, 0x99, 0x03, 0xd0, 0x08, 0x98, 0x80, 0x08, 0x38, 0xbf, 0x39, 0x1c, 0x02, 0x98, + 0x80, 0xf8, 0x20, 0x13, 0x0a, 0x98, 0x4f, 0xf4, 0x7a, 0x71, 0x0c, 0x9b, 0x00, 0x68, 0xb0, + 0xfb, 0xf1, 0xf2, 0x0b, 0x98, 0x58, 0x43, 0x09, 0x9b, 0x41, 0x43, 0xb1, 0xfb, 0xf2, 0xf0, + 0x19, 0x46, 0x03, 0xfb, 0x19, 0x02, 0x08, 0x02, 0xb2, 0xfb, 0xf0, 0xf0, 0x80, 0xb2, 0x03, + 0xfb, 0x00, 0xf1, 0xa2, 0xeb, 0x01, 0x22, 0xe1, 0x8a, 0x92, 0xb2, 0xb2, 0xfb, 0xf3, 0xf2, + 0x49, 0x08, 0x93, 0xb2, + + 0x01, 0x05, 0xff, 0xff, 0x64, 0x59, 0x19, 0x00, 0xfa, 0x18, 0xd3, 0x86, 0xf8, 0x33, 0x27, + 0x09, 0x99, 0xdd, 0xf8, 0x34, 0x90, 0xc0, 0x29, 0x08, 0xbf, 0xb9, 0x46, 0xb9, 0xf1, 0x00, + 0x0f, 0x03, 0xd0, 0x80, 0x2b, 0xa4, 0xbf, 0x40, 0x1c, 0x80, 0xb2, 0x40, 0x1c, 0x86, 0xf8, + 0x07, 0x07, 0x23, 0xe0, 0x40, 0x85, 0x03, 0x42, 0x90, 0x88, 0x03, 0x42, 0x14, 0x07, 0x01, + 0x42, 0x41, 0xf6, 0x43, 0x31, 0x8a, 0x5b, 0x22, 0xf0, 0xe0, 0x02, 0x42, 0xea, 0x40, 0x12, + 0x8a, 0x53, 0x86, 0xf8, 0x33, 0x37, 0x40, 0x1c, 0x86, 0xf8, 0x07, 0x07, 0x07, 0x99, 0xa1, + 0xf6, 0xb9, 0x00, 0x00, 0x88, 0x20, 0xf0, 0x1e, 0x00, 0x40, 0xf0, 0x0c, 0x00, 0xa1, 0xf6, + 0xb9, 0x01, 0x08, 0x80, 0xdd, 0xf8, 0x34, 0x90, 0x09, 0x98, 0xc0, 0x28, 0x08, 0xbf, 0xb9, + 0x46, 0x02, 0x20, 0x00, 0xf0, 0xd5, 0xfe, 0x36, 0xf8, 0x01, 0x0c, 0x40, 0xf4, 0xe0, 0x60, + 0x26, 0xf8, 0x01, 0x0c, 0x05, 0xf8, 0xd8, 0x9c, 0x05, 0xf8, 0xa4, 0x7c, 0x0d, 0x99, 0x0b, + 0x98, 0x00, 0xf0, 0x1d, 0xfa, 0x00, 0x98, 0x38, 0xb1, 0x41, 0xf6, 0x59, 0x30, 0x81, 0x5b, + 0x21, 0xf4, 0x00, 0x61, 0x41, 0xf4, 0x80, 0x61, 0x81, 0x53, 0x04, 0x9a, 0x41, 0xf6, 0x43, + 0x33, 0x98, 0x5b, 0x11, 0x88, 0x20, 0xf4, 0xc0, 0x60, 0x99, 0x46, 0x49, 0x00, 0x01, 0xf4, + 0xc0, 0x61, 0x01, 0x43, 0x48, 0x46, 0x81, 0x53, 0x10, 0x88, 0x00, 0x13, 0x00, 0xf0, 0x01, + 0x00, 0x88, 0xf8, 0x1c, 0x00, 0xb4, 0xf8, 0x88, 0x00, 0x00, 0x28, 0x40, 0xf0, 0xa4, 0x80, + 0x05, 0x20, 0x00, 0xf0, 0xe0, 0xfe, 0x0d, 0x98, 0x04, 0x21, 0x00, 0xf0, 0xd3, 0xf9, 0x98, + 0xf8, 0xd4, 0x03, 0xc0, 0x43, 0x88, 0xf8, 0xd4, 0x03, 0x96, 0xf8, 0x05, 0x11, 0xb6, 0xf8, + 0x05, 0x01, 0x40, 0xf0, + + 0x01, 0x05, 0xff, 0xff, 0x5e, 0x5a, 0x19, 0x00, 0xfa, 0x0f, 0x00, 0xa6, 0xf8, 0x05, 0x01, + 0xb6, 0xf8, 0x05, 0x01, 0x01, 0xf0, 0x0f, 0x01, 0x20, 0xf0, 0x0f, 0x00, 0x01, 0x43, 0xa6, + 0xf8, 0x05, 0x11, 0x07, 0x98, 0x00, 0xf2, 0x87, 0x7a, 0x11, 0x20, 0x8a, 0xf8, 0x00, 0x70, + 0x86, 0xf8, 0xff, 0x06, 0x01, 0x98, 0x80, 0xf8, 0x40, 0x70, 0x07, 0x71, 0x07, 0x70, 0x08, + 0x20, 0x00, 0xf0, 0x95, 0xfe, 0x2a, 0xf8, 0x44, 0x7c, 0x07, 0x20, 0x00, 0xf0, 0x72, 0xfe, + 0x06, 0x98, 0x05, 0xf8, 0xe0, 0x0c, 0x88, 0xf8, 0xbc, 0x73, 0x05, 0x9d, 0x02, 0x20, 0x28, + 0x70, 0x60, 0x8c, 0x00, 0xf0, 0xa6, 0xfe, 0x38, 0x46, 0x05, 0x21, 0x00, 0xf0, 0x99, 0xf9, + 0x0a, 0x20, 0x00, 0xf0, 0x7e, 0xfe, 0x98, 0xf8, 0xd4, 0x03, 0xc0, 0x43, 0x88, 0xf8, 0xd4, + 0x03, 0x03, 0x20, 0x28, 0x70, 0x04, 0x98, 0x4d, 0x46, 0xac, 0x19, 0x00, 0x88, 0x80, 0x08, + 0x05, 0xd2, 0x08, 0x98, 0x02, 0x28, 0x51, 0xda, 0xff, 0xf7, 0x92, 0xfc, 0x4e, 0xe0, 0x20, + 0x88, 0x6f, 0xf3, 0x9f, 0x30, 0xa8, 0x53, 0x38, 0x46, 0x00, 0xf0, 0x46, 0xfe, 0xa8, 0x5b, + 0x6f, 0xf3, 0x9f, 0x30, 0x40, 0xf4, 0x80, 0x40, 0xa8, 0x53, 0x60, 0x88, 0x20, 0xf0, 0x07, + 0x00, 0x40, 0xf0, 0x08, 0x00, 0x60, 0x80, 0x88, 0xf8, 0x20, 0x70, 0x32, 0x20, 0x88, 0xf8, + 0x24, 0x70, 0x00, 0xf0, 0x33, 0xfe, 0x60, 0x88, 0x20, 0xf0, 0x0f, 0x00, 0x40, 0xf0, 0x07, + 0x00, 0x60, 0x80, 0x28, 0x20, 0x00, 0xf0, 0x2a, 0xfe, 0x60, 0x88, 0x20, 0xf0, 0x0f, 0x00, + 0x40, 0xf0, 0x04, 0x00, 0x60, 0x80, 0x32, 0x20, 0x00, 0xf0, 0x60, 0xfe, 0x08, 0x98, 0x02, + 0x28, 0x01, 0xda, 0xff, 0xf7, 0x60, 0xfc, 0x08, 0x20, 0x00, 0xf0, 0x37, 0xfe, 0x29, 0x46, + 0x01, 0xf1, 0x02, 0x01, + + 0x01, 0x05, 0xff, 0xff, 0x58, 0x5b, 0x19, 0x00, 0xfa, 0x8c, 0x19, 0x20, 0x88, 0x20, 0xf0, + 0x0f, 0x00, 0x40, 0xf0, 0x03, 0x00, 0x88, 0x53, 0x08, 0x98, 0x02, 0x28, 0x0d, 0xd1, 0x32, + 0x20, 0x00, 0xf0, 0x09, 0xfe, 0x34, 0xf8, 0x02, 0x1c, 0x06, 0x48, 0x08, 0x43, 0x24, 0xf8, + 0x02, 0x0c, 0x03, 0xe0, 0x04, 0x21, 0x00, 0x42, 0x88, 0xf8, 0xbc, 0x73, 0x0e, 0xb0, 0xbd, + 0xe8, 0xf0, 0x8f, 0xc0, 0x46, 0x00, 0xc0, 0xff, 0xff, 0x2d, 0xe9, 0xf0, 0x4f, 0x17, 0x46, + 0x81, 0x46, 0x0e, 0x46, 0x9c, 0x4a, 0x6f, 0xf4, 0x4f, 0x70, 0x9b, 0x49, 0x10, 0x5a, 0x4f, + 0xea, 0x00, 0x2b, 0x08, 0x46, 0x14, 0x30, 0x10, 0x5a, 0x45, 0x02, 0x6f, 0xf4, 0x50, 0x70, + 0x10, 0x5a, 0x00, 0x04, 0x51, 0x5a, 0xcc, 0x02, 0x00, 0xf0, 0xf1, 0xfe, 0x80, 0x46, 0x28, + 0x46, 0x00, 0xf0, 0xed, 0xfe, 0x82, 0x46, 0x20, 0x46, 0x00, 0xf0, 0xe9, 0xfe, 0x05, 0x46, + 0x90, 0x48, 0x00, 0x78, 0x00, 0x28, 0x0c, 0xbf, 0x61, 0x24, 0x91, 0x24, 0xb9, 0xf1, 0x01, + 0x0f, 0x44, 0x44, 0xa4, 0xeb, 0x0a, 0x04, 0x10, 0xd0, 0x58, 0x46, 0x00, 0xf0, 0xd9, 0xfe, + 0x28, 0x1a, 0xb6, 0x30, 0x04, 0xd4, 0xb0, 0xf5, 0x80, 0x7f, 0xa8, 0xbf, 0xff, 0x20, 0x00, + 0xe0, 0x00, 0x20, 0x30, 0x70, 0x84, 0x48, 0x00, 0x88, 0x02, 0x28, 0x00, 0xd1, 0x2c, 0x19, + 0x00, 0x2c, 0x04, 0xd4, 0xb4, 0xf5, 0x80, 0x7f, 0xa8, 0xbf, 0xff, 0x24, 0x00, 0xe0, 0x00, + 0x24, 0x3c, 0x70, 0xbd, 0xe8, 0xf0, 0x8f, 0x7e, 0x49, 0x7d, 0x48, 0x09, 0x68, 0x01, 0x60, + 0x7d, 0x49, 0x03, 0x68, 0x0a, 0x88, 0x7d, 0x49, 0xb3, 0xeb, 0x82, 0x2f, 0x14, 0xd9, 0xb3, + 0xeb, 0xc2, 0x2f, 0x08, 0xd9, 0x02, 0x68, 0x92, 0x08, 0x02, 0x60, 0x08, 0x88, 0x20, 0xf0, + 0x04, 0x00, 0x40, 0xf0, + + 0x01, 0x05, 0xff, 0xff, 0x52, 0x5c, 0x19, 0x00, 0xfa, 0x08, 0x00, 0x0b, 0xe0, 0x02, 0x68, + 0x52, 0x08, 0x02, 0x60, 0x08, 0x88, 0x20, 0xf0, 0x08, 0x00, 0x40, 0xf0, 0x04, 0x00, 0x02, + 0xe0, 0x08, 0x88, 0x40, 0xf0, 0x0c, 0x00, 0x08, 0x80, 0x70, 0x47, 0x6c, 0x48, 0x01, 0x89, + 0x00, 0x29, 0x0c, 0xbf, 0x00, 0x68, 0x40, 0x68, 0x99, 0x49, 0xb0, 0xfb, 0xf1, 0xf0, 0x00, + 0x1d, 0xc1, 0x08, 0x64, 0x48, 0x20, 0x38, 0x01, 0x70, 0x70, 0x47, 0x10, 0xb5, 0xb0, 0xf9, + 0x00, 0x20, 0x47, 0xf6, 0xff, 0x73, 0x93, 0x42, 0x08, 0xd0, 0x4f, 0xf4, 0x2a, 0x53, 0x4b, + 0x43, 0x55, 0x24, 0x04, 0xfb, 0x12, 0x31, 0x02, 0xeb, 0xe1, 0x12, 0x00, 0xe0, 0xca, 0x01, + 0x02, 0x80, 0x10, 0xbd, 0x03, 0x78, 0x4f, 0xf0, 0x56, 0x02, 0x2b, 0xb1, 0x5a, 0x43, 0xaa, + 0x23, 0x03, 0xfb, 0x01, 0x21, 0x80, 0x31, 0x09, 0x12, 0x01, 0x70, 0x70, 0x47, 0x2d, 0xe9, + 0xf0, 0x41, 0xdf, 0xf8, 0xdc, 0xc2, 0x01, 0x28, 0x14, 0x46, 0x88, 0x46, 0x50, 0x4f, 0xb3, + 0x4e, 0x19, 0x46, 0x34, 0xd0, 0x60, 0x46, 0x80, 0x1d, 0x00, 0x88, 0x40, 0x10, 0x10, 0xf0, + 0x07, 0x0f, 0x00, 0xf0, 0x07, 0x05, 0x06, 0xd1, 0x86, 0xf8, 0x58, 0x10, 0x86, 0xf8, 0x60, + 0x80, 0x86, 0xf8, 0x68, 0x40, 0x16, 0xe0, 0x07, 0xeb, 0x45, 0x07, 0x07, 0xf1, 0x14, 0x00, + 0xff, 0xf7, 0xc0, 0xff, 0xb7, 0xf9, 0x14, 0x00, 0xad, 0x19, 0x40, 0x30, 0x41, 0x46, 0xc0, + 0x11, 0x85, 0xf8, 0x58, 0x00, 0x05, 0xf1, 0x60, 0x00, 0xff, 0xf7, 0xc7, 0xff, 0x21, 0x46, + 0x05, 0xf1, 0x68, 0x00, 0xff, 0xf7, 0xc2, 0xff, 0x3c, 0x48, 0x57, 0x30, 0x00, 0x78, 0x80, + 0x08, 0x28, 0xd3, 0x60, 0x46, 0x40, 0x88, 0x80, 0x11, 0x00, 0xf0, 0x7f, 0x00, 0x36, 0x18, + 0x34, 0x72, 0xbd, 0xe8, + + 0x01, 0x05, 0xff, 0xff, 0x4c, 0x5d, 0x19, 0x00, 0xfa, 0xf0, 0x81, 0x60, 0x46, 0x22, 0x30, + 0x00, 0x88, 0x45, 0x10, 0x05, 0xf0, 0x07, 0x05, 0x06, 0x2d, 0x12, 0xda, 0x07, 0xeb, 0x45, + 0x07, 0x07, 0xf1, 0x24, 0x00, 0xff, 0xf7, 0x93, 0xff, 0xb7, 0xf9, 0x24, 0x10, 0x70, 0x19, + 0x40, 0x31, 0xc9, 0x11, 0x80, 0xf8, 0x70, 0x10, 0x7e, 0x30, 0x21, 0x46, 0xff, 0xf7, 0x9b, + 0xff, 0xbd, 0xe8, 0xf0, 0x81, 0x76, 0x19, 0x86, 0xf8, 0x70, 0x10, 0x86, 0xf8, 0x7e, 0x40, + 0xbd, 0xe8, 0xf0, 0x81, 0x97, 0x49, 0x0b, 0x46, 0x67, 0x3b, 0xb3, 0xf9, 0x1d, 0x00, 0x1a, + 0x78, 0x40, 0x01, 0x12, 0x02, 0x00, 0xb2, 0x12, 0xb2, 0x93, 0xf8, 0x20, 0x30, 0xd2, 0x10, + 0x80, 0x1a, 0xc9, 0x5c, 0x09, 0x02, 0x09, 0xb2, 0x49, 0x10, 0x40, 0x1a, 0x80, 0x30, 0xc1, + 0x11, 0x00, 0xeb, 0x11, 0x60, 0x00, 0x12, 0x0d, 0x30, 0x00, 0xb2, 0x10, 0xf1, 0x80, 0x0f, + 0xb8, 0xbf, 0x6f, 0xf0, 0x7f, 0x00, 0x40, 0xb2, 0x70, 0x47, 0x12, 0x49, 0x09, 0x68, 0xb0, + 0xfb, 0xf1, 0xf2, 0x02, 0xfb, 0x11, 0x00, 0x80, 0x01, 0x89, 0x0a, 0xb0, 0xfb, 0xf1, 0xf0, + 0x00, 0xeb, 0x02, 0x40, 0x00, 0x02, 0x70, 0x47, 0x4a, 0x00, 0xa1, 0x49, 0x01, 0xeb, 0xc0, + 0x01, 0xa0, 0x48, 0x83, 0x5a, 0x0b, 0x80, 0x03, 0x46, 0x10, 0x33, 0x20, 0x30, 0x9b, 0x5a, + 0x4b, 0x80, 0x80, 0x5a, 0x88, 0x80, 0x70, 0x47, 0xc0, 0x46, 0x59, 0x14, 0x00, 0x40, 0xad, + 0xfc, 0xff, 0xff, 0xc0, 0x22, 0x02, 0x42, 0x58, 0x24, 0x00, 0x40, 0xd0, 0x08, 0x00, 0x20, + 0xc0, 0x00, 0x00, 0x20, 0x6c, 0x02, 0x00, 0x20, 0xf2, 0x20, 0x00, 0x40, 0x2d, 0xe9, 0xf0, + 0x43, 0x88, 0x46, 0xb8, 0xf1, 0x00, 0x0f, 0x07, 0x46, 0x14, 0xbf, 0x01, 0x20, 0x02, 0x20, + 0x8d, 0x49, 0xaf, 0x4d, + + 0x01, 0x05, 0xff, 0xff, 0x46, 0x5e, 0x19, 0x00, 0xfa, 0xb8, 0xf1, 0x00, 0x0f, 0xa1, 0xf1, + 0xb0, 0x01, 0x09, 0x88, 0x8b, 0x4b, 0x21, 0xf0, 0x03, 0x01, 0x40, 0xea, 0x01, 0x00, 0xa5, + 0xf2, 0xc4, 0x41, 0x08, 0x80, 0x10, 0xd0, 0x28, 0x88, 0x40, 0xf0, 0x70, 0x00, 0x28, 0x80, + 0x01, 0x21, 0x18, 0x46, 0xd4, 0x38, 0x01, 0x70, 0x01, 0x71, 0x80, 0xf8, 0x3c, 0x10, 0x00, + 0x22, 0xa5, 0xf5, 0x92, 0x64, 0x22, 0x60, 0x80, 0xf8, 0xd4, 0x10, 0x17, 0x48, 0xb8, 0xf1, + 0x00, 0x0f, 0xa9, 0x4c, 0x00, 0xfb, 0x07, 0xf0, 0x07, 0xd0, 0xfa, 0x22, 0x21, 0x46, 0x89, + 0x1d, 0xb1, 0xf9, 0x00, 0x10, 0x01, 0xfb, 0x02, 0xf1, 0x40, 0x1a, 0xff, 0xf7, 0x97, 0xff, + 0xa5, 0xf2, 0x9c, 0x41, 0x08, 0x60, 0x00, 0x26, 0x1e, 0x70, 0xe0, 0x8a, 0x40, 0x08, 0x03, + 0xd2, 0xb8, 0xf1, 0x00, 0x0f, 0x08, 0xbf, 0x1e, 0x72, 0xff, 0x20, 0xa5, 0xf2, 0x8c, 0x41, + 0x08, 0x70, 0x9b, 0x48, 0xb8, 0xf1, 0x00, 0x0f, 0x01, 0x78, 0x0b, 0xd1, 0xaf, 0x48, 0x00, + 0x78, 0x80, 0x00, 0x00, 0xeb, 0x41, 0x00, 0x20, 0x18, 0xb0, 0xf8, 0xa6, 0x20, 0x04, 0xe0, + 0xc0, 0x46, 0x40, 0x42, 0x0f, 0x00, 0xb4, 0xf8, 0xaa, 0x20, 0x48, 0x00, 0x07, 0xfb, 0x02, + 0xf1, 0xa5, 0xf2, 0xdc, 0x42, 0x00, 0x19, 0x09, 0x0c, 0x11, 0x80, 0xb0, 0xf8, 0xb6, 0x10, + 0xb0, 0xf8, 0xb2, 0x30, 0xa7, 0xf6, 0x62, 0x12, 0x49, 0x02, 0x03, 0xfb, 0x12, 0x11, 0x09, + 0x14, 0xa5, 0xf2, 0xe4, 0x42, 0x11, 0x80, 0xa5, 0xf5, 0x9c, 0x61, 0xb0, 0xf8, 0xae, 0x00, + 0x37, 0x46, 0x4f, 0xf0, 0x08, 0x09, 0x08, 0x80, 0xa5, 0xf2, 0x8c, 0x40, 0x06, 0x70, 0xf9, + 0xb2, 0xf8, 0xb2, 0xff, 0xf7, 0x5e, 0xff, 0x17, 0xb1, 0x48, 0x46, 0x00, 0xf0, 0x4d, 0xfc, + 0xa5, 0xf5, 0x92, 0x60, + + 0x01, 0x05, 0xff, 0xff, 0x40, 0x5f, 0x19, 0x00, 0xfa, 0x00, 0x88, 0x49, 0xfa, 0x07, 0xf1, + 0x20, 0xf0, 0x0f, 0x00, 0x01, 0x43, 0xa5, 0xf5, 0x92, 0x60, 0x01, 0x80, 0x05, 0x20, 0x00, + 0xf0, 0x55, 0xfc, 0x7f, 0x1c, 0x04, 0x2f, 0xe6, 0xdb, 0xa5, 0xf2, 0x8e, 0x40, 0x00, 0x88, + 0xa5, 0xf2, 0x8e, 0x41, 0x40, 0xf0, 0x70, 0x00, 0x08, 0x80, 0xa5, 0xf2, 0x8e, 0x40, 0x00, + 0x88, 0xa5, 0xf2, 0x8e, 0x41, 0x20, 0xf4, 0x80, 0x70, 0x40, 0xf0, 0x80, 0x00, 0x08, 0x80, + 0x48, 0x46, 0x00, 0xf0, 0x27, 0xfc, 0x82, 0x48, 0xb8, 0xf1, 0x00, 0x0f, 0x05, 0xd0, 0x94, + 0xf8, 0xc0, 0x10, 0x49, 0x09, 0x07, 0xd2, 0x04, 0x46, 0x04, 0xe0, 0x04, 0x46, 0x01, 0x20, + 0x20, 0x70, 0x00, 0xf0, 0xef, 0xfb, 0x26, 0x70, 0xbd, 0xe8, 0xf0, 0x83, 0x30, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0xb5, 0x5e, 0x4a, 0xfa, 0x23, 0x92, 0x1d, 0xb2, 0xf9, + 0x00, 0x20, 0x02, 0xfb, 0x03, 0xf2, 0x80, 0x1a, 0xf0, 0x30, 0x4f, 0xf4, 0xf0, 0x72, 0xb0, + 0xfb, 0xf2, 0xf3, 0x71, 0x4a, 0x01, 0xeb, 0x53, 0x00, 0xb0, 0xfb, 0xf3, 0xf0, 0x8c, 0x1a, + 0x43, 0x43, 0x9c, 0x42, 0x4f, 0xf0, 0x00, 0x00, 0x03, 0xd8, 0x52, 0x18, 0x9a, 0x42, 0x28, + 0xbf, 0x01, 0x20, 0x10, 0xbd, 0x00, 0x12, 0x00, 0x40, 0x30, 0xb5, 0x02, 0x46, 0x6c, 0x48, + 0x69, 0x4d, 0x67, 0x49, 0x03, 0x68, 0x18, 0x0d, 0x0c, 0x28, 0x4f, 0xea, 0x13, 0x54, 0x05, + 0xd0, 0x18, 0x28, 0x03, 0xd0, 0x31, 0x28, 0x18, 0xbf, 0x00, 0x20, 0x05, 0xd1, 0x91, 0x42, + 0x3a, 0xbf, 0x28, 0x1c, 0x80, 0x1c, 0x28, 0x1c, 0x00, 0x88, 0x12, 0x2c, 0x18, 0xbf, 0x24, + 0x2c, 0x05, 0xd1, 0x28, 0x46, 0x00, 0x1d, 0x91, 0x42, 0x34, 0xbf, 0x40, 0x88, 0x00, 0x88, + 0x10, 0x2c, 0x18, 0xbf, + + 0x01, 0x05, 0xff, 0xff, 0x3a, 0x60, 0x19, 0x00, 0xfa, 0x20, 0x2c, 0x05, 0xd1, 0x28, 0x46, + 0x08, 0x30, 0x91, 0x42, 0x34, 0xbf, 0x40, 0x88, 0x00, 0x88, 0x56, 0x4a, 0x01, 0x21, 0x11, + 0x70, 0x4f, 0xf4, 0x7a, 0x72, 0xb3, 0xfb, 0xf2, 0xf4, 0x53, 0x4b, 0xe1, 0x0a, 0x0d, 0x1f, + 0x89, 0xb2, 0x41, 0x43, 0x1d, 0x80, 0x65, 0x08, 0x02, 0xfb, 0x01, 0x51, 0xb1, 0xfb, 0xf4, + 0xf1, 0xc9, 0x09, 0x09, 0x1f, 0x59, 0x80, 0x30, 0xbd, 0xc0, 0x46, 0xdc, 0x1c, 0x00, 0x40, + 0x70, 0x03, 0x00, 0x20, 0x04, 0x21, 0x00, 0x42, 0x2d, 0xe9, 0xf0, 0x41, 0x49, 0x4c, 0x94, + 0xf8, 0x00, 0x80, 0x20, 0x88, 0x27, 0x46, 0x0c, 0x3f, 0x20, 0xf0, 0x0f, 0x00, 0x40, 0xf0, + 0x03, 0x00, 0x20, 0x80, 0x38, 0x88, 0x54, 0x3c, 0x20, 0xf4, 0xe0, 0x60, 0x40, 0xf4, 0x00, + 0x70, 0xa4, 0xf8, 0x48, 0x00, 0x02, 0x20, 0x00, 0xf0, 0x68, 0xfb, 0xd4, 0xf8, 0x88, 0x50, + 0x38, 0x88, 0x20, 0xf4, 0xe0, 0x60, 0x38, 0x80, 0x01, 0x20, 0x00, 0xf0, 0x5f, 0xfb, 0x38, + 0x88, 0x0e, 0x4e, 0x20, 0xf0, 0x0f, 0x00, 0xa4, 0xf8, 0x48, 0x00, 0x01, 0x20, 0x00, 0xf0, + 0x56, 0xfb, 0x36, 0x48, 0x01, 0x27, 0x07, 0x70, 0x38, 0x46, 0x00, 0xf0, 0x50, 0xfb, 0x94, + 0xf8, 0x70, 0x00, 0x40, 0x00, 0x40, 0xb2, 0x40, 0x10, 0xa0, 0xeb, 0xe5, 0x20, 0x41, 0xb2, + 0xe8, 0x0a, 0x3c, 0xbf, 0x20, 0x88, 0xa0, 0xeb, 0x01, 0x20, 0x08, 0xd3, 0x02, 0xe0, 0xc0, + 0x46, 0xf0, 0x20, 0x00, 0x40, 0x20, 0x88, 0xa0, 0xeb, 0x01, 0x20, 0x00, 0xf5, 0x80, 0x70, + 0x20, 0x80, 0x38, 0x46, 0x00, 0xf0, 0x35, 0xfb, 0x27, 0x49, 0x00, 0x20, 0x84, 0xf8, 0x54, + 0x80, 0x08, 0x70, 0x30, 0x88, 0x20, 0xf0, 0x70, 0x00, 0x30, 0x80, 0xbd, 0xe8, 0xf0, 0x81, + 0x00, 0x02, 0x00, 0x20, + + 0x01, 0x05, 0xff, 0xff, 0x34, 0x61, 0x19, 0x00, 0xfa, 0x10, 0x03, 0x04, 0x42, 0xf0, 0xb5, + 0x20, 0x48, 0x01, 0x88, 0x41, 0xf0, 0x70, 0x01, 0x01, 0x80, 0x1c, 0x48, 0x01, 0x26, 0x06, + 0x70, 0x30, 0x46, 0x00, 0xf0, 0x1a, 0xfb, 0x1b, 0x48, 0x17, 0x4c, 0x01, 0x89, 0x0c, 0x3c, + 0x00, 0x27, 0x24, 0xf8, 0x48, 0x1c, 0x80, 0x7a, 0x0c, 0x4d, 0x85, 0xf8, 0x50, 0x0e, 0x07, + 0x21, 0xf8, 0xb2, 0xff, 0xf7, 0x41, 0xfe, 0x7f, 0x1c, 0x04, 0x2f, 0xf8, 0xdb, 0x20, 0x88, + 0x20, 0xf0, 0x0f, 0x00, 0x40, 0xf0, 0x01, 0x00, 0x20, 0x80, 0x2e, 0x70, 0x30, 0x46, 0x00, + 0xf0, 0xfe, 0xfa, 0x00, 0x20, 0x28, 0x70, 0xf0, 0xbd, 0xc0, 0x46, 0xe2, 0x08, 0x00, 0x20, + 0x70, 0x8c, 0x03, 0x42, 0x40, 0x0d, 0x03, 0x00, 0x00, 0x72, 0x6f, 0x91, 0xa0, 0x03, 0x00, + 0x20, 0x80, 0x42, 0x04, 0x42, 0x04, 0x22, 0x00, 0x40, 0xc0, 0x00, 0x00, 0x20, 0x6c, 0x1c, + 0x00, 0x40, 0xc0, 0x9a, 0x03, 0x42, 0x6c, 0x20, 0x00, 0x42, 0xf0, 0x20, 0x00, 0x40, 0xd0, + 0x08, 0x00, 0x20, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x34, 0x0d, 0xaa, 0x4d, 0x01, 0x90, + 0xa6, 0x48, 0x02, 0x95, 0xa5, 0xf1, 0x34, 0x05, 0x02, 0x8b, 0x4f, 0xf0, 0x00, 0x01, 0x02, + 0xb1, 0x01, 0x21, 0xa3, 0x4a, 0x29, 0x75, 0x10, 0x21, 0x11, 0x70, 0xa2, 0x4a, 0x01, 0x21, + 0x03, 0x91, 0x11, 0x70, 0xae, 0x49, 0x00, 0x24, 0x82, 0xf8, 0x4c, 0x40, 0x04, 0x91, 0xad, + 0x49, 0xac, 0x4e, 0xb1, 0x4f, 0x09, 0x88, 0xa6, 0xf6, 0xee, 0x73, 0x21, 0xf4, 0x80, 0x71, + 0x41, 0xf4, 0x00, 0x71, 0x19, 0x80, 0x41, 0x21, 0xa6, 0xf6, 0xe2, 0x73, 0x19, 0x70, 0x82, + 0xf8, 0xdc, 0x4d, 0x82, 0xf8, 0x1c, 0x4e, 0xa6, 0xf6, 0xd4, 0x61, 0x0c, 0x80, 0x05, 0x94, + 0x06, 0x90, 0x95, 0xf8, + + 0x01, 0x05, 0xff, 0xff, 0x2e, 0x62, 0x19, 0x00, 0xfa, 0x34, 0x00, 0x00, 0x28, 0x22, 0xd1, + 0x06, 0x98, 0xb0, 0xf8, 0xca, 0x00, 0xf0, 0xb1, 0x9e, 0x48, 0x00, 0x78, 0x00, 0x11, 0x02, + 0x28, 0x19, 0xd1, 0x01, 0x98, 0x20, 0xb9, 0x38, 0x46, 0x80, 0x1d, 0x00, 0x88, 0x40, 0x08, + 0x07, 0xd2, 0x01, 0x98, 0x01, 0x28, 0x0f, 0xd1, 0x38, 0x46, 0x22, 0x30, 0x00, 0x88, 0x40, + 0x08, 0x0a, 0xd3, 0xff, 0xf7, 0x95, 0xfd, 0x07, 0x90, 0x6a, 0x46, 0x01, 0x98, 0x0d, 0xf1, + 0x01, 0x01, 0xff, 0xf7, 0x8f, 0xfc, 0x03, 0x98, 0x05, 0x90, 0xff, 0x20, 0xa6, 0xf5, 0x75, + 0x71, 0x08, 0x70, 0x03, 0x98, 0x00, 0xf0, 0x7e, 0xfa, 0xa6, 0xf5, 0x75, 0x70, 0x04, 0x70, + 0xa6, 0xf5, 0x76, 0x70, 0x04, 0x80, 0xe8, 0x7a, 0x38, 0xb1, 0xec, 0x72, 0xa8, 0x7a, 0x87, + 0x49, 0x08, 0x70, 0x28, 0x89, 0xa6, 0xf5, 0x84, 0x61, 0x08, 0x80, 0x85, 0x48, 0x4f, 0xf0, + 0x0a, 0x08, 0x08, 0x90, 0x80, 0xf8, 0x3c, 0x40, 0xb6, 0xf8, 0xb8, 0x10, 0x21, 0xf0, 0x70, + 0x01, 0xa6, 0xf8, 0xb8, 0x10, 0x04, 0x70, 0x04, 0x71, 0x4f, 0xf4, 0x40, 0x50, 0x46, 0xf8, + 0x20, 0x0c, 0x70, 0x88, 0x20, 0xf0, 0x03, 0x00, 0x70, 0x80, 0x70, 0x88, 0x20, 0xf0, 0x0c, + 0x00, 0x70, 0x80, 0x79, 0x48, 0x09, 0x90, 0x80, 0xf8, 0x80, 0x42, 0x34, 0x80, 0x04, 0x71, + 0x95, 0xf8, 0x34, 0x10, 0x00, 0x29, 0x76, 0xd1, 0x0a, 0x97, 0xf8, 0x89, 0x75, 0x4a, 0x00, + 0x28, 0x0b, 0x92, 0x35, 0xd0, 0x01, 0x98, 0x00, 0x28, 0x32, 0xd1, 0x47, 0xf6, 0xff, 0x70, + 0x6f, 0xf0, 0xff, 0x3a, 0x0b, 0x99, 0x60, 0x31, 0x6f, 0xf0, 0x80, 0x32, 0x01, 0xf1, 0x08, + 0x0b, 0x0c, 0x92, 0xa1, 0xf1, 0x08, 0x09, 0x05, 0xf1, 0x1a, 0x03, 0x05, 0xf1, 0x18, 0x0c, + 0x05, 0xf1, 0x16, 0x0e, + + 0x01, 0x05, 0xff, 0xff, 0x28, 0x63, 0x19, 0x00, 0xfa, 0x4f, 0xf0, 0x02, 0x08, 0x03, 0x22, + 0x4b, 0xf8, 0x04, 0xab, 0x41, 0xf8, 0x04, 0xab, 0x0c, 0x9f, 0x07, 0x2a, 0x23, 0xf8, 0x08, + 0x0b, 0x49, 0xf8, 0x04, 0x7b, 0x2c, 0xf8, 0x08, 0x0b, 0x2e, 0xf8, 0x08, 0x0b, 0x3c, 0xbf, + 0x05, 0xeb, 0x42, 0x07, 0xf8, 0x82, 0xb8, 0xf1, 0x01, 0x08, 0x02, 0xf1, 0x04, 0x02, 0xe8, + 0xd1, 0x0a, 0x99, 0xcc, 0x81, 0x02, 0x99, 0x09, 0x78, 0x4f, 0xf0, 0x08, 0x08, 0x00, 0x29, + 0x0a, 0x99, 0x37, 0xd1, 0x89, 0x8c, 0x00, 0x29, 0x34, 0xd0, 0x01, 0x99, 0x01, 0x29, 0x31, + 0xd1, 0x6f, 0xf0, 0x80, 0x31, 0x47, 0xf6, 0xff, 0x73, 0x0c, 0x91, 0x0b, 0x99, 0x03, 0x22, + 0x4f, 0xf0, 0x02, 0x0a, 0x01, 0xf1, 0x70, 0x0b, 0x05, 0xf1, 0x28, 0x0c, 0x05, 0xf1, 0x26, + 0x0e, 0x05, 0xf1, 0x24, 0x09, 0x81, 0xf8, 0x7e, 0x40, 0x0c, 0x9f, 0x07, 0x2a, 0x81, 0xf8, + 0x81, 0x40, 0x4b, 0xf8, 0x04, 0x7b, 0x2c, 0xf8, 0x08, 0x3b, 0x81, 0xf8, 0x80, 0x40, 0x2e, + 0xf8, 0x08, 0x3b, 0x81, 0xf8, 0x7f, 0x40, 0x29, 0xf8, 0x08, 0x3b, 0x3c, 0xbf, 0x05, 0xeb, + 0x42, 0x07, 0xbb, 0x84, 0xba, 0xf1, 0x01, 0x0a, 0x01, 0xf1, 0x04, 0x01, 0x02, 0xf1, 0x04, + 0x02, 0xe2, 0xd1, 0x0a, 0x98, 0xa8, 0xf1, 0x02, 0x08, 0x84, 0x84, 0x05, 0x98, 0x48, 0xb1, + 0x01, 0x98, 0x9d, 0xf8, 0x01, 0x10, 0x07, 0x9b, 0x9d, 0xf8, 0x00, 0x20, 0xff, 0xf7, 0x6e, + 0xfc, 0xa8, 0xf1, 0x04, 0x08, 0x95, 0xf8, 0x34, 0x00, 0x18, 0xb9, 0x1f, 0xfa, 0x88, 0xf0, + 0x00, 0xf0, 0xc0, 0xf9, 0x09, 0x98, 0x04, 0x72, 0x86, 0xf8, 0x4c, 0x40, 0x04, 0x70, 0x08, + 0x98, 0x80, 0xf8, 0x34, 0x40, 0x04, 0x98, 0x34, 0x54, 0x2d, 0x48, 0x04, 0x70, 0xb6, 0xf8, + 0xa4, 0x00, 0x20, 0xf0, + + 0x01, 0x05, 0xff, 0xff, 0x22, 0x64, 0x19, 0x00, 0xfa, 0x03, 0x00, 0xa6, 0xf8, 0xa4, 0x00, + 0xb6, 0xf8, 0xa4, 0x00, 0x20, 0xf0, 0x0c, 0x00, 0xa6, 0xf8, 0xa4, 0x00, 0x06, 0x98, 0x90, + 0xf8, 0x77, 0x00, 0xf8, 0xb1, 0x25, 0x49, 0x81, 0xf8, 0x80, 0x42, 0x03, 0x98, 0x08, 0x70, + 0x81, 0xf8, 0x40, 0x01, 0x0c, 0x72, 0x06, 0x98, 0x90, 0xf8, 0x77, 0x10, 0x01, 0xf0, 0xf0, + 0x01, 0x80, 0xf8, 0x77, 0x10, 0x90, 0xf8, 0x77, 0x00, 0x68, 0xb1, 0x06, 0x98, 0x90, 0xf8, + 0x76, 0x00, 0x70, 0xb9, 0x08, 0xe0, 0xc0, 0x46, 0x00, 0x02, 0x00, 0x20, 0x67, 0x11, 0x00, + 0x40, 0x24, 0x09, 0x02, 0x42, 0x04, 0x09, 0x00, 0x20, 0x16, 0x48, 0x04, 0x70, 0x06, 0x98, + 0x80, 0xf8, 0x77, 0x40, 0x08, 0x98, 0x03, 0x99, 0x80, 0xf8, 0xb0, 0x10, 0x13, 0x48, 0xa0, + 0xf8, 0x1f, 0x40, 0x04, 0x70, 0x84, 0x70, 0x95, 0xf8, 0x34, 0x00, 0x10, 0xb9, 0x03, 0x20, + 0x00, 0xf0, 0x70, 0xf9, 0x0d, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0xc0, 0x46, 0xc8, 0xe0, 0xff, + 0xff, 0x38, 0x20, 0x00, 0x40, 0x4a, 0x10, 0x00, 0x40, 0x1c, 0x09, 0x00, 0x20, 0xc0, 0x9a, + 0x03, 0x42, 0x30, 0x20, 0x00, 0x42, 0x80, 0x04, 0x04, 0x42, 0x00, 0x00, 0x00, 0x20, 0x30, + 0x00, 0x00, 0x20, 0x70, 0x1c, 0x04, 0x42, 0x00, 0x40, 0x04, 0x42, 0x3c, 0x42, 0x04, 0x42, + 0x4d, 0x24, 0x00, 0x40, 0x95, 0x48, 0x94, 0x49, 0x08, 0x60, 0x95, 0x49, 0x08, 0x78, 0x20, + 0xf0, 0x03, 0x00, 0x08, 0x70, 0x08, 0x78, 0x93, 0x49, 0x08, 0x70, 0x00, 0xf0, 0x68, 0xbc, + 0x92, 0x49, 0x10, 0x20, 0x08, 0x70, 0x91, 0x48, 0x14, 0x30, 0x00, 0x78, 0x00, 0xf0, 0xc3, + 0xbc, 0x90, 0x48, 0x90, 0x49, 0x08, 0x60, 0x8a, 0x49, 0x08, 0x78, 0x20, 0xf0, 0x03, 0x00, + 0x08, 0x70, 0x08, 0x78, + + 0x01, 0x05, 0xff, 0xff, 0x1c, 0x65, 0x19, 0x00, 0xfa, 0x88, 0x49, 0x08, 0x70, 0x00, 0xf0, + 0x64, 0xbc, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x2c, 0x0d, 0x88, 0x4f, 0xdf, 0xf8, 0x1c, + 0x92, 0x71, 0x20, 0x80, 0x3f, 0xc7, 0xf8, 0x00, 0x90, 0x00, 0x90, 0x81, 0x20, 0x01, 0x90, + 0x80, 0x20, 0x02, 0x90, 0x40, 0x20, 0x03, 0x90, 0x82, 0x48, 0x04, 0x90, 0x82, 0x48, 0x05, + 0x90, 0x82, 0x48, 0x06, 0x90, 0x82, 0x48, 0x07, 0x90, 0x82, 0x48, 0x85, 0x4c, 0xdf, 0xf8, + 0x08, 0xb2, 0x08, 0x90, 0x84, 0x48, 0x84, 0x4d, 0x4f, 0xf0, 0x01, 0x0a, 0x09, 0x90, 0x7f, + 0x48, 0x4f, 0xf0, 0x00, 0x08, 0x82, 0x4e, 0x0a, 0x90, 0x13, 0xe0, 0xc7, 0xf8, 0x80, 0x90, + 0x21, 0x78, 0x41, 0xb9, 0x0a, 0x99, 0x09, 0x88, 0x49, 0x08, 0x04, 0xd3, 0x00, 0x99, 0x21, + 0x70, 0x21, 0x78, 0x31, 0x70, 0x04, 0xe0, 0x31, 0x78, 0x11, 0xb9, 0xc7, 0xf8, 0x00, 0x90, + 0x30, 0xbf, 0xc7, 0xf8, 0x00, 0x90, 0x31, 0x78, 0x00, 0x29, 0xe8, 0xd0, 0x31, 0x78, 0x30, + 0x29, 0x19, 0xdc, 0x30, 0x29, 0x59, 0xd0, 0x20, 0x29, 0x0c, 0xdc, 0x20, 0x29, 0x6b, 0xd0, + 0x10, 0x39, 0x72, 0xd0, 0x49, 0x1e, 0x73, 0xd0, 0xc9, 0x1e, 0x6e, 0xd0, 0x49, 0x1e, 0x6a, + 0xd0, 0x49, 0x1e, 0x65, 0xd0, 0x6f, 0xe0, 0x21, 0x39, 0x5a, 0xd0, 0xc9, 0x1e, 0x56, 0xd0, + 0x49, 0x1e, 0x52, 0xd0, 0x49, 0x1e, 0x4d, 0xd0, 0x66, 0xe0, 0x51, 0x29, 0x0a, 0xdc, 0x51, + 0x29, 0x2c, 0xd0, 0x31, 0x39, 0x34, 0xd0, 0x0f, 0x39, 0x0d, 0xd0, 0x49, 0x1e, 0x29, 0xd0, + 0x0f, 0x39, 0x3b, 0xd0, 0x59, 0xe0, 0x70, 0x39, 0x1e, 0xd0, 0x49, 0x1e, 0x19, 0xd0, 0x0f, + 0x39, 0x14, 0xd0, 0x49, 0x1e, 0x0e, 0xd0, 0x50, 0xe0, 0x9b, 0xf8, 0x00, 0x00, 0x41, 0x28, + 0x06, 0xd1, 0x28, 0x78, + + 0x01, 0x05, 0xff, 0xff, 0x16, 0x66, 0x19, 0x00, 0xfa, 0x20, 0xb9, 0x09, 0x98, 0x80, 0x7b, + 0x08, 0xb9, 0x01, 0x98, 0x28, 0x70, 0xfe, 0xf7, 0xb7, 0xfa, 0x42, 0xe0, 0xfe, 0xf7, 0x9b, + 0xfe, 0x02, 0x98, 0x0e, 0xe0, 0xfe, 0xf7, 0x42, 0xfe, 0x3b, 0xe0, 0x00, 0xf0, 0x0a, 0xfc, + 0x38, 0xe0, 0x00, 0xf0, 0xe4, 0xfb, 0x35, 0xe0, 0x00, 0xf0, 0xd3, 0xf9, 0x32, 0xe0, 0xfe, + 0xf7, 0x1d, 0xfe, 0x03, 0x98, 0x28, 0x70, 0x84, 0xf8, 0x00, 0x80, 0x2b, 0xe0, 0x05, 0x98, + 0x06, 0x99, 0x00, 0xf0, 0xfc, 0xf8, 0x00, 0xf0, 0xc7, 0xfd, 0x24, 0xe0, 0x05, 0x98, 0x06, + 0x99, 0x00, 0xf0, 0xf5, 0xf8, 0x00, 0xf0, 0x9e, 0xfc, 0x07, 0x98, 0x08, 0x99, 0x00, 0xf0, + 0xef, 0xf8, 0x19, 0xe0, 0x00, 0xf0, 0x06, 0xfc, 0x16, 0xe0, 0x50, 0x46, 0x02, 0xe0, 0x50, + 0x46, 0x04, 0xe0, 0x40, 0x46, 0xfd, 0xf7, 0x1b, 0xfe, 0x0e, 0xe0, 0x40, 0x46, 0xff, 0xf7, + 0x97, 0xfd, 0x0a, 0xe0, 0x00, 0xf0, 0xf4, 0xfb, 0x07, 0xe0, 0x50, 0x46, 0x03, 0xe0, 0x00, + 0xf0, 0xb3, 0xfa, 0x02, 0xe0, 0x40, 0x46, 0xfe, 0xf7, 0xbf, 0xfe, 0xc7, 0xf8, 0x80, 0x90, + 0x31, 0x78, 0x8b, 0xf8, 0x00, 0x10, 0x86, 0xf8, 0x00, 0x80, 0x09, 0x99, 0x81, 0xf8, 0x34, + 0x80, 0x21, 0x78, 0x11, 0xf0, 0x03, 0x0f, 0x17, 0xd1, 0x21, 0x78, 0x70, 0x29, 0x12, 0xd0, + 0x29, 0x78, 0x39, 0xb1, 0x22, 0x78, 0x02, 0xf0, 0x04, 0x02, 0x29, 0x78, 0x01, 0xf0, 0x04, + 0x01, 0x8a, 0x42, 0x08, 0xd0, 0x21, 0x78, 0xc9, 0x08, 0x39, 0xbf, 0x04, 0x99, 0x81, 0xf8, + 0x00, 0xa0, 0x04, 0x99, 0x81, 0xf8, 0x02, 0xa0, 0x84, 0xf8, 0x00, 0x80, 0x21, 0x78, 0x00, + 0x29, 0x7f, 0xf4, 0x4d, 0xaf, 0x29, 0x78, 0x00, 0x29, 0x3f, 0xf4, 0x49, 0xaf, 0x29, 0x78, + 0x21, 0x70, 0x21, 0x78, + + 0x01, 0x05, 0xff, 0xff, 0x10, 0x67, 0x19, 0x00, 0xfa, 0x31, 0x70, 0x85, 0xf8, 0x00, 0x80, + 0x41, 0xe7, 0x00, 0xb5, 0xff, 0xf7, 0x85, 0xfa, 0xff, 0xf7, 0xa8, 0xfa, 0x00, 0xbd, 0x07, + 0x49, 0x10, 0x20, 0x08, 0x70, 0x15, 0x48, 0x00, 0x78, 0x00, 0xf0, 0xaf, 0xbb, 0xc0, 0x46, + 0x80, 0xe1, 0x00, 0xe0, 0x0c, 0x00, 0x28, 0x00, 0x1c, 0x09, 0x00, 0x20, 0x1e, 0x09, 0x00, + 0x20, 0x02, 0x01, 0x00, 0x40, 0x34, 0x24, 0x00, 0x40, 0x0c, 0x00, 0x28, 0x00, 0x80, 0xe1, + 0x00, 0xe0, 0x4c, 0x24, 0x00, 0x40, 0x4c, 0x04, 0x00, 0x10, 0xf4, 0x03, 0x00, 0x00, 0x41, + 0x08, 0x00, 0x10, 0xea, 0x03, 0x00, 0x00, 0x1f, 0x09, 0x00, 0x20, 0xdc, 0x02, 0x00, 0x20, + 0x1c, 0x09, 0x00, 0x20, 0xd0, 0x08, 0x00, 0x20, 0x1d, 0x09, 0x00, 0x20, 0x1e, 0x09, 0x00, + 0x20, 0x44, 0x24, 0x00, 0x40, 0x8c, 0x49, 0x0a, 0x89, 0x00, 0x2a, 0x0c, 0xbf, 0x09, 0x68, + 0x49, 0x68, 0x8a, 0x4a, 0xb1, 0xfb, 0xf2, 0xf1, 0xc9, 0xb2, 0x48, 0x43, 0x81, 0x42, 0x2c, + 0xbf, 0x01, 0x20, 0x40, 0x1a, 0x87, 0x49, 0x04, 0x22, 0x20, 0xf0, 0x7f, 0x40, 0x0a, 0x80, + 0x48, 0x60, 0x00, 0x20, 0x08, 0x81, 0x05, 0x20, 0x08, 0x80, 0x48, 0x88, 0x00, 0x28, 0xfc, + 0xd0, 0x0a, 0x80, 0x70, 0x47, 0x80, 0x4a, 0x01, 0x46, 0xc8, 0x43, 0x90, 0x80, 0x10, 0x88, + 0x01, 0x42, 0x02, 0xd1, 0x20, 0xbf, 0x20, 0xbf, 0x10, 0x88, 0x70, 0x47, 0x10, 0xb5, 0x7a, + 0x4b, 0x04, 0x46, 0xe0, 0x43, 0x98, 0x80, 0x01, 0x20, 0xff, 0xf7, 0xcf, 0xff, 0x18, 0x88, + 0x20, 0x46, 0xff, 0xf7, 0xe9, 0xff, 0x10, 0xbd, 0x74, 0x4a, 0x01, 0x21, 0x51, 0x72, 0x91, + 0x8a, 0x01, 0xeb, 0xc0, 0x00, 0x50, 0x82, 0x10, 0x88, 0x70, 0x47, 0x70, 0x4a, 0x01, 0x21, + 0x51, 0x72, 0x91, 0x8a, + + 0x01, 0x05, 0xff, 0xff, 0x0a, 0x68, 0x19, 0x00, 0xfa, 0x01, 0xeb, 0xc0, 0x00, 0x10, 0x82, + 0x10, 0x88, 0x70, 0x47, 0x30, 0xb5, 0x6c, 0x4c, 0x23, 0x78, 0x65, 0x78, 0x5d, 0x1b, 0x05, + 0xf0, 0x3f, 0x05, 0x3d, 0x2d, 0x16, 0xda, 0x04, 0xeb, 0x43, 0x05, 0x68, 0x80, 0x5b, 0x1c, + 0x03, 0xf0, 0x3f, 0x03, 0x04, 0xeb, 0x43, 0x00, 0x41, 0x80, 0x5b, 0x1c, 0x03, 0xf0, 0x3f, + 0x03, 0x04, 0xeb, 0x43, 0x00, 0x42, 0x80, 0x5b, 0x1c, 0x03, 0xf0, 0x3f, 0x03, 0x23, 0x70, + 0x01, 0x21, 0x5d, 0x48, 0x0e, 0x38, 0x01, 0x80, 0x30, 0xbd, 0xf0, 0xb5, 0x5c, 0x4b, 0x06, + 0x46, 0x0c, 0x46, 0x18, 0x68, 0xb0, 0x42, 0x27, 0xd0, 0x5a, 0x4f, 0x00, 0x20, 0x38, 0x70, + 0x02, 0x20, 0xff, 0xf7, 0x8a, 0xff, 0x58, 0x48, 0x05, 0x46, 0x00, 0x88, 0xad, 0x1f, 0x20, + 0xf0, 0x07, 0x00, 0x40, 0xf0, 0x0b, 0x00, 0xe8, 0x80, 0x01, 0x20, 0x38, 0x70, 0xb0, 0x08, + 0x00, 0xf5, 0xa0, 0x60, 0xe8, 0x82, 0x19, 0x20, 0x2f, 0x8a, 0x28, 0x82, 0x02, 0x20, 0xff, + 0xf7, 0x75, 0xff, 0x00, 0x2c, 0x04, 0xf1, 0x03, 0x04, 0x06, 0xd0, 0xa1, 0x08, 0x4c, 0x4c, + 0x2a, 0x68, 0x49, 0x1e, 0x44, 0xf8, 0x04, 0x2b, 0xfa, 0xd1, 0x1e, 0x60, 0x2f, 0x82, 0xf0, + 0xbd, 0x70, 0xb5, 0xad, 0xf1, 0x1c, 0x0d, 0x01, 0x46, 0x47, 0x48, 0x6a, 0x46, 0x78, 0xc8, + 0x78, 0xc2, 0x90, 0xe8, 0x19, 0x00, 0x82, 0xe8, 0x19, 0x00, 0x06, 0x20, 0x91, 0xfb, 0xf0, + 0xf1, 0x0a, 0x12, 0xc9, 0xb2, 0x00, 0x29, 0x4f, 0xf4, 0x80, 0x30, 0x40, 0xfa, 0x02, 0xf0, + 0x08, 0xbf, 0x00, 0x01, 0x08, 0xd0, 0xca, 0x00, 0x02, 0xeb, 0x81, 0x02, 0x80, 0x32, 0x11, + 0x12, 0x3d, 0xf8, 0x11, 0x10, 0x48, 0x43, 0x00, 0x0b, 0x07, 0xb0, 0x70, 0xbd, 0xc1, 0x0b, + 0x12, 0xbf, 0x37, 0x49, + + 0x01, 0x05, 0xff, 0xff, 0x04, 0x69, 0x19, 0x00, 0xfa, 0x00, 0x04, 0x37, 0x49, 0xc3, 0x0d, + 0x37, 0x4a, 0x03, 0xd1, 0x00, 0x02, 0x13, 0x46, 0x5b, 0x00, 0xc9, 0x1a, 0xc3, 0x0e, 0x04, + 0xbf, 0x00, 0x01, 0x89, 0x1a, 0x42, 0x0f, 0x03, 0xd1, 0x80, 0x00, 0x49, 0xf6, 0x20, 0x22, + 0x89, 0x1a, 0x82, 0x0f, 0x03, 0xd1, 0x40, 0x00, 0x44, 0xf6, 0x10, 0x52, 0x89, 0x1a, 0x00, + 0xeb, 0x50, 0x02, 0x13, 0x08, 0x03, 0xd2, 0x10, 0x46, 0x42, 0xf6, 0x14, 0x52, 0x89, 0x1a, + 0x00, 0xeb, 0x90, 0x02, 0x13, 0x08, 0x03, 0xd2, 0x10, 0x46, 0x41, 0xf6, 0xcf, 0x02, 0x89, + 0x1a, 0x00, 0xeb, 0xd0, 0x02, 0x13, 0x08, 0x3c, 0xbf, 0x10, 0x1c, 0xa1, 0xf6, 0x18, 0x51, + 0x00, 0xeb, 0x10, 0x12, 0x13, 0x08, 0x3c, 0xbf, 0x10, 0x1c, 0xa1, 0xf2, 0xbd, 0x61, 0x00, + 0xeb, 0x50, 0x12, 0x13, 0x08, 0x3c, 0xbf, 0x10, 0x1c, 0xa1, 0xf2, 0x6b, 0x31, 0x00, 0xeb, + 0x90, 0x12, 0x13, 0x08, 0x3c, 0xbf, 0x10, 0x1c, 0xa1, 0xf2, 0xb9, 0x11, 0x00, 0xeb, 0xd0, + 0x12, 0x13, 0x08, 0x3c, 0xbf, 0x10, 0x1c, 0xdd, 0x39, 0xc0, 0xf1, 0x00, 0x40, 0xa1, 0xeb, + 0xd0, 0x31, 0x08, 0x46, 0x70, 0x47, 0x00, 0xb5, 0xff, 0xf7, 0xa9, 0xff, 0x00, 0xeb, 0x80, + 0x00, 0xc0, 0x12, 0x00, 0xb2, 0x00, 0xbd, 0xc0, 0x46, 0xc0, 0x00, 0x00, 0x20, 0x40, 0x42, + 0x0f, 0x00, 0x10, 0xe0, 0x00, 0xe0, 0x2c, 0x24, 0x00, 0x40, 0x70, 0x01, 0x00, 0x20, 0x20, + 0x09, 0x00, 0x20, 0xd0, 0x40, 0x00, 0x42, 0x06, 0x02, 0x00, 0x40, 0xac, 0x2f, 0x00, 0x00, + 0xe0, 0x2e, 0x00, 0x00, 0xf4, 0x83, 0x04, 0x00, 0xf0, 0xb2, 0xff, 0xff, 0x41, 0x34, 0x01, + 0x00, 0x70, 0xb5, 0x6a, 0x49, 0x68, 0x48, 0x02, 0x68, 0x08, 0x68, 0x02, 0xf0, 0x01, 0x06, + 0x00, 0x0d, 0x0c, 0x28, + + 0x01, 0x05, 0xff, 0xff, 0xfe, 0x69, 0x19, 0x00, 0xfa, 0x0b, 0xd0, 0x10, 0x28, 0x09, 0xd0, + 0x12, 0x28, 0x07, 0xd0, 0x18, 0x28, 0x05, 0xd0, 0x20, 0x28, 0x03, 0xd0, 0x24, 0x28, 0x18, + 0xbf, 0x31, 0x28, 0x00, 0xd1, 0x16, 0x46, 0x60, 0x4c, 0x00, 0x20, 0x60, 0x4d, 0xa0, 0x67, + 0x84, 0xf8, 0x7d, 0x00, 0x91, 0xf8, 0x9a, 0x00, 0x04, 0x28, 0x08, 0xd1, 0x95, 0xf8, 0x56, + 0x20, 0xb1, 0xf8, 0x9e, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x90, 0x42, 0x00, 0xf0, 0xa6, 0x80, + 0x32, 0x0c, 0xb1, 0xb2, 0x01, 0x20, 0xff, 0xf7, 0xe5, 0xfe, 0x16, 0xf0, 0x09, 0x0f, 0x09, + 0xd0, 0x54, 0x48, 0x55, 0x49, 0xff, 0xf7, 0xff, 0xfe, 0x00, 0xf0, 0xa8, 0xfa, 0xa0, 0x6f, + 0x40, 0xf0, 0x08, 0x00, 0xa0, 0x67, 0x16, 0xf0, 0x81, 0x0f, 0x09, 0xd0, 0x50, 0x48, 0x50, + 0x49, 0xff, 0xf7, 0xf2, 0xfe, 0x00, 0xf0, 0x9b, 0xfa, 0xa0, 0x6f, 0x40, 0xf0, 0x80, 0x00, + 0xa0, 0x67, 0x70, 0x08, 0x09, 0xd3, 0x4c, 0x48, 0x4c, 0x49, 0xff, 0xf7, 0xe6, 0xfe, 0x00, + 0xf0, 0xd8, 0xfa, 0xa0, 0x6f, 0x40, 0xf0, 0x01, 0x00, 0xa0, 0x67, 0xf0, 0x09, 0x09, 0xd3, + 0x48, 0x48, 0x48, 0x49, 0xff, 0xf7, 0xda, 0xfe, 0x00, 0xf0, 0xf8, 0xfa, 0xa0, 0x6f, 0x40, + 0xf0, 0x40, 0x00, 0xa0, 0x67, 0xf0, 0x0a, 0x09, 0xd3, 0x44, 0x48, 0x44, 0x49, 0xff, 0xf7, + 0xce, 0xfe, 0x00, 0xf0, 0x86, 0xfb, 0xa0, 0x6f, 0x40, 0xf4, 0x80, 0x60, 0xa0, 0x67, 0x70, + 0x09, 0x0f, 0xd3, 0x40, 0x48, 0x40, 0x49, 0xff, 0xf7, 0xc2, 0xfe, 0x00, 0xf0, 0x0e, 0xfb, + 0x3f, 0x48, 0x3f, 0x49, 0xff, 0xf7, 0xbc, 0xfe, 0x00, 0xf0, 0x83, 0xfa, 0xa0, 0x6f, 0x40, + 0xf0, 0x10, 0x00, 0xa0, 0x67, 0xb0, 0x09, 0x0c, 0xd3, 0x3b, 0x48, 0x3b, 0x49, 0xff, 0xf7, + 0xb0, 0xfe, 0x00, 0xf0, + + 0x01, 0x05, 0xff, 0xff, 0xf8, 0x6a, 0x19, 0x00, 0xfa, 0x1a, 0xfb, 0x94, 0xf8, 0x7d, 0x00, + 0x18, 0xb9, 0xa0, 0x6f, 0x40, 0xf0, 0x20, 0x00, 0xa0, 0x67, 0x70, 0x0a, 0x09, 0xd3, 0x35, + 0x48, 0x36, 0x49, 0xff, 0xf7, 0xa1, 0xfe, 0x00, 0xf0, 0x61, 0xfa, 0xa0, 0x6f, 0x40, 0xf4, + 0x80, 0x70, 0xa0, 0x67, 0xb0, 0x0a, 0x09, 0xd3, 0x31, 0x48, 0x32, 0x49, 0xff, 0xf7, 0x95, + 0xfe, 0x00, 0xf0, 0xf6, 0xfa, 0xa0, 0x6f, 0x40, 0xf4, 0x00, 0x70, 0xa0, 0x67, 0x30, 0x0b, + 0x09, 0xd3, 0x2d, 0x48, 0x2e, 0x49, 0xff, 0xf7, 0x89, 0xfe, 0x00, 0xf0, 0x32, 0xfa, 0xa0, + 0x6f, 0x40, 0xf4, 0x00, 0x60, 0xa0, 0x67, 0x70, 0x0b, 0x09, 0xd3, 0x29, 0x48, 0x2a, 0x49, + 0xff, 0xf7, 0x7d, 0xfe, 0x00, 0xf0, 0xd6, 0xfa, 0xa0, 0x6f, 0x40, 0xf4, 0x80, 0x50, 0xa0, + 0x67, 0xb0, 0x0b, 0x03, 0xd3, 0xa0, 0x6f, 0x40, 0xf4, 0x00, 0x50, 0xa0, 0x67, 0xf0, 0x0b, + 0x09, 0xd3, 0x22, 0x48, 0x23, 0x49, 0xff, 0xf7, 0x6b, 0xfe, 0x00, 0xf0, 0x5e, 0xfa, 0xa0, + 0x6f, 0x40, 0xf4, 0x80, 0x40, 0xa0, 0x67, 0x08, 0x20, 0x28, 0x80, 0x70, 0xbd, 0xc0, 0x46, + 0x08, 0x00, 0x00, 0x20, 0xc0, 0x00, 0x00, 0x20, 0x30, 0x00, 0x00, 0x20, 0x1e, 0x24, 0x00, + 0x40, 0x60, 0x24, 0x00, 0x10, 0xb4, 0x00, 0x00, 0x00, 0xc0, 0x25, 0x00, 0x10, 0x6c, 0x00, + 0x00, 0x00, 0x68, 0x23, 0x00, 0x10, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x21, 0x00, 0x10, 0x6e, + 0x01, 0x00, 0x00, 0x74, 0x19, 0x00, 0x10, 0xe8, 0x02, 0x00, 0x00, 0x38, 0x20, 0x00, 0x10, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x4c, 0x04, 0x00, 0x00, 0x88, 0x16, 0x00, + 0x10, 0xec, 0x02, 0x00, 0x00, 0x70, 0x1e, 0x00, 0x10, 0xc8, 0x01, 0x00, 0x00, 0x2c, 0x0c, + 0x00, 0x10, 0xd0, 0x03, + + 0x01, 0x05, 0xff, 0xff, 0xf2, 0x6b, 0x19, 0x00, 0xfa, 0x00, 0x00, 0x14, 0x25, 0x00, 0x10, + 0xac, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x10, 0x5a, 0x03, 0x00, 0x00, 0x5c, 0x1c, 0x00, + 0x10, 0x14, 0x02, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0xdf, 0xf8, 0x34, 0xa1, 0xdf, 0xf8, + 0x34, 0xb1, 0x4f, 0xf0, 0x01, 0x09, 0x8a, 0xf8, 0x00, 0x90, 0xbb, 0xf8, 0x88, 0x00, 0x4f, + 0x4e, 0x58, 0xb9, 0x49, 0x49, 0x4f, 0xf0, 0x00, 0x00, 0x08, 0x80, 0x30, 0x46, 0x00, 0xf1, + 0x28, 0x00, 0x00, 0x78, 0x10, 0xb9, 0x07, 0x20, 0xff, 0xf7, 0xa2, 0xfd, 0x44, 0x4d, 0x05, + 0xf6, 0x53, 0x30, 0x01, 0x88, 0x00, 0x24, 0x43, 0x4f, 0x6f, 0xf3, 0x9f, 0x31, 0x41, 0xf4, + 0x80, 0x41, 0x01, 0x80, 0x42, 0x49, 0xdf, 0xf8, 0x00, 0x81, 0xa5, 0xf6, 0xed, 0x03, 0xa1, + 0xf6, 0x15, 0x52, 0x87, 0xf8, 0x70, 0x43, 0x87, 0xf8, 0x74, 0x43, 0x88, 0xf8, 0x00, 0x90, + 0x14, 0x70, 0x32, 0x78, 0x81, 0xf8, 0x5b, 0x4f, 0x81, 0xf8, 0x5f, 0x4f, 0x1a, 0x70, 0x81, + 0xf8, 0x9b, 0x4f, 0x02, 0x88, 0x22, 0xf4, 0xc0, 0x62, 0x02, 0x80, 0x37, 0x48, 0x05, 0xf6, + 0x27, 0x76, 0x87, 0xf8, 0x60, 0x43, 0x04, 0x70, 0xa5, 0xf6, 0xf1, 0x00, 0x85, 0xf8, 0x2d, + 0x4b, 0x85, 0xf8, 0x2b, 0x4b, 0x04, 0x70, 0x4f, 0xf4, 0x40, 0x50, 0x85, 0xf8, 0x87, 0x47, + 0x30, 0x80, 0xa1, 0xf6, 0x25, 0x20, 0x04, 0x70, 0xa1, 0xf6, 0x15, 0x20, 0x04, 0x70, 0xa1, + 0xf6, 0xf5, 0x10, 0x04, 0x70, 0xa6, 0xf5, 0x6e, 0x70, 0x00, 0x88, 0xa6, 0xf5, 0x6e, 0x72, + 0x20, 0xf0, 0x0f, 0x00, 0x10, 0x80, 0xa6, 0xf2, 0xbe, 0x30, 0x87, 0xf8, 0x50, 0x93, 0x3c, + 0x70, 0x00, 0x88, 0xa6, 0xf2, 0xbe, 0x32, 0x20, 0xf4, 0x40, 0x60, 0x10, 0x80, 0x81, 0xf8, + 0xff, 0x9f, 0x36, 0xf8, + + 0x01, 0x05, 0xff, 0xff, 0xec, 0x6c, 0x19, 0x00, 0xfa, 0x06, 0x0c, 0x9b, 0xf8, 0xa5, 0x10, + 0x20, 0xf4, 0x70, 0x60, 0x40, 0xea, 0x01, 0x20, 0x26, 0xf8, 0x06, 0x0c, 0xff, 0x20, 0x85, + 0xf8, 0x73, 0x0b, 0x48, 0x46, 0xff, 0xf7, 0x3d, 0xfd, 0x85, 0xf8, 0x73, 0x4b, 0x70, 0x88, + 0x20, 0xf4, 0x40, 0x70, 0x70, 0x80, 0x87, 0xf8, 0x0c, 0x47, 0x8a, 0xf8, 0x48, 0x40, 0xb6, + 0xf8, 0xd8, 0x00, 0xa5, 0xf5, 0x7f, 0x65, 0x20, 0xf0, 0x70, 0x00, 0xa6, 0xf8, 0xd8, 0x00, + 0x8a, 0xf8, 0x3c, 0x40, 0x2c, 0x70, 0x28, 0xf8, 0x04, 0x4c, 0x08, 0xf8, 0x23, 0x4c, 0x08, + 0xf8, 0x21, 0x4c, 0x88, 0xf8, 0x00, 0x40, 0xbd, 0xe8, 0xf0, 0x8f, 0x24, 0x20, 0x00, 0x42, + 0x00, 0x02, 0x00, 0x20, 0x34, 0x18, 0x00, 0x40, 0xf1, 0x10, 0x00, 0x40, 0x40, 0x85, 0x03, + 0x42, 0x70, 0x24, 0x00, 0x40, 0x25, 0x0e, 0x04, 0x42, 0xdc, 0x08, 0x00, 0x20, 0x14, 0x07, + 0x01, 0x42, 0x00, 0x0c, 0x00, 0x20, 0xa0, 0x2e, 0x00, 0x00, 0xdc, 0x2e, 0x00, 0x00, 0x5f, + 0xf8, 0x0c, 0x00, 0x5f, 0xf8, 0x0c, 0x10, 0x88, 0x42, 0x18, 0xd0, 0x02, 0x68, 0x00, 0xf1, + 0x04, 0x00, 0x03, 0x68, 0x00, 0xf1, 0x04, 0x00, 0x00, 0x2a, 0x08, 0xd0, 0x04, 0x78, 0x1c, + 0x70, 0x00, 0xf1, 0x01, 0x00, 0x03, 0xf1, 0x01, 0x03, 0xa2, 0xf1, 0x01, 0x02, 0xf4, 0xe7, + 0x4f, 0xf0, 0x04, 0x04, 0xa4, 0xeb, 0x00, 0x04, 0x04, 0xf0, 0x03, 0x04, 0x20, 0x44, 0xe4, + 0xe7, 0x70, 0x47, 0x5f, 0xf8, 0x50, 0x00, 0x85, 0x46, 0xff, 0xf7, 0xdb, 0xff, 0xff, 0xf7, + 0xa9, 0xfc, 0xff, 0xf7, 0xad, 0xfb, 0x06, 0x48, 0x00, 0x99, 0x88, 0x42, 0x04, 0xd1, 0x03, + 0x48, 0x07, 0x90, 0x04, 0x48, 0x08, 0x90, 0x00, 0xbd, 0x02, 0xbc, 0xf4, 0xe7, 0xed, 0x2d, + 0x00, 0x00, 0xf9, 0xff, + + 0x01, 0x05, 0xff, 0xff, 0xe6, 0x6d, 0x19, 0x00, 0xfa, 0xff, 0xff, 0x00, 0x00, 0x00, 0x61, + 0x5f, 0xf8, 0x84, 0x00, 0x85, 0x46, 0xff, 0xf7, 0x97, 0xfb, 0x4f, 0xf0, 0x0a, 0x00, 0x4f, + 0xf0, 0x02, 0x01, 0x06, 0x9a, 0xff, 0xf7, 0x08, 0xfd, 0xfe, 0xe7, 0x00, 0x00, 0x70, 0xb5, + 0x1b, 0x4d, 0x1b, 0x4e, 0x01, 0x24, 0x2c, 0x72, 0xb6, 0xf8, 0xdc, 0x00, 0x00, 0x11, 0x00, + 0xf0, 0x0f, 0x00, 0xff, 0xf7, 0xb2, 0xfc, 0x2c, 0x70, 0xb6, 0xf8, 0xdc, 0x00, 0x00, 0x11, + 0x00, 0xf0, 0x0f, 0x00, 0xff, 0xf7, 0xaa, 0xfc, 0x2c, 0x73, 0xb6, 0xf8, 0xdc, 0x00, 0x00, + 0x11, 0x00, 0xf0, 0x0f, 0x00, 0xff, 0xf7, 0xa2, 0xfc, 0x2c, 0x71, 0xb6, 0xf8, 0xdc, 0x00, + 0x00, 0x12, 0xff, 0xf7, 0x9c, 0xfc, 0x70, 0xbd, 0x30, 0xb5, 0x09, 0x4d, 0x00, 0x24, 0x01, + 0x20, 0x2c, 0x71, 0xff, 0xf7, 0x94, 0xfc, 0x2c, 0x73, 0x01, 0x20, 0xff, 0xf7, 0x90, 0xfc, + 0x2c, 0x70, 0x01, 0x20, 0xff, 0xf7, 0x8c, 0xfc, 0x04, 0x49, 0x04, 0x20, 0x2c, 0x72, 0x08, + 0x70, 0x30, 0xbd, 0xc0, 0x46, 0x00, 0x01, 0x04, 0x42, 0x00, 0x02, 0x00, 0x20, 0x02, 0x01, + 0x00, 0x40, 0x01, 0x20, 0xfe, 0xf7, 0xd1, 0xba, 0x01, 0x20, 0xfd, 0xf7, 0x1a, 0xba, 0x82, + 0xb0, 0x00, 0x94, 0x01, 0x4c, 0x01, 0x94, 0x10, 0xbd, 0x00, 0xbf, 0x71, 0x06, 0x00, 0x20, + 0x01, 0x00, 0x00, 0x00, 0x1c, 0x09, 0x00, 0x20, 0x00, 0xc0, 0x46, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x1d, 0x09, 0x00, 0x20, 0x00, 0xc0, 0x46, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x09, + 0x00, 0x20, 0x00, 0xc0, 0x46, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x09, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x09, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x21, 0xe0, 0x6e, 0x19, 0x00, 0x1c, 0xff, 0xff, 0xad, 0xf1, 0x28, 0xe4, + 0x65, 0xd7, 0x58, 0xcb, 0xf8, 0xbf, 0x3b, 0xb5, 0x18, 0xab, 0x85, 0xa1, 0x7d, 0x98, 0xf5, + 0x8f, 0xe7, 0x87, 0x4d, 0x80, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0x70, 0x36, 0x19, 0x00, 0xfa, 0x70, 0xb5, 0x00, 0xf0, 0x03, 0x01, + 0x01, 0x29, 0x04, 0xd1, 0x73, 0x49, 0x01, 0x22, 0x0a, 0x70, 0x00, 0x22, 0x0a, 0x70, 0x74, + 0x4c, 0x75, 0x49, 0x22, 0x78, 0x00, 0x2a, 0x32, 0xd0, 0x0a, 0x78, 0x6e, 0x4b, 0x52, 0xb9, + 0x22, 0x78, 0x22, 0xf0, 0x03, 0x02, 0x22, 0x70, 0x22, 0x78, 0x0a, 0x70, 0x21, 0x78, 0x81, + 0x42, 0x29, 0xd0, 0x19, 0x46, 0x26, 0xe0, 0x22, 0x78, 0x68, 0x4e, 0x69, 0x4d, 0x12, 0xf0, + 0x03, 0x0f, 0x0a, 0xd1, 0x21, 0x78, 0x81, 0x42, 0x23, 0xd0, 0x18, 0x70, 0x00, 0x20, 0x29, + 0x88, 0x01, 0x29, 0x08, 0xbf, 0x01, 0x20, 0x30, 0x70, 0x70, 0xbd, 0x22, 0x78, 0x22, 0xf0, + 0x03, 0x02, 0x22, 0x70, 0x22, 0x78, 0x0a, 0x70, 0x21, 0x78, 0x81, 0x42, 0x07, 0xd0, 0x19, + 0x46, 0x08, 0x70, 0x00, 0x20, 0x29, 0x88, 0x01, 0x29, 0x08, 0xbf, 0x01, 0x20, 0x30, 0x70, + 0x00, 0xf0, 0xd1, 0xf8, 0x70, 0xbd, 0x20, 0x70, 0x20, 0x78, 0x08, 0x70, 0x59, 0x48, 0x59, + 0x49, 0x08, 0x60, 0x00, 0xf0, 0xc0, 0xf8, 0x70, 0xbd, 0xf0, 0xb5, 0x4f, 0x4e, 0x57, 0x48, + 0x19, 0x36, 0x01, 0x88, 0x96, 0xf8, 0x27, 0x20, 0x55, 0x48, 0x01, 0xf0, 0x01, 0x03, 0x93, + 0x42, 0x4f, 0xea, 0x21, 0x17, 0x4f, 0xea, 0x21, 0x25, 0x07, 0xf0, 0x03, 0x07, 0x05, 0xf0, + 0x03, 0x05, 0x4b, 0xd1, 0x49, 0x0b, 0x49, 0x4c, 0x2f, 0xd2, 0x01, 0x46, 0x27, 0xb1, 0x01, + 0xf1, 0x0d, 0x01, 0x4f, 0xf0, 0x01, 0x02, 0x0a, 0x70, 0x4f, 0xf0, 0x01, 0x01, 0x0d, 0xb1, + 0x0e, 0x30, 0x01, 0x70, 0x01, 0x2f, 0x02, 0xd1, 0x20, 0x78, 0x11, 0x28, 0x0b, 0xd0, 0x01, + 0x2d, 0x0d, 0xd1, 0x20, 0x78, 0x21, 0x28, 0x06, 0xd0, 0x20, 0x46, 0x01, 0x78, 0x31, 0x29, + 0x02, 0xd0, 0x00, 0x78, + + 0x01, 0x05, 0xff, 0xff, 0x6a, 0x37, 0x19, 0x00, 0xfa, 0x41, 0x28, 0x03, 0xd1, 0x01, 0x20, + 0x30, 0x70, 0x00, 0xf0, 0x8f, 0xf8, 0x01, 0x2f, 0x02, 0xd1, 0x20, 0x78, 0x15, 0x28, 0x04, + 0xd0, 0x01, 0x2d, 0x25, 0xd1, 0x20, 0x78, 0x25, 0x28, 0x22, 0xd1, 0x01, 0x25, 0xb5, 0x70, + 0x00, 0xf0, 0x81, 0xf8, 0xf0, 0xbd, 0x01, 0x25, 0x45, 0x73, 0x85, 0x73, 0x20, 0x78, 0x11, + 0x28, 0x08, 0xd0, 0x20, 0x78, 0x21, 0x28, 0x05, 0xd0, 0x20, 0x78, 0x31, 0x28, 0x02, 0xd0, + 0x20, 0x78, 0x41, 0x28, 0x02, 0xd1, 0x35, 0x70, 0x00, 0xf0, 0x6e, 0xf8, 0x20, 0x78, 0x15, + 0x28, 0xe6, 0xd0, 0x20, 0x78, 0x25, 0x28, 0x05, 0xd1, 0xe2, 0xe7, 0x00, 0x21, 0x41, 0x73, + 0x81, 0x73, 0x31, 0x70, 0xb1, 0x70, 0xf0, 0xbd, 0x10, 0xb5, 0x29, 0x48, 0x38, 0x38, 0x00, + 0x88, 0x40, 0x08, 0x32, 0xd3, 0x24, 0x48, 0x24, 0x4b, 0x00, 0x88, 0xc1, 0x12, 0x11, 0xf0, + 0x03, 0x0f, 0x23, 0x48, 0x04, 0xd0, 0x19, 0x46, 0x01, 0xf1, 0x76, 0x01, 0x09, 0x78, 0xd9, + 0xb9, 0x21, 0x4a, 0x00, 0x21, 0x12, 0x78, 0x22, 0xf0, 0x0f, 0x02, 0x20, 0x2a, 0x08, 0xbf, + 0x01, 0x21, 0x69, 0xb9, 0x00, 0x21, 0x80, 0xf8, 0x40, 0x11, 0xa0, 0xf5, 0xa0, 0x74, 0x01, + 0x22, 0x22, 0x70, 0x02, 0x70, 0xa0, 0xf5, 0x9c, 0x72, 0x11, 0x70, 0x80, 0xf8, 0xfc, 0x10, + 0x0c, 0xe0, 0x93, 0xf8, 0x77, 0x10, 0x01, 0xf0, 0x0f, 0x01, 0x07, 0xe0, 0x01, 0x21, 0x80, + 0xf8, 0xfc, 0x10, 0x01, 0x70, 0x93, 0xf8, 0x77, 0x10, 0x41, 0xf0, 0x10, 0x01, 0x83, 0xf8, + 0x77, 0x10, 0x10, 0xbd, 0xc0, 0x46, 0x34, 0x24, 0x00, 0x40, 0x1d, 0x09, 0x00, 0x20, 0x04, + 0x09, 0x00, 0x20, 0x0a, 0x02, 0x00, 0x20, 0x1c, 0x09, 0x00, 0x20, 0x1e, 0x09, 0x00, 0x20, + 0x0c, 0x00, 0x28, 0x00, + + 0x01, 0x05, 0xff, 0x45, 0x64, 0x38, 0x19, 0x00, 0x40, 0x80, 0xe1, 0x00, 0xe0, 0x5e, 0x01, + 0x00, 0x20, 0xd0, 0x08, 0x00, 0x20, 0xca, 0x00, 0x00, 0x20, 0x00, 0x02, 0x00, 0x20, 0x40, + 0x41, 0x04, 0x42, 0x44, 0x24, 0x00, 0x40, 0x1c, 0x09, 0x00, 0x20, 0x82, 0xb0, 0x00, 0x94, + 0x01, 0x4c, 0x01, 0x94, 0x10, 0xbd, 0x00, 0xbf, 0xcb, 0x2d, 0x00, 0x00, 0x82, 0xb0, 0x00, + 0x94, 0x01, 0x4c, 0x01, 0x94, 0x10, 0xbd, 0x00, 0xbf, 0xe1, 0x24, 0x00, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x06, 0x02, 0x19, 0x00, 0x1b, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x16, 0x02, 0x19, 0x00, 0x00, 0x05, + + 0x01, 0x01, 0xff, 0x06, 0x10, 0x02, 0x19, 0x00, 0x19, 0x00, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x70, 0xb5, 0x04, 0x46, 0x0c, 0x4d, + 0xa0, 0x08, 0x00, 0xf5, 0xa0, 0x60, 0x0e, 0x46, 0x81, 0xb2, 0x28, 0x46, 0x10, 0x30, 0x82, + 0x88, 0x91, 0x42, 0x05, 0xd0, 0x81, 0x80, 0x15, 0x21, 0x01, 0x80, 0x02, 0x20, 0xff, 0xf7, + 0xd9, 0xfb, 0x04, 0xf0, 0x03, 0x04, 0x00, 0x2e, 0x25, 0x44, 0x0c, 0xbf, 0x28, 0x78, 0x28, + 0x88, 0x70, 0xbd, 0xc0, 0x46, 0x00, 0x02, 0x00, 0x40, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, + 0x30, 0x0d, 0xdf, 0xf8, 0x2c, 0x82, 0xdf, 0xf8, 0x34, 0x92, 0x8a, 0x4d, 0xb8, 0xf8, 0xa0, + 0x00, 0x98, 0xf8, 0xa4, 0x70, 0x29, 0x46, 0x44, 0x10, 0x78, 0xb2, 0x00, 0x90, 0x48, 0x46, + 0xcd, 0xf8, 0x04, 0x90, 0xa4, 0x38, 0x01, 0x90, 0x02, 0x95, 0x10, 0x39, 0x02, 0x91, 0x48, + 0x78, 0x09, 0x78, 0x08, 0x2f, 0x00, 0xf0, 0x1f, 0x00, 0x01, 0xf0, 0x1f, 0x01, 0x15, 0xf8, + 0x00, 0xc0, 0xa0, 0xf1, 0x01, 0x02, 0x15, 0xf8, 0x01, 0xe0, 0xd2, 0xb2, 0xa1, 0xf1, 0x01, + 0x03, 0xae, 0x5c, 0xdb, 0xb2, 0xed, 0x5c, 0x04, 0xf0, 0x0f, 0x04, 0x03, 0xda, 0x0b, 0x46, + 0x02, 0x46, 0x75, 0x46, 0x66, 0x46, 0x02, 0x99, 0x08, 0x88, 0x20, 0xf0, 0x1f, 0x00, 0x03, + 0x43, 0x0b, 0x80, 0x08, 0x88, 0x0f, 0x46, 0x20, 0xf4, 0xf8, 0x50, 0x40, 0xea, 0x02, 0x20, + 0x08, 0x80, 0xbd, 0x70, 0x02, 0x20, 0x6e, 0x4d, 0xfe, 0x70, 0x00, 0x26, 0x03, 0x96, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x2e, 0x70, 0xff, 0xf7, 0x85, 0xfb, + 0xa7, 0xf6, 0xaa, 0x70, 0x00, 0x88, 0xa7, 0xf6, 0xaa, 0x71, 0x4f, 0xf0, 0x01, 0x0a, 0x20, + 0xf0, 0x07, 0x00, 0x40, 0xf0, 0x0b, 0x00, 0x08, 0x80, 0xa7, 0xf6, 0x9c, 0x70, 0x85, 0xf8, + 0x00, 0xa0, 0x06, 0x80, 0xa7, 0xf5, 0x7a, 0x60, 0x00, 0x88, 0x04, 0x90, 0x9c, 0x48, 0x31, + 0x46, 0x00, 0x19, 0xff, 0xf7, 0x7f, 0xff, 0x35, 0x46, 0xc6, 0xb2, 0x00, 0x99, 0x99, 0x48, + 0x00, 0xeb, 0x41, 0x00, 0x51, 0x46, 0xff, 0xf7, 0x76, 0xff, 0x01, 0x46, 0x71, 0x43, 0xcd, + 0xf8, 0x14, 0x80, 0x0f, 0x22, 0x95, 0x4e, 0xc9, 0x13, 0x89, 0xb2, 0x16, 0xf8, 0x01, 0x3f, + 0x8b, 0x42, 0x02, 0xdd, 0x6d, 0x1c, 0x52, 0x1e, 0xf8, 0xd1, 0x08, 0x2d, 0xea, 0xb2, 0x3c, + 0xbf, 0xc5, 0xf1, 0x07, 0x00, 0xc2, 0xb2, 0x1f, 0x20, 0xff, 0xf7, 0x92, 0xfb, 0x03, 0x9f, + 0x9c, 0x48, 0x39, 0x46, 0x40, 0x19, 0xff, 0xf7, 0x58, 0xff, 0x01, 0x9b, 0x01, 0x11, 0xca, + 0xb2, 0xd9, 0x8c, 0x21, 0xf0, 0xf0, 0x01, 0x41, 0xea, 0x02, 0x11, 0xd9, 0x84, 0xb3, 0xf8, + 0x88, 0x60, 0x19, 0x46, 0x60, 0xf3, 0x03, 0x06, 0xa3, 0xf8, 0x88, 0x60, 0x08, 0x88, 0x62, + 0xf3, 0x1f, 0x30, 0x40, 0xf4, 0x80, 0x50, 0x18, 0x80, 0xa4, 0x48, 0x39, 0x46, 0x40, 0x19, + 0xff, 0xf7, 0x3d, 0xff, 0x02, 0x9e, 0x86, 0xf8, 0xe0, 0x0e, 0xa1, 0x48, 0x39, 0x46, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x40, 0x19, 0xff, 0xf7, 0x35, 0xff, + 0x86, 0xf8, 0xe4, 0x0e, 0x08, 0x2c, 0x06, 0x94, 0xbc, 0xbf, 0xc4, 0xf1, 0x07, 0x00, 0x06, + 0x90, 0x06, 0x98, 0x02, 0x2c, 0xc0, 0xb2, 0x02, 0xd1, 0x00, 0x99, 0x08, 0x29, 0x09, 0xdc, + 0x0a, 0x2c, 0x00, 0x99, 0x01, 0xd1, 0x08, 0x29, 0x04, 0xdc, 0x0d, 0x2c, 0x00, 0x99, 0x03, + 0xd1, 0x0a, 0x29, 0x01, 0xdb, 0x40, 0x1e, 0xc0, 0xb2, 0xc1, 0x00, 0x92, 0x4e, 0x03, 0x9d, + 0x05, 0x27, 0x01, 0xeb, 0x40, 0x01, 0x76, 0x18, 0x51, 0x46, 0x30, 0x46, 0xff, 0xf7, 0x0f, + 0xff, 0x49, 0x46, 0x09, 0x1d, 0x7f, 0x1e, 0x06, 0xf1, 0x02, 0x06, 0x48, 0x53, 0x05, 0xf1, + 0x0c, 0x05, 0xf2, 0xd1, 0x06, 0x98, 0x02, 0x2c, 0xc0, 0xb2, 0x02, 0xd1, 0x00, 0x99, 0x08, + 0x29, 0x09, 0xdc, 0x0a, 0x2c, 0x00, 0x99, 0x01, 0xd1, 0x08, 0x29, 0x04, 0xdc, 0x0d, 0x2c, + 0x00, 0x99, 0x03, 0xd1, 0x0a, 0x29, 0x01, 0xdb, 0x40, 0x1e, 0xc0, 0xb2, 0x00, 0xeb, 0x80, + 0x00, 0x03, 0x9d, 0x4f, 0x46, 0xdf, 0xf8, 0xf8, 0xb1, 0x82, 0x46, 0x2e, 0x46, 0x0a, 0xeb, + 0x06, 0x00, 0x03, 0x99, 0x58, 0x44, 0xff, 0xf7, 0xe5, 0xfe, 0x01, 0x46, 0x39, 0xf8, 0x05, + 0x00, 0x76, 0x1c, 0x20, 0xf4, 0x7f, 0x60, 0x05, 0x2e, 0x40, 0xea, 0x01, 0x10, 0x78, 0x53, + 0x05, 0xf1, 0x0c, 0x05, 0xec, 0xd3, 0x06, 0x98, 0x02, 0x2c, 0xc5, 0xb2, 0x02, 0xd1, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x00, 0x98, 0x0a, 0x28, 0x12, 0xda, + 0x0a, 0x2c, 0x00, 0x98, 0x01, 0xd1, 0x0a, 0x28, 0x0d, 0xda, 0x0d, 0x2c, 0x00, 0x98, 0x0c, + 0xd1, 0x0a, 0x28, 0x0a, 0xdb, 0x07, 0xe0, 0xc0, 0x00, 0x00, 0x20, 0xc0, 0x11, 0x00, 0x40, + 0xd0, 0x40, 0x00, 0x42, 0xa4, 0x20, 0x00, 0x40, 0x6d, 0x1e, 0xed, 0xb2, 0x03, 0x9c, 0x65, + 0x4f, 0x05, 0xeb, 0x85, 0x05, 0x26, 0x46, 0xa8, 0x19, 0x03, 0x99, 0x38, 0x18, 0xff, 0xf7, + 0xb2, 0xfe, 0x49, 0x46, 0x76, 0x1c, 0x89, 0x1c, 0x05, 0x2e, 0x08, 0x55, 0x04, 0xf1, 0x0c, + 0x04, 0xf2, 0xd3, 0x06, 0x98, 0x00, 0xeb, 0x80, 0x00, 0x07, 0x90, 0x03, 0x9d, 0xdf, 0xf8, + 0x70, 0xb1, 0xdf, 0xf8, 0x68, 0x81, 0x2f, 0x46, 0x07, 0x9e, 0xdd, 0xf8, 0x0c, 0xa0, 0xf6, + 0x19, 0x51, 0x46, 0x08, 0xeb, 0x06, 0x00, 0xff, 0xf7, 0x97, 0xfe, 0xc4, 0xb2, 0x51, 0x46, + 0x0b, 0xeb, 0x06, 0x00, 0xff, 0xf7, 0x91, 0xfe, 0x00, 0x99, 0x88, 0x42, 0xdc, 0xbf, 0xa4, + 0x1c, 0xe4, 0xb2, 0x48, 0x46, 0x7f, 0x1c, 0x40, 0x1e, 0x05, 0x2f, 0x44, 0x55, 0x05, 0xf1, + 0x0c, 0x05, 0xe3, 0xd3, 0x4d, 0x48, 0xdd, 0xf8, 0x0c, 0x90, 0x08, 0x90, 0x4c, 0x48, 0x09, + 0x90, 0x4c, 0x48, 0x4e, 0x46, 0xdf, 0xf8, 0x20, 0x81, 0x0a, 0x90, 0x0b, 0x90, 0x07, 0x9c, + 0xdd, 0xf8, 0x0c, 0xb0, 0xa4, 0x19, 0x59, 0x46, 0x08, 0xeb, 0x04, 0x00, 0xff, 0xf7, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x6f, 0xfe, 0xc1, 0x10, 0x00, 0xf0, + 0x07, 0x00, 0x05, 0x46, 0xa2, 0x46, 0x08, 0x98, 0xcf, 0xb2, 0x59, 0x46, 0x50, 0x44, 0xff, + 0xf7, 0x64, 0xfe, 0x00, 0x9a, 0x00, 0xf0, 0x0f, 0x01, 0xbb, 0x46, 0x91, 0x42, 0x19, 0xdc, + 0x00, 0x99, 0x06, 0x9c, 0xb1, 0xeb, 0x20, 0x1f, 0x23, 0xdb, 0xbb, 0x46, 0x0c, 0xb3, 0x5f, + 0x45, 0x1f, 0xd1, 0x64, 0x1e, 0x04, 0xeb, 0x84, 0x00, 0x03, 0x99, 0x30, 0x18, 0x40, 0x44, + 0xff, 0xf7, 0x4d, 0xfe, 0xc0, 0x10, 0xc7, 0xb2, 0xf1, 0xe7, 0x58, 0x13, 0x00, 0x10, 0x68, + 0x13, 0x00, 0x10, 0xe7, 0x33, 0x00, 0x00, 0x06, 0x9c, 0x5f, 0x45, 0x0b, 0xd1, 0x64, 0x1c, + 0x04, 0xeb, 0x84, 0x00, 0x03, 0x99, 0x30, 0x18, 0x40, 0x44, 0xff, 0xf7, 0x39, 0xfe, 0xc0, + 0x10, 0x10, 0x2c, 0xc7, 0xb2, 0xf1, 0xd3, 0x09, 0x98, 0x03, 0x99, 0x50, 0x44, 0xff, 0xf7, + 0x30, 0xfe, 0x00, 0x9a, 0x00, 0xf0, 0x0f, 0x01, 0x91, 0x42, 0x08, 0xdc, 0x00, 0x99, 0xb1, + 0xeb, 0x20, 0x1f, 0x06, 0xdb, 0xad, 0x1c, 0x03, 0xe0, 0xc0, 0x46, 0x80, 0x13, 0x00, 0x10, + 0xad, 0x1e, 0xed, 0xb2, 0x0a, 0x98, 0x48, 0x44, 0x01, 0x88, 0x0b, 0x9a, 0x21, 0xf4, 0xf8, + 0x71, 0x41, 0xea, 0x07, 0x11, 0x22, 0xf8, 0x09, 0x10, 0x09, 0xf1, 0x0c, 0x09, 0x81, 0x88, + 0x76, 0x1c, 0x05, 0x2e, 0x21, 0xf0, 0x07, 0x01, 0x45, 0xea, 0x01, 0x05, 0x85, 0x80, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x92, 0xd3, 0x02, 0x98, 0x04, 0x99, + 0xa0, 0xf5, 0x7a, 0x60, 0x01, 0x80, 0x01, 0x9a, 0x05, 0x99, 0xb2, 0xf8, 0xe6, 0x00, 0xb1, + 0xf8, 0xaa, 0x10, 0x0c, 0xb0, 0x20, 0xf0, 0x0f, 0x00, 0x01, 0x43, 0xa2, 0xf8, 0xe6, 0x10, + 0xbd, 0xe8, 0xf0, 0x8f, 0x90, 0x13, 0x00, 0x10, 0xa0, 0x13, 0x00, 0x10, 0xb0, 0x13, 0x00, + 0x10, 0x50, 0x14, 0x00, 0x10, 0xa0, 0x14, 0x00, 0x10, 0xf0, 0x14, 0x00, 0x10, 0x40, 0x15, + 0x00, 0x10, 0x90, 0x15, 0x00, 0x10, 0xe8, 0x15, 0x00, 0x10, 0x38, 0x16, 0x00, 0x10, 0xa0, + 0x20, 0x00, 0x40, 0xc3, 0xbc, 0xb5, 0xae, 0xa6, 0x9f, 0x98, 0x91, 0x89, 0x82, 0x7b, 0x74, + 0x6c, 0x65, 0x5e, 0x00, 0x10, 0xb5, 0x8a, 0x4a, 0x4f, 0xf0, 0x00, 0x00, 0x01, 0x46, 0x14, + 0x46, 0xa4, 0xf1, 0xbe, 0x04, 0x21, 0x80, 0xa0, 0x70, 0x20, 0x71, 0xa0, 0x71, 0xb4, 0xf8, + 0x42, 0x30, 0xdb, 0xb2, 0xa4, 0xf8, 0x42, 0x30, 0x81, 0x4b, 0x18, 0x70, 0xa4, 0xf6, 0xf4, + 0x33, 0x19, 0x80, 0xa4, 0xf6, 0xf2, 0x33, 0x19, 0x80, 0x11, 0x88, 0xa4, 0xf6, 0xfc, 0x33, + 0x21, 0xf0, 0x03, 0x01, 0xa4, 0xf8, 0xbe, 0x10, 0x7b, 0x49, 0x8a, 0x6b, 0x1a, 0x60, 0xca, + 0x6b, 0xa4, 0xf6, 0xf8, 0x33, 0x1a, 0x60, 0x91, 0xf8, 0x41, 0x20, 0x78, 0x4b, 0x1a, 0x70, + 0x91, 0xf8, 0x40, 0x20, 0x77, 0x4b, 0x84, 0xf8, 0xe1, 0x25, 0x91, 0xf8, 0x42, 0x20, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x84, 0xf8, 0xdd, 0x24, 0x91, 0xf8, + 0x43, 0x20, 0x84, 0xf8, 0xdc, 0x24, 0x4a, 0x6c, 0x1a, 0x60, 0x91, 0xf8, 0x48, 0x30, 0x91, + 0xf8, 0x49, 0x10, 0x7e, 0x4a, 0x82, 0xf8, 0x7e, 0x10, 0x8f, 0x49, 0x82, 0xf8, 0x7a, 0x30, + 0x91, 0xf8, 0x7c, 0x20, 0x3a, 0xb9, 0x01, 0x22, 0x81, 0xf8, 0x7c, 0x20, 0xff, 0xf7, 0xc0, + 0xf8, 0x68, 0x49, 0x20, 0x20, 0x08, 0x80, 0x10, 0xbd, 0x2d, 0xe9, 0xfc, 0x4f, 0x4f, 0xf4, + 0x91, 0x71, 0xdf, 0xf8, 0xcc, 0xc1, 0x4f, 0xf0, 0x06, 0x0e, 0x4f, 0xf4, 0x92, 0x7b, 0xdf, + 0xf8, 0x88, 0xa1, 0x00, 0x91, 0x0c, 0xf5, 0x81, 0x71, 0x01, 0x91, 0x00, 0x22, 0x4f, 0x21, + 0x54, 0x46, 0x14, 0xf8, 0x01, 0x3b, 0x93, 0x42, 0xa8, 0xbf, 0x1a, 0x1c, 0x49, 0x1e, 0xf8, + 0xd1, 0x00, 0x9b, 0x3c, 0xf8, 0x0b, 0x10, 0x3c, 0xf8, 0x03, 0x30, 0x02, 0xfb, 0x03, 0x11, + 0x01, 0xf5, 0x80, 0x71, 0x0c, 0x13, 0x9c, 0xf8, 0xe0, 0x10, 0xa1, 0x42, 0xa8, 0xbf, 0x0c, + 0x1c, 0x9c, 0xf8, 0xe1, 0x10, 0xa1, 0x42, 0xb4, 0xbf, 0x1f, 0xfa, 0x84, 0xf8, 0x88, 0x46, + 0x05, 0x46, 0x01, 0x99, 0xd1, 0x46, 0x00, 0x23, 0x0a, 0x78, 0x9a, 0x42, 0x12, 0xbf, 0xa6, + 0xb2, 0x46, 0x46, 0x49, 0x1c, 0x19, 0xf8, 0x01, 0x7b, 0x00, 0x22, 0xbe, 0x42, 0xd8, 0xbf, + 0x01, 0x22, 0x5b, 0x1c, 0x2e, 0x78, 0x02, 0xfa, 0x0e, 0xf2, 0x4f, 0x2b, 0x42, 0xea, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x06, 0x02, 0x05, 0xf8, 0x01, 0x2b, + 0xe9, 0xd3, 0xbe, 0xf1, 0x01, 0x0e, 0xaa, 0xf1, 0x50, 0x0a, 0xc0, 0xd5, 0xbd, 0xe8, 0xfc, + 0x8f, 0x2d, 0xe9, 0xf0, 0x4f, 0x4f, 0xf0, 0x00, 0x09, 0x4b, 0x49, 0xca, 0x46, 0x40, 0x1e, + 0xd4, 0x46, 0xc8, 0x46, 0x91, 0xf8, 0xe2, 0xb0, 0x54, 0x46, 0x91, 0xf8, 0xe3, 0x60, 0x62, + 0x46, 0x63, 0x46, 0x65, 0x46, 0x10, 0xf8, 0x01, 0x7f, 0x01, 0x2f, 0x2c, 0xd0, 0x40, 0x2f, + 0x2a, 0xd0, 0xf9, 0x43, 0x11, 0xf0, 0x1e, 0x0f, 0x0f, 0xd0, 0x11, 0xf0, 0x3c, 0x0f, 0x09, + 0xd0, 0x11, 0xf0, 0x0f, 0x0f, 0x06, 0xd0, 0x11, 0xf0, 0x78, 0x0f, 0xce, 0x46, 0x18, 0xbf, + 0x4f, 0xf0, 0x01, 0x0e, 0x00, 0xe0, 0xce, 0x46, 0x71, 0x46, 0x00, 0xe0, 0x49, 0x46, 0x5f, + 0xfa, 0x81, 0xfe, 0x1f, 0xb1, 0x09, 0x01, 0x49, 0x1c, 0xc9, 0xb2, 0x00, 0xe0, 0x49, 0x46, + 0xba, 0xf1, 0x00, 0x0f, 0x4f, 0xf0, 0x01, 0x07, 0x01, 0x70, 0x04, 0xd1, 0x11, 0xb1, 0xbe, + 0xf1, 0x00, 0x0f, 0x00, 0xd0, 0x4f, 0x46, 0x01, 0x78, 0xba, 0x46, 0x02, 0xe0, 0x49, 0x46, + 0x80, 0xf8, 0x00, 0x90, 0x12, 0xb1, 0x11, 0xb9, 0x03, 0xf1, 0x01, 0x03, 0x49, 0xb1, 0x11, + 0x29, 0x02, 0xf1, 0x01, 0x02, 0x08, 0xbf, 0x64, 0x1c, 0x9e, 0x42, 0x02, 0xd9, 0x1c, 0x19, + 0x9a, 0x18, 0x4b, 0x46, 0x4f, 0x2d, 0x18, 0xbf, 0x9e, 0x42, 0x10, 0xd1, 0x93, 0x45, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x09, 0xd3, 0x94, 0x42, 0x04, 0xd1, + 0x00, 0x2a, 0x14, 0xbf, 0x01, 0x21, 0x61, 0x46, 0x8c, 0x46, 0x5f, 0xfa, 0x8c, 0xfc, 0x01, + 0xe0, 0x4f, 0xf0, 0x10, 0x08, 0x4b, 0x46, 0x4c, 0x46, 0x4a, 0x46, 0x6d, 0x1c, 0x50, 0x2d, + 0xa4, 0xd3, 0x0c, 0xeb, 0xca, 0x10, 0x40, 0x44, 0xc0, 0xb2, 0xbd, 0xe8, 0xf0, 0x8f, 0xc0, + 0x46, 0x4c, 0x8c, 0x03, 0x42, 0xd6, 0x1c, 0x00, 0x40, 0xd0, 0x08, 0x00, 0x20, 0x00, 0x3f, + 0x04, 0x42, 0xf8, 0x20, 0x00, 0x40, 0x1e, 0x24, 0x00, 0x40, 0x20, 0x06, 0x00, 0x20, 0x2d, + 0xe9, 0xf0, 0x4f, 0xad, 0xf5, 0x92, 0x7d, 0x0a, 0x4f, 0x63, 0x48, 0x4f, 0xf0, 0x00, 0x05, + 0x05, 0x70, 0x97, 0xf8, 0xe7, 0x00, 0x38, 0xb9, 0x87, 0xf8, 0xe6, 0x50, 0x87, 0xf8, 0xe8, + 0x50, 0x87, 0xf8, 0xe9, 0x50, 0xa7, 0xf8, 0xea, 0x50, 0x5c, 0x48, 0x00, 0x78, 0x00, 0x28, + 0x40, 0xf0, 0xad, 0x80, 0x01, 0xe0, 0x00, 0x02, 0x00, 0x20, 0x59, 0x4e, 0x35, 0x70, 0x02, + 0x20, 0xff, 0xf7, 0xa9, 0xfa, 0x58, 0x48, 0x04, 0x46, 0x00, 0x88, 0xa4, 0x1f, 0x20, 0xf0, + 0x07, 0x00, 0x40, 0xf0, 0x0b, 0x00, 0xe0, 0x80, 0x01, 0x20, 0x46, 0x90, 0x30, 0x70, 0x08, + 0x48, 0x4f, 0xf0, 0x19, 0x0a, 0x4f, 0xf4, 0x00, 0x7b, 0x47, 0x90, 0x50, 0x48, 0x6f, 0xf0, + 0xff, 0x38, 0xa9, 0x46, 0x48, 0x90, 0x97, 0xf8, 0xde, 0x20, 0x4a, 0x45, 0x70, 0xd9, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x02, 0xe0, 0xc0, 0x46, 0x30, 0x00, + 0x00, 0x20, 0x14, 0x21, 0x1e, 0xaa, 0x32, 0xab, 0x49, 0x1e, 0x42, 0xf8, 0x04, 0x8b, 0x43, + 0xf8, 0x04, 0x8b, 0xf9, 0xd1, 0x14, 0xab, 0x0a, 0xaa, 0x69, 0x46, 0x03, 0x20, 0xfd, 0xf7, + 0xe1, 0xfc, 0xa4, 0xf8, 0x16, 0xb0, 0x26, 0x8a, 0x02, 0x20, 0xa4, 0xf8, 0x10, 0xa0, 0xff, + 0xf7, 0x73, 0xfa, 0x48, 0x9b, 0x8c, 0x21, 0x53, 0xf8, 0x04, 0x2b, 0x49, 0x1e, 0x22, 0x60, + 0xfa, 0xd1, 0x26, 0x82, 0x08, 0x20, 0xff, 0xf7, 0x86, 0xfa, 0x14, 0xab, 0x0a, 0xaa, 0x69, + 0x46, 0x02, 0x20, 0xfd, 0xf7, 0xc8, 0xfc, 0x28, 0x46, 0xfe, 0xf7, 0x7f, 0xff, 0x32, 0xa8, + 0xff, 0xf7, 0xc0, 0xfe, 0xa4, 0xf8, 0x16, 0xb0, 0x02, 0x20, 0xa4, 0xf8, 0x10, 0xa0, 0xff, + 0xf7, 0x55, 0xfa, 0x8c, 0x21, 0x48, 0x9b, 0x22, 0x68, 0x49, 0x1e, 0x43, 0xf8, 0x04, 0x2b, + 0xfa, 0xd1, 0x26, 0x82, 0x1e, 0xa8, 0xff, 0xf7, 0xae, 0xfe, 0x1e, 0xa8, 0xff, 0xf7, 0xfc, + 0xfe, 0x87, 0xf8, 0xe4, 0x00, 0x32, 0xa8, 0xff, 0xf7, 0xf7, 0xfe, 0x87, 0xf8, 0xe5, 0x00, + 0x97, 0xf8, 0xe5, 0x10, 0x97, 0xf8, 0xe4, 0x20, 0x97, 0xf8, 0xe6, 0x30, 0x09, 0xf1, 0x01, + 0x09, 0x11, 0x43, 0x97, 0xf8, 0xe7, 0x20, 0x52, 0x1c, 0x87, 0xf8, 0xe7, 0x20, 0x01, 0xf0, + 0x01, 0x02, 0xd2, 0x18, 0x97, 0xf8, 0xe8, 0x30, 0x87, 0xf8, 0xe6, 0x20, 0x0a, 0x11, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x02, 0xf0, 0x01, 0x02, 0xd2, 0x18, + 0x87, 0xf8, 0xe8, 0x20, 0x97, 0xf8, 0xe9, 0x20, 0x02, 0xeb, 0xe1, 0x12, 0x87, 0xf8, 0xe9, + 0x20, 0x4a, 0x09, 0x8a, 0xd2, 0x48, 0x08, 0x0d, 0xd2, 0x97, 0xf8, 0xdf, 0x00, 0x02, 0x28, + 0x09, 0xd0, 0x01, 0x28, 0x01, 0xd1, 0x48, 0x09, 0x05, 0xd2, 0x31, 0xf0, 0x7f, 0x01, 0x04, + 0xbf, 0x02, 0x20, 0x46, 0x90, 0x04, 0xd0, 0xb7, 0xf8, 0xea, 0x00, 0x40, 0x1c, 0xa7, 0xf8, + 0xea, 0x00, 0x46, 0x99, 0x47, 0x98, 0x80, 0xf8, 0x7c, 0x10, 0x07, 0x49, 0x49, 0xb0, 0x20, + 0x20, 0x08, 0x80, 0xbd, 0xe8, 0xf0, 0x8f, 0xac, 0x00, 0x00, 0x20, 0xde, 0x08, 0x00, 0x20, + 0xd0, 0x40, 0x00, 0x42, 0x06, 0x02, 0x00, 0x40, 0x40, 0x04, 0x00, 0x20, 0x1e, 0x24, 0x00, + 0x40, 0x2d, 0xe9, 0xfe, 0x4f, 0x0c, 0xaf, 0xa3, 0x4c, 0x06, 0x46, 0x8c, 0x46, 0x34, 0xf8, + 0x02, 0x5c, 0x24, 0x88, 0x39, 0x78, 0x02, 0xfb, 0x05, 0x42, 0x02, 0xf5, 0x80, 0x72, 0x4f, + 0xea, 0x22, 0x3b, 0x9d, 0x4a, 0x12, 0x88, 0x5a, 0x45, 0xa8, 0xbf, 0x93, 0x46, 0x9d, 0x4c, + 0x9b, 0x4a, 0x5d, 0x00, 0x99, 0x42, 0x2c, 0x44, 0x1a, 0x44, 0x4f, 0xf0, 0x00, 0x0e, 0x3b, + 0xdb, 0xdf, 0xf8, 0x64, 0x82, 0xad, 0x19, 0xad, 0x1e, 0xc9, 0x1a, 0x4b, 0x1c, 0xa4, 0x1e, + 0x08, 0x26, 0xb2, 0x46, 0x04, 0x21, 0x00, 0x91, 0x03, 0x21, 0x01, 0x91, 0x4f, 0xf0, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x02, 0x09, 0xcd, 0xf8, 0x08, 0xe0, + 0x34, 0xf8, 0x02, 0x7f, 0x35, 0xf8, 0x02, 0x1f, 0x39, 0x40, 0x8b, 0x45, 0x1c, 0xda, 0x98, + 0xf8, 0x50, 0x10, 0x07, 0xfb, 0x01, 0x61, 0xbc, 0xeb, 0x21, 0x1f, 0x13, 0xdc, 0x98, 0xf8, + 0x51, 0x10, 0x07, 0xfb, 0x01, 0xa1, 0xbc, 0xeb, 0x21, 0x1f, 0x09, 0xdc, 0x98, 0xf8, 0x52, + 0x10, 0x07, 0xfb, 0x01, 0xa1, 0xbc, 0xeb, 0x21, 0x1f, 0xd4, 0xbf, 0x00, 0x99, 0x01, 0x99, + 0x03, 0xe0, 0x82, 0xf8, 0x00, 0x90, 0x01, 0xe0, 0x02, 0x99, 0x11, 0x70, 0x12, 0xf8, 0x01, + 0x1b, 0x71, 0x45, 0xa8, 0xbf, 0x8e, 0x46, 0x5b, 0x1e, 0xd4, 0xd1, 0x70, 0x46, 0xbd, 0xe8, + 0xfe, 0x8f, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x70, 0x0d, 0x8c, 0x4c, 0x05, 0x91, 0x01, + 0x46, 0x06, 0x91, 0x04, 0xf5, 0x93, 0x71, 0x07, 0x91, 0x94, 0xf8, 0x2b, 0x11, 0x70, 0x4b, + 0x00, 0x25, 0x08, 0x91, 0x19, 0x80, 0x70, 0x49, 0xac, 0x46, 0x94, 0xf8, 0x2a, 0x21, 0x09, + 0x91, 0x0a, 0x95, 0x0b, 0x95, 0x01, 0x25, 0x0c, 0x95, 0x0d, 0x93, 0x6a, 0x4b, 0x81, 0x4d, + 0x0e, 0x93, 0x08, 0x23, 0x0f, 0x93, 0x10, 0x95, 0x69, 0x4d, 0x61, 0x46, 0x02, 0xf0, 0x0f, + 0x02, 0x11, 0x95, 0x12, 0x93, 0x13, 0x93, 0x14, 0x94, 0x0b, 0x9b, 0xe2, 0x46, 0x15, 0x94, + 0x16, 0x93, 0x0b, 0xe0, 0x52, 0x1e, 0x64, 0x1e, 0x40, 0xf0, 0x42, 0x81, 0x0c, 0x9a, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x52, 0x1c, 0x0c, 0x92, 0x5b, 0x4a, + 0x92, 0x1d, 0x12, 0x78, 0x02, 0xf0, 0x0f, 0x02, 0x0c, 0x9b, 0x06, 0x9d, 0x09, 0x9e, 0x9a, + 0x42, 0x09, 0x9b, 0x07, 0x9a, 0xc0, 0xf0, 0x3e, 0x81, 0xa0, 0x33, 0x15, 0x88, 0x56, 0x88, + 0x0b, 0x9a, 0x02, 0x2a, 0x05, 0xdb, 0x0a, 0x9a, 0x92, 0xb2, 0x08, 0x92, 0x0d, 0x9a, 0x08, + 0x9c, 0x14, 0x80, 0xdd, 0xf8, 0x58, 0x80, 0x4f, 0x24, 0xdd, 0xf8, 0x18, 0xe0, 0x99, 0x46, + 0x39, 0xf8, 0x02, 0x7b, 0x3e, 0xf8, 0x02, 0x2b, 0x3a, 0x40, 0x42, 0x45, 0xa8, 0xbf, 0x90, + 0x46, 0x64, 0x1e, 0x08, 0xfb, 0x05, 0x62, 0xf3, 0xd1, 0x02, 0xf5, 0x00, 0x62, 0x12, 0x13, + 0x0a, 0x92, 0x08, 0x9c, 0x94, 0x42, 0x24, 0xbf, 0x22, 0x1c, 0x0a, 0x92, 0x09, 0x9a, 0x9b, + 0x1e, 0x17, 0x93, 0x92, 0x1e, 0x18, 0x92, 0x16, 0x9c, 0xdd, 0xf8, 0x18, 0xb0, 0x19, 0x94, + 0xa1, 0x46, 0x18, 0x9a, 0x32, 0xf8, 0x02, 0x7f, 0x18, 0x92, 0x17, 0x9b, 0x33, 0xf8, 0x02, + 0x5f, 0xaf, 0x42, 0x17, 0x93, 0xb4, 0xbf, 0x2b, 0x1c, 0x3b, 0x1c, 0xbb, 0xf8, 0x00, 0x20, + 0x0a, 0x9e, 0x13, 0x40, 0x9e, 0x42, 0x84, 0xbf, 0x0c, 0xf1, 0x01, 0x03, 0x5f, 0xfa, 0x83, + 0xfc, 0x03, 0xd8, 0x49, 0x1c, 0xc9, 0xb2, 0xdd, 0xf8, 0x58, 0xc0, 0xba, 0xf1, 0x00, 0x0f, + 0x08, 0xbf, 0x01, 0x29, 0x19, 0x9b, 0x03, 0xd0, 0xba, 0xf1, 0x01, 0x0f, 0x09, 0xd0, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0xca, 0xe0, 0x5f, 0xfa, 0x83, 0xf9, + 0xdd, 0xf8, 0x58, 0xc0, 0x4f, 0xf0, 0x01, 0x0a, 0xcd, 0xf8, 0x68, 0xc0, 0xe0, 0x46, 0x14, + 0x9b, 0x03, 0xf5, 0x93, 0x73, 0x07, 0x93, 0x14, 0x9b, 0x93, 0xf8, 0x2a, 0x31, 0x1e, 0x11, + 0x14, 0x9b, 0x93, 0xf8, 0x2d, 0xe1, 0x8e, 0x45, 0x03, 0xd1, 0x61, 0x44, 0xc9, 0xb2, 0xdd, + 0xf8, 0x58, 0xc0, 0x1a, 0x9b, 0xbb, 0x42, 0xdc, 0xbf, 0x02, 0xea, 0x07, 0x03, 0x1a, 0x93, + 0x2a, 0x40, 0x42, 0x45, 0xa8, 0xbf, 0x1f, 0xfa, 0x82, 0xf8, 0x66, 0x45, 0x03, 0xd0, 0x19, + 0x9a, 0x4e, 0x2a, 0x40, 0xf0, 0xa0, 0x80, 0x15, 0x9a, 0x8e, 0x45, 0x92, 0xf8, 0x2c, 0x51, + 0x19, 0x9a, 0xa2, 0xeb, 0x0c, 0x02, 0xd6, 0xb2, 0x2a, 0xdd, 0x00, 0x29, 0x77, 0xd0, 0x8d, + 0xf8, 0x00, 0x60, 0x06, 0x98, 0x05, 0x99, 0x1a, 0x46, 0x4b, 0x46, 0xff, 0xf7, 0xcd, 0xfe, + 0x0d, 0x99, 0x1b, 0x90, 0x1a, 0x9a, 0x09, 0x88, 0x08, 0x91, 0x15, 0x99, 0x91, 0xf8, 0x2e, + 0x11, 0xb2, 0xeb, 0x01, 0x1f, 0x64, 0xdd, 0x15, 0x99, 0x08, 0x9a, 0x91, 0xf8, 0x32, 0x51, + 0x91, 0xf8, 0x30, 0x11, 0x91, 0x42, 0x57, 0xdb, 0x08, 0x91, 0x0d, 0x9a, 0x11, 0x80, 0x53, + 0xe0, 0x24, 0x03, 0x00, 0x20, 0x95, 0x33, 0x00, 0x00, 0x38, 0x00, 0x00, 0x20, 0x40, 0x04, + 0x00, 0x20, 0xc0, 0x00, 0x00, 0x20, 0x10, 0x9a, 0x12, 0x78, 0x17, 0x01, 0x11, 0x9a, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x92, 0xf8, 0x50, 0x30, 0x12, 0x9a, + 0x08, 0xfb, 0x03, 0x23, 0x05, 0x9a, 0xb2, 0xeb, 0x23, 0x1f, 0x1c, 0xdc, 0x11, 0x9a, 0x13, + 0x9b, 0x92, 0xf8, 0x51, 0xc0, 0x08, 0xfb, 0x0c, 0x3c, 0x05, 0x9b, 0xb3, 0xeb, 0x2c, 0x1f, + 0xc8, 0xbf, 0x02, 0x22, 0x11, 0xdc, 0x92, 0xf8, 0x52, 0x30, 0x0f, 0x9a, 0x08, 0xfb, 0x03, + 0x23, 0x05, 0x9a, 0xb2, 0xeb, 0x23, 0x1f, 0xcc, 0xbf, 0x03, 0x22, 0x04, 0x22, 0x05, 0xe0, + 0xc0, 0x46, 0x00, 0x02, 0x00, 0x20, 0x2f, 0x03, 0x00, 0x20, 0x16, 0x9a, 0x4e, 0x45, 0x0e, + 0x9b, 0x1b, 0x92, 0x09, 0xd3, 0xa6, 0xeb, 0x09, 0x02, 0x52, 0x1c, 0x4b, 0x44, 0xdd, 0xf8, + 0x6c, 0xc0, 0x52, 0x1e, 0x03, 0xf8, 0x01, 0xcb, 0xf9, 0xd1, 0x47, 0x45, 0x15, 0x9a, 0x12, + 0xda, 0x92, 0xf8, 0x33, 0x51, 0x92, 0xf8, 0x31, 0x21, 0x08, 0x92, 0x0d, 0x9b, 0x1a, 0x80, + 0x0b, 0x9a, 0x52, 0x1c, 0xd2, 0xb2, 0x0b, 0x92, 0xb1, 0xeb, 0x4e, 0x0f, 0x04, 0xdb, 0x0b, + 0x99, 0x01, 0xf1, 0x01, 0x01, 0xc9, 0xb2, 0x0b, 0x91, 0x1b, 0x99, 0xb9, 0xb1, 0x05, 0x2c, + 0x16, 0x99, 0x14, 0xd2, 0xb9, 0xeb, 0x05, 0x02, 0x58, 0xbf, 0x01, 0x21, 0x12, 0xb2, 0x01, + 0xfb, 0x02, 0xf1, 0x04, 0xeb, 0x0d, 0x02, 0xad, 0x19, 0x11, 0x71, 0x04, 0xeb, 0x0d, 0x01, + 0x4e, 0x2d, 0x01, 0xf1, 0x0c, 0x01, 0xd4, 0xbf, 0xea, 0xb2, 0x4e, 0x22, 0x64, 0x1c, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x0a, 0x70, 0x16, 0x99, 0x8a, 0x46, + 0x8c, 0x46, 0x19, 0x9a, 0x0b, 0xf1, 0x02, 0x0b, 0x52, 0x1c, 0x4f, 0x2a, 0x19, 0x92, 0xff, + 0xf4, 0x08, 0xaf, 0x00, 0x2c, 0x04, 0xeb, 0x0d, 0x02, 0x3f, 0xf4, 0xc2, 0xae, 0x04, 0xeb, + 0x0d, 0x03, 0x0b, 0x32, 0x1b, 0x1d, 0x13, 0xf8, 0x01, 0x5d, 0x16, 0x78, 0x16, 0x9f, 0xae, + 0x42, 0x06, 0x9e, 0xff, 0xf4, 0xb2, 0xae, 0x26, 0xf8, 0x15, 0x70, 0x6d, 0x1c, 0xf5, 0xe7, + 0x4f, 0x23, 0x16, 0x9a, 0x36, 0xf8, 0x02, 0x4b, 0x35, 0xf8, 0x02, 0x1b, 0x21, 0x40, 0x91, + 0x42, 0xa8, 0xbf, 0x0a, 0x1c, 0x5b, 0x1e, 0xf5, 0xd1, 0x4e, 0x20, 0x8d, 0xf8, 0x00, 0x00, + 0x06, 0x98, 0x05, 0x99, 0x16, 0x9b, 0xff, 0xf7, 0x0f, 0xfe, 0x1c, 0xb0, 0xbd, 0xe8, 0xf0, + 0x8f, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x56, 0x4d, 0x8b, 0x46, 0xa5, 0xf2, + 0x75, 0x47, 0x55, 0x4c, 0x39, 0x88, 0x01, 0x26, 0x92, 0x46, 0x21, 0xf0, 0x01, 0x01, 0x41, + 0xf0, 0x02, 0x01, 0x39, 0x80, 0xa4, 0xf5, 0x96, 0x61, 0x84, 0xf8, 0xe0, 0x60, 0x0e, 0x70, + 0x4f, 0xf4, 0x80, 0x51, 0x41, 0xfa, 0x00, 0xf8, 0x58, 0x46, 0x27, 0xf8, 0x08, 0x8c, 0x26, + 0x70, 0xff, 0xf7, 0xce, 0xfb, 0x05, 0xf6, 0xbf, 0x75, 0x28, 0x88, 0x20, 0xf4, 0xe0, 0x60, + 0x40, 0xf4, 0x00, 0x70, 0x28, 0x80, 0x50, 0x46, 0xff, 0xf7, 0xc3, 0xfb, 0xc8, 0xf1, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x00, 0x00, 0xd5, 0xf8, 0x40, 0x90, + 0x27, 0xf8, 0x08, 0x0c, 0x58, 0x46, 0x26, 0x70, 0xff, 0xf7, 0xb9, 0xfb, 0x28, 0x88, 0x20, + 0xf4, 0x40, 0x70, 0x40, 0xf4, 0x80, 0x60, 0x28, 0x80, 0x50, 0x46, 0xff, 0xf7, 0xb0, 0xfb, + 0x4f, 0xf0, 0x00, 0x08, 0xd5, 0xf8, 0x40, 0xb0, 0x30, 0x46, 0x27, 0xf8, 0x08, 0x8c, 0x26, + 0x70, 0xff, 0xf7, 0xa6, 0xfb, 0xdf, 0xf8, 0xd8, 0xa0, 0x30, 0x46, 0x8a, 0xf8, 0x00, 0x80, + 0xff, 0xf7, 0x9f, 0xfb, 0x38, 0x88, 0x20, 0xf0, 0x03, 0x00, 0x38, 0x80, 0x30, 0x46, 0x84, + 0xf8, 0xe0, 0x60, 0xff, 0xf7, 0x96, 0xfb, 0xa4, 0xf5, 0x96, 0x64, 0x84, 0xf8, 0x00, 0x80, + 0x8a, 0xf8, 0x00, 0x60, 0x28, 0x88, 0xa9, 0xeb, 0x0b, 0x09, 0x20, 0xf4, 0xe0, 0x60, 0x28, + 0x80, 0x48, 0x46, 0xbd, 0xe8, 0xf0, 0x8f, 0x10, 0xb5, 0x94, 0x4a, 0x27, 0x4c, 0x92, 0xf8, + 0x8a, 0x10, 0x20, 0x78, 0x92, 0xf8, 0x8b, 0x20, 0xff, 0xf7, 0x91, 0xff, 0x21, 0x88, 0x01, + 0x22, 0xc1, 0xf1, 0x10, 0x03, 0x9a, 0x40, 0xc1, 0xf1, 0x0a, 0x01, 0x80, 0x18, 0x08, 0x41, + 0x10, 0xbd, 0x70, 0xb5, 0xaf, 0x4d, 0x28, 0x88, 0x89, 0x4e, 0x20, 0xf4, 0xc0, 0x40, 0x40, + 0xf4, 0x80, 0x50, 0x28, 0x80, 0x96, 0xf8, 0x8c, 0x00, 0xff, 0xf7, 0x66, 0xfb, 0x28, 0x88, + 0x20, 0xf4, 0xe0, 0x40, 0x40, 0xf4, 0x00, 0x50, 0x28, 0x80, 0x96, 0xf8, 0x8d, 0x00, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0xff, 0xf7, 0x5c, 0xfb, 0x2c, 0x6c, + 0x28, 0x88, 0x20, 0xf4, 0x80, 0x40, 0x40, 0xf4, 0x40, 0x50, 0x28, 0x80, 0x96, 0xf8, 0x8c, + 0x00, 0xff, 0xf7, 0x51, 0xfb, 0x28, 0x88, 0x20, 0xf4, 0x40, 0x50, 0x40, 0xf4, 0x80, 0x40, + 0x28, 0x80, 0x96, 0xf8, 0x8d, 0x00, 0xff, 0xf7, 0x47, 0xfb, 0x29, 0x6c, 0x28, 0x88, 0x64, + 0x1a, 0x20, 0xf4, 0xe0, 0x40, 0x04, 0xf5, 0x80, 0x74, 0x28, 0x80, 0x60, 0x12, 0x70, 0xbd, + 0xc0, 0x46, 0xa1, 0x0c, 0x00, 0x40, 0xc0, 0x04, 0x01, 0x42, 0x4c, 0x8c, 0x03, 0x42, 0x12, + 0x03, 0x00, 0x20, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x50, 0x0d, 0x8f, 0x48, 0x69, 0x4c, + 0x01, 0x25, 0x00, 0x68, 0x00, 0x90, 0x94, 0xf8, 0xc6, 0x00, 0x05, 0x90, 0x8a, 0x48, 0x01, + 0x46, 0x0c, 0x31, 0x09, 0x78, 0x07, 0x46, 0x0d, 0x30, 0x06, 0x91, 0x89, 0x49, 0x7f, 0x1e, + 0x07, 0x91, 0x09, 0x78, 0x08, 0x91, 0x87, 0x49, 0x0d, 0x70, 0x0d, 0x74, 0xa4, 0xf8, 0x88, + 0x50, 0x4d, 0x21, 0x09, 0x91, 0x00, 0x88, 0x00, 0x21, 0x20, 0xf0, 0x07, 0x00, 0x40, 0xf0, + 0x08, 0x00, 0xf8, 0x81, 0xb4, 0xf8, 0x12, 0x01, 0x00, 0x01, 0x58, 0x38, 0x78, 0x73, 0x0a, + 0x91, 0x40, 0xf2, 0xfa, 0x70, 0xa4, 0xf8, 0xae, 0x00, 0xa4, 0xf8, 0xb0, 0x00, 0x4b, 0xf2, + 0x8c, 0x50, 0xa4, 0xf8, 0xb6, 0x00, 0xa4, 0xf8, 0xb8, 0x00, 0x78, 0x48, 0xa4, 0xf8, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0xb2, 0x10, 0xa4, 0xf8, 0xb4, 0x10, + 0xc5, 0x74, 0x81, 0x74, 0x0b, 0x90, 0x80, 0x7c, 0x02, 0x28, 0x80, 0xf2, 0xce, 0x80, 0x11, + 0x20, 0x0c, 0x90, 0x72, 0x48, 0x0d, 0x90, 0x04, 0xf1, 0xae, 0x00, 0x0e, 0x90, 0x0a, 0x98, + 0x0f, 0x90, 0x10, 0x90, 0x10, 0x98, 0x00, 0x28, 0x0c, 0xbf, 0x0a, 0x98, 0x0c, 0x98, 0x84, + 0xf8, 0xc6, 0x00, 0x04, 0x20, 0x11, 0x90, 0xdd, 0xf8, 0x28, 0x80, 0x01, 0xa8, 0xc3, 0x46, + 0x12, 0x90, 0xad, 0xf1, 0x01, 0x00, 0x13, 0x90, 0x13, 0x98, 0x10, 0xf8, 0x01, 0x6f, 0x13, + 0x90, 0x0d, 0x99, 0xf0, 0x01, 0x40, 0xf0, 0x02, 0x00, 0x08, 0x80, 0xdd, 0xf8, 0x28, 0x90, + 0x48, 0x46, 0xfe, 0xf7, 0x1b, 0xf9, 0x78, 0x5b, 0x20, 0xf0, 0x20, 0x00, 0x40, 0xf0, 0x10, + 0x00, 0x78, 0x53, 0x06, 0x20, 0xff, 0xf7, 0xbe, 0xfa, 0x78, 0x5b, 0x20, 0xf0, 0x10, 0x00, + 0x40, 0xf0, 0x20, 0x00, 0x78, 0x53, 0x28, 0x46, 0xff, 0xf7, 0xb5, 0xfa, 0x78, 0x5b, 0x20, + 0xf0, 0x30, 0x00, 0x71, 0x00, 0x78, 0x53, 0x09, 0x98, 0x01, 0xf6, 0x13, 0x11, 0x04, 0x26, + 0x38, 0x5a, 0x00, 0x04, 0xb0, 0xfb, 0xf1, 0xf0, 0x83, 0x44, 0xff, 0xf7, 0x1e, 0xff, 0x09, + 0xeb, 0x00, 0x01, 0x76, 0x1e, 0x89, 0x46, 0xf8, 0xd1, 0x4f, 0xf0, 0x04, 0x0a, 0x0a, 0x9e, + 0xff, 0xf7, 0x28, 0xff, 0xba, 0xf1, 0x01, 0x0a, 0x06, 0x44, 0xf9, 0xd1, 0x12, 0x99, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x4f, 0xea, 0x99, 0x00, 0x41, 0xf8, + 0x04, 0x0b, 0x12, 0x91, 0xff, 0xf7, 0xd3, 0xfc, 0x08, 0xeb, 0x96, 0x08, 0x11, 0x99, 0x49, + 0x1e, 0x11, 0x91, 0xb3, 0xd1, 0x10, 0x98, 0x4f, 0xea, 0x98, 0x08, 0x4f, 0xea, 0x9b, 0x0b, + 0x40, 0xbb, 0xb4, 0xf9, 0x90, 0x00, 0x02, 0x99, 0x48, 0x43, 0xb4, 0xf9, 0x8e, 0x20, 0x01, + 0x9b, 0x03, 0xfb, 0x02, 0x00, 0xb4, 0xf9, 0x92, 0x20, 0x03, 0x9e, 0x06, 0xfb, 0x02, 0x00, + 0xb4, 0xf9, 0x94, 0x20, 0xdd, 0xf8, 0x10, 0xc0, 0x0c, 0xfb, 0x02, 0x00, 0xc0, 0x09, 0xb4, + 0xf9, 0x98, 0x20, 0x51, 0x43, 0xb4, 0xf9, 0x96, 0x20, 0x03, 0xfb, 0x02, 0x11, 0xb4, 0xf9, + 0x9a, 0x20, 0x06, 0xfb, 0x02, 0x11, 0xb4, 0xf9, 0x9c, 0x20, 0x0c, 0xfb, 0x02, 0x11, 0x8a, + 0x0a, 0x0b, 0xe0, 0xc0, 0x46, 0x00, 0x02, 0x00, 0x20, 0x01, 0x99, 0x02, 0x98, 0x40, 0x18, + 0x03, 0x99, 0x09, 0x18, 0x04, 0x98, 0x40, 0x18, 0x82, 0x08, 0x0a, 0x98, 0xdd, 0xf8, 0x38, + 0x90, 0xa9, 0xf8, 0x00, 0x80, 0x0b, 0x99, 0x0f, 0x9e, 0x89, 0x7c, 0x06, 0xeb, 0x81, 0x01, + 0x61, 0x18, 0xa1, 0xf8, 0xa6, 0xb0, 0x81, 0xb2, 0xa9, 0xf8, 0x08, 0x20, 0xa9, 0xf8, 0x04, + 0x00, 0x92, 0xb2, 0x15, 0x20, 0xff, 0xf7, 0x84, 0xfa, 0x1f, 0xfa, 0x8b, 0xf2, 0x1f, 0xfa, + 0x88, 0xf1, 0x16, 0x20, 0xff, 0xf7, 0x7d, 0xfa, 0xb6, 0x1c, 0x0f, 0x96, 0x09, 0xf1, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x02, 0x03, 0x0e, 0x93, 0x10, 0x98, + 0x40, 0x1c, 0x02, 0x28, 0x10, 0x90, 0xff, 0xf4, 0x44, 0xaf, 0x0b, 0x99, 0x88, 0x7c, 0x40, + 0x1c, 0x88, 0x74, 0x88, 0x7c, 0x02, 0x28, 0xff, 0xf6, 0x36, 0xaf, 0x0a, 0x99, 0x0b, 0x98, + 0xc1, 0x74, 0x05, 0x98, 0x84, 0xf8, 0xc6, 0x00, 0x06, 0x98, 0x78, 0x73, 0x08, 0x9a, 0x07, + 0x98, 0x14, 0xb0, 0x02, 0x70, 0xa4, 0xf8, 0x88, 0x10, 0xbd, 0xe8, 0xf0, 0x8f, 0x60, 0x1c, + 0x00, 0x40, 0x78, 0x33, 0x00, 0x00, 0x04, 0x08, 0x00, 0x40, 0x80, 0x00, 0x01, 0x42, 0xd0, + 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x2c, 0x37, 0x40, 0x4a, 0x2d, 0xe9, 0xf0, 0x41, + 0x55, 0x4c, 0x4f, 0xf0, 0x01, 0x08, 0x20, 0x46, 0x0b, 0x38, 0x80, 0xf8, 0x00, 0x80, 0x0a, + 0x20, 0xff, 0xf7, 0xe0, 0xfb, 0x20, 0x46, 0x08, 0x30, 0x26, 0x46, 0x01, 0x88, 0x20, 0x46, + 0x00, 0x24, 0x01, 0x80, 0x25, 0x46, 0x0a, 0x30, 0x00, 0x88, 0x0c, 0x3e, 0x10, 0x27, 0xf0, + 0x81, 0x86, 0xf8, 0x00, 0x80, 0x08, 0x20, 0xff, 0xf7, 0xce, 0xfb, 0x31, 0x8b, 0x7f, 0x1e, + 0x0c, 0x44, 0x71, 0x8b, 0x0d, 0x44, 0xf4, 0xd1, 0x28, 0x09, 0x80, 0xb2, 0x00, 0xeb, 0x40, + 0x00, 0x21, 0x09, 0x89, 0xb2, 0x09, 0x02, 0x91, 0xfb, 0xf0, 0xf0, 0x80, 0xb2, 0xbd, 0xe8, + 0xf0, 0x81, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x14, 0x0d, 0x80, 0x46, 0xaf, 0x48, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x00, 0x68, 0x00, 0x90, 0xae, 0x48, + 0x00, 0x88, 0x8b, 0x46, 0xad, 0xf8, 0x04, 0x00, 0x0b, 0xeb, 0x0d, 0x00, 0x00, 0x79, 0x3d, + 0xf8, 0x1b, 0xa0, 0x04, 0x25, 0x02, 0x90, 0xa9, 0x48, 0x4f, 0xf0, 0x00, 0x09, 0x10, 0x24, + 0x03, 0x90, 0x01, 0x20, 0x04, 0x90, 0xbb, 0xf1, 0x01, 0x0f, 0x03, 0x9a, 0x04, 0xd0, 0x03, + 0x98, 0x60, 0x38, 0x00, 0xf8, 0x38, 0x40, 0x16, 0xe0, 0x41, 0x46, 0xc8, 0x00, 0x00, 0xeb, + 0x81, 0x00, 0x12, 0x18, 0x00, 0x20, 0x03, 0x46, 0x07, 0x26, 0x04, 0x99, 0x99, 0x40, 0x0c, + 0x42, 0x18, 0xbf, 0x30, 0x44, 0x5b, 0x1c, 0xf1, 0x00, 0x80, 0xb2, 0x05, 0x2b, 0x8e, 0xb2, + 0xf4, 0xd3, 0x90, 0x80, 0xa4, 0xf1, 0x40, 0x00, 0x50, 0x70, 0xff, 0xf7, 0x93, 0xff, 0x06, + 0x46, 0xba, 0xeb, 0x06, 0x07, 0x54, 0xbf, 0x04, 0x9a, 0x4f, 0xf0, 0xff, 0x32, 0xb6, 0xeb, + 0x0a, 0x06, 0x54, 0xbf, 0x30, 0x1c, 0x38, 0x1c, 0x02, 0x99, 0x81, 0x42, 0x25, 0xda, 0xb9, + 0xf1, 0x00, 0x0f, 0x28, 0xb2, 0x06, 0xd0, 0x91, 0x45, 0x07, 0xd0, 0x05, 0xeb, 0xd5, 0x75, + 0x68, 0x10, 0x45, 0x42, 0x02, 0xe0, 0x00, 0xfb, 0x02, 0xf0, 0x45, 0xb2, 0x28, 0x19, 0x84, + 0xb2, 0x20, 0x2c, 0x91, 0x46, 0x02, 0xda, 0x1f, 0x2c, 0x01, 0xd0, 0x02, 0xe0, 0x1f, 0x24, + 0x01, 0x2a, 0x07, 0xd0, 0x00, 0x2c, 0x08, 0xbf, 0xb2, 0xf1, 0xff, 0x3f, 0x02, 0xd0, + +#if 0 +#if defined(__GNUC__) && (__MSP430X__ > 0) +}; +__attribute__((section (".fartext"))) +const uint8_t cc256x_init_script_2[] = { + +#endif +#endif + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x00, 0x2d, 0xae, 0xd1, 0x04, 0xe0, + 0x92, 0xb2, 0x21, 0x46, 0x0e, 0x20, 0xff, 0xf7, 0x92, 0xfb, 0x00, 0x2e, 0x48, 0xbf, 0x3e, + 0x1c, 0x41, 0x46, 0x1d, 0x20, 0xb2, 0xb2, 0xff, 0xf7, 0x8a, 0xfb, 0x05, 0xb0, 0xbd, 0xe8, + 0xf0, 0x8f, 0xc0, 0x46, 0x24, 0x10, 0x00, 0x40, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x14, + 0x0d, 0xdf, 0xf8, 0xc4, 0x91, 0xdf, 0xf8, 0xc4, 0xa1, 0x4c, 0x46, 0x9a, 0xf8, 0x00, 0x00, + 0xdf, 0xf8, 0xc8, 0x81, 0x4e, 0x34, 0x00, 0x90, 0x20, 0x88, 0x46, 0x46, 0xb6, 0x1e, 0x01, + 0x90, 0x30, 0x68, 0x02, 0x90, 0x70, 0x68, 0x03, 0x90, 0x6a, 0x48, 0x4f, 0xf4, 0xa0, 0x71, + 0x01, 0x25, 0x41, 0x80, 0x85, 0x80, 0x00, 0x20, 0xfd, 0xf7, 0xbc, 0xf8, 0x0a, 0x20, 0xff, + 0xf7, 0x19, 0xfb, 0x65, 0x48, 0x00, 0x27, 0x07, 0x70, 0x80, 0xf8, 0x20, 0x70, 0x64, 0x20, + 0xb0, 0x70, 0x40, 0x46, 0x01, 0x88, 0x21, 0xf4, 0x00, 0x61, 0x41, 0xf4, 0xe0, 0x61, 0x01, + 0x80, 0x00, 0x88, 0xdf, 0xf8, 0x7c, 0xb1, 0x10, 0x23, 0x20, 0xf4, 0x40, 0x50, 0x70, 0x80, + 0xab, 0xf5, 0x1f, 0x70, 0x07, 0x70, 0x3e, 0x20, 0x04, 0x90, 0x30, 0x71, 0x2f, 0x20, 0x73, + 0x71, 0xb0, 0x71, 0x2c, 0x20, 0xf0, 0x71, 0x58, 0x48, 0x07, 0x70, 0x48, 0x46, 0x82, 0x38, + 0x8a, 0xf8, 0x00, 0x50, 0x01, 0x88, 0x21, 0xf0, 0x07, 0x01, 0x01, 0x80, 0x81, 0x8a, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0xdf, 0xf8, 0x4c, 0x81, 0x1c, 0x22, + 0x21, 0xf0, 0x06, 0x01, 0x24, 0xf8, 0xbc, 0x1c, 0xa4, 0xf6, 0x78, 0x71, 0x88, 0xf8, 0x04, + 0x50, 0x0a, 0x70, 0x8b, 0xf8, 0x00, 0x50, 0x88, 0xf8, 0x00, 0x50, 0xc1, 0x8a, 0x4c, 0x46, + 0x21, 0xf0, 0x03, 0x01, 0xc1, 0x82, 0xc1, 0x8a, 0x6c, 0x3c, 0x4f, 0xf0, 0x22, 0x09, 0x41, + 0xf0, 0x0c, 0x01, 0x21, 0x80, 0x30, 0x21, 0x84, 0xf8, 0xc0, 0x71, 0x84, 0xf8, 0xc1, 0x91, + 0x86, 0xf8, 0x63, 0x11, 0x86, 0xf8, 0x62, 0x31, 0xb0, 0xf8, 0xd0, 0x10, 0x41, 0xf0, 0x70, + 0x01, 0xa0, 0xf8, 0xd0, 0x10, 0xb0, 0xf8, 0xd0, 0x10, 0x21, 0xf4, 0x80, 0x61, 0x41, 0xf4, + 0x40, 0x71, 0xa0, 0xf8, 0xd0, 0x10, 0x29, 0x46, 0x03, 0x20, 0x84, 0xf8, 0x44, 0x70, 0xff, + 0xf7, 0xf9, 0xfe, 0xb4, 0xf8, 0x94, 0x50, 0x04, 0x23, 0x36, 0x48, 0x0c, 0x21, 0x94, 0xf8, + 0x91, 0xc0, 0x42, 0x18, 0x15, 0x80, 0x5b, 0x1e, 0x02, 0xf8, 0x03, 0xcc, 0x01, 0xf1, 0x0c, + 0x01, 0xf7, 0xd1, 0x88, 0xf8, 0x00, 0x70, 0x20, 0x88, 0x40, 0xf0, 0x03, 0x00, 0x20, 0x80, + 0x20, 0x88, 0x20, 0xf0, 0x0c, 0x00, 0x20, 0x80, 0x84, 0xf8, 0xc0, 0x91, 0x84, 0xf8, 0xc1, + 0x71, 0x04, 0x98, 0x3d, 0x46, 0x86, 0xf8, 0x63, 0x01, 0x86, 0xf8, 0x62, 0x71, 0xb4, 0xf8, + 0xba, 0x00, 0x20, 0xf0, 0x70, 0x00, 0x40, 0xea, 0x05, 0x10, 0xa4, 0xf8, 0xba, 0x00, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x35, 0xb1, 0x02, 0x2d, 0xcc, 0xbf, + 0x4f, 0xf4, 0x80, 0x70, 0x4f, 0xf4, 0x00, 0x70, 0x01, 0xe0, 0x4f, 0xf4, 0x40, 0x70, 0xb4, + 0xf8, 0xba, 0x10, 0x21, 0xf4, 0xe0, 0x61, 0x08, 0x43, 0xa4, 0xf8, 0xba, 0x00, 0x39, 0x46, + 0xe8, 0xb2, 0xff, 0xf7, 0xb9, 0xfe, 0x6d, 0x1c, 0x08, 0x2d, 0xdf, 0xdb, 0x38, 0x46, 0xfe, + 0xf7, 0x8f, 0xff, 0x84, 0xf8, 0xc0, 0x71, 0x84, 0xf8, 0xc1, 0x71, 0x88, 0xf8, 0x00, 0x70, + 0x88, 0xf8, 0x04, 0x70, 0x8b, 0xf8, 0x00, 0x70, 0x00, 0x98, 0x8a, 0xf8, 0x00, 0x00, 0x01, + 0x98, 0xa4, 0xf8, 0xba, 0x00, 0x02, 0x98, 0x30, 0x60, 0x03, 0x98, 0x05, 0xb0, 0x70, 0x60, + 0xbd, 0xe8, 0xf0, 0x8f, 0x00, 0x33, 0x00, 0x00, 0x04, 0x33, 0x00, 0x00, 0xa6, 0x20, 0x00, + 0x40, 0x00, 0x3f, 0x04, 0x42, 0x00, 0x00, 0x00, 0x20, 0x80, 0x03, 0x02, 0x42, 0x1e, 0x10, + 0x00, 0x40, 0x00, 0x2f, 0x02, 0x42, 0xf9, 0x21, 0x00, 0x40, 0x00, 0x13, 0x04, 0x42, 0xaa, + 0x20, 0x00, 0x40, 0x7c, 0x01, 0x0e, 0x01, 0x0c, 0x03, 0x00, 0x00, 0x94, 0x9c, 0xa3, 0xaa, + 0xb1, 0xb9, 0xc0, 0xc7, 0x8d, 0x86, 0x7e, 0x77, 0x70, 0x69, 0x61, 0x5a, 0x81, 0x7c, 0x67, + 0x7c, 0x90, 0x7c, 0x0f, 0x7d, 0xb8, 0x7d, 0xbe, 0x7e, 0x00, 0x80, 0x73, 0x81, 0x4e, 0x83, + 0x54, 0x85, 0xa4, 0x87, 0x43, 0x8a, 0xf7, 0xe6, 0xd5, 0xc4, 0xb3, 0xa2, 0x91, 0x80, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x78, 0x69, 0x5a, 0x4b, 0x3c, 0x2d, + 0x1e, 0x0f, 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, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x11, 0x11, 0x01, 0x01, 0x01, 0x11, + 0x11, 0x01, 0x01, 0x01, 0x11, 0x11, 0x01, 0x01, 0x01, 0x11, 0x11, 0x01, 0x01, 0x01, 0x11, + 0x11, 0x01, 0x01, 0x01, 0x22, 0x22, 0x02, 0x02, 0x02, 0x22, 0x22, 0x02, 0x02, 0x02, 0x22, + 0x22, 0x02, 0x02, 0x02, 0x22, 0x22, 0x02, 0x02, 0x02, 0x22, 0x22, 0x02, 0x02, 0x02, 0x44, + 0x44, 0x04, 0x04, 0x04, 0x44, 0x44, 0x04, 0x04, 0x04, 0x44, 0x44, 0x04, 0x04, 0x04, 0x88, + 0x88, 0x08, 0x08, 0x08, 0x88, 0x88, 0x08, 0x08, 0x08, 0x88, 0x88, 0x08, 0x08, 0x08, 0x01, + 0x01, 0x11, 0x11, 0x11, 0x01, 0x01, 0x11, 0x11, 0x11, 0x01, 0x01, 0x11, 0x11, 0x11, 0x01, + 0x01, 0x11, 0x11, 0x11, 0x01, 0x01, 0x11, 0x11, 0x11, 0x02, 0x02, 0x22, 0x22, 0x22, 0x02, + 0x02, 0x22, 0x22, 0x22, 0x02, 0x02, 0x22, 0x22, 0x22, 0x02, 0x02, 0x22, 0x22, 0x22, 0x02, + 0x02, 0x22, 0x22, 0x22, 0x04, 0x04, 0x44, 0x44, 0x44, 0x04, 0x04, 0x44, 0x44, 0x44, 0x04, + 0x04, 0x44, 0x44, 0x44, 0x08, 0x08, 0x88, 0x88, 0x88, 0x08, 0x08, 0x88, 0x88, 0x88, 0x08, + 0x08, 0x88, 0x88, 0x88, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1a, + 0x1a, 0x1a, 0x1a, 0x1a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x16, 0x16, 0x16, 0x16, 0x16, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x12, 0x12, 0x12, 0x12, 0x12, 0x10, 0x10, 0x10, 0x10, 0x10, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x84, 0x84, 0x84, 0x1c, 0x1c, 0x84, + 0x84, 0x84, 0x1c, 0x1c, 0x84, 0x84, 0x84, 0x1c, 0x1c, 0x84, 0x84, 0x84, 0x1c, 0x1c, 0xc4, + 0xc4, 0xc4, 0x9c, 0x9c, 0xc4, 0xc4, 0xc4, 0x9c, 0x9c, 0xa4, 0xa4, 0xa4, 0x5c, 0x5c, 0xa4, + 0xa4, 0xa4, 0x5c, 0x5c, 0xe4, 0xe4, 0xe4, 0xdc, 0xdc, 0xe4, 0xe4, 0xe4, 0xdc, 0xdc, 0xe4, + 0xe4, 0xe4, 0xdc, 0xdc, 0x94, 0x94, 0x94, 0x3c, 0x3c, 0x94, 0x94, 0x94, 0x3c, 0x3c, 0xd4, + 0xd4, 0xd4, 0xbc, 0xbc, 0xd4, 0xd4, 0xd4, 0xbc, 0xbc, 0xb4, 0xb4, 0xb4, 0x7c, 0x7c, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xc0, + 0x46, 0xc0, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0x70, 0x47, 0x2d, + 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x18, 0x0d, 0x06, 0x46, 0x02, 0x2e, 0x06, 0xeb, 0xc1, 0x09, + 0x4f, 0xf0, 0x00, 0x01, 0x15, 0x46, 0xb8, 0xbf, 0x01, 0x21, 0xa7, 0x48, 0x00, 0x2d, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x00, 0x90, 0x10, 0xf8, 0x09, 0x00, + 0x20, 0xfa, 0x01, 0xf0, 0x44, 0xb2, 0x6c, 0xd0, 0x00, 0x20, 0x01, 0x90, 0xdf, 0xf8, 0x8c, + 0xa2, 0x01, 0x27, 0x70, 0x08, 0x2c, 0xbf, 0x02, 0x20, 0x01, 0x98, 0xa0, 0x49, 0x47, 0xf6, + 0xff, 0x7b, 0x09, 0x18, 0x02, 0x91, 0x00, 0x98, 0xdd, 0xf8, 0x04, 0x80, 0x03, 0x90, 0x9d, + 0x48, 0x04, 0x90, 0x02, 0x2e, 0xba, 0xbf, 0x60, 0x00, 0xc0, 0xb2, 0xe0, 0xb2, 0x03, 0x99, + 0x01, 0xf8, 0x09, 0x00, 0x01, 0x98, 0x8a, 0xf8, 0x00, 0x00, 0x05, 0x20, 0x8a, 0xf8, 0x00, + 0x70, 0xff, 0xf7, 0xb1, 0xfb, 0x04, 0x98, 0x07, 0x70, 0x38, 0x46, 0xff, 0xf7, 0xac, 0xfb, + 0x02, 0x98, 0x00, 0x88, 0xc0, 0x00, 0x01, 0xb2, 0x08, 0x46, 0x00, 0x28, 0xb8, 0xbf, 0x40, + 0x42, 0x83, 0x45, 0x03, 0xdd, 0x0f, 0xfa, 0x80, 0xfb, 0xe0, 0xb2, 0x05, 0x90, 0x00, 0x29, + 0x4c, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x38, 0x1c, 0xb8, 0xf1, 0x00, 0x0f, 0x05, 0xd1, 0xb0, + 0xf1, 0xff, 0x3f, 0x04, 0xbf, 0x69, 0x42, 0x4d, 0xb2, 0x05, 0xe0, 0x80, 0x45, 0x03, 0xd0, + 0x05, 0xeb, 0xd5, 0x75, 0x69, 0x10, 0x4d, 0x42, 0x02, 0x2e, 0x0a, 0xdb, 0x1f, 0x2c, 0x08, + 0xbf, 0xb0, 0xf1, 0xff, 0x3f, 0x1a, 0xd0, 0x00, 0x2c, 0x08, 0xbf, 0x01, 0x28, 0x16, 0xd0, + 0x64, 0x1b, 0x09, 0xe0, 0x1f, 0x2c, 0x08, 0xbf, 0x01, 0x28, 0x10, 0xd0, 0x00, 0x2c, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x08, 0xbf, 0xb0, 0xf1, 0xff, 0x3f, + 0x2c, 0x44, 0x0a, 0xd0, 0x64, 0xb2, 0x20, 0x2c, 0x03, 0xda, 0x00, 0x2c, 0x48, 0xbf, 0x01, + 0x9c, 0x00, 0xe0, 0x1f, 0x24, 0x00, 0x2d, 0x80, 0x46, 0xa6, 0xd1, 0x02, 0x2e, 0xa8, 0xbf, + 0x05, 0x98, 0x02, 0xda, 0x05, 0x98, 0x40, 0x00, 0xc0, 0xb2, 0x00, 0x99, 0x06, 0xb0, 0x01, + 0xf8, 0x09, 0x00, 0xbd, 0xe8, 0xf0, 0x8f, 0x70, 0xb5, 0x05, 0x46, 0x69, 0x48, 0x01, 0x26, + 0x69, 0x4c, 0x05, 0x70, 0x63, 0x48, 0x20, 0x21, 0x08, 0x22, 0x00, 0xeb, 0xc5, 0x00, 0x26, + 0x70, 0x01, 0x70, 0x41, 0x70, 0x10, 0x21, 0x81, 0x70, 0xc1, 0x70, 0x29, 0x46, 0x02, 0x20, + 0xff, 0xf7, 0x5b, 0xff, 0x08, 0x22, 0x29, 0x46, 0x03, 0x20, 0xff, 0xf7, 0x56, 0xff, 0x00, + 0x20, 0x08, 0x22, 0x29, 0x46, 0x20, 0x70, 0xff, 0xf7, 0x50, 0xff, 0x08, 0x22, 0x29, 0x46, + 0x30, 0x46, 0xff, 0xf7, 0x4b, 0xff, 0x32, 0x46, 0x29, 0x46, 0x02, 0x20, 0xff, 0xf7, 0x46, + 0xff, 0x32, 0x46, 0x29, 0x46, 0x03, 0x20, 0xff, 0xf7, 0x41, 0xff, 0x70, 0xbd, 0x2d, 0xe9, + 0xf0, 0x4f, 0xad, 0xf1, 0x18, 0x0d, 0x3b, 0x20, 0x00, 0x27, 0x8d, 0xf8, 0x00, 0x00, 0x31, + 0x20, 0x4f, 0x49, 0x8d, 0xf8, 0x01, 0x00, 0x8d, 0xf8, 0x05, 0x70, 0x44, 0x20, 0x8d, 0xf8, + 0x02, 0x00, 0x4e, 0x20, 0x8d, 0xf8, 0x03, 0x00, 0x28, 0x20, 0x8d, 0xf8, 0x04, 0x00, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x49, 0x48, 0x81, 0xf8, 0x7d, 0x70, + 0xb9, 0x46, 0x02, 0x90, 0x00, 0x78, 0xad, 0xf1, 0x01, 0x04, 0x01, 0x26, 0x03, 0x90, 0x45, + 0x48, 0xdf, 0xf8, 0x18, 0xb1, 0x4f, 0xf0, 0x05, 0x0a, 0xb0, 0xf8, 0x52, 0x20, 0x44, 0x4d, + 0x80, 0x46, 0x04, 0x92, 0x4f, 0xf4, 0xc8, 0x62, 0x02, 0x81, 0x4f, 0xf6, 0xba, 0x72, 0xa0, + 0xf8, 0x52, 0x20, 0x05, 0x91, 0x14, 0xf8, 0x01, 0x0f, 0x80, 0x01, 0xae, 0x80, 0xa0, 0xf5, + 0x20, 0x60, 0x68, 0x80, 0x38, 0x46, 0xfd, 0xf7, 0x8e, 0xf8, 0x38, 0x46, 0xff, 0xf7, 0x0b, + 0xf8, 0x9b, 0xf8, 0x33, 0x00, 0x28, 0xb1, 0xba, 0xf1, 0x01, 0x0a, 0x09, 0xf1, 0x01, 0x09, + 0xea, 0xd1, 0x64, 0x1c, 0xa8, 0xf8, 0x08, 0x70, 0x04, 0x98, 0xb9, 0xf1, 0x05, 0x0f, 0xa8, + 0xf8, 0x52, 0x00, 0x3f, 0xd0, 0x20, 0x78, 0x80, 0x01, 0x68, 0x80, 0x38, 0x46, 0xfd, 0xf7, + 0x74, 0xf8, 0x05, 0x98, 0x22, 0x78, 0x90, 0xf8, 0x7d, 0x10, 0x19, 0x20, 0xff, 0xf7, 0x15, + 0xfb, 0x2a, 0x4c, 0x20, 0x88, 0x40, 0xf0, 0x03, 0x00, 0x20, 0x80, 0x20, 0x88, 0x40, 0xf0, + 0x0c, 0x00, 0x20, 0x80, 0x02, 0x98, 0x06, 0x70, 0x98, 0xf8, 0xd4, 0x00, 0x04, 0xf1, 0xba, + 0x05, 0x00, 0x11, 0x2e, 0x88, 0x40, 0xf0, 0x10, 0x00, 0x84, 0xf8, 0xbb, 0x00, 0x98, 0xf8, + 0xd4, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x84, 0xf8, 0xba, 0x00, 0x38, 0x46, 0xff, 0xf7, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x54, 0xff, 0x68, 0x68, 0xcb, 0xf8, + 0x04, 0x00, 0xa4, 0xf8, 0xba, 0x60, 0x3c, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x4b, 0xff, 0x64, + 0x1c, 0x20, 0x2c, 0x03, 0x99, 0xf8, 0xd3, 0x02, 0x98, 0x01, 0x70, 0x0d, 0x48, 0x07, 0x70, + 0x38, 0x46, 0xfe, 0xf7, 0xbb, 0xff, 0x08, 0xe0, 0x05, 0x98, 0x80, 0xf8, 0x7d, 0x60, 0x31, + 0x46, 0x9d, 0xf8, 0x05, 0x20, 0x19, 0x20, 0xff, 0xf7, 0xd9, 0xfa, 0x06, 0xb0, 0xbd, 0xe8, + 0xf0, 0x8f, 0xf8, 0x20, 0x00, 0x40, 0x84, 0x2c, 0x02, 0x42, 0x14, 0x10, 0x00, 0x40, 0x00, + 0x02, 0x02, 0x42, 0xf9, 0x21, 0x00, 0x40, 0x00, 0x13, 0x04, 0x42, 0x30, 0x00, 0x00, 0x20, + 0x00, 0x3f, 0x04, 0x42, 0x00, 0x02, 0x00, 0x20, 0xd0, 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x20, 0x3a, 0x20, 0x00, 0x40, 0x10, 0xb5, 0xab, 0x48, 0x01, 0x68, 0x4f, 0xf4, 0x80, 0x74, + 0x09, 0x03, 0x0a, 0x46, 0x03, 0x68, 0x1b, 0x03, 0x93, 0x42, 0xa8, 0xbf, 0x1a, 0x1c, 0x8b, + 0x42, 0xd8, 0xbf, 0x19, 0x1c, 0x64, 0x1e, 0xf5, 0xd1, 0x52, 0x1a, 0xa3, 0x4b, 0x00, 0x20, + 0x02, 0xeb, 0x82, 0x02, 0x18, 0x70, 0x10, 0x14, 0x10, 0xbd, 0xf0, 0xb5, 0x00, 0x20, 0xfe, + 0xf7, 0x23, 0xfa, 0x06, 0x21, 0x02, 0x20, 0xfe, 0xf7, 0x01, 0xff, 0x9d, 0x4d, 0x28, 0x78, + 0xc0, 0x43, 0x28, 0x70, 0x0a, 0x20, 0xff, 0xf7, 0xc4, 0xfb, 0x01, 0x24, 0x02, 0x20, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x2c, 0x73, 0xff, 0xf7, 0xbf, 0xfb, + 0x98, 0x48, 0x01, 0x88, 0x41, 0xf4, 0xe0, 0x61, 0x01, 0x80, 0x96, 0x48, 0x04, 0x70, 0x04, + 0x74, 0x97, 0x48, 0x40, 0xf2, 0xff, 0x31, 0x06, 0x46, 0x0a, 0x3e, 0x31, 0x80, 0x93, 0x49, + 0x04, 0x25, 0x09, 0x88, 0x4f, 0xf0, 0x40, 0x17, 0x00, 0x22, 0x41, 0xea, 0x01, 0x41, 0x83, + 0x18, 0x1f, 0x60, 0x6d, 0x1e, 0x19, 0x61, 0x02, 0xf1, 0x04, 0x02, 0xf8, 0xd1, 0x1f, 0x20, + 0x70, 0x72, 0x0f, 0x20, 0x30, 0x72, 0xf4, 0x71, 0x85, 0x48, 0x00, 0x21, 0x01, 0x74, 0x04, + 0x70, 0x05, 0x20, 0xff, 0xf7, 0x96, 0xfb, 0xf0, 0xbd, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, + 0x24, 0x0d, 0x00, 0x20, 0x31, 0x21, 0x02, 0x90, 0x8d, 0xf8, 0x00, 0x00, 0xdf, 0xf8, 0x08, + 0x92, 0x8d, 0xf8, 0x01, 0x10, 0x3b, 0x21, 0x8d, 0xf8, 0x02, 0x10, 0x1d, 0x21, 0x8d, 0xf8, + 0x03, 0x10, 0x27, 0x21, 0x8d, 0xf8, 0x04, 0x10, 0x11, 0x21, 0x8d, 0xf8, 0x05, 0x00, 0x89, + 0xf8, 0xc6, 0x10, 0x7a, 0x49, 0x72, 0x4e, 0x08, 0x70, 0x31, 0x46, 0x08, 0x39, 0x08, 0x88, + 0x79, 0x4b, 0x78, 0x4a, 0x20, 0xf4, 0x80, 0x70, 0x40, 0xf4, 0x00, 0x70, 0xd0, 0x52, 0x97, + 0x20, 0xa2, 0xf6, 0x19, 0x62, 0x10, 0x70, 0x08, 0x88, 0x6f, 0xf3, 0x1f, 0x30, 0x08, 0x80, + 0x48, 0x88, 0x4f, 0xf0, 0xff, 0x37, 0x76, 0x1f, 0x20, 0xf0, 0x0f, 0x00, 0x40, 0xf0, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x07, 0x00, 0x6f, 0x49, 0xf0, 0x53, + 0x06, 0x20, 0x70, 0x70, 0x01, 0x20, 0x03, 0x90, 0x08, 0x70, 0x99, 0xf8, 0x33, 0x20, 0x04, + 0x92, 0x99, 0xf8, 0x28, 0x10, 0x1a, 0x20, 0x05, 0x91, 0xff, 0xf7, 0x95, 0xfb, 0x41, 0xf6, + 0x15, 0x6a, 0x99, 0xf8, 0x24, 0x50, 0x99, 0xf8, 0x25, 0x00, 0x65, 0x49, 0x4c, 0x46, 0x06, + 0x97, 0x07, 0x91, 0x21, 0x46, 0x08, 0x91, 0x04, 0xe0, 0x6d, 0x1c, 0xed, 0xb2, 0x08, 0x98, + 0x90, 0xf8, 0x25, 0x00, 0xa8, 0x42, 0x14, 0xda, 0x06, 0x98, 0xa9, 0xf8, 0x2e, 0x00, 0x04, + 0x9a, 0x89, 0xf8, 0x32, 0x20, 0x05, 0x99, 0xa9, 0xf8, 0x2a, 0x10, 0x36, 0xf8, 0x0a, 0x00, + 0x20, 0xf0, 0x0f, 0x00, 0x08, 0x43, 0x26, 0xf8, 0x0a, 0x00, 0x89, 0xb2, 0x1a, 0x20, 0xff, + 0xf7, 0x6d, 0xfb, 0x43, 0xe0, 0x99, 0xf8, 0x30, 0x00, 0x89, 0xf8, 0x32, 0x00, 0x94, 0xf8, + 0x31, 0x00, 0x94, 0xf8, 0x32, 0x10, 0xdd, 0xf8, 0x08, 0x80, 0xeb, 0x46, 0x88, 0x42, 0xd6, + 0xdb, 0x05, 0x27, 0x1b, 0xf8, 0x01, 0x0b, 0x07, 0x99, 0xc0, 0x01, 0x40, 0xf0, 0x7a, 0x00, + 0x08, 0x80, 0x36, 0xf8, 0x0a, 0x00, 0x20, 0xf0, 0x0f, 0x00, 0x28, 0x43, 0x26, 0xf8, 0x0a, + 0x00, 0xff, 0xf7, 0x33, 0xff, 0xff, 0xf7, 0x18, 0xff, 0x80, 0x45, 0x38, 0xbf, 0x80, 0x46, + 0xff, 0xf7, 0x43, 0xfd, 0x03, 0x98, 0xff, 0xf7, 0xfc, 0xfa, 0x7f, 0x1e, 0xe3, 0xd1, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x94, 0xf8, 0x32, 0x00, 0x94, 0xf8, + 0x33, 0x10, 0x81, 0x42, 0x04, 0xd1, 0x21, 0x8d, 0xa9, 0x42, 0x08, 0xbf, 0xa4, 0xf8, 0x2c, + 0x80, 0x06, 0x99, 0x41, 0x45, 0x03, 0xd9, 0x05, 0x95, 0x04, 0x90, 0xcd, 0xf8, 0x18, 0x80, + 0x94, 0xf8, 0x32, 0x00, 0x40, 0x1c, 0x84, 0xf8, 0x32, 0x00, 0x99, 0xf8, 0x31, 0x00, 0xc1, + 0xe7, 0x09, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x28, 0x0d, + 0x29, 0x4c, 0xdf, 0xf8, 0xb8, 0x80, 0x08, 0x22, 0x26, 0x4e, 0x6f, 0x46, 0x94, 0xf8, 0xc6, + 0x00, 0x00, 0x21, 0x04, 0xf5, 0x85, 0x75, 0x08, 0x90, 0xd8, 0xf8, 0x00, 0xb0, 0x73, 0x58, + 0x52, 0x1e, 0x47, 0xf8, 0x04, 0x3b, 0x01, 0xf1, 0x04, 0x01, 0xf8, 0xd1, 0x94, 0xf8, 0x64, + 0xa0, 0x02, 0x27, 0x84, 0xf8, 0x64, 0x70, 0x94, 0xf8, 0x22, 0x00, 0x09, 0x90, 0x67, 0x84, + 0xb5, 0xf8, 0x00, 0x90, 0x29, 0xf0, 0x02, 0x00, 0x28, 0x80, 0xff, 0xf7, 0x1f, 0xff, 0x84, + 0xf8, 0x64, 0xa0, 0x09, 0x98, 0x60, 0x84, 0x18, 0x48, 0xa5, 0xf8, 0x00, 0x90, 0x00, 0x25, + 0x05, 0x70, 0x38, 0x46, 0xff, 0xf7, 0xa8, 0xfa, 0x0d, 0x48, 0x05, 0x70, 0x08, 0x21, 0x05, + 0x74, 0x08, 0x98, 0x6b, 0x46, 0xc8, 0xf8, 0x00, 0xb0, 0x84, 0xf8, 0xc6, 0x00, 0x53, 0xf8, + 0x04, 0x2b, 0x49, 0x1e, 0x72, 0x51, 0x05, 0xf1, 0x04, 0x05, 0xf8, 0xd1, 0x0a, 0xb0, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0xbd, 0xe8, 0xf0, 0x8f, 0x0c, 0x02, + 0x00, 0x40, 0x00, 0x07, 0x03, 0x42, 0x64, 0x8c, 0x03, 0x42, 0x00, 0x01, 0x00, 0x40, 0x80, + 0x00, 0x01, 0x42, 0x26, 0x02, 0x00, 0x20, 0x3c, 0x18, 0x00, 0x40, 0x00, 0x02, 0x00, 0x20, + 0xe2, 0x08, 0x00, 0x20, 0x1d, 0x10, 0x00, 0x40, 0xe7, 0xf1, 0xff, 0xff, 0xd0, 0x40, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x20, 0x38, 0x18, 0x00, 0x40, 0x30, 0xb5, 0x7d, 0x4c, 0x01, 0x25, + 0x28, 0x46, 0x25, 0x70, 0x84, 0xf8, 0xde, 0x5e, 0xff, 0xf7, 0xe3, 0xfb, 0x00, 0x20, 0x20, + 0x70, 0x28, 0x46, 0xff, 0xf7, 0xde, 0xfb, 0xa5, 0x73, 0x28, 0x46, 0xff, 0xf7, 0xda, 0xfb, + 0xa5, 0x73, 0x28, 0x46, 0xff, 0xf7, 0xd6, 0xfb, 0x73, 0x48, 0x00, 0x78, 0x30, 0xbd, 0x30, + 0xb5, 0x03, 0x11, 0x00, 0xf0, 0x0f, 0x00, 0x03, 0xf0, 0x0f, 0x03, 0x00, 0xfb, 0x03, 0xf0, + 0xc0, 0xb2, 0x12, 0x18, 0x00, 0x23, 0xd4, 0xb2, 0x50, 0xb2, 0x00, 0x28, 0x06, 0xd4, 0x0f, + 0x38, 0x40, 0xb2, 0x00, 0x28, 0x03, 0xf1, 0x01, 0x03, 0xdb, 0xb2, 0xf8, 0xd5, 0xc3, 0xeb, + 0x03, 0x10, 0x42, 0xb2, 0x94, 0x42, 0x4f, 0xf0, 0x00, 0x00, 0x05, 0xda, 0x40, 0x1c, 0xc0, + 0xb2, 0x03, 0xfb, 0x10, 0x25, 0xac, 0x42, 0xf9, 0xdb, 0xc0, 0xf1, 0x0f, 0x00, 0xc0, 0xb2, + 0x43, 0xea, 0x00, 0x13, 0x5f, 0x48, 0x0a, 0x46, 0x03, 0x70, 0x9b, 0xb2, 0x13, 0x20, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x19, 0x46, 0xff, 0xf7, 0xeb, 0xfb, + 0x30, 0xbd, 0x2d, 0xe9, 0xfe, 0x4f, 0x5a, 0x4c, 0x4f, 0xf0, 0x00, 0x00, 0x94, 0xf8, 0x94, + 0x10, 0x31, 0xb9, 0x94, 0xf8, 0x9a, 0x10, 0x31, 0xf0, 0x02, 0x02, 0x14, 0xbf, 0x04, 0x29, + 0x01, 0x20, 0x55, 0x49, 0x08, 0x80, 0x55, 0x48, 0x4f, 0xf0, 0x00, 0x0a, 0x4f, 0xf0, 0x01, + 0x08, 0xa0, 0xf8, 0x02, 0xa0, 0xa0, 0xf8, 0x04, 0x80, 0x50, 0x46, 0xfd, 0xf7, 0x25, 0xf9, + 0x4c, 0x4d, 0xa5, 0xf6, 0xd9, 0x60, 0x00, 0x78, 0x00, 0x90, 0xa5, 0xf6, 0xde, 0x60, 0x00, + 0x78, 0x01, 0x90, 0x68, 0x78, 0x00, 0xf0, 0x03, 0x00, 0x83, 0x46, 0xa5, 0xf6, 0xd9, 0x60, + 0x80, 0xf8, 0x00, 0x80, 0x25, 0xf8, 0x62, 0xac, 0xa5, 0xf6, 0xde, 0x60, 0x80, 0xf8, 0x00, + 0x80, 0x94, 0xf8, 0xa4, 0x00, 0x02, 0x28, 0x07, 0xda, 0x42, 0xf2, 0x1f, 0x20, 0x25, 0xf8, + 0x02, 0x0c, 0x40, 0x46, 0xff, 0xf7, 0x63, 0xfb, 0x0b, 0xe0, 0x42, 0xf2, 0x1f, 0x00, 0x25, + 0xf8, 0x02, 0x0c, 0x3c, 0x4c, 0x84, 0xf8, 0x00, 0x80, 0x02, 0x20, 0xff, 0xf7, 0x58, 0xfb, + 0x84, 0xf8, 0x00, 0xa0, 0x02, 0x20, 0x28, 0x71, 0x0a, 0x20, 0xff, 0xf7, 0x51, 0xfb, 0x05, + 0x20, 0x28, 0x70, 0x85, 0xf8, 0x01, 0xa0, 0xff, 0xf7, 0x5f, 0xff, 0x01, 0x28, 0x18, 0xbf, + 0xd1, 0x46, 0x56, 0x46, 0x0d, 0xd1, 0x04, 0x24, 0x10, 0x27, 0x6c, 0x70, 0xff, 0xf7, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x55, 0xff, 0x76, 0x1c, 0x01, 0x28, + 0x03, 0xd1, 0x7f, 0x1e, 0x04, 0xf1, 0x04, 0x04, 0xf5, 0xd1, 0x5f, 0xfa, 0x86, 0xf9, 0xcd, + 0xf8, 0x08, 0xa0, 0x44, 0x46, 0xa4, 0xf1, 0x10, 0x00, 0x28, 0x70, 0xff, 0xf7, 0x44, 0xff, + 0x01, 0x28, 0x03, 0xd0, 0x64, 0x1c, 0x10, 0x2c, 0xf5, 0xdb, 0x01, 0xe0, 0xcd, 0xf8, 0x08, + 0x80, 0x64, 0xb2, 0x0f, 0x26, 0x10, 0x34, 0xe7, 0xb2, 0x2f, 0x70, 0xff, 0xf7, 0x35, 0xff, + 0x01, 0x28, 0x04, 0xd0, 0x76, 0x1e, 0x04, 0xf1, 0x10, 0x04, 0xf5, 0xd1, 0x01, 0xe0, 0xcd, + 0xf8, 0x08, 0x80, 0xb9, 0xf1, 0x10, 0x0f, 0x02, 0x98, 0x05, 0xd1, 0x20, 0xb9, 0x51, 0x46, + 0x0a, 0x46, 0x13, 0x20, 0xff, 0xf7, 0x56, 0xfb, 0x28, 0x88, 0x4f, 0xea, 0x0b, 0x24, 0x20, + 0xf4, 0x40, 0x70, 0x03, 0x22, 0x49, 0x46, 0x20, 0x43, 0x28, 0x80, 0x78, 0xb2, 0xff, 0xf7, + 0x2f, 0xff, 0x00, 0x98, 0xa5, 0xf6, 0xd9, 0x61, 0x08, 0x70, 0x01, 0x98, 0xa5, 0xf6, 0xde, + 0x61, 0x08, 0x70, 0x28, 0x88, 0x20, 0xf4, 0x40, 0x70, 0x04, 0x43, 0x50, 0x46, 0x2c, 0x80, + 0xff, 0xf7, 0x12, 0xf8, 0xbd, 0xe8, 0xfe, 0x8f, 0xae, 0x11, 0x00, 0x40, 0x00, 0x37, 0x02, + 0x42, 0x86, 0x20, 0x00, 0x40, 0xc0, 0x00, 0x00, 0x20, 0x0e, 0x03, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x20, 0x8c, 0x04, 0x04, 0x42, 0x10, 0xb5, 0x6a, 0x4a, 0x13, 0x68, 0x6a, 0x4a, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x12, 0x68, 0xa2, 0xfb, 0x03, 0x23, + 0x1b, 0x02, 0x12, 0x0e, 0x1a, 0x43, 0x02, 0x60, 0x67, 0x48, 0x8c, 0x1a, 0x94, 0xfb, 0xf0, + 0xf0, 0x81, 0xb2, 0x40, 0x42, 0x82, 0xb2, 0x05, 0x20, 0xff, 0xf7, 0x1f, 0xfc, 0x20, 0x46, + 0x10, 0xbd, 0x2d, 0xe9, 0xf0, 0x4f, 0xad, 0xf1, 0x14, 0x0d, 0xdf, 0xf8, 0x80, 0xa1, 0x5c, + 0x4c, 0x5f, 0x49, 0x4f, 0xf0, 0x01, 0x0b, 0x9a, 0xf8, 0xc6, 0x00, 0x5b, 0x4d, 0x26, 0x46, + 0x01, 0x90, 0x41, 0xf6, 0x82, 0x50, 0x08, 0x80, 0xaa, 0xf8, 0x88, 0xb0, 0xba, 0xf8, 0x80, + 0x00, 0x4f, 0xf0, 0x00, 0x08, 0xb4, 0x3e, 0x45, 0x43, 0x11, 0x20, 0x02, 0x95, 0x8a, 0xf8, + 0xc6, 0x00, 0x40, 0x46, 0x86, 0xf8, 0x02, 0x80, 0x86, 0xf8, 0x00, 0x80, 0xfe, 0xf7, 0x04, + 0xfa, 0x70, 0x3c, 0x20, 0x88, 0x20, 0xf0, 0x0f, 0x00, 0xa6, 0xf8, 0x44, 0x00, 0xff, 0x20, + 0x86, 0xf8, 0x48, 0x00, 0x05, 0x20, 0xff, 0xf7, 0xa4, 0xfb, 0x86, 0xf8, 0x48, 0x80, 0x29, + 0x46, 0x68, 0x46, 0xff, 0xf7, 0xb2, 0xff, 0x41, 0x46, 0xdf, 0xf8, 0x20, 0x91, 0x45, 0x46, + 0x44, 0x46, 0x05, 0x27, 0x03, 0x91, 0x04, 0x91, 0x01, 0x46, 0x00, 0x29, 0xb8, 0xbf, 0x49, + 0x42, 0x4a, 0x46, 0x52, 0x1c, 0x8a, 0x42, 0x25, 0xdc, 0x09, 0xeb, 0x01, 0x02, 0x49, 0x46, + 0x49, 0x00, 0x00, 0x28, 0x92, 0xfb, 0xf1, 0xf1, 0x4c, 0xbf, 0x61, 0x1a, 0x21, 0x44, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x0c, 0xb2, 0x60, 0x42, 0x82, 0xb2, + 0x06, 0x20, 0xa1, 0xb2, 0xff, 0xf7, 0xc5, 0xfb, 0x10, 0x2c, 0x05, 0xda, 0x14, 0xf1, 0x10, + 0x0f, 0x05, 0xda, 0x6f, 0xf0, 0x0f, 0x04, 0x00, 0xe0, 0x0f, 0x24, 0xcd, 0xf8, 0x0c, 0xb0, + 0xb4, 0x70, 0x05, 0x20, 0xff, 0xf7, 0x6e, 0xfb, 0x02, 0x99, 0x68, 0x46, 0xff, 0xf7, 0x7e, + 0xff, 0x7f, 0x1e, 0xd1, 0xd1, 0xdf, 0xf8, 0xb8, 0x90, 0x05, 0x27, 0x01, 0x46, 0x00, 0x29, + 0xb8, 0xbf, 0x49, 0x42, 0x4a, 0x46, 0x52, 0x1c, 0x8a, 0x42, 0x25, 0xdc, 0x09, 0xeb, 0x01, + 0x02, 0x49, 0x46, 0x49, 0x00, 0x00, 0x28, 0x92, 0xfb, 0xf1, 0xf1, 0x4c, 0xbf, 0x69, 0x1a, + 0x29, 0x44, 0x0d, 0xb2, 0x68, 0x42, 0x82, 0xb2, 0x07, 0x20, 0xa9, 0xb2, 0xff, 0xf7, 0x94, + 0xfb, 0x10, 0x2d, 0x05, 0xda, 0x15, 0xf1, 0x10, 0x0f, 0x05, 0xda, 0x6f, 0xf0, 0x0f, 0x05, + 0x00, 0xe0, 0x0f, 0x25, 0xcd, 0xf8, 0x10, 0xb0, 0x35, 0x70, 0x05, 0x20, 0xff, 0xf7, 0x3d, + 0xfb, 0x02, 0x99, 0x68, 0x46, 0xff, 0xf7, 0x4d, 0xff, 0x7f, 0x1e, 0xd1, 0xd1, 0xaa, 0xf8, + 0x84, 0x40, 0xaa, 0xf8, 0x82, 0x50, 0x03, 0x98, 0x20, 0xb1, 0x0f, 0x20, 0x42, 0x46, 0xa1, + 0xb2, 0xff, 0xf7, 0x74, 0xfb, 0x04, 0x98, 0x20, 0xb1, 0x10, 0x20, 0x42, 0x46, 0xa9, 0xb2, + 0xff, 0xf7, 0x6d, 0xfb, 0x01, 0x98, 0x8a, 0xf8, 0xc6, 0x00, 0x86, 0xf8, 0x02, 0x80, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x86, 0xf8, 0x00, 0x80, 0xff, 0xf7, + 0x60, 0xfd, 0x05, 0xb0, 0xaa, 0xf8, 0x88, 0x80, 0xbd, 0xe8, 0xf0, 0x8f, 0xc0, 0x46, 0xd0, + 0x1c, 0x00, 0x40, 0xd0, 0x08, 0x00, 0x20, 0x40, 0x42, 0x0f, 0x00, 0x00, 0x02, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x20, 0x80, 0x96, 0x98, 0x00, 0x10, 0x55, 0x22, 0x00, 0x49, 0x10, 0x49, + 0x1c, 0x01, 0x40, 0x49, 0x42, 0x01, 0x43, 0x01, 0x20, 0x90, 0x40, 0x40, 0x1e, 0x08, 0x40, + 0x70, 0x47, 0xf8, 0xb5, 0x0e, 0x68, 0x06, 0xf0, 0x07, 0x04, 0x14, 0x19, 0x08, 0x2c, 0x4f, + 0xea, 0xe6, 0x05, 0x05, 0xf0, 0x03, 0x07, 0x06, 0xf0, 0x07, 0x03, 0x04, 0xdd, 0xf4, 0x10, + 0x04, 0xf0, 0x03, 0x04, 0x03, 0x2c, 0x11, 0xd0, 0x3f, 0x18, 0x90, 0x19, 0xb5, 0xeb, 0xe0, + 0x0f, 0x3c, 0x78, 0x18, 0xbf, 0x17, 0xf8, 0x01, 0x6f, 0x12, 0xd1, 0x01, 0x20, 0x90, 0x40, + 0x40, 0x1e, 0xc3, 0xf1, 0x08, 0x03, 0x9b, 0x1a, 0x1c, 0x41, 0x04, 0x40, 0x1f, 0xe0, 0x52, + 0x4c, 0x27, 0x68, 0x00, 0x97, 0x6d, 0x1c, 0x05, 0xf0, 0x03, 0x05, 0x1d, 0xf8, 0x05, 0x60, + 0xc4, 0x78, 0x07, 0x60, 0xc2, 0xf1, 0x08, 0x00, 0x9d, 0x18, 0xc0, 0x1a, 0x08, 0x3d, 0x08, + 0x30, 0xc3, 0xf1, 0x08, 0x03, 0xc6, 0x40, 0x01, 0x20, 0x00, 0xfa, 0x05, 0xf7, 0x00, 0xfa, + 0x03, 0xf3, 0x7f, 0x1e, 0x5b, 0x1e, 0x90, 0x40, 0x1c, 0x40, 0x37, 0x40, 0x40, 0x1e, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0xac, 0x40, 0x3c, 0x43, 0x23, 0xb2, + 0x0c, 0x68, 0x12, 0x19, 0x0a, 0x60, 0x01, 0x46, 0x10, 0x22, 0x18, 0x46, 0xff, 0xf7, 0xa9, + 0xff, 0x00, 0xb2, 0xf8, 0xbd, 0xfc, 0xb5, 0x3c, 0x4e, 0x84, 0x46, 0x30, 0x68, 0x01, 0x90, + 0x9d, 0xf8, 0x05, 0x10, 0x9d, 0xf8, 0x04, 0x00, 0xfe, 0x27, 0x9d, 0xf8, 0x06, 0x30, 0x41, + 0xea, 0x00, 0x21, 0x9d, 0xf8, 0x07, 0x00, 0x0a, 0xb2, 0x2c, 0xf8, 0x04, 0x1b, 0x40, 0xea, + 0x03, 0x20, 0x00, 0xb2, 0x04, 0x46, 0x2c, 0xf8, 0x04, 0x0b, 0x80, 0x1a, 0x05, 0xb2, 0x20, + 0x20, 0x00, 0x90, 0x00, 0x98, 0x10, 0xf0, 0x1f, 0x0f, 0x04, 0xbf, 0x30, 0x68, 0x01, 0x90, + 0x02, 0x22, 0x69, 0x46, 0x01, 0xa8, 0xff, 0xf7, 0x89, 0xff, 0x10, 0xf1, 0x02, 0x0f, 0x0a, + 0xd1, 0x00, 0x98, 0x10, 0xf0, 0x1f, 0x0f, 0x04, 0xbf, 0x30, 0x68, 0x01, 0x90, 0x01, 0xa8, + 0x08, 0x22, 0x69, 0x46, 0xff, 0xf7, 0x7b, 0xff, 0x41, 0x19, 0x0d, 0xb2, 0x7f, 0x1e, 0x05, + 0xeb, 0x04, 0x01, 0x2c, 0xf8, 0x04, 0x1b, 0x0c, 0xb2, 0xdd, 0xd1, 0xfc, 0xbd, 0x10, 0xb5, + 0x1d, 0x4c, 0x20, 0x46, 0x80, 0x1e, 0xff, 0xf7, 0xba, 0xff, 0x20, 0x46, 0xff, 0xf7, 0xb7, + 0xff, 0x10, 0xbd, 0x2d, 0xe9, 0xf0, 0x41, 0x19, 0x4e, 0x00, 0x25, 0x02, 0x20, 0x35, 0x70, + 0xff, 0xf7, 0x41, 0xfb, 0x17, 0x4c, 0x01, 0x27, 0x20, 0x88, 0x20, 0xf0, 0x07, 0x00, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x40, 0xf0, 0x0b, 0x00, 0x20, 0x80, + 0x14, 0x48, 0x37, 0x70, 0x00, 0x78, 0x04, 0x28, 0x04, 0xdb, 0x08, 0x28, 0xcc, 0xbf, 0x02, + 0x21, 0x39, 0x1c, 0x00, 0xe0, 0x29, 0x46, 0x88, 0x01, 0x20, 0x82, 0x0a, 0x02, 0x1c, 0x20, + 0xff, 0xf7, 0x70, 0xfb, 0x19, 0x20, 0xb4, 0xf8, 0x0a, 0x80, 0x60, 0x81, 0x02, 0x20, 0xff, + 0xf7, 0x21, 0xfb, 0x09, 0x4e, 0x37, 0x70, 0xff, 0xf7, 0xca, 0xff, 0x35, 0x70, 0xa4, 0xf8, + 0x0a, 0x80, 0xbd, 0xe8, 0xf0, 0x81, 0x00, 0x02, 0x00, 0x40, 0x02, 0x04, 0x00, 0x40, 0xd0, + 0x40, 0x00, 0x42, 0x06, 0x02, 0x00, 0x40, 0x64, 0x01, 0x00, 0x20, 0xc0, 0x00, 0x01, 0x42, + 0x70, 0xb5, 0x51, 0x4c, 0x04, 0xf2, 0xb2, 0x32, 0x11, 0x88, 0x21, 0xf4, 0x70, 0x61, 0x41, + 0xea, 0x00, 0x20, 0x10, 0x80, 0x02, 0x20, 0xff, 0xf7, 0xdf, 0xfb, 0x4c, 0x4e, 0x01, 0x25, + 0x02, 0x20, 0x35, 0x70, 0xff, 0xf7, 0xd9, 0xfb, 0x00, 0x20, 0x30, 0x70, 0x02, 0x20, 0xff, + 0xf7, 0xd4, 0xfb, 0x20, 0x88, 0x20, 0xf0, 0x20, 0x00, 0x40, 0xf0, 0x10, 0x00, 0x20, 0x80, + 0x06, 0x20, 0xff, 0xf7, 0xcb, 0xfb, 0x20, 0x88, 0x20, 0xf0, 0x10, 0x00, 0x40, 0xf0, 0x20, + 0x00, 0x20, 0x80, 0x28, 0x46, 0xff, 0xf7, 0xc2, 0xfb, 0x20, 0x88, 0x20, 0xf0, 0x30, 0x00, + 0x20, 0x80, 0x0a, 0x20, 0xb4, 0xf8, 0x4c, 0x40, 0xff, 0xf7, 0xb9, 0xfb, 0x20, 0x46, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x70, 0xbd, 0xf8, 0xb5, 0x38, 0x48, + 0x00, 0x27, 0x3a, 0x4d, 0x00, 0x88, 0x37, 0x49, 0x38, 0x4e, 0xad, 0xf8, 0x00, 0x00, 0xaf, + 0x74, 0x41, 0xf6, 0x82, 0x50, 0x08, 0x80, 0x01, 0x20, 0xa6, 0xf8, 0x88, 0x00, 0xe8, 0x74, + 0xa8, 0x7c, 0x02, 0x28, 0x27, 0xda, 0x38, 0x46, 0xfe, 0xf7, 0xf4, 0xf9, 0x0a, 0x20, 0xff, + 0xf7, 0x9d, 0xfb, 0xa8, 0x7c, 0x1d, 0xf8, 0x00, 0x40, 0x20, 0x46, 0xff, 0xf7, 0xab, 0xff, + 0x0e, 0x2c, 0x0a, 0xdc, 0xb6, 0xf8, 0x6a, 0x10, 0x81, 0x42, 0x06, 0xda, 0x64, 0x1c, 0xe4, + 0xb2, 0x20, 0x46, 0xff, 0xf7, 0xa0, 0xff, 0x0f, 0x2c, 0xf4, 0xdb, 0xa8, 0x7c, 0x30, 0x18, + 0x80, 0xf8, 0xa4, 0x40, 0xff, 0xf7, 0xc8, 0xfd, 0x0a, 0x20, 0xff, 0xf7, 0x81, 0xfb, 0xa8, + 0x7c, 0x40, 0x1c, 0xa8, 0x74, 0xa8, 0x7c, 0x02, 0x28, 0xd7, 0xdb, 0xa6, 0xf8, 0x88, 0x70, + 0xef, 0x74, 0xf8, 0xbd, 0x00, 0xb5, 0xff, 0xf7, 0xbd, 0xff, 0x1b, 0x4b, 0x4f, 0xf0, 0x00, + 0x01, 0x93, 0xf8, 0x9a, 0x00, 0x40, 0xb9, 0x93, 0xf8, 0xa4, 0x00, 0x0a, 0x28, 0x04, 0xdb, + 0x93, 0xf8, 0xa5, 0x00, 0x02, 0x28, 0x08, 0xbf, 0x01, 0x21, 0x12, 0x48, 0x00, 0xf1, 0x1a, + 0x00, 0x01, 0x80, 0xb3, 0xf8, 0x54, 0x00, 0xa0, 0xb1, 0x11, 0x49, 0x01, 0x20, 0x08, 0x70, + 0x93, 0xf8, 0xa4, 0x00, 0x04, 0x28, 0x04, 0xdb, 0x08, 0x28, 0xd4, 0xbf, 0x06, 0x20, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x03, 0x20, 0x00, 0xe0, 0x04, 0x20, + 0x0c, 0x4a, 0x10, 0x70, 0x93, 0xf8, 0xa4, 0x10, 0x12, 0x78, 0x20, 0x20, 0xff, 0xf7, 0x91, + 0xfb, 0x00, 0xbd, 0x60, 0x1c, 0x00, 0x40, 0x98, 0x8c, 0x03, 0x42, 0x18, 0x31, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x02, 0x00, 0x20, 0xd0, 0x08, 0x00, 0x20, 0xc0, 0x00, 0x00, + 0x20, 0x18, 0x02, 0x04, 0x42, 0x12, 0x20, 0x00, 0x40, 0x04, 0x04, 0x00, 0x00, 0x2d, 0xe9, + 0xf0, 0x47, 0x36, 0x48, 0x4f, 0xf4, 0x0c, 0x61, 0x41, 0x80, 0x36, 0x49, 0x4f, 0xf0, 0x01, + 0x06, 0x09, 0x88, 0x86, 0x80, 0x4f, 0xf0, 0x00, 0x00, 0x01, 0xb1, 0x30, 0x46, 0x31, 0x49, + 0xdf, 0xf8, 0xc8, 0x80, 0x08, 0x70, 0x00, 0x20, 0xfd, 0xf7, 0x76, 0xf9, 0x45, 0x46, 0x31, + 0x4c, 0x4f, 0xf0, 0x03, 0x0a, 0x0f, 0x21, 0x20, 0x46, 0x4f, 0xf0, 0x00, 0x09, 0x2c, 0x4f, + 0x80, 0x1e, 0x80, 0xf8, 0x04, 0xa0, 0x01, 0x80, 0x02, 0x20, 0x87, 0xf8, 0x00, 0x90, 0xff, + 0xf7, 0xc4, 0xfb, 0x20, 0x88, 0x20, 0xf0, 0x0f, 0x00, 0x40, 0xf0, 0x03, 0x00, 0x20, 0x80, + 0x50, 0x46, 0x3e, 0x70, 0xa4, 0xf8, 0x0a, 0x90, 0xff, 0xf7, 0xb8, 0xfb, 0x14, 0x27, 0xa0, + 0x79, 0x08, 0xf8, 0x01, 0x0b, 0x30, 0x46, 0xff, 0xf7, 0xb1, 0xfb, 0x7f, 0x1e, 0xf7, 0xd1, + 0x05, 0x24, 0x29, 0x88, 0x6a, 0x88, 0x14, 0x20, 0xff, 0xf7, 0xf1, 0xfb, 0x64, 0x1e, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x05, 0xf1, 0x04, 0x05, 0xf6, 0xd1, + 0xbd, 0xe8, 0xf0, 0x87, 0x10, 0xb5, 0x15, 0x48, 0x40, 0xf2, 0x36, 0x21, 0x08, 0x38, 0x36, + 0x22, 0x01, 0x80, 0x02, 0x21, 0x00, 0x20, 0xff, 0xf7, 0xe0, 0xfb, 0x0d, 0x48, 0x00, 0x24, + 0x01, 0x21, 0xc4, 0x80, 0xc1, 0x81, 0x81, 0x84, 0x0b, 0x48, 0x14, 0x38, 0x44, 0x73, 0x84, + 0x73, 0xc4, 0x72, 0x04, 0x74, 0xff, 0xf7, 0x9e, 0xff, 0x20, 0x46, 0xff, 0xf7, 0xa7, 0xf8, + 0x4f, 0xf0, 0x80, 0x41, 0x0f, 0x20, 0xa1, 0xf8, 0x04, 0x42, 0x81, 0xf8, 0x06, 0x02, 0x1c, + 0x20, 0x81, 0xf8, 0x08, 0x02, 0x10, 0xbd, 0x00, 0x00, 0x00, 0x20, 0xe4, 0x08, 0x00, 0x20, + 0x18, 0x02, 0x00, 0x20, 0x38, 0x00, 0x00, 0x20, 0xd0, 0x40, 0x00, 0x42, 0x06, 0x02, 0x00, + 0x40, 0x2d, 0xe9, 0xf0, 0x41, 0xfe, 0xf7, 0x3a, 0xfe, 0xfe, 0xf7, 0x5d, 0xfe, 0x22, 0x48, + 0x23, 0x49, 0x03, 0x68, 0xb1, 0xfb, 0xf3, 0xf0, 0xb1, 0xfb, 0xf3, 0xf1, 0x49, 0x1c, 0x89, + 0xb2, 0x03, 0xfb, 0x01, 0xf2, 0x1f, 0x49, 0x40, 0x1c, 0x80, 0xb2, 0x91, 0x42, 0x03, 0xfb, + 0x00, 0xf5, 0x4f, 0xf0, 0x00, 0x00, 0x23, 0xd3, 0x1b, 0x4e, 0x1c, 0x4c, 0xdf, 0xf8, 0x70, + 0xc0, 0x8e, 0x46, 0xa0, 0x46, 0xb5, 0xfb, 0xf4, 0xf1, 0x8f, 0xb2, 0x04, 0xfb, 0x17, 0x57, + 0xbc, 0x45, 0x06, 0xeb, 0x00, 0x07, 0x01, 0xf1, 0x01, 0x02, 0x03, 0xd9, 0x62, 0x39, + + 0x01, 0x97, 0xfd, 0xcd, 0x00, 0x02, 0x19, 0x00, 0xc8, 0x87, 0xf8, 0x02, 0x11, 0x40, 0x1c, + 0x91, 0xb2, 0x08, 0xfb, 0x01, 0xf1, 0x49, 0x1b, 0x8c, 0x45, 0x06, 0xeb, 0x00, 0x01, 0x03, + 0xd9, 0x62, 0x3a, 0x81, 0xf8, 0x02, 0x21, 0x40, 0x1c, 0x5d, 0x19, 0xae, 0x45, 0xe1, 0xd2, + 0x07, 0x28, 0x08, 0xd8, 0x0b, 0x49, 0xc0, 0xf1, 0x08, 0x02, 0xff, 0x23, 0x09, 0x18, 0x52, + 0x1e, 0x01, 0xf8, 0x01, 0x3b, 0xfb, 0xd1, 0xbd, 0xe8, 0xf0, 0x81, 0xc0, 0x46, 0xd0, 0x08, + 0x00, 0x20, 0x80, 0x9c, 0x2b, 0x8f, 0x3f, 0x0e, 0xe1, 0x93, 0x00, 0x02, 0x00, 0x20, 0x40, + 0x42, 0x0f, 0x00, 0x28, 0xe7, 0x09, 0x00, 0x02, 0x03, 0x00, 0x20, 0x2d, 0xe9, 0xf0, 0x4f, + 0x00, 0x20, 0xff, 0xf7, 0x80, 0xfc, 0x25, 0x4d, 0x95, 0xf8, 0xa4, 0x10, 0x49, 0x08, 0x05, + 0xeb, 0x41, 0x01, 0xb1, 0xf8, 0x88, 0x10, 0x4f, 0xf4, 0x80, 0x3a, 0x02, 0x09, 0xa1, 0xf2, + 0x66, 0x31, 0x8e, 0xb2, 0x87, 0x35, 0x1e, 0x49, 0xdf, 0xf8, 0x7c, 0x80, 0x2f, 0x27, 0xb1, + 0xfb, 0xf2, 0xf1, 0x49, 0x09, 0x8c, 0xb2, 0xa4, 0xf2, 0xfe, 0x31, 0x1f, 0xfa, 0x81, 0xfb, + 0x07, 0xf0, 0x0f, 0x01, 0x0f, 0x29, 0x15, 0xd1, 0x0f, 0x2f, 0x06, 0xf2, 0x66, 0x31, 0x03, + 0xd1, 0x8e, 0xb2, 0xa4, 0xeb, 0x0b, 0x04, 0xa4, 0xb2, 0x95, 0xf9, 0x00, 0x10, 0xc9, 0x01, + 0xb1, 0x42, 0xbc, 0xbf, 0x70, 0x1a, 0x4f, 0xf0, 0x00, 0x09, 0x09, 0xdb, 0x89, 0x1b, + + 0x01, 0x97, 0xfd, 0xb1, 0x00, 0x02, 0x19, 0x00, 0xac, 0x1f, 0xfa, 0x81, 0xf9, 0x61, 0x10, + 0x0b, 0xe0, 0x95, 0xf9, 0x00, 0x00, 0xa6, 0xeb, 0xc0, 0x10, 0x48, 0x44, 0x80, 0xb2, 0xff, + 0xf7, 0x43, 0xfc, 0x01, 0x09, 0x04, 0xfb, 0x01, 0xa1, 0x49, 0x0c, 0xa8, 0xf8, 0x00, 0x10, + 0x7f, 0x1e, 0xa5, 0xf1, 0x01, 0x05, 0xa8, 0xf1, 0x02, 0x08, 0xd1, 0xd5, 0xbd, 0xe8, 0xf0, + 0x8f, 0xc0, 0x00, 0x00, 0x20, 0x00, 0x00, 0xc0, 0x7f, 0x32, 0x04, 0x00, 0x20, 0xad, 0xf1, + 0x0c, 0x0d, 0x11, 0x48, 0x00, 0x68, 0x00, 0x90, 0x11, 0x48, 0x00, 0x68, 0x01, 0x90, 0x10, + 0x48, 0x00, 0x68, 0x02, 0x90, 0x10, 0x48, 0x00, 0x78, 0x10, 0x4a, 0x80, 0x10, 0x10, 0xf8, + 0x0d, 0x10, 0x82, 0xf8, 0x79, 0x10, 0x18, 0x21, 0x82, 0xf8, 0x7d, 0x10, 0x00, 0xeb, 0x0d, + 0x01, 0x09, 0x79, 0x68, 0x44, 0x82, 0xf8, 0x78, 0x10, 0x00, 0x7a, 0x03, 0xb0, 0x0a, 0x21, + 0x82, 0xf8, 0x7a, 0x00, 0x82, 0xf8, 0x7e, 0x10, 0x82, 0xf8, 0x7c, 0x10, 0x70, 0x47, 0x0c, + 0x30, 0x00, 0x00, 0x10, 0x30, 0x00, 0x00, 0x14, 0x30, 0x00, 0x00, 0x64, 0x01, 0x00, 0x20, + 0x00, 0x02, 0x00, 0x20, 0x25, 0x2c, 0x33, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x14, 0x14, 0x14, + 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x20, 0x10, 0x19, 0x00, 0x3e, 0x0e, + + 0x01, 0x01, 0xff, 0x06, 0x22, 0x10, 0x19, 0x00, 0x37, 0x21, + + 0x01, 0x01, 0xff, 0x06, 0x4a, 0x10, 0x19, 0x00, 0x00, 0x02, + + 0x01, 0x01, 0xff, 0x06, 0x9a, 0x10, 0x19, 0x00, 0x10, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x84, 0x11, 0x19, 0x00, 0x01, 0x06, + + 0x01, 0x01, 0xff, 0x06, 0x86, 0x11, 0x19, 0x00, 0x00, 0x04, + + 0x01, 0x01, 0xff, 0x06, 0x94, 0x11, 0x19, 0x00, 0x1e, 0x03, + + 0x01, 0x01, 0xff, 0x06, 0xa0, 0x11, 0x19, 0x00, 0x01, 0x01, + + 0x01, 0x01, 0xff, 0x06, 0xb0, 0x11, 0x19, 0x00, 0x34, 0x28, + + 0x01, 0x01, 0xff, 0x06, 0xb2, 0x11, 0x19, 0x00, 0xd8, 0xdb, + + 0x01, 0x01, 0xff, 0x06, 0xc0, 0x11, 0x19, 0x00, 0xba, 0xc0, + + 0x01, 0x01, 0xff, 0x06, 0xc2, 0x11, 0x19, 0x00, 0xc6, 0xc9, + + 0x01, 0x01, 0xff, 0x06, 0xc4, 0x11, 0x19, 0x00, 0xcc, 0xcf, + + 0x01, 0x01, 0xff, 0x06, 0xc6, 0x11, 0x19, 0x00, 0xd2, 0xd5, + + 0x01, 0x01, 0xff, 0x06, 0xc8, 0x11, 0x19, 0x00, 0xd8, 0xdb, + + 0x01, 0x01, 0xff, 0x06, 0xca, 0x11, 0x19, 0x00, 0xde, 0xe1, + + 0x01, 0x01, 0xff, 0x06, 0xcc, 0x11, 0x19, 0x00, 0xe4, 0xe7, + + 0x01, 0x01, 0xff, 0x06, 0xce, 0x11, 0x19, 0x00, 0xf4, 0x81, + + 0x01, 0x01, 0xff, 0x06, 0xd0, 0x11, 0x19, 0x00, 0xc6, 0xcc, + + 0x01, 0x01, 0xff, 0x06, 0xd2, 0x11, 0x19, 0x00, 0xcf, 0xd2, + + 0x01, 0x01, 0xff, 0x06, 0xd4, 0x11, 0x19, 0x00, 0xd5, 0xd8, + + 0x01, 0x01, 0xff, 0x06, 0xd6, 0x11, 0x19, 0x00, 0xdb, 0xde, + + 0x01, 0x01, 0xff, 0x06, 0xd8, 0x11, 0x19, 0x00, 0xe1, 0xe4, + + 0x01, 0x01, 0xff, 0x06, 0xda, 0x11, 0x19, 0x00, 0xe7, 0xe8, + + 0x01, 0x01, 0xff, 0x06, 0xdc, 0x11, 0x19, 0x00, 0xeb, 0xee, + + 0x01, 0x01, 0xff, 0x06, 0xde, 0x11, 0x19, 0x00, 0xf4, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0xe0, 0x11, 0x19, 0x00, 0xce, 0xcf, + + 0x01, 0x01, 0xff, 0x06, 0xe2, 0x11, 0x19, 0x00, 0xcf, 0xd0, + + 0x01, 0x01, 0xff, 0x06, 0xe4, 0x11, 0x19, 0x00, 0xd2, 0xd4, + + 0x01, 0x01, 0xff, 0x06, 0xe6, 0x11, 0x19, 0x00, 0xd6, 0xd9, + + 0x01, 0x01, 0xff, 0x06, 0xe8, 0x11, 0x19, 0x00, 0xdc, 0xdf, + + 0x01, 0x01, 0xff, 0x06, 0xea, 0x11, 0x19, 0x00, 0xe2, 0xe4, + + 0x01, 0x01, 0xff, 0x06, 0xec, 0x11, 0x19, 0x00, 0xe7, 0xf5, + + 0x01, 0x01, 0xff, 0x06, 0xee, 0x11, 0x19, 0x00, 0xfb, 0x7f, + + 0x01, 0x01, 0xff, 0x06, 0xf0, 0x11, 0x19, 0x00, 0xd3, 0xd4, + + 0x01, 0x01, 0xff, 0x06, 0xf2, 0x11, 0x19, 0x00, 0xd5, 0xd7, + + 0x01, 0x01, 0xff, 0x06, 0xf4, 0x11, 0x19, 0x00, 0xd9, 0xdc, + + 0x01, 0x01, 0xff, 0x06, 0xf6, 0x11, 0x19, 0x00, 0xdf, 0xe2, + + 0x01, 0x01, 0xff, 0x06, 0xf8, 0x11, 0x19, 0x00, 0xe4, 0xe7, + + 0x01, 0x01, 0xff, 0x06, 0xfa, 0x11, 0x19, 0x00, 0xec, 0xee, + + 0x01, 0x01, 0xff, 0x06, 0xfc, 0x11, 0x19, 0x00, 0xf0, 0xf5, + + 0x01, 0x01, 0xff, 0x06, 0xfe, 0x11, 0x19, 0x00, 0xfb, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x00, 0x12, 0x19, 0x00, 0x7c, 0x70, + + 0x01, 0x01, 0xff, 0x06, 0x02, 0x12, 0x19, 0x00, 0x64, 0x5e, + + 0x01, 0x01, 0xff, 0x06, 0x04, 0x12, 0x19, 0x00, 0x58, 0x52, + + 0x01, 0x01, 0xff, 0x06, 0x06, 0x12, 0x19, 0x00, 0x4c, 0x46, + + 0x01, 0x01, 0xff, 0x06, 0x08, 0x12, 0x19, 0x00, 0x40, 0x3a, + + 0x01, 0x01, 0xff, 0x06, 0x0a, 0x12, 0x19, 0x00, 0x34, 0x2e, + + 0x01, 0x01, 0xff, 0x06, 0x0c, 0x12, 0x19, 0x00, 0x28, 0x22, + + 0x01, 0x01, 0xff, 0x06, 0x0e, 0x12, 0x19, 0x00, 0x08, 0xfc, + + 0x01, 0x01, 0xff, 0x06, 0x10, 0x12, 0x19, 0x00, 0x64, 0x58, + + 0x01, 0x01, 0xff, 0x06, 0x12, 0x12, 0x19, 0x00, 0x52, 0x4c, + + 0x01, 0x01, 0xff, 0x06, 0x14, 0x12, 0x19, 0x00, 0x46, 0x40, + + 0x01, 0x01, 0xff, 0x06, 0x16, 0x12, 0x19, 0x00, 0x3a, 0x34, + + 0x01, 0x01, 0xff, 0x06, 0x18, 0x12, 0x19, 0x00, 0x2e, 0x28, + + 0x01, 0x01, 0xff, 0x06, 0x1a, 0x12, 0x19, 0x00, 0x22, 0x20, + + 0x01, 0x01, 0xff, 0x06, 0x1c, 0x12, 0x19, 0x00, 0x1a, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x1e, 0x12, 0x19, 0x00, 0x08, 0xfc, + + 0x01, 0x01, 0xff, 0x06, 0x24, 0x1c, 0x19, 0x00, 0x27, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x44, 0x1c, 0x19, 0x00, 0x1c, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x46, 0x1c, 0x19, 0x00, 0x00, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x04, 0x08, 0x19, 0x00, 0x00, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0x38, 0x08, 0x19, 0x00, 0x01, 0xf0, + + 0x01, 0x01, 0xff, 0x06, 0x28, 0x20, 0x19, 0x00, 0xe3, 0x0c, + + 0x01, 0x01, 0xff, 0x06, 0x2c, 0x20, 0x19, 0x00, 0xc3, 0x0c, + + 0x01, 0x01, 0xff, 0x06, 0x30, 0x20, 0x19, 0x00, 0x83, 0x18, + + 0x01, 0x01, 0xff, 0x06, 0x34, 0x20, 0x19, 0x00, 0x03, 0x0c, + + 0x01, 0x01, 0xff, 0x06, 0xf0, 0x20, 0x19, 0x00, 0x00, 0x00, + + 0x01, 0x01, 0xff, 0x06, 0xf4, 0x20, 0x19, 0x00, 0x00, 0x11, + + 0x01, 0x01, 0xff, 0x06, 0xfc, 0x20, 0x19, 0x00, 0x00, 0x12, + + 0x01, 0x01, 0xff, 0x06, 0x04, 0x21, 0x19, 0x00, 0x00, 0x13, + + 0x01, 0x01, 0xff, 0x06, 0x0c, 0x21, 0x19, 0x00, 0x10, 0x13, + + 0x01, 0x01, 0xff, 0x06, 0x14, 0x21, 0x19, 0x00, 0x00, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x1c, 0x21, 0x19, 0x00, 0x10, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x24, 0x21, 0x19, 0x00, 0x20, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x2c, 0x21, 0x19, 0x00, 0x30, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x34, 0x21, 0x19, 0x00, 0x40, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x3c, 0x21, 0x19, 0x00, 0x50, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x44, 0x21, 0x19, 0x00, 0x41, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x4c, 0x21, 0x19, 0x00, 0x51, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x54, 0x21, 0x19, 0x00, 0x42, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x5c, 0x21, 0x19, 0x00, 0x52, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x64, 0x21, 0x19, 0x00, 0x33, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x6c, 0x21, 0x19, 0x00, 0x53, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x74, 0x21, 0x19, 0x00, 0x02, 0x11, + + 0x01, 0x01, 0xff, 0x06, 0x7c, 0x21, 0x19, 0x00, 0x02, 0x12, + + 0x01, 0x01, 0xff, 0x06, 0x84, 0x21, 0x19, 0x00, 0x12, 0x12, + + 0x01, 0x01, 0xff, 0x06, 0x8c, 0x21, 0x19, 0x00, 0x02, 0x13, + + 0x01, 0x01, 0xff, 0x06, 0x94, 0x21, 0x19, 0x00, 0x12, 0x13, + + 0x01, 0x01, 0xff, 0x06, 0x9c, 0x21, 0x19, 0x00, 0x02, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0xa4, 0x21, 0x19, 0x00, 0x12, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0xac, 0x21, 0x19, 0x00, 0x22, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0xb4, 0x21, 0x19, 0x00, 0x32, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0xbc, 0x21, 0x19, 0x00, 0x42, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0xc4, 0x21, 0x19, 0x00, 0x52, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0xcc, 0x21, 0x19, 0x00, 0x33, 0x12, + + 0x01, 0x01, 0xff, 0x06, 0xd4, 0x21, 0x19, 0x00, 0x43, 0x12, + + 0x01, 0x01, 0xff, 0x06, 0xdc, 0x21, 0x19, 0x00, 0x53, 0x12, + + 0x01, 0x01, 0xff, 0x06, 0xe4, 0x21, 0x19, 0x00, 0x53, 0x13, + + 0x01, 0x01, 0xff, 0x06, 0xec, 0x21, 0x19, 0x00, 0x53, 0x14, + + 0x01, 0x01, 0xff, 0x06, 0x36, 0x24, 0x19, 0x00, 0x00, 0x00, + + 0x01, 0x09, 0xfd, 0x08, 0x10, 0x20, 0x19, 0x00, 0x10, 0x00, 0x10, 0x00, + + 0x01, 0x09, 0xfd, 0x08, 0x12, 0x20, 0x19, 0x00, 0x00, 0x04, 0x00, 0x0f, + + // ############################################ END OF SCRIPT ! ! ! ############################################ + 0x01, 0x05, 0xff, 0x69, 0x00, 0x32, 0x19, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x60, 0x09, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, + 0x0b, 0x0f, 0xff, 0x07, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x06, + 0x06, 0x06, 0x06, 0x04, 0x00, 0x17, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xab, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, + 0x44, 0x10, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x69, 0x64, 0x32, 0x19, 0x00, 0x64, 0x26, 0x10, 0x11, 0x00, 0x01, 0x00, + 0x60, 0x04, 0xc0, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, + 0x2a, 0x0c, 0x00, 0x04, 0x18, 0x08, 0x00, 0x54, 0x09, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, + 0x00, 0x00, 0x20, 0x14, 0x20, 0x14, 0xfa, 0x03, 0x1c, 0x01, 0xc3, 0xfe, 0x27, 0xfc, 0x84, + 0x03, 0xb4, 0x01, 0x37, 0x00, 0x91, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, + 0x71, 0x75, 0x71, 0x75, 0x71, 0x75, 0x71, 0x75, 0x47, 0x08, 0xe8, 0x08, 0xbe, 0x49, 0x00, + 0x00, 0xb7, 0x9d, 0xbc, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x97, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x14, + + 0x01, 0x05, 0xff, 0x69, 0xc8, 0x32, 0x19, 0x00, 0x64, 0xe8, 0xe8, 0x01, 0x00, 0x06, 0x02, + 0x03, 0x01, 0x05, 0x00, 0xc4, 0xc2, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, + 0x03, 0x01, 0x01, 0x04, 0x05, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xc2, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0xd2, 0x00, 0xfb, 0x03, 0x9f, 0x1f, 0xe8, 0x03, 0x14, 0x12, 0xdc, 0x05, + 0x00, 0x08, 0x42, 0x04, + + 0x01, 0x05, 0xff, 0x69, 0x2c, 0x33, 0x19, 0x00, 0x64, 0x08, 0x0d, 0x45, 0x1f, 0x08, 0x19, + 0x0a, 0x0c, 0xee, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc5, 0x05, 0xc5, 0x05, 0xc5, 0x05, 0x87, 0x07, 0x85, 0x05, 0xa8, 0x08, 0x96, + 0x06, 0x13, 0x03, 0x02, 0x1f, 0x22, 0x1f, 0x52, 0x15, 0x9e, 0x11, 0x98, 0x11, 0x98, 0x11, + 0x91, 0x11, 0x90, 0x11, + + 0x01, 0x05, 0xff, 0x49, 0x90, 0x33, 0x19, 0x00, 0x44, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x1e, 0x1e, 0x19, 0x19, 0x15, 0x9d, 0x40, 0x9f, 0xcd, + 0x9c, 0xef, 0x9e, 0x73, 0x9c, 0x9a, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x47, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + + 0x01, 0x82, 0xfd, 0x14, 0x00, 0x9c, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xdc, + 0xe6, 0xf0, 0xfa, 0x04, 0x0e, 0x18, 0xff, 0x00, 0x00, + + 0x01, 0x82, 0xfd, 0x14, 0x01, 0x9c, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xd8, + 0xe2, 0xec, 0xf6, 0x00, 0x0a, 0x14, 0xff, 0x00, 0x00, + + 0x01, 0x82, 0xfd, 0x14, 0x02, 0x9c, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xd8, + 0xe2, 0xec, 0xf6, 0x00, 0x0a, 0x14, 0xff, 0x00, 0x00, + + 0x01, 0x87, 0xfd, 0x03, 0x0d, 0x0d, 0x0d, + + 0x01, 0x01, 0xff, 0x06, 0x00, 0x24, 0x19, 0x00, 0x00, 0x00, + + // + // ## For SMPS/DC2DC with trim 7 (default value) use the command below: + // ## Send_HCI_VS_Class_1p5_LDO_mode 0xFD6E, 0x1, 0x7 + // ## Wait_HCI_Command_Complete_VS_Class_1p5_LDO_mode_Event 5000, any, HCI_VS_Class_1p5_LDO_mode, 0x00 + // + // ## For VBAT with trim 7 (default value) use the command below: + // ## Send_HCI_VS_Class_1p5_LDO_mode 0xFD6E, 0x0, 0x7 + // ## Wait_HCI_Command_Complete_VS_Class_1p5_LDO_mode_Event 5000, any, HCI_VS_Class_1p5_LDO_mode, 0x00 + 0x01, 0x24, 0xfd, 0x97, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0x00, 0x01, 0xc0, 0x07, 0x00, 0x07, 0x00, 0x01, 0xc0, 0x00, 0x1c, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x03, 0x4d, 0x34, 0xdd, 0xdc, 0x77, + 0x07, 0x07, 0x01, 0xc0, 0x00, 0x00, 0x00, 0xd0, 0xd0, 0xd3, 0x77, 0x77, 0x71, 0xc7, 0x00, + 0x00, 0xd3, 0x77, 0x1c, 0x00, 0xd3, 0x70, 0x00, 0xdc, 0x73, 0x77, 0x0d, 0xc0, 0xdb, 0xf9, + 0x30, 0xdc, 0xc0, 0xdb, 0xf9, 0x20, 0x20, 0x00, 0x00, 0x5e, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x34, 0x00, 0x0d, 0x0d, 0x34, 0xd3, 0x43, 0x43, 0x40, 0x00, 0x00, 0xd0, 0xd0, + 0x34, 0xd3, 0x77, 0x77, 0x40, 0x34, 0xd3, 0x77, 0x77, 0x71, 0xc0, 0x70, 0x1c, 0x70, 0x00, + 0x00, 0x1d, 0xc0, 0x0d, 0x07, 0x77, 0x03, 0x47, 0x77, 0x01, 0xc1, 0xdd, 0xc0, 0xc4, 0x43, + 0x70, 0x40, 0x0f, 0x41, 0x34, 0x34, 0x34, 0xf4, 0x47, 0x30, 0x08, 0x0b, 0xc4, 0x2f, 0xe5, + 0x34, 0xbf, 0x98, 0x08, 0xc0, + + 0x01, 0x24, 0xfd, 0x9b, 0x00, 0x01, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x0d, 0x03, 0x43, 0x4d, 0xd3, 0x71, 0xdc, 0x70, + 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x34, 0x0d, 0x34, 0xdd, 0xdd, 0xdc, 0x71, 0xc0, 0x00, + 0x03, 0x4d, 0xdc, 0x1c, 0x03, 0x4d, 0xc0, 0x00, 0xdd, 0xcd, 0x37, 0x03, 0x70, 0xc7, 0xd3, + 0x03, 0x03, 0x03, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x54, 0x00, 0x00, 0x07, + 0x00, 0x0d, 0x00, 0x00, 0x03, 0x40, 0x00, 0x07, 0x00, 0xd3, 0x4d, 0xd0, 0xd0, 0x0d, 0x00, + 0x0d, 0x00, 0xd3, 0x43, 0x4d, 0xdd, 0xc7, 0x1c, 0x77, 0x74, 0xdc, 0x00, 0x1c, 0x1d, 0xc0, + 0x0d, 0x34, 0x00, 0x70, 0x01, 0xdd, 0x0c, 0x00, 0x1c, 0x1d, 0xd3, 0x70, 0x04, 0xd3, 0x1c, + 0x1d, 0x37, 0x11, 0xcd, 0xc7, 0x7d, 0x10, 0x30, 0xd7, 0x00, 0x40, 0xbf, 0x98, 0x0b, 0xdc, + 0x4b, 0xf9, 0x5b, 0xf9, 0xbf, 0xa0, 0x30, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x9b, 0x00, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xcd, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd0, 0x00, 0x0d, 0x00, 0x34, 0x0d, 0x0d, 0x34, 0xd3, 0x77, 0x71, 0xc7, 0x1c, + 0x00, 0x70, 0x00, 0x00, 0x03, 0x40, 0xd0, 0xd3, 0x4d, 0xdd, 0xdd, 0xc7, 0x1c, 0x00, 0x00, + 0x0d, 0x37, 0x70, 0x70, 0x0d, 0x37, 0x1c, 0x0d, 0x37, 0x03, 0x77, 0x00, 0xdf, 0x77, 0x03, + 0x70, 0xdc, 0xdc, 0x80, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x35, 0xc0, 0x00, 0x00, 0xd0, 0xd0, 0x00, 0x34, 0x00, 0x70, 0x00, 0x37, 0x07, + 0x74, 0x34, 0x0d, 0x31, 0xd3, 0x43, 0x40, 0xd0, 0xd0, 0x31, 0xc0, 0x00, 0x01, 0xc7, 0x1d, + 0xc1, 0xc0, 0x00, 0x01, 0xc7, 0x1b, 0xfa, 0x02, 0xc7, 0x71, 0xdd, 0xdd, 0xc1, 0xdc, 0x1d, + 0xc1, 0x00, 0x0c, 0xe0, 0x2c, 0x37, 0x5c, 0x74, 0x0d, 0xc3, 0x80, 0x83, 0x04, 0xc0, 0x70, + 0x02, 0x02, 0x2f, 0xed, 0x1e, 0x02, 0xcb, 0xf9, 0x40, + + 0x01, 0x24, 0xfd, 0x9b, 0x00, 0x00, 0x01, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0x1c, 0x07, 0x01, 0xc0, 0x70, 0x1c, 0x01, 0xc0, 0x1c, 0x01, 0xc0, 0x01, 0xc0, 0x00, + 0x1c, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x34, 0x00, 0x03, 0x40, 0xd0, 0xd3, 0x77, + 0x77, 0x70, 0x70, 0x1c, 0x00, 0x00, 0x03, 0x40, 0xd3, 0x4d, 0xdd, 0xdd, 0xc7, 0x01, 0xc0, + 0x03, 0x43, 0x71, 0xc0, 0x00, 0x37, 0x70, 0x0d, 0x31, 0xc3, 0x70, 0x0d, 0xc3, 0x03, 0x7d, + 0xdf, 0x00, 0xcc, 0x50, 0x00, 0x55, 0x00, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, + 0xdd, 0xdd, 0xd3, 0x43, 0x40, 0x34, 0x0d, 0x34, 0xdd, 0xd3, 0x74, 0x0d, 0x34, 0xdc, 0x4d, + 0xd3, 0x77, 0x77, 0x74, 0x34, 0x03, 0x77, 0x1c, 0x77, 0x71, 0xd3, 0x43, 0x1c, 0x07, 0x1c, + 0x00, 0x77, 0x1d, 0x0d, 0xc1, 0xc0, 0x07, 0x77, 0x1d, 0x30, 0x10, 0xc0, 0x38, 0x0b, 0x70, + 0x77, 0x43, 0x41, 0xf7, 0x70, 0x6f, 0xe5, 0x1b, 0xf4, 0x52, 0xfe, 0x5e, 0x02, 0xc1, 0xbf, + 0xb8, 0x0b, 0x20, 0x2b, 0xf8, 0x20, 0x20, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x97, 0x00, 0x01, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0x00, 0x1c, 0x00, 0x70, 0x01, 0xc0, 0x00, 0x70, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x40, 0x03, 0x40, 0xd0, 0xd3, 0x4d, 0xdd, 0xdc, + 0x71, 0xc0, 0x1c, 0x00, 0x00, 0x34, 0x03, 0x43, 0x4d, 0xdd, 0xdd, 0xdc, 0x70, 0x70, 0x00, + 0x0d, 0x37, 0x77, 0x00, 0x00, 0xdd, 0xc0, 0x03, 0x77, 0x03, 0x71, 0xbf, 0x90, 0xc3, 0x70, + 0x30, 0x0c, 0x0d, 0xcc, 0x80, 0x80, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x4f, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0xd3, 0x4d, 0x00, 0xd0, 0x00, 0x70, 0x03, 0x43, 0x74, 0xd3, 0x40, + 0xd0, 0x37, 0x71, 0xd3, 0x43, 0x4d, 0x00, 0xd0, 0xdc, 0x71, 0xd3, 0x4d, 0xc7, 0x13, 0x4d, + 0xc7, 0x34, 0x37, 0x5c, 0x77, 0x00, 0x1d, 0xd0, 0xdc, 0x07, 0x1d, 0xc0, 0x07, 0x07, 0x07, + 0x10, 0x3d, 0xd1, 0xc7, 0x40, 0xc1, 0xd7, 0x38, 0x0b, 0x2f, 0xe4, 0x1d, 0xd3, 0x07, 0x07, + 0x07, 0x20, 0x2b, 0xf9, 0x00, + + 0x01, 0x24, 0xfd, 0x97, 0x00, 0x02, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0xd0, 0x03, 0x40, 0x34, 0x0d, 0x0d, 0x0d, 0x34, 0xdd, 0x37, 0x77, 0x71, + 0xc7, 0x07, 0x00, 0x00, 0x00, 0x34, 0x34, 0x37, 0x4d, 0xdd, 0xc7, 0x1c, 0x70, 0x07, 0x34, + 0x0d, 0xdd, 0xdc, 0x00, 0x03, 0x77, 0x06, 0xfe, 0x40, 0xc7, 0x0d, 0x31, 0xf4, 0xc0, 0xdc, + 0x03, 0x00, 0xdc, 0xdc, 0x80, 0xa0, 0x20, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x01, 0xcd, 0x00, 0x00, 0xd3, 0x43, 0x41, 0xc0, 0x0d, 0x0d, 0x0d, 0x0d, 0x03, 0x40, 0x0d, + 0xdd, 0xd3, 0x74, 0xdd, 0x37, 0x40, 0x0d, 0x37, 0x1d, 0xd0, 0x34, 0x00, 0xc7, 0x38, 0x0b, + 0x07, 0x74, 0xdd, 0xc7, 0x77, 0x77, 0x01, 0x00, 0x37, 0x74, 0xd3, 0x77, 0x04, 0x0d, 0xf4, + 0x1d, 0x0d, 0xdf, 0x40, 0x01, 0xd0, 0xdc, 0xd1, 0x3d, 0x1c, 0x07, 0x74, 0xf1, 0x1b, 0xfa, + 0x02, 0x0d, 0xdf, 0x80, 0x80, + + 0x01, 0x24, 0xfd, 0x9b, 0x01, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x34, 0x00, 0x0d, 0x00, 0x00, 0x34, 0x00, 0x03, 0x40, 0x03, 0x40, 0x03, 0x40, 0x34, + 0x03, 0x40, 0x34, 0x0d, 0x03, 0x43, 0x40, 0xd3, 0x43, 0x4d, 0x37, 0x77, 0x77, 0x70, 0x70, + 0x70, 0x00, 0x00, 0x00, 0x34, 0x0d, 0x0d, 0x37, 0x4d, 0xdd, 0xdd, 0xc7, 0x07, 0x00, 0x0d, + 0x0d, 0x37, 0x70, 0x70, 0x03, 0x4d, 0xc7, 0x00, 0xd3, 0x1c, 0x0d, 0xc0, 0x37, 0x03, 0x70, + 0x37, 0x0c, 0x03, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0x07, + 0x00, 0xd0, 0x1c, 0x00, 0x0d, 0x00, 0x00, 0xd3, 0x77, 0x43, 0x40, 0x34, 0x37, 0x4d, 0x00, + 0x34, 0x03, 0x4d, 0x00, 0xd3, 0x43, 0x77, 0x77, 0x4d, 0x37, 0x71, 0xdd, 0xdc, 0x70, 0x34, + 0x71, 0xc7, 0x01, 0xc7, 0x07, 0x40, 0x00, 0xc7, 0x01, 0xd3, 0x40, 0xc0, 0x0c, 0x44, 0xdc, + 0x4d, 0xc7, 0x70, 0x1d, 0xc4, 0x00, 0x3d, 0x10, 0x6f, 0xee, 0x02, 0xf4, 0x80, 0x8e, 0xfe, + 0x20, 0x20, 0xdf, 0x80, 0x8d, 0x0b, 0xf8, 0x80, 0x90, + + 0x01, 0x24, 0xfd, 0x9b, 0x01, 0x01, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x40, 0x34, 0x00, 0xd0, 0x03, 0x40, 0x0d, 0x00, 0xd0, 0x34, 0x03, 0x40, 0xd0, 0xd0, + 0xd0, 0x34, 0xd0, 0xd0, 0xd3, 0x43, 0x4d, 0x34, 0xd3, 0x77, 0x4d, 0xc7, 0x71, 0xc7, 0x01, + 0xc0, 0x00, 0x00, 0x03, 0x43, 0x43, 0x4d, 0xd3, 0x77, 0x77, 0x1c, 0x70, 0x70, 0x00, 0xd0, + 0xd3, 0x77, 0x1c, 0x00, 0x00, 0xdd, 0xc7, 0x00, 0xd3, 0x1c, 0x37, 0x70, 0x0d, 0xc0, 0x37, + 0x00, 0x30, 0x0c, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x1c, 0x03, 0x43, 0x40, 0x00, 0x01, 0xc0, 0x00, 0xd0, 0xdd, 0xd0, 0x00, 0x00, + 0x03, 0x4d, 0x00, 0x00, 0x00, 0xd0, 0xd0, 0x0d, 0x37, 0x4d, 0xdd, 0xdd, 0xc0, 0x70, 0x1c, + 0x70, 0x07, 0x43, 0x4c, 0x1d, 0xdd, 0xc7, 0x1d, 0xc0, 0x04, 0x31, 0xc7, 0x10, 0xdc, 0x43, + 0x7d, 0x07, 0x4c, 0x74, 0x31, 0xc0, 0x1b, 0xf9, 0x70, 0x07, 0x17, 0xbf, 0x81, 0x4f, 0x40, + 0x13, 0x6f, 0xe8, 0x0b, 0xe0, 0x40, 0x00, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x97, 0x01, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xbf, 0x90, 0xd0, 0xd0, 0x34, 0x03, 0x40, 0xd0, 0x34, 0x0d, 0x03, 0x43, 0x43, 0x43, 0x43, + 0x43, 0x4d, 0x34, 0x34, 0xd3, 0x4d, 0x34, 0xdd, 0x37, 0x4d, 0xdd, 0xdd, 0xdc, 0x71, 0xc1, + 0xc0, 0x07, 0x00, 0x34, 0x03, 0x43, 0x4d, 0x37, 0x4d, 0xdd, 0xc7, 0x1c, 0x70, 0x00, 0x00, + 0xd3, 0x4d, 0xc7, 0x1c, 0x00, 0x34, 0x37, 0x07, 0x03, 0x4d, 0xc0, 0x0d, 0xdc, 0x0d, 0xdc, + 0x34, 0xdc, 0x37, 0x70, 0x80, 0x80, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x1c, 0x34, 0x00, 0x00, 0x00, 0x03, 0x40, 0x00, 0x03, 0x4c, 0x4d, 0xdd, 0x34, + 0x0d, 0x00, 0xd3, 0x40, 0x03, 0x43, 0x40, 0x0d, 0xdd, 0x34, 0x34, 0xdd, 0xd3, 0x4c, 0x70, + 0x1c, 0x77, 0x1c, 0x00, 0x4d, 0x03, 0x70, 0x1c, 0x4d, 0xdd, 0xdc, 0x00, 0x1d, 0xc0, 0x71, + 0x37, 0x00, 0x07, 0x40, 0xdd, 0xdc, 0xd7, 0x5c, 0xdc, 0xd4, 0xbf, 0x90, 0x38, 0x09, 0xfc, + 0x41, 0xd7, 0x00, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x97, 0x01, 0x00, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x34, 0x00, 0x34, 0x0d, 0x00, 0x34, 0xd3, 0x4d, + 0xdd, 0xdc, 0x71, 0xc0, 0x07, 0x0d, 0x00, 0x34, 0xd3, 0x77, 0x77, 0x1c, 0x70, 0x1c, 0x00, + 0x34, 0xd3, 0x70, 0x70, 0x0d, 0x37, 0x70, 0x0d, 0x31, 0xc3, 0x71, 0xf7, 0x73, 0x70, 0xdc, + 0x0d, 0xbf, 0x9d, 0xbf, 0x93, 0x20, 0x20, 0x00, 0x00, 0x43, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0xd0, 0x0e, 0x02, 0xc0, 0x34, 0x34, 0xd0, 0x00, 0x0d, 0x34, 0xd0, + 0x34, 0x00, 0x34, 0x0d, 0x03, 0x43, 0x43, 0x4d, 0xdd, 0xdd, 0xdd, 0xd0, 0x00, 0x0d, 0x0d, + 0xdc, 0x77, 0x74, 0xc0, 0x70, 0x01, 0xc7, 0x1d, 0xdc, 0x70, 0x1c, 0x71, 0xdd, 0x31, 0xc0, + 0x71, 0xc1, 0xc7, 0x77, 0x00, 0x01, 0x00, 0xc1, 0xdc, 0x1c, 0xd4, 0x31, 0x37, 0x07, 0x35, + 0x5b, 0xf1, 0x40, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x9b, 0x01, 0x01, 0x01, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xf4, 0x03, 0x40, 0x00, 0x0d, 0x00, 0x00, 0xd0, 0x00, 0xd0, 0x03, 0x40, 0x34, 0x0d, 0x03, + 0x43, 0x43, 0x43, 0x43, 0x4d, 0x0d, 0x34, 0xd3, 0x4d, 0xd3, 0x77, 0x77, 0x77, 0x71, 0xc7, + 0x1c, 0x07, 0x00, 0x00, 0x03, 0x43, 0x43, 0x74, 0xdd, 0xc7, 0x71, 0xc0, 0x70, 0x03, 0x43, + 0x4d, 0xdd, 0xc1, 0xc0, 0xd0, 0xdd, 0xc0, 0x00, 0xdd, 0xc0, 0x37, 0x70, 0xdd, 0xc3, 0x77, + 0x03, 0x70, 0xdc, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x39, 0x00, 0x00, 0x01, + 0xc3, 0x40, 0x00, 0xd3, 0x40, 0x01, 0xc0, 0x00, 0x34, 0x0d, 0x03, 0x40, 0x0d, 0xdc, 0x4d, + 0x34, 0x34, 0x00, 0x00, 0x0d, 0x70, 0x34, 0x37, 0x1d, 0xd0, 0x00, 0xdd, 0xdc, 0x74, 0xd3, + 0x4d, 0xdc, 0x1f, 0x40, 0x10, 0xdc, 0x74, 0x0c, 0x00, 0x4d, 0x37, 0x13, 0x71, 0xd3, 0x00, + 0x04, 0x30, 0xd1, 0x03, 0xd0, 0x70, 0x4c, 0x03, 0x44, 0xbf, 0x92, 0x02, 0x0c, 0xf8, 0x08, + 0xc7, 0xe0, 0x23, 0x20, 0x2f, 0x70, 0x00, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x93, 0x01, 0x02, 0x01, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xf4, 0x34, 0x03, 0x40, 0x03, 0x40, 0x34, 0x03, 0x40, 0xd0, 0x34, 0x34, 0x34, 0x34, 0xd0, + 0xd3, 0x4d, 0x37, 0x4d, 0x37, 0x4d, 0xdd, 0x37, 0x77, 0x77, 0x77, 0x1d, 0xc7, 0x1c, 0x70, + 0x70, 0x70, 0x00, 0x00, 0x00, 0x03, 0x43, 0x4d, 0xdd, 0xdc, 0x71, 0xc0, 0x1f, 0x40, 0x34, + 0xdd, 0xc7, 0x1c, 0x00, 0xd3, 0x77, 0x1c, 0x0d, 0x37, 0x70, 0xd3, 0x70, 0x0d, 0xdc, 0x0d, + 0xdc, 0xd3, 0x00, 0x50, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x1c, + 0x00, 0x34, 0x0d, 0x0d, 0x37, 0x4d, 0x1c, 0x00, 0x00, 0x0d, 0x00, 0x34, 0x03, 0x43, 0x71, + 0xc7, 0x1d, 0x34, 0x0d, 0x0d, 0x00, 0xd3, 0x4d, 0x03, 0x40, 0xc7, 0x01, 0xd3, 0x43, 0x4d, + 0xdc, 0x74, 0xdc, 0x40, 0x31, 0xdd, 0xc7, 0x77, 0x77, 0x07, 0x74, 0x30, 0xe0, 0x2d, 0x03, + 0x31, 0x04, 0xdc, 0x74, 0xf1, 0x4c, 0x34, 0x70, 0x5f, 0x06, 0xfe, 0x20, 0x20, 0xc0, 0x40, + 0x00, + + 0x01, 0x24, 0xfd, 0x9b, 0x02, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xbf, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x00, + 0x00, 0x00, 0x00, 0xd0, 0x00, 0x03, 0x40, 0x0d, 0x03, 0x4d, 0x34, 0xdd, 0xdd, 0xc7, 0x07, + 0x01, 0xc0, 0x00, 0x00, 0x00, 0x34, 0x03, 0x43, 0x4d, 0x34, 0xdd, 0xdd, 0xdc, 0x71, 0xc0, + 0x00, 0x03, 0x4d, 0xdc, 0x70, 0x00, 0x0d, 0xdc, 0x00, 0x34, 0xc0, 0x0d, 0xc0, 0x31, 0xbf, + 0x93, 0x00, 0xc0, 0xc3, 0x73, 0x60, 0x20, 0x00, 0x00, 0x56, 0x00, 0x56, 0x00, 0x00, 0x07, + 0x00, 0x34, 0xd0, 0x0d, 0x00, 0xd3, 0x43, 0x40, 0x00, 0x34, 0xd0, 0xd0, 0x0d, 0x00, 0x00, + 0xdd, 0xd3, 0x74, 0xdd, 0x37, 0x71, 0xc4, 0xdc, 0x71, 0xc0, 0x07, 0x01, 0xbf, 0x90, 0x00, + 0x00, 0x1c, 0x1c, 0x71, 0xc0, 0x00, 0x01, 0xc1, 0x37, 0x71, 0xdd, 0xc4, 0x0c, 0x77, 0x10, + 0x37, 0x80, 0xb3, 0x1c, 0x43, 0x74, 0x34, 0x0d, 0x13, 0xdd, 0x7c, 0x01, 0x0b, 0xfa, 0x02, + 0x37, 0x4b, 0xf9, 0x4d, 0xbf, 0x86, 0x02, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x9f, 0x02, 0x01, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xbf, 0x90, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x34, 0x00, 0x03, + 0x40, 0x00, 0xd0, 0x03, 0x40, 0x34, 0x0d, 0x03, 0x4d, 0x34, 0xdd, 0xdd, 0xdc, 0x71, 0xc0, + 0x07, 0x00, 0x00, 0x34, 0x00, 0xd0, 0x34, 0xd3, 0x4d, 0x37, 0x77, 0x71, 0xc7, 0x07, 0x00, + 0x00, 0xd0, 0xdd, 0xc7, 0x07, 0x0d, 0x0d, 0xdc, 0x00, 0x37, 0x70, 0x0d, 0xc0, 0x0c, 0x00, + 0xdc, 0x37, 0x37, 0x7d, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x00, 0x0d, 0x00, 0x03, 0x43, 0x4d, 0x00, 0xd0, 0x00, 0x00, 0x03, 0x43, 0x74, 0x0d, 0x0d, + 0xdd, 0xdd, 0x00, 0xd0, 0x34, 0x34, 0xdd, 0xdd, 0x37, 0x00, 0x1c, 0x74, 0xdc, 0xd0, 0x77, + 0x1c, 0x00, 0x70, 0x00, 0x1c, 0x77, 0x40, 0x37, 0x00, 0x01, 0x1c, 0x0c, 0x1c, 0x04, 0xc7, + 0x07, 0x71, 0x13, 0x0d, 0x03, 0x70, 0x20, 0x2c, 0xbf, 0x9e, 0x02, 0x3d, 0x5e, 0xfe, 0x54, + 0xbf, 0x80, 0x48, 0x0a, 0xfe, 0xbf, 0xb8, 0x0f, 0x1f, 0x80, 0xd0, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x9b, 0x02, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xbf, 0x90, 0x00, 0xd0, 0x00, 0x00, 0xd0, 0x00, 0x0d, 0x00, 0x0d, 0x00, 0x0d, 0x00, 0xd0, + 0x03, 0x40, 0xd0, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x37, 0x4d, 0xdd, 0xdd, 0xc7, 0x07, 0x00, + 0x70, 0x00, 0x34, 0x00, 0xd0, 0x34, 0xd0, 0xdd, 0x37, 0x77, 0x77, 0x1d, 0xc1, 0xc0, 0x00, + 0x0d, 0x0d, 0xdd, 0xdc, 0x00, 0x00, 0xd3, 0x1c, 0x00, 0x37, 0x1c, 0x34, 0xc0, 0x0c, 0x70, + 0x37, 0x03, 0x70, 0xdd, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x37, 0x4d, 0x0d, 0x37, 0x40, 0x00, 0x00, 0x03, 0x40, 0x0d, 0x00, + 0x0d, 0x31, 0xdd, 0x0d, 0x03, 0x43, 0x4d, 0x37, 0x07, 0x04, 0xc7, 0x07, 0x1c, 0x70, 0x70, + 0x01, 0xd3, 0x70, 0x1c, 0x70, 0x73, 0x41, 0xd0, 0xd0, 0x0c, 0x70, 0x04, 0x0c, 0x1c, 0x47, + 0xc0, 0x04, 0x03, 0x04, 0x30, 0x1d, 0x0c, 0x40, 0x1c, 0x7c, 0x38, 0x08, 0x2f, 0xe8, 0x09, + 0xbf, 0x8d, 0x80, 0xbb, 0xfa, 0x02, 0xc0, 0x20, 0x20, + + 0x01, 0x24, 0xfd, 0x97, 0x02, 0x00, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0x07, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x40, 0x03, 0x40, 0xd0, 0xd3, 0x4d, 0xdd, 0xc7, + 0x70, 0x1c, 0x00, 0x00, 0x03, 0x40, 0xd0, 0xd3, 0x4d, 0xdd, 0xdd, 0xc7, 0x1c, 0x1c, 0x00, + 0x34, 0x37, 0x77, 0x00, 0x00, 0x37, 0x70, 0x00, 0xdc, 0x73, 0x4c, 0x00, 0xc0, 0x30, 0x0c, + 0x0c, 0x0c, 0x0c, 0x50, 0x00, 0x51, 0x00, 0x51, 0x00, 0x00, 0x00, 0x1c, 0x34, 0x34, 0x0d, + 0x00, 0xd0, 0x0d, 0x03, 0x40, 0x00, 0x34, 0xdd, 0xdd, 0x34, 0x34, 0xd3, 0x43, 0x4d, 0x37, + 0x13, 0x40, 0x00, 0x03, 0x43, 0x4d, 0xdd, 0xc0, 0x6f, 0xe4, 0xd0, 0x00, 0x1d, 0xdc, 0x1c, + 0x1c, 0x01, 0xd3, 0x00, 0x1c, 0x1c, 0x71, 0xdd, 0xd3, 0x40, 0xc7, 0x04, 0xc3, 0x50, 0x00, + 0x00, 0xc1, 0x03, 0x00, 0x01, 0x80, 0xaf, 0xec, 0x5b, 0xfb, 0x80, 0x9f, 0x04, 0x31, 0x1f, + 0x46, 0xfe, 0x40, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x9b, 0x02, 0x01, 0x01, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, + 0x00, 0x0d, 0x00, 0x00, 0xd0, 0x03, 0x40, 0xd0, 0x34, 0xd3, 0x4d, 0x37, 0x77, 0x1c, 0x70, + 0x70, 0x00, 0x00, 0x0d, 0x03, 0x43, 0x4d, 0x34, 0xdd, 0xdd, 0xc7, 0x1c, 0x70, 0x07, 0xd0, + 0x0d, 0x37, 0x1c, 0x1c, 0x34, 0x37, 0x70, 0x00, 0xdd, 0xc0, 0xdd, 0xc0, 0xc7, 0xdd, 0xc0, + 0xc0, 0x37, 0x30, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x40, 0x00, 0x00, 0x03, 0x43, 0x4d, 0xd3, 0x40, 0x00, 0xd0, 0x03, 0x43, 0x43, + 0x77, 0x00, 0x70, 0x77, 0x40, 0x00, 0xd3, 0x77, 0x70, 0x07, 0x4d, 0x0d, 0xdc, 0x77, 0x1c, + 0x1c, 0x1c, 0x07, 0x77, 0x70, 0x07, 0x1d, 0xdd, 0xdc, 0x43, 0x40, 0xdd, 0xc1, 0xd0, 0x0c, + 0x1c, 0x1d, 0xd3, 0x04, 0x30, 0x1d, 0xc7, 0x80, 0x8c, 0x30, 0xd2, 0x02, 0xf1, 0x34, 0x0c, + 0x80, 0xef, 0xed, 0x6f, 0xd7, 0x50, 0x00, 0x00, 0x00, + + 0x01, 0x24, 0xfd, 0x9f, 0x02, 0x02, 0x01, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x0d, 0x00, 0x0d, + 0x00, 0xd0, 0x0d, 0x0d, 0x03, 0x43, 0x4d, 0x34, 0xd3, 0x74, 0xdd, 0xdd, 0xdc, 0x71, 0xc1, + 0xc0, 0x00, 0x00, 0x00, 0xd0, 0xd0, 0xdd, 0x37, 0x77, 0x1d, 0xc7, 0x07, 0x00, 0x00, 0x00, + 0xd3, 0x77, 0x1c, 0x00, 0x0d, 0x37, 0x70, 0x03, 0x4c, 0x70, 0xdd, 0xc0, 0xdc, 0x7d, 0x30, + 0x0d, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x34, 0x00, 0xd3, 0x4d, 0x34, 0x34, 0x0d, 0x00, 0xd0, 0x34, 0xd3, 0x40, 0x34, + 0x31, 0xd3, 0x40, 0x37, 0x71, 0xc7, 0x74, 0x00, 0x00, 0x0d, 0x34, 0xd3, 0x77, 0x77, 0x74, + 0x37, 0x07, 0x1c, 0x07, 0x1d, 0xc0, 0x13, 0x4d, 0x34, 0xd3, 0x40, 0xc6, 0xfe, 0x47, 0x71, + 0xd3, 0x70, 0x34, 0x41, 0xf0, 0x1e, 0x02, 0xf6, 0xfe, 0x44, 0x0d, 0xc1, 0xd6, 0xfe, 0x1b, + 0xf9, 0x07, 0x4c, 0xe0, 0x23, 0x78, 0x0a, 0xfd, 0x20, 0x30, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x65, 0xd4, 0x33, 0x19, 0x00, 0x60, 0x00, 0x00, 0x0b, 0x00, 0x0b, 0x00, + 0x0b, 0x00, 0x0b, 0x00, 0x0b, 0x00, 0x0b, 0x00, 0x0b, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x1c, + 0x00, 0x2d, 0x00, 0x48, 0x00, 0x72, 0x00, 0xb5, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x0e, 0x00, + 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x17, + 0x00, 0x24, 0x00, 0x39, 0x00, 0x5a, 0x00, 0x90, 0x00, 0xe4, 0x00, 0x6a, 0x01, 0x00, 0x00, + 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, + 0x00, 0x17, 0x00, 0x24, 0x00, 0x39, 0x00, 0x5a, 0x00, 0x90, 0x00, 0xe4, 0x00, 0x6a, 0x01, + + + 0x01, 0x76, 0xfd, 0x31, 0x01, 0x21, 0x54, 0x00, 0x00, 0x61, 0x57, 0x00, 0x00, 0x14, 0x05, + 0x0a, 0x05, 0x00, 0x07, 0x06, 0x0a, 0x04, 0x05, 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x80, 0xfd, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + + 0x01, 0x80, 0xfd, 0x06, 0x3c, 0xf0, 0x5f, 0x00, 0x00, 0x00, + + // + // + 0x01, 0xd1, 0xff, 0x02, 0x00, 0x00, + + 0x01, 0x1c, 0xfd, 0x14, 0xff, 0x88, 0x13, 0x00, 0x00, 0xd0, 0x07, 0x00, 0x00, 0xff, 0xff, + 0x04, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x38, 0xfe, 0x00, + + // + // ################################################################# + // ## START of Panasonic Adds-On + // ################################################################# + // + // ## Enable fast clock XTAL support + 0x01, 0x1c, 0xfd, 0x14, 0x01, 0x88, 0x13, 0x00, 0x00, 0xd0, 0x07, 0x00, 0x00, 0xff, 0xff, + 0x04, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, + + // + // ## Enable LPS + 0x01, 0x2e, 0xfd, 0x0d, 0x01, 0x58, 0x02, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + + // + // ## Enable eHCILL + 0x01, 0x2b, 0xfd, 0x05, 0x10, 0x00, 0x50, 0x00, 0x96, + + // + 0x01, 0x0c, 0xfd, 0x09, 0x01, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0x64, 0x00, + + // + // ################################################################# + // ## END of Panasonic Adds-On + // ################################################################# +}; + +// with eHCILL +const uint32_t cc256x_init_script_size = 41239; + +// without eHCILL +//const uint32_t cc256x_init_script_size = 41217; + diff --git a/metawatch/bluetooth_init_cc2564_2.8.bts b/metawatch/bluetooth_init_cc2564_2.8.bts new file mode 120000 index 0000000..eaabc8d --- /dev/null +++ b/metawatch/bluetooth_init_cc2564_2.8.bts @@ -0,0 +1 @@ +CC2564_BT_BLE_SP_BTS/bluetooth_init_cc2564_2.8.bts \ No newline at end of file diff --git a/metawatch/bluetooth_init_cc2564_2.8.c b/metawatch/bluetooth_init_cc2564_2.8.c new file mode 100644 index 0000000..ad90ff3 --- /dev/null +++ b/metawatch/bluetooth_init_cc2564_2.8.c @@ -0,0 +1,1489 @@ +// init script created from bluetooth_init_cc2564_2.8.bts +#include + +const char *cc256x_version = "CC2564 v2.8"; + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((section (".fartext"))) +#endif +const uint8_t cc256x_init_script[] = { + + // #-------------------------------------------------------------------------------- + // # Description : Orca 5500 L ROM Initialization Script + // # + // # Compatibility: Orca, 6.0.15 ROM + // # + // # Last Updated: 20-Dec-2012 14:33:32.90 + // # + // # Version : TI_P6_15.77 + // # + // # + // # + // # + // # Notes : Use this script on Orca 5500 L, 6.0.15 ROM device only (FW v6.0.15) + // #-------------------------------------------------------------------------------- + // + // ################################################################# + // ## START of CC256x Add-On + // ################################################################# + // + // ## Change UART baudrate + // + // ################################################################# + // ## END of CC256x Add-On + // ################################################################# + // + // + 0x01, 0x37, 0xfe, 0x02, 0x06, 0x0f, + + // + // + 0x01, 0x05, 0xff, 0xff, 0xa0, 0x62, 0x08, 0x00, 0xfa, 0x06, 0x0f, 0x3d, 0x4d, 0xfb, 0x01, + 0x00, 0x1f, 0x00, 0x00, 0x05, 0x00, 0x05, 0xc0, 0x03, 0xc0, 0x1e, 0x38, 0x05, 0x00, 0x05, + 0xc0, 0x01, 0x40, 0x1f, 0x30, 0x05, 0x00, 0x04, 0xc0, 0x03, 0xc0, 0x1e, 0x38, 0x3d, 0x01, + 0x04, 0xc0, 0x03, 0xc0, 0x1e, 0x38, 0x76, 0x02, 0x04, 0xc0, 0x03, 0xc0, 0x1e, 0x38, 0xae, + 0x03, 0x04, 0xc0, 0x03, 0xc0, 0x1e, 0x38, 0xae, 0x0b, 0x01, 0x00, 0x34, 0x30, 0x41, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x12, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x31, 0x9d, + 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xb5, 0x85, 0xb0, + 0x06, 0x06, 0x36, 0x0e, 0x6c, 0x46, 0x26, 0x70, 0x03, 0x21, 0x08, 0x1a, 0x60, 0x70, 0x02, + 0xa8, 0x04, 0xa9, 0x03, 0xaa, 0x01, 0xab, 0x01, 0x25, 0xae, 0x46, 0x0d, 0x4f, 0xfe, 0x44, + 0x38, 0x47, 0x0d, 0x48, 0x2f, 0x30, 0xa1, 0x89, 0x81, 0x42, 0x03, 0xdb, 0xa0, 0x89, 0xff, + 0x38, 0x91, 0x38, 0x01, 0xe0, 0xa0, 0x89, 0xc8, 0x30, 0xa0, 0x80, 0x6b, 0x46, 0x1e, 0x70, + 0x02, 0x98, 0x99, 0x88, 0x04, 0x9a, 0x9b, 0x89, 0xae, 0x46, 0x03, 0x4c, 0xfe, 0x44, 0x20, + 0x47, 0x05, 0xb0, 0xf0, 0xbd, 0xa5, 0xc4, 0x03, 0x00, 0x51, 0xc2, 0x03, 0x00, 0x43, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0x9a, 0x63, 0x08, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe2, 0x48, 0x00, 0x78, 0x02, 0x28, 0x0f, 0xd1, 0xe1, 0x48, 0x41, 0x88, 0x09, 0x09, 0x0b, + 0xd2, 0x41, 0x88, 0x49, 0x08, 0x08, 0xd2, 0x42, 0x88, 0x10, 0x21, 0x11, 0x43, 0x41, 0x80, + 0x02, 0x88, 0x01, 0x21, 0x89, 0x03, 0x11, 0x43, 0x01, 0x80, 0xf7, 0x46, 0xd8, 0x48, 0x00, + 0x78, 0x02, 0x28, 0x0f, 0xd1, 0xd7, 0x48, 0x41, 0x88, 0x09, 0x09, 0x0b, 0xd2, 0x41, 0x88, + 0x49, 0x08, 0x08, 0xd2, 0x10, 0x22, 0x41, 0x88, 0x91, 0x43, 0x41, 0x80, 0x01, 0x22, 0x92, + 0x03, 0x01, 0x88, 0x91, 0x43, 0x01, 0x80, 0xf7, 0x46, 0x10, 0xb5, 0x03, 0x7e, 0xe2, 0x49, + 0xe3, 0x4a, 0xe4, 0x48, 0x00, 0x2b, 0x09, 0xd1, 0x94, 0x38, 0x82, 0x18, 0x04, 0x20, 0x00, + 0x23, 0x01, 0x24, 0xa6, 0x46, 0xdf, 0x4c, 0xfe, 0x44, 0x20, 0x47, 0x10, 0xbd, 0x82, 0x18, + 0x04, 0x20, 0x00, 0x23, 0x01, 0x24, 0xa6, 0x46, 0xda, 0x4c, 0xfe, 0x44, 0x20, 0x47, 0x10, + 0xbd, 0xf0, 0xb5, 0x04, 0x69, 0xc7, 0x26, 0x30, 0x5d, 0x04, 0x28, 0x24, 0xd1, 0xc8, 0x25, + 0x28, 0x5d, 0x18, 0x28, 0x03, 0xd1, 0x6a, 0x20, 0x00, 0x5d, 0x04, 0x28, 0x16, 0xd0, 0x28, + 0x5d, 0x19, 0x28, 0x19, 0xd1, 0xce, 0x20, 0x00, 0x5d, 0x16, 0x28, 0x15, 0xd1, 0xb5, 0x27, + 0x38, 0x5d, 0x01, 0x21, + + 0x01, 0x05, 0xff, 0xff, 0x94, 0x64, 0x08, 0x00, 0xfa, 0x8e, 0x46, 0xce, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0x00, 0x22, 0x38, 0x5d, 0x60, 0x21, 0x41, 0x43, 0xcb, 0x48, 0x42, 0x54, 0x32, + 0x55, 0x2a, 0x55, 0xf0, 0xbd, 0x20, 0x1c, 0x01, 0x21, 0x8e, 0x46, 0xc8, 0x49, 0xfe, 0x44, + 0x08, 0x47, 0xf0, 0xbd, 0xf0, 0xb5, 0x86, 0xb0, 0x07, 0x1c, 0xbe, 0x69, 0xb9, 0x8a, 0x03, + 0x91, 0x00, 0x20, 0x6a, 0x46, 0x50, 0x71, 0x6c, 0x46, 0x20, 0x71, 0xe8, 0x48, 0x44, 0x38, + 0x08, 0x1a, 0x01, 0x28, 0x0b, 0xd9, 0x05, 0x38, 0x09, 0xd0, 0x68, 0x38, 0x01, 0x28, 0x06, + 0xd9, 0x04, 0x38, 0x04, 0xd0, 0x2f, 0x38, 0x02, 0xd0, 0x24, 0x38, 0x02, 0x28, 0x0b, 0xd8, + 0x00, 0x97, 0x03, 0x98, 0x31, 0x1c, 0x52, 0x1d, 0x01, 0xab, 0x01, 0x25, 0xae, 0x46, 0xe5, + 0x4d, 0xfe, 0x44, 0x28, 0x47, 0x00, 0x28, 0x5d, 0xd1, 0x03, 0x98, 0xd9, 0x49, 0x41, 0x1a, + 0xe2, 0x48, 0x3a, 0xd0, 0x59, 0x39, 0x46, 0xd0, 0x1c, 0x39, 0x2d, 0xd0, 0x2c, 0x39, 0x52, + 0xd1, 0x30, 0x1c, 0x00, 0x21, 0x01, 0x25, 0xae, 0x46, 0xef, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x04, 0x90, 0xae, 0x46, 0xed, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x28, 0x04, 0xd1, 0x02, + 0x20, 0x6a, 0x46, 0x10, 0x71, 0x7f, 0x20, 0x02, 0xe0, 0x00, 0x78, 0xe9, 0x49, 0x08, 0x56, + 0x05, 0x90, 0x02, 0xa8, 0x04, 0x99, 0xae, 0x46, 0xe7, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x05, + 0x99, 0x01, 0x70, 0x03, 0x20, 0x6a, 0x46, 0x10, 0x70, 0x30, 0x1c, 0xc2, 0x49, 0xa1, 0x31, + 0x12, 0x79, 0x02, 0xab, 0xae, 0x46, 0xe1, 0x4d, 0xfe, 0x44, 0x28, 0x47, 0x26, 0xe0, 0x0e, + 0x21, 0x01, 0x22, 0x96, 0x46, 0xde, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x01, 0x28, 0x08, 0xd0, + 0x1d, 0xe0, 0x0d, 0x21, + + 0x01, 0x05, 0xff, 0xff, 0x8e, 0x65, 0x08, 0x00, 0xfa, 0x01, 0x22, 0x96, 0x46, 0xda, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x01, 0x28, 0x15, 0xd1, 0x0c, 0x21, 0x68, 0x46, 0x01, 0x71, 0x01, + 0x21, 0x41, 0x71, 0x13, 0xe0, 0xec, 0x48, 0xf1, 0x7a, 0x01, 0x70, 0x31, 0x7b, 0x41, 0x70, + 0x71, 0x7b, 0x81, 0x70, 0xb1, 0x7b, 0xc1, 0x70, 0x01, 0x20, 0x6a, 0x46, 0x50, 0x71, 0xe7, + 0x48, 0x9e, 0x30, 0x38, 0x62, 0x03, 0xe0, 0x6a, 0x46, 0x50, 0x79, 0x01, 0x28, 0x0b, 0xd1, + 0x30, 0x1c, 0x03, 0x99, 0x6a, 0x46, 0x12, 0x79, 0x01, 0x23, 0x9e, 0x46, 0xe1, 0x4b, 0xfe, + 0x44, 0x18, 0x47, 0xdf, 0x48, 0x9e, 0x30, 0x38, 0x62, 0x06, 0xb0, 0xf0, 0xbd, 0xf8, 0xb5, + 0x06, 0x1c, 0xb5, 0x69, 0xb2, 0x8a, 0xdc, 0x48, 0x01, 0x1c, 0x11, 0x39, 0x52, 0x1a, 0x65, + 0xd0, 0x12, 0x1a, 0xda, 0x49, 0x22, 0xd0, 0x07, 0x3a, 0x00, 0xd0, 0x8d, 0xe0, 0x0e, 0x20, + 0x40, 0x19, 0x06, 0x22, 0xaa, 0x80, 0x08, 0x22, 0x6a, 0x80, 0x09, 0x78, 0x02, 0x29, 0x0c, + 0xd1, 0xd4, 0x49, 0x01, 0x24, 0xa6, 0x46, 0xd4, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x21, + 0xa6, 0x46, 0xd1, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x22, 0x00, 0xe0, 0x0c, 0x22, 0x28, + 0x1c, 0x87, 0x21, 0x89, 0x00, 0x01, 0x23, 0x9e, 0x46, 0xcd, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x6a, 0xe0, 0x08, 0x78, 0x02, 0x28, 0x33, 0xd1, 0x0b, 0x20, 0x40, 0x19, 0x01, 0x24, 0xa6, + 0x46, 0xc8, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x90, 0xa6, 0x46, 0xc7, 0x49, 0xfe, 0x44, + 0x08, 0x47, 0x00, 0x06, 0x00, 0x0e, 0xa6, 0x46, 0xc5, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x07, + 0x1c, 0x0e, 0x20, 0x40, 0x19, 0x00, 0x99, 0xa6, 0x46, 0x9d, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x06, 0x21, 0xa9, 0x80, + + 0x01, 0x05, 0xff, 0xff, 0x88, 0x66, 0x08, 0x00, 0xfa, 0x07, 0x21, 0x69, 0x80, 0x00, 0x2f, + 0x0b, 0xd0, 0x00, 0x99, 0xc9, 0x0a, 0x08, 0xd3, 0x3a, 0x21, 0xc9, 0x19, 0x05, 0x22, 0xa6, + 0x46, 0xba, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x00, 0x22, 0x08, 0xe0, 0x00, 0x21, 0x05, 0x22, + 0xa6, 0x46, 0xb7, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x02, 0x22, 0x00, 0xe0, 0x0c, 0x22, 0x28, + 0x1c, 0xb4, 0x49, 0x01, 0x23, 0x9e, 0x46, 0xb4, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x2a, 0xe0, + 0x2f, 0x1c, 0x06, 0x20, 0xa8, 0x80, 0x0e, 0x20, 0x40, 0x19, 0x40, 0x21, 0x01, 0x24, 0xa6, + 0x46, 0xaf, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xae, 0x48, 0x01, 0x1c, 0xcf, 0x22, 0x0a, 0x72, + 0x08, 0x31, 0x61, 0x22, 0x0a, 0x74, 0x19, 0x21, 0x02, 0x78, 0xba, 0x73, 0x01, 0x37, 0x01, + 0x30, 0x01, 0x39, 0xf9, 0xd1, 0x04, 0x20, 0xec, 0x49, 0x0a, 0x78, 0xba, 0x73, 0x01, 0x37, + 0x01, 0x31, 0x01, 0x38, 0xf9, 0xd1, 0x40, 0x20, 0x68, 0x80, 0x28, 0x1c, 0x81, 0x21, 0x49, + 0x00, 0x00, 0x22, 0xa6, 0x46, 0x97, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xe2, 0x48, 0xfa, 0x30, + 0x30, 0x62, 0xf8, 0xbd, 0x30, 0xb5, 0x05, 0x1c, 0xe1, 0x48, 0x00, 0x78, 0x00, 0x28, 0x17, + 0xd1, 0x01, 0x24, 0xa6, 0x46, 0xdf, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x00, 0x28, 0x0b, 0xd1, + 0xa6, 0x46, 0xdd, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x01, 0x28, 0x05, 0xd0, 0xa6, 0x46, 0xdb, + 0x48, 0xfe, 0x44, 0x00, 0x47, 0x01, 0x28, 0x04, 0xd1, 0x00, 0x20, 0x28, 0x60, 0xd9, 0x48, + 0x52, 0x30, 0x28, 0x62, 0x30, 0xbd, 0xc0, 0x46, 0xe8, 0x57, 0x08, 0x00, 0x60, 0x7a, 0x1a, + 0x00, 0x70, 0xb5, 0xd5, 0x49, 0x80, 0x8a, 0x88, 0x42, 0x20, 0xd1, 0xd4, 0x4b, 0xd4, 0x4a, + 0x00, 0x21, 0x40, 0x20, + + 0x01, 0x05, 0xff, 0xff, 0x82, 0x67, 0x08, 0x00, 0xfa, 0x80, 0x5c, 0x00, 0x28, 0x0e, 0xd0, + 0x18, 0x78, 0xd2, 0x4e, 0x8c, 0x00, 0xd2, 0x4d, 0x2c, 0x19, 0x25, 0x6a, 0xb5, 0x42, 0x0b, + 0xd8, 0x64, 0x68, 0xb4, 0x42, 0x08, 0xd8, 0x01, 0x24, 0x8c, 0x40, 0xa0, 0x43, 0x18, 0x70, + 0xa8, 0x32, 0x01, 0x31, 0x07, 0x29, 0xe8, 0xdb, 0x70, 0xbd, 0x0a, 0x06, 0x12, 0x0e, 0x01, + 0x21, 0x91, 0x40, 0x01, 0x43, 0x19, 0x70, 0x70, 0xbd, 0xc0, 0x46, 0xf1, 0x70, 0x08, 0x00, + 0xc9, 0x98, 0x00, 0x00, 0x33, 0x70, 0x08, 0x00, 0xd3, 0x03, 0x00, 0x00, 0xc9, 0xa2, 0x00, + 0x00, 0x76, 0xa0, 0x1b, 0x00, 0x6d, 0x97, 0x00, 0x00, 0x70, 0xb5, 0x06, 0x1c, 0xb5, 0x69, + 0x28, 0x88, 0x00, 0x0a, 0x01, 0x02, 0x35, 0x20, 0x00, 0x02, 0x08, 0x1a, 0x23, 0xd0, 0x09, + 0x21, 0x49, 0x02, 0x40, 0x1a, 0x3c, 0xd1, 0xe8, 0x48, 0x00, 0x68, 0x00, 0x28, 0x0e, 0xd1, + 0xe8, 0x88, 0x00, 0x04, 0xa9, 0x88, 0x08, 0x43, 0x01, 0x24, 0xa6, 0x46, 0x54, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0x28, 0x1c, 0xa6, 0x46, 0xe2, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x24, 0xe0, + 0x7d, 0x20, 0xc0, 0x00, 0x01, 0x24, 0xa6, 0x46, 0xdf, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x28, + 0x1c, 0xa6, 0x46, 0xe9, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x17, 0xe0, 0xe8, 0x88, 0x11, 0x21, + 0x49, 0x01, 0x41, 0x43, 0xe7, 0x48, 0x40, 0x18, 0x3b, 0x21, 0x0a, 0x5c, 0x3c, 0x21, 0x09, + 0x5c, 0x11, 0x43, 0x05, 0xd1, 0x00, 0x21, 0x01, 0x22, 0x96, 0x46, 0xe3, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0x28, 0x1c, 0x01, 0x21, 0x8e, 0x46, 0xcf, 0x49, 0xfe, 0x44, 0x08, 0x47, 0xdc, + 0x49, 0x05, 0x20, 0x00, 0x02, 0x40, 0x18, 0x30, 0x62, 0x70, 0xbd, 0x5b, 0xfd, 0x00, 0x00, + 0x10, 0xb5, 0x04, 0x1c, + + 0x01, 0x05, 0xff, 0xff, 0x7c, 0x68, 0x08, 0x00, 0xfa, 0xe9, 0x48, 0x00, 0x78, 0x01, 0x28, + 0x08, 0xd1, 0x60, 0x69, 0x01, 0x21, 0x8e, 0x46, 0xc5, 0x49, 0xfe, 0x44, 0x08, 0x47, 0xe5, + 0x48, 0x1a, 0x30, 0x20, 0x62, 0x10, 0xbd, 0xf3, 0x06, 0x18, 0x00, 0xc0, 0x61, 0x1a, 0x00, + 0x30, 0xb5, 0x04, 0x1c, 0xa1, 0x69, 0x00, 0x29, 0x1c, 0xd0, 0x20, 0x69, 0x02, 0x78, 0xff, + 0x2a, 0x18, 0xd0, 0x8a, 0x88, 0x89, 0x18, 0x08, 0x22, 0xca, 0x42, 0x13, 0xd0, 0x39, 0x22, + 0x12, 0x5c, 0x0a, 0x2a, 0x0f, 0xd1, 0x09, 0x7a, 0x4a, 0x08, 0x0f, 0x2a, 0x0b, 0xd1, 0xc9, + 0x07, 0xc9, 0x0f, 0x0f, 0x22, 0x2a, 0x23, 0x01, 0x25, 0xae, 0x46, 0xdd, 0x4d, 0xfe, 0x44, + 0x28, 0x47, 0xc1, 0x48, 0xf0, 0x30, 0x20, 0x62, 0x30, 0xbd, 0xc0, 0x46, 0xd1, 0x2b, 0x00, + 0x00, 0x65, 0x8b, 0x01, 0x00, 0x50, 0x21, 0x08, 0x00, 0x69, 0x2c, 0x00, 0x00, 0x0d, 0x78, + 0x05, 0x00, 0x2f, 0x4a, 0x05, 0x00, 0x70, 0xb5, 0x85, 0xb0, 0x05, 0x1c, 0x68, 0x69, 0xec, + 0x4e, 0x01, 0x24, 0x34, 0x70, 0x01, 0x7a, 0x89, 0x06, 0x09, 0x0e, 0xea, 0x4a, 0x52, 0x58, + 0x69, 0x46, 0xa6, 0x46, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x20, 0x30, 0x70, 0x68, 0x46, 0x01, + 0x7c, 0x6e, 0x46, 0x72, 0x7c, 0x14, 0x20, 0xa6, 0x46, 0xe4, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0x68, 0x46, 0x01, 0x7c, 0x06, 0x29, 0x04, 0xd0, 0xa6, 0x46, 0xe1, 0x49, 0xfe, 0x44, 0x08, + 0x47, 0x04, 0xe0, 0xe0, 0x4a, 0x34, 0x21, 0x88, 0x5c, 0x01, 0x30, 0x88, 0x54, 0xdf, 0x48, + 0x4e, 0x30, 0x28, 0x62, 0x05, 0xb0, 0x70, 0xbd, 0x68, 0x63, 0x08, 0x00, 0x81, 0x60, 0x00, + 0x00, 0x99, 0x77, 0x05, 0x00, 0x13, 0x10, 0x00, 0x00, 0x41, 0x10, 0x08, 0x00, 0xff, 0xff, + 0xff, 0x1f, 0x53, 0x2c, + + 0x01, 0x05, 0xff, 0xff, 0x76, 0x69, 0x08, 0x00, 0xfa, 0x00, 0x00, 0xc1, 0x50, 0x02, 0x00, + 0x73, 0x2c, 0x00, 0x00, 0x71, 0x8b, 0x04, 0x00, 0x9b, 0x8b, 0x04, 0x00, 0x21, 0xa7, 0x05, + 0x00, 0xc1, 0xad, 0x05, 0x00, 0x15, 0x20, 0x00, 0x00, 0xa7, 0x50, 0x02, 0x00, 0x91, 0x1c, + 0x04, 0x00, 0xb3, 0x11, 0x08, 0x00, 0xf8, 0xb5, 0x07, 0x1c, 0x7c, 0x69, 0x3d, 0x69, 0x38, + 0x7f, 0x17, 0x21, 0x40, 0x1a, 0x26, 0xd0, 0x0d, 0x38, 0x16, 0xd0, 0x5b, 0x38, 0x63, 0xd1, + 0xff, 0x20, 0x7d, 0x30, 0x00, 0x5d, 0x0c, 0x28, 0x5e, 0xd1, 0xc4, 0x48, 0xe9, 0x78, 0x41, + 0x70, 0x29, 0x79, 0x81, 0x70, 0x69, 0x79, 0xc1, 0x70, 0xa9, 0x79, 0x01, 0x71, 0xe9, 0x79, + 0x41, 0x71, 0x29, 0x7a, 0xc1, 0x80, 0xa9, 0x7a, 0x01, 0x81, 0x4e, 0xe0, 0x01, 0x25, 0xae, + 0x46, 0xbc, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xae, 0x46, 0xbb, 0x49, 0xfe, 0x44, 0x08, 0x47, + 0x00, 0x28, 0x43, 0xd0, 0xb9, 0x48, 0xc4, 0x38, 0x3d, 0xe0, 0xff, 0x20, 0x7d, 0x30, 0x06, + 0x19, 0x28, 0x78, 0x30, 0x70, 0x31, 0x78, 0x02, 0x20, 0x08, 0x40, 0x30, 0x70, 0x01, 0x35, + 0x28, 0x1c, 0x01, 0x21, 0x8e, 0x46, 0xb2, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x70, 0x80, 0x02, + 0x35, 0x28, 0x1c, 0x01, 0x21, 0x8e, 0x46, 0xae, 0x49, 0xfe, 0x44, 0x08, 0x47, 0xb0, 0x80, + 0xff, 0x20, 0x83, 0x30, 0x00, 0x19, 0x00, 0x90, 0x02, 0x35, 0x28, 0x1c, 0x01, 0x21, 0x8e, + 0x46, 0xa8, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x99, 0x08, 0x80, 0x02, 0x35, 0x28, 0x1c, + 0x01, 0x21, 0x8e, 0x46, 0xa4, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x99, 0x48, 0x80, 0xb1, + 0x88, 0x70, 0x88, 0x08, 0x43, 0x40, 0x08, 0x1c, 0xd2, 0x00, 0x98, 0x00, 0x88, 0x00, 0x28, + 0x18, 0xd0, 0x4a, 0x08, + + 0x01, 0x05, 0xff, 0xff, 0x70, 0x6a, 0x08, 0x00, 0xfa, 0x90, 0x42, 0x15, 0xdc, 0x08, 0x29, + 0x10, 0xdb, 0x99, 0x48, 0xe1, 0x49, 0x40, 0x18, 0x38, 0x62, 0x60, 0x7e, 0x00, 0x28, 0x10, + 0xd0, 0x26, 0x20, 0x00, 0x5d, 0x04, 0x28, 0x0c, 0xda, 0x20, 0x22, 0x11, 0x5d, 0xf7, 0x20, + 0x08, 0x40, 0x10, 0x55, 0xf8, 0xbd, 0x91, 0x48, 0x12, 0x38, 0x00, 0xe0, 0xd8, 0x48, 0xd7, + 0x49, 0x40, 0x18, 0x38, 0x62, 0xf8, 0xbd, 0xc0, 0x46, 0x25, 0x00, 0x00, 0x00, 0xbc, 0x63, + 0x08, 0x00, 0xef, 0x22, 0x08, 0x00, 0x5d, 0x8b, 0x04, 0x00, 0x7b, 0x5f, 0x03, 0x00, 0xab, + 0xb9, 0x03, 0x00, 0xbf, 0x70, 0x05, 0x00, 0x76, 0x81, 0x00, 0x00, 0x65, 0x63, 0x08, 0x00, + 0x60, 0x19, 0x08, 0x00, 0x10, 0x27, 0x00, 0x00, 0xcc, 0x24, 0x08, 0x00, 0xf8, 0xb5, 0xca, + 0x4f, 0xcc, 0x48, 0x00, 0x78, 0x02, 0x28, 0x0c, 0xd1, 0x01, 0x24, 0xa6, 0x46, 0xc7, 0x48, + 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0xc6, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0xea, + 0x48, 0xfe, 0x44, 0x00, 0x47, 0x01, 0x26, 0xb6, 0x46, 0xe9, 0x48, 0xfe, 0x44, 0x00, 0x47, + 0xb6, 0x46, 0xe8, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xb6, 0x46, 0xe7, 0x48, 0xfe, 0x44, 0x00, + 0x47, 0x30, 0x4d, 0x00, 0x24, 0x00, 0x94, 0x38, 0x20, 0x40, 0x5d, 0x0c, 0x28, 0x25, 0xd1, + 0xe8, 0x78, 0x00, 0x28, 0x04, 0xd0, 0x3a, 0x20, 0x40, 0x5d, 0x0e, 0x28, 0x00, 0xd1, 0x00, + 0x96, 0x3b, 0x20, 0x41, 0x5d, 0x3c, 0x20, 0x40, 0x5d, 0x08, 0x43, 0x17, 0xd1, 0xff, 0x20, + 0x6d, 0x30, 0x40, 0x19, 0xb6, 0x46, 0xe2, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x28, 0x0e, + 0xd0, 0x04, 0x20, 0xb6, 0x46, 0xdf, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x28, 0x07, 0xd0, + 0xc4, 0x80, 0x35, 0x21, + + 0x01, 0x05, 0xff, 0xff, 0x6a, 0x6b, 0x08, 0x00, 0xfa, 0x09, 0x02, 0x01, 0x80, 0xb6, 0x46, + 0xdb, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x11, 0x20, 0x40, 0x01, 0x45, 0x19, 0x01, 0x34, 0x07, + 0x2c, 0xcf, 0xd3, 0x00, 0x98, 0x00, 0x28, 0x03, 0xd1, 0x39, 0x78, 0xdf, 0x20, 0x08, 0x40, + 0x02, 0xe0, 0x39, 0x78, 0x20, 0x20, 0x08, 0x43, 0x38, 0x70, 0xf8, 0xbd, 0xc0, 0x46, 0x2c, + 0x51, 0x08, 0x00, 0x2d, 0x61, 0x04, 0x00, 0xbb, 0x16, 0x04, 0x00, 0x10, 0xb5, 0x97, 0x4b, + 0x15, 0x3b, 0xcd, 0x48, 0x00, 0x78, 0x19, 0x78, 0x81, 0x42, 0x0d, 0xdd, 0x07, 0x21, 0xcb, + 0x48, 0x00, 0x22, 0x40, 0x24, 0x24, 0x5c, 0x00, 0x2c, 0x02, 0xd0, 0x52, 0x1c, 0x12, 0x06, + 0x12, 0x0e, 0xa8, 0x30, 0x01, 0x39, 0xf5, 0xd1, 0x1a, 0x70, 0x10, 0xbd, 0xc0, 0x46, 0xe9, + 0x3f, 0x05, 0x00, 0xd5, 0xb4, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x5b, 0xf5, 0x00, 0x00, + 0xf0, 0xb5, 0x01, 0x24, 0xa6, 0x46, 0x3a, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0x39, + 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x28, 0x10, 0xd0, 0x11, 0x27, 0x09, 0x26, 0xb9, 0x4d, + 0x3e, 0x20, 0x40, 0x5d, 0xff, 0x28, 0x06, 0xd0, 0x3b, 0x20, 0x47, 0x55, 0x28, 0x1c, 0xa6, + 0x46, 0xb6, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x50, 0x35, 0x01, 0x3e, 0xf1, 0xd1, 0xf0, 0xbd, + 0xc9, 0x63, 0x08, 0x00, 0x5d, 0xf0, 0x03, 0x00, 0x00, 0xb5, 0xb1, 0x48, 0x00, 0x88, 0x02, + 0x28, 0x01, 0xda, 0x01, 0x21, 0x02, 0xe0, 0x40, 0x1e, 0x01, 0x04, 0x09, 0x0c, 0xad, 0x48, + 0x00, 0x22, 0x01, 0x23, 0x9e, 0x46, 0xac, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x00, 0xbd, 0x55, + 0xf6, 0x00, 0x00, 0xf0, 0xb5, 0xa4, 0xb0, 0x06, 0x1c, 0x31, 0x7c, 0x75, 0x69, 0xa8, 0x7c, + 0x00, 0x28, 0x03, 0xd1, + + 0x01, 0x05, 0xff, 0xff, 0x64, 0x6c, 0x08, 0x00, 0xfa, 0x28, 0x68, 0xc0, 0x78, 0x00, 0x28, + 0x25, 0xd1, 0x04, 0x29, 0x23, 0xd1, 0x28, 0x68, 0x01, 0x78, 0x1b, 0x20, 0x01, 0x24, 0xa6, + 0x46, 0xa1, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x01, 0x06, 0x09, 0x0e, 0x68, 0x46, 0xa6, 0x46, + 0x9e, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x12, 0x21, 0x4f, 0x19, 0x01, 0x06, 0x09, 0x0e, 0x68, + 0x46, 0x3a, 0x1c, 0xa6, 0x46, 0x9a, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xe8, 0x74, 0x0b, 0x48, + 0x39, 0x1c, 0xa6, 0x46, 0x98, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x01, 0xd0, 0x02, + 0x20, 0x30, 0x61, 0x24, 0xb0, 0xf0, 0xbd, 0xca, 0x63, 0x08, 0x00, 0xb4, 0x8a, 0x06, 0x00, + 0xa9, 0xd3, 0x04, 0x00, 0x61, 0x97, 0x04, 0x00, 0x28, 0x19, 0x08, 0x00, 0x57, 0x98, 0x04, + 0x00, 0xd0, 0x63, 0x08, 0x00, 0x37, 0x98, 0x01, 0x00, 0x37, 0x9b, 0x01, 0x00, 0xdc, 0x0c, + 0x00, 0x00, 0x73, 0x2c, 0x00, 0x00, 0xff, 0xb5, 0x00, 0x90, 0x88, 0x48, 0x06, 0x1c, 0x32, + 0x3e, 0x60, 0x21, 0x89, 0x19, 0x00, 0x78, 0x0a, 0x78, 0x00, 0x2a, 0x75, 0xd0, 0x09, 0x7b, + 0x00, 0x29, 0x72, 0xd1, 0xff, 0x28, 0x5f, 0xd1, 0x34, 0x1c, 0x82, 0x48, 0x05, 0x1c, 0x01, + 0x95, 0x81, 0x48, 0x02, 0x90, 0x00, 0x27, 0xe1, 0x88, 0x7e, 0x48, 0x81, 0x42, 0x2b, 0xd0, + 0xa9, 0x42, 0x15, 0xdb, 0xa9, 0x42, 0x27, 0xd1, 0x7c, 0x49, 0x78, 0x00, 0x30, 0x18, 0x4c, + 0x22, 0x10, 0x5a, 0x08, 0x1a, 0x01, 0x22, 0x96, 0x46, 0x79, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x01, 0x04, 0x09, 0x0c, 0x20, 0x89, 0x09, 0x18, 0x01, 0x9a, 0x02, 0x98, 0x10, 0x18, 0x81, + 0x42, 0x13, 0xd2, 0xe5, 0x88, 0x20, 0x89, 0x01, 0x90, 0x38, 0x06, 0x00, 0x0e, 0x03, 0x90, + 0x6f, 0x49, 0x40, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0x5e, 0x6d, 0x08, 0x00, 0xfa, 0x30, 0x18, 0x4c, 0x22, 0x10, 0x5a, + 0x08, 0x1a, 0x01, 0x22, 0x96, 0x46, 0x6c, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x02, 0x90, 0x10, 0x34, 0x01, 0x37, 0x03, 0x2f, 0xcb, 0xdb, 0x65, 0x48, 0x01, 0x99, + 0x81, 0x42, 0x1a, 0xd0, 0x02, 0x2d, 0x09, 0xda, 0x03, 0x98, 0x01, 0x99, 0x00, 0x22, 0xd2, + 0x43, 0x01, 0x23, 0x9e, 0x46, 0x62, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x2a, 0xe0, 0x03, 0x98, + 0x01, 0x1c, 0x09, 0x01, 0x71, 0x58, 0x69, 0x18, 0x01, 0x39, 0x89, 0x01, 0x8a, 0x09, 0x01, + 0x99, 0x01, 0x23, 0x9e, 0x46, 0x5a, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x1b, 0xe0, 0x01, 0x20, + 0x86, 0x46, 0x58, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x15, 0xe0, 0x1c, 0x21, 0x41, 0x43, 0x70, + 0x18, 0x89, 0x21, 0x08, 0x5c, 0x00, 0x01, 0x30, 0x18, 0x01, 0x89, 0x03, 0x20, 0x00, 0x22, + 0xd2, 0x43, 0x01, 0x23, 0x9e, 0x46, 0x4f, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x04, 0xe0, 0x01, + 0x20, 0x86, 0x46, 0x4e, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x4d, 0x49, 0xce, 0x31, 0x00, 0x98, + 0x01, 0x62, 0x00, 0x90, 0xff, 0xbd, 0x0d, 0xe2, 0x00, 0x00, 0x3a, 0x0e, 0x00, 0x00, 0xd4, + 0x0f, 0x08, 0x00, 0x53, 0x63, 0x05, 0x00, 0xad, 0x98, 0x02, 0x00, 0x41, 0x10, 0x08, 0x00, + 0xf8, 0xb5, 0x00, 0x90, 0x58, 0x21, 0x6c, 0x22, 0x60, 0x27, 0x3b, 0x4c, 0x32, 0x3c, 0x32, + 0x20, 0x03, 0x5d, 0x55, 0x20, 0x00, 0x5d, 0x41, 0x4e, 0x85, 0x07, 0x31, 0xd1, 0x40, 0x06, + 0x80, 0x0f, 0x0a, 0xd1, 0x1c, 0x20, 0x58, 0x43, 0x00, 0x19, 0x88, 0x25, 0x28, 0x5c, 0x02, + 0x28, 0x03, 0xd0, 0x08, 0x5b, 0x39, 0x49, 0x01, 0x42, 0x23, 0xd0, 0x12, 0x5d, 0x00, 0x2a, + 0x07, 0xd1, 0x00, 0x20, + + 0x01, 0x05, 0xff, 0xff, 0x58, 0x6e, 0x08, 0x00, 0xfa, 0x38, 0x55, 0x30, 0x78, 0x01, 0x30, + 0x00, 0x06, 0x00, 0x0e, 0x30, 0x70, 0x08, 0xe0, 0x02, 0x20, 0x4b, 0x21, 0xc9, 0x00, 0x01, + 0x25, 0xae, 0x46, 0x31, 0x4d, 0xfe, 0x44, 0x28, 0x47, 0x30, 0x78, 0x0a, 0x28, 0x0f, 0xdd, + 0x01, 0x25, 0x2f, 0x48, 0x05, 0x80, 0xae, 0x46, 0x2e, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x2c, + 0x48, 0x05, 0x80, 0xae, 0x46, 0x2b, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x3d, 0x55, 0x00, 0x20, + 0x30, 0x70, 0x29, 0x49, 0xbe, 0x31, 0x00, 0x98, 0x01, 0x62, 0xf8, 0xbd, 0xc0, 0x46, 0x15, + 0x7e, 0x04, 0x00, 0xe9, 0x6b, 0x08, 0x00, 0x2d, 0x6c, 0x08, 0x00, 0xa9, 0x6b, 0x08, 0x00, + 0x10, 0xb5, 0x04, 0x1c, 0x00, 0x20, 0x01, 0x21, 0x8e, 0x46, 0x21, 0x49, 0xfe, 0x44, 0x08, + 0x47, 0x40, 0x1c, 0x03, 0xd1, 0x1f, 0x48, 0xff, 0x30, 0x5f, 0x30, 0x20, 0x62, 0x10, 0xbd, + 0xc0, 0x46, 0xf7, 0x64, 0x04, 0x00, 0x9b, 0x60, 0x04, 0x00, 0xdb, 0x3f, 0x05, 0x00, 0x83, + 0x50, 0x08, 0x00, 0x60, 0x19, 0x08, 0x00, 0xf4, 0x46, 0x08, 0x00, 0xa5, 0x1e, 0x02, 0x00, + 0x8c, 0x18, 0x08, 0x00, 0x36, 0x02, 0x1a, 0x00, 0x15, 0x49, 0x05, 0x00, 0xa7, 0x31, 0x05, + 0x00, 0x0d, 0x9e, 0x01, 0x00, 0xf7, 0x64, 0x01, 0x00, 0x81, 0x8a, 0x02, 0x00, 0x26, 0x23, + 0x08, 0x00, 0xff, 0xff, 0x00, 0x00, 0xe2, 0x04, 0x00, 0x00, 0x6d, 0x94, 0x05, 0x00, 0x81, + 0xa3, 0x02, 0x00, 0xeb, 0xa3, 0x02, 0x00, 0x4f, 0xa3, 0x02, 0x00, 0x65, 0xad, 0x02, 0x00, + 0x20, 0x20, 0x00, 0x00, 0x5c, 0x63, 0x08, 0x00, 0xc7, 0xd6, 0x04, 0x00, 0x82, 0x07, 0x1a, + 0x00, 0xf1, 0x16, 0x04, 0x00, 0x59, 0xaa, 0x02, 0x00, 0x49, 0xa3, 0x00, 0x00, 0x8d, 0x7e, + 0x00, 0x00, 0x30, 0xb5, + + 0x01, 0x05, 0xff, 0xff, 0x52, 0x6f, 0x08, 0x00, 0xfa, 0xdc, 0x4a, 0x00, 0x28, 0x09, 0xd0, + 0x13, 0x18, 0x84, 0x18, 0xa5, 0x7b, 0x4d, 0x19, 0xa5, 0x73, 0x01, 0x28, 0x02, 0xd9, 0x5c, + 0x7b, 0x0c, 0x19, 0x5c, 0x73, 0x4e, 0x28, 0x09, 0xd2, 0x13, 0x18, 0x82, 0x18, 0x14, 0x7c, + 0x0c, 0x19, 0x14, 0x74, 0x4d, 0x28, 0x02, 0xd2, 0x58, 0x7c, 0x08, 0x18, 0x58, 0x74, 0x30, + 0xbd, 0xf0, 0xb5, 0x07, 0x1c, 0xcf, 0x4e, 0xcf, 0x4d, 0x00, 0x24, 0x2a, 0x78, 0x00, 0x2a, + 0x1e, 0xd0, 0x6b, 0x20, 0x81, 0x5d, 0x4b, 0x1c, 0xa0, 0x19, 0xc0, 0x7e, 0x00, 0x07, 0x00, + 0x0f, 0x98, 0x42, 0x0b, 0xd0, 0x98, 0x42, 0x13, 0xdd, 0x50, 0x1c, 0x01, 0x06, 0x09, 0x0e, + 0x20, 0x1c, 0x01, 0x22, 0x96, 0x46, 0xe6, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x09, 0xe0, 0x50, + 0x1c, 0x00, 0x06, 0x00, 0x0e, 0x41, 0x43, 0x20, 0x1c, 0x01, 0x22, 0x96, 0x46, 0xe1, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x01, 0x35, 0x01, 0x34, 0x4f, 0x2c, 0xd9, 0xd3, 0x78, 0x68, 0x40, + 0x0b, 0x78, 0x60, 0xde, 0x48, 0xdc, 0x49, 0x08, 0x18, 0xf0, 0xbd, 0x00, 0xb5, 0xdc, 0x48, + 0x00, 0x78, 0x01, 0x21, 0x8e, 0x46, 0xdb, 0x49, 0xfe, 0x44, 0x08, 0x47, 0xdb, 0x48, 0xc1, + 0x30, 0x00, 0xbd, 0x70, 0xb5, 0xda, 0x48, 0x00, 0x78, 0x01, 0x24, 0xa6, 0x46, 0xd6, 0x49, + 0xfe, 0x44, 0x08, 0x47, 0xe9, 0x4d, 0x28, 0x78, 0x00, 0x28, 0x09, 0xd1, 0xe8, 0x49, 0xd3, + 0x4a, 0xad, 0x32, 0x0e, 0x20, 0x00, 0x23, 0xa6, 0x46, 0xe6, 0x4e, 0xfe, 0x44, 0x30, 0x47, + 0x2c, 0x70, 0xea, 0x48, 0x67, 0x30, 0x70, 0xbd, 0x40, 0x1e, 0x80, 0x00, 0xea, 0x4b, 0x19, + 0x50, 0xe8, 0x49, 0x0a, 0x50, 0xf7, 0x46, 0x80, 0x69, 0xb8, 0x21, 0x09, 0x5c, 0x01, 0x29, + 0x06, 0xd0, 0xb5, 0x21, + + 0x01, 0x05, 0xff, 0xff, 0x4c, 0x70, 0x08, 0x00, 0xfa, 0x08, 0x5c, 0x60, 0x21, 0x41, 0x43, + 0xe4, 0x4a, 0x00, 0x20, 0x50, 0x54, 0xe3, 0x48, 0x1b, 0x30, 0xf7, 0x46, 0x10, 0xb5, 0x04, + 0x1c, 0xe2, 0x48, 0x00, 0x68, 0x01, 0x21, 0x8e, 0x46, 0xe1, 0x49, 0xfe, 0x44, 0x08, 0x47, + 0xe0, 0x68, 0x0c, 0x30, 0xe0, 0x60, 0xe8, 0x48, 0xff, 0x30, 0x02, 0x30, 0x10, 0xbd, 0x30, + 0xb5, 0x42, 0x69, 0x11, 0x88, 0x09, 0x06, 0x0b, 0x0e, 0xe7, 0x49, 0x02, 0x2b, 0x1a, 0xd1, + 0xd7, 0x4b, 0x1b, 0x6b, 0x9b, 0x68, 0xdb, 0x88, 0x01, 0x24, 0xa4, 0x02, 0x1d, 0x05, 0xad, + 0x0f, 0xad, 0x02, 0xa5, 0x42, 0x06, 0xdb, 0x05, 0x24, 0x24, 0x02, 0x1b, 0x05, 0x1b, 0x0f, + 0x1b, 0x02, 0xa3, 0x42, 0x02, 0xdb, 0xd2, 0x88, 0x52, 0x1d, 0x01, 0xe0, 0x52, 0x88, 0x52, + 0x1c, 0x42, 0x60, 0x08, 0x1c, 0x9f, 0x30, 0x30, 0xbd, 0x08, 0x1c, 0x87, 0x30, 0x30, 0xbd, + 0x00, 0xb5, 0x01, 0x1c, 0x48, 0x68, 0xc9, 0x69, 0xb5, 0x22, 0x51, 0x5c, 0xdc, 0x22, 0x4a, + 0x43, 0xda, 0x49, 0x89, 0x18, 0x08, 0x22, 0x01, 0x23, 0x9e, 0x46, 0xd8, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0xd8, 0x48, 0x3f, 0x30, 0x00, 0xbd, 0x40, 0x69, 0x01, 0x8f, 0xc0, 0x8e, 0x40, + 0x1a, 0x00, 0x04, 0x01, 0x0c, 0xd7, 0x48, 0x40, 0x0a, 0x81, 0x42, 0x01, 0xd3, 0xd2, 0x48, + 0x00, 0xe0, 0xd3, 0x48, 0xd2, 0x49, 0x40, 0x18, 0xf7, 0x46, 0xf8, 0xb5, 0x81, 0x69, 0x08, + 0x04, 0x00, 0x0c, 0x00, 0x90, 0xe4, 0x4d, 0xe5, 0x4c, 0xc8, 0x08, 0x2a, 0xd3, 0xe1, 0x48, + 0xff, 0x21, 0x3d, 0x31, 0x0f, 0x18, 0x29, 0x5c, 0x00, 0x26, 0x21, 0xe0, 0xa8, 0x00, 0x30, + 0x58, 0xc2, 0x22, 0x12, 0x5c, 0x00, 0x2a, 0x0a, 0xd0, 0xb5, 0x21, 0x08, 0x5c, 0x0a, 0x30, + 0x00, 0x06, 0x00, 0x0e, + + 0x01, 0x05, 0xff, 0xff, 0x46, 0x71, 0x08, 0x00, 0xfa, 0x01, 0x21, 0x8e, 0x46, 0xd9, 0x49, + 0xfe, 0x44, 0x08, 0x47, 0x21, 0x78, 0x01, 0x35, 0x19, 0xe0, 0xb0, 0x00, 0x38, 0x58, 0xc2, + 0x22, 0x12, 0x5c, 0x00, 0x2a, 0x07, 0xd0, 0xb5, 0x21, 0x08, 0x5c, 0x01, 0x21, 0x8e, 0x46, + 0xd1, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x21, 0x78, 0x01, 0x36, 0x8e, 0x42, 0xee, 0xd3, 0x00, + 0x98, 0x00, 0x09, 0x07, 0xd3, 0xca, 0x48, 0xff, 0x21, 0x3d, 0x31, 0x0e, 0x18, 0x29, 0x5c, + 0x00, 0x25, 0x8d, 0x42, 0xd0, 0xd3, 0xe4, 0x48, 0x87, 0x30, 0xf8, 0xbd, 0x70, 0xb5, 0x06, + 0x1c, 0xb0, 0x68, 0xe2, 0x4d, 0x00, 0x28, 0x02, 0xd1, 0x28, 0x1c, 0xdf, 0x30, 0x70, 0xbd, + 0x91, 0x4c, 0x04, 0x3c, 0x20, 0x7a, 0x02, 0x28, 0x08, 0xd0, 0xdd, 0x49, 0x08, 0x5c, 0x01, + 0x21, 0x8e, 0x46, 0xdc, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, 0x28, 0x02, 0xd0, 0x28, 0x1c, + 0xcf, 0x30, 0x70, 0xbd, 0x00, 0x20, 0x20, 0x60, 0x70, 0x60, 0x28, 0x1c, 0xff, 0x30, 0x20, + 0x30, 0x70, 0xbd, 0x10, 0xb5, 0x9a, 0x49, 0x11, 0x31, 0x06, 0x22, 0x00, 0x23, 0x0c, 0x78, + 0xff, 0x2c, 0x02, 0xd1, 0x5b, 0x1c, 0x1b, 0x06, 0x1b, 0x0e, 0xdc, 0x31, 0x01, 0x3a, 0xf6, + 0xd1, 0x43, 0x60, 0xe3, 0x48, 0x19, 0x30, 0x10, 0xbd, 0x01, 0x1c, 0xe2, 0x4b, 0x1a, 0x78, + 0xe2, 0x48, 0x05, 0x2a, 0x04, 0xd1, 0xe2, 0x4a, 0x12, 0x68, 0x12, 0x78, 0x01, 0x2a, 0x02, + 0xd0, 0x4b, 0x60, 0x5b, 0x30, 0xf7, 0x46, 0x7d, 0x30, 0xf7, 0x46, 0x10, 0xb5, 0x01, 0x1c, + 0xdd, 0x48, 0x00, 0x68, 0xde, 0x4c, 0x00, 0x28, 0x0b, 0xd0, 0x88, 0x69, 0x09, 0x7a, 0x01, + 0x22, 0x96, 0x46, 0xd9, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x02, 0xd0, 0x20, 0x1c, + 0x21, 0x30, 0x10, 0xbd, + + 0x01, 0x05, 0xff, 0xff, 0x40, 0x72, 0x08, 0x00, 0xfa, 0x20, 0x1c, 0x33, 0x30, 0x10, 0xbd, + 0xf8, 0xb5, 0x81, 0x69, 0x00, 0x91, 0xd1, 0x4c, 0x25, 0x1c, 0x0c, 0x3d, 0xe9, 0x68, 0x08, + 0x22, 0x57, 0x18, 0x40, 0x69, 0xd0, 0x4a, 0x00, 0x28, 0x02, 0xd0, 0x10, 0x1c, 0xd3, 0x30, + 0xf8, 0xbd, 0x00, 0x26, 0x04, 0xe0, 0x70, 0x1c, 0x06, 0x06, 0x36, 0x0e, 0x06, 0x37, 0x21, + 0x68, 0x48, 0x88, 0x86, 0x42, 0x14, 0xda, 0x38, 0x1c, 0x00, 0x99, 0x01, 0x22, 0x96, 0x46, + 0xe1, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0xee, 0xd1, 0x0c, 0x34, 0xe8, 0x68, 0x41, + 0x88, 0x01, 0x20, 0x88, 0x40, 0xe1, 0x6f, 0x81, 0x43, 0xe1, 0x67, 0xe9, 0x68, 0x48, 0x88, + 0x01, 0x38, 0x48, 0x80, 0xbd, 0x48, 0xff, 0x30, 0x14, 0x30, 0xf8, 0xbd, 0x01, 0x1c, 0xd8, + 0x48, 0x02, 0x78, 0xd6, 0x48, 0x00, 0x2a, 0x01, 0xd0, 0xed, 0x30, 0xf7, 0x46, 0x41, 0x22, + 0x4a, 0x60, 0x39, 0x30, 0xf7, 0x46, 0xd0, 0x11, 0x08, 0x00, 0x50, 0x21, 0x08, 0x00, 0x38, + 0x30, 0x19, 0x00, 0xf8, 0xb5, 0x06, 0x1c, 0x75, 0x69, 0xb7, 0x69, 0x31, 0x6a, 0x30, 0x7f, + 0x00, 0x28, 0x2d, 0xd1, 0x01, 0x21, 0xa8, 0x8d, 0x18, 0x28, 0x27, 0xdc, 0xcd, 0x48, 0x00, + 0x78, 0x00, 0x90, 0x00, 0x24, 0x01, 0x22, 0xa2, 0x40, 0x00, 0x98, 0x10, 0x42, 0x1b, 0xd0, + 0xc6, 0x48, 0x20, 0x5c, 0x11, 0x21, 0x49, 0x01, 0x41, 0x43, 0xc4, 0x48, 0x41, 0x18, 0xff, + 0x20, 0x1e, 0x30, 0x40, 0x5c, 0x01, 0x28, 0x01, 0xd1, 0x02, 0x20, 0x00, 0xe0, 0x00, 0x20, + 0xc9, 0x78, 0x08, 0x18, 0xc1, 0x49, 0x08, 0x5c, 0xa9, 0x8d, 0x01, 0x22, 0x96, 0x46, 0xc0, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x48, 0x1c, 0x01, 0x06, 0x09, 0x0e, 0x01, 0x34, 0x07, 0x2c, + 0xdb, 0xdb, 0xa8, 0x8d, + + 0x01, 0x05, 0xff, 0xff, 0x3a, 0x73, 0x08, 0x00, 0xfa, 0x01, 0xe0, 0x48, 0x7d, 0xa9, 0x8d, + 0x48, 0x43, 0x39, 0x68, 0x40, 0x18, 0x80, 0x01, 0x80, 0x09, 0x38, 0x60, 0x70, 0x60, 0xb3, + 0x48, 0x5d, 0x30, 0xf8, 0xbd, 0x51, 0x6f, 0x08, 0x00, 0x43, 0x02, 0x00, 0x00, 0x8d, 0x42, + 0x01, 0x00, 0x5c, 0x18, 0x08, 0x00, 0xfd, 0x62, 0x08, 0x00, 0x17, 0x38, 0x04, 0x00, 0x0c, + 0x18, 0x08, 0x00, 0x01, 0x1c, 0x4a, 0x68, 0x13, 0x06, 0x1b, 0x0e, 0xac, 0x48, 0x03, 0xd1, + 0x82, 0x4b, 0x1b, 0x78, 0x03, 0x2b, 0x05, 0xd0, 0x00, 0x2a, 0x01, 0xd0, 0x1d, 0x30, 0xf7, + 0x46, 0xff, 0x30, 0xf7, 0x46, 0x45, 0x4a, 0x30, 0x23, 0x9b, 0x5c, 0x00, 0x2b, 0x07, 0xd1, + 0x9a, 0x4b, 0x92, 0x88, 0x9a, 0x42, 0x03, 0xd1, 0xa3, 0x4a, 0x12, 0x78, 0x00, 0x2a, 0x01, + 0xd0, 0x00, 0x22, 0x00, 0xe0, 0x07, 0x22, 0x4a, 0x60, 0xff, 0x30, 0xa2, 0x30, 0xf7, 0x46, + 0x67, 0x63, 0x08, 0x00, 0xeb, 0x6f, 0x08, 0x00, 0x33, 0x70, 0x08, 0x00, 0x40, 0x69, 0x78, + 0x21, 0x09, 0x5a, 0x9a, 0x48, 0xac, 0x29, 0x01, 0xda, 0x3b, 0x30, 0xf7, 0x46, 0x89, 0x30, + 0xf7, 0x46, 0xd1, 0x8c, 0x03, 0x00, 0x04, 0xf3, 0x1a, 0x00, 0x80, 0x7b, 0x08, 0x00, 0x76, + 0xa0, 0x1b, 0x00, 0x6d, 0x97, 0x00, 0x00, 0x6c, 0x55, 0x08, 0x00, 0x4f, 0x61, 0x04, 0x00, + 0x01, 0x1c, 0x64, 0x48, 0x02, 0x78, 0xe8, 0x48, 0x05, 0x2a, 0x07, 0xd1, 0x20, 0x22, 0x51, + 0x5c, 0x01, 0x29, 0x03, 0xd1, 0xe3, 0x49, 0x09, 0x78, 0x49, 0x08, 0x01, 0xd2, 0x8f, 0x30, + 0xf7, 0x46, 0x85, 0x30, 0xf7, 0x46, 0x39, 0xc1, 0x02, 0x00, 0xe0, 0x48, 0x59, 0x30, 0xf7, + 0x46, 0xf4, 0x48, 0x67, 0x30, 0xf7, 0x46, 0x7d, 0xc4, 0x02, 0x00, 0xc1, 0x69, 0x82, 0x69, + 0x51, 0x1a, 0x01, 0x61, + + 0x01, 0x05, 0xff, 0xff, 0x34, 0x74, 0x08, 0x00, 0xfa, 0xf0, 0x48, 0x73, 0x30, 0xf7, 0x46, + 0x00, 0x21, 0x41, 0x60, 0xef, 0x48, 0xa1, 0x30, 0xf7, 0x46, 0x5c, 0x27, 0x08, 0x00, 0x4b, + 0x1e, 0x04, 0x00, 0x05, 0x5e, 0x02, 0x00, 0xe7, 0x03, 0x00, 0x00, 0xc9, 0x98, 0x00, 0x00, + 0x83, 0x05, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x00, 0x81, 0xb0, 0x00, 0x90, 0x00, 0x21, 0x68, + 0x46, 0x42, 0x88, 0x03, 0x88, 0x93, 0x42, 0x03, 0xd1, 0x02, 0x78, 0x40, 0x78, 0x90, 0x42, + 0x0f, 0xd0, 0x00, 0x98, 0xc3, 0x0f, 0x1e, 0x20, 0x00, 0x9a, 0xc2, 0x40, 0xd2, 0x07, 0xd2, + 0x0f, 0x93, 0x42, 0x00, 0xd0, 0x01, 0x31, 0x18, 0x29, 0x03, 0xd8, 0x1a, 0x28, 0x03, 0xd1, + 0x02, 0x29, 0x01, 0xd2, 0x00, 0x20, 0x03, 0xe0, 0x13, 0x1c, 0x01, 0x38, 0xed, 0xd5, 0x01, + 0x20, 0x01, 0xb0, 0xf7, 0x46, 0x48, 0x25, 0x08, 0x00, 0x6a, 0x0a, 0x00, 0x00, 0x47, 0x93, + 0x02, 0x00, 0xb2, 0x2f, 0x08, 0x00, 0xf0, 0xb5, 0x06, 0x1c, 0x77, 0x68, 0x0a, 0x25, 0x05, + 0xe0, 0xa6, 0x46, 0xd8, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x07, 0x1c, 0x01, 0x3d, 0x00, 0x2d, + 0x07, 0xd0, 0x38, 0x1c, 0x01, 0x24, 0xa6, 0x46, 0xd4, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x00, + 0x28, 0xef, 0xd0, 0x77, 0x60, 0xf0, 0x69, 0xb0, 0x60, 0xd1, 0x48, 0xff, 0x30, 0x34, 0x30, + 0xf0, 0xbd, 0x10, 0xb5, 0x44, 0x68, 0x3a, 0x20, 0x00, 0x5d, 0x22, 0x28, 0x06, 0xd1, 0x20, + 0x1c, 0x00, 0x21, 0x01, 0x22, 0x96, 0x46, 0xcb, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x20, 0x1c, + 0x00, 0x21, 0x01, 0x22, 0x96, 0x46, 0xc9, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xc8, 0x48, 0x6f, + 0x30, 0x10, 0xbd, 0xc0, 0x46, 0x49, 0xa0, 0x02, 0x00, 0x25, 0x6e, 0x03, 0x00, 0x3c, 0x91, + 0x06, 0x00, 0x17, 0x62, + + 0x01, 0x05, 0xff, 0xff, 0x2e, 0x75, 0x08, 0x00, 0xfa, 0x04, 0x00, 0x30, 0xb5, 0x04, 0x1c, + 0x14, 0x48, 0xbf, 0x38, 0x01, 0x78, 0x02, 0x29, 0x01, 0xd1, 0x00, 0x21, 0x01, 0x70, 0xbf, + 0x49, 0xbf, 0x48, 0x42, 0x1c, 0x1d, 0x20, 0x00, 0x23, 0x01, 0x25, 0xae, 0x46, 0xbe, 0x4d, + 0xfe, 0x44, 0x28, 0x47, 0x60, 0x69, 0x00, 0x68, 0x60, 0x60, 0xba, 0x48, 0xff, 0x30, 0x3a, + 0x30, 0x30, 0xbd, 0x10, 0xb5, 0xba, 0x49, 0xb7, 0x4a, 0xff, 0x32, 0x38, 0x32, 0x1d, 0x20, + 0x00, 0x23, 0x01, 0x24, 0xa6, 0x46, 0xb5, 0x4c, 0xfe, 0x44, 0x20, 0x47, 0xb1, 0x48, 0xc0, + 0x1d, 0x10, 0xbd, 0xc0, 0x46, 0xef, 0x8a, 0x04, 0x00, 0x41, 0x10, 0x08, 0x00, 0xd9, 0xae, + 0x02, 0x00, 0xf4, 0x62, 0x08, 0x00, 0xec, 0x0e, 0x08, 0x00, 0x5d, 0x86, 0x01, 0x00, 0xdd, + 0xf8, 0x03, 0x00, 0xf0, 0xb5, 0x9c, 0x46, 0x17, 0x4c, 0x0e, 0x1c, 0x26, 0x40, 0x05, 0x1c, + 0x25, 0x40, 0x2f, 0x1c, 0x77, 0x43, 0x09, 0x0c, 0x00, 0x0c, 0x03, 0x1c, 0x4b, 0x43, 0x69, + 0x43, 0x70, 0x43, 0x05, 0x1c, 0x25, 0x40, 0x0c, 0x40, 0x64, 0x19, 0x00, 0x0c, 0x09, 0x0c, + 0x08, 0x18, 0x39, 0x0c, 0x61, 0x18, 0x09, 0x0c, 0x00, 0xd0, 0x01, 0x30, 0x21, 0x04, 0xcf, + 0x19, 0xc3, 0x18, 0x60, 0x46, 0x07, 0x60, 0x13, 0x60, 0xf0, 0xbd, 0x1c, 0xb5, 0x9b, 0x49, + 0x6a, 0x46, 0x01, 0xab, 0x01, 0x24, 0xa6, 0x46, 0x99, 0x4c, 0xfe, 0x44, 0x20, 0x47, 0x01, + 0x98, 0xc1, 0x0b, 0x00, 0x98, 0x40, 0x04, 0x08, 0x43, 0x1c, 0xbd, 0xc0, 0x46, 0xff, 0xff, + 0x00, 0x00, 0x79, 0x1c, 0x04, 0x00, 0xdd, 0x84, 0x01, 0x00, 0xca, 0x63, 0x08, 0x00, 0x00, + 0x16, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x09, 0x82, 0x01, 0x00, 0x65, 0x63, 0x08, 0x00, + 0x68, 0x63, 0x08, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0x28, 0x76, 0x08, 0x00, 0xfa, 0x6d, 0x94, 0x05, 0x00, 0xbd, 0x7b, + 0x03, 0x00, 0xf5, 0x50, 0x08, 0x00, 0xe5, 0x85, 0x00, 0x00, 0xf0, 0xb5, 0x8d, 0xb0, 0x03, + 0xa8, 0x01, 0x21, 0x8e, 0x46, 0x86, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x86, 0x48, 0x06, 0x90, + 0x72, 0x38, 0x06, 0x90, 0x84, 0x48, 0x07, 0x90, 0x06, 0x38, 0x07, 0x90, 0x38, 0x21, 0x41, + 0x80, 0x01, 0x20, 0x86, 0x46, 0x7f, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x03, 0xa8, 0x08, 0x90, + 0x4b, 0x48, 0x09, 0x90, 0x69, 0x38, 0x09, 0x90, 0x00, 0x20, 0x0a, 0x90, 0x0a, 0x98, 0x00, + 0x06, 0x00, 0x0e, 0x0b, 0x90, 0x79, 0x48, 0x0b, 0x99, 0x01, 0x22, 0x96, 0x46, 0x78, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0xf6, 0xd0, 0x08, 0x98, 0x00, 0x68, 0x09, 0x99, 0x89, + 0x6a, 0x01, 0x24, 0xa6, 0x46, 0x73, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x00, 0xd5, + 0x40, 0x42, 0xa6, 0x46, 0x71, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x05, 0x1c, 0x0b, 0x98, 0x01, + 0xa9, 0x02, 0xaa, 0x64, 0x23, 0xa6, 0x46, 0x6d, 0x4e, 0xfe, 0x44, 0x30, 0x47, 0x68, 0x46, + 0x0c, 0x90, 0x00, 0x89, 0x46, 0x1b, 0x13, 0xd5, 0x70, 0x4f, 0x39, 0x1c, 0x30, 0x1c, 0xa6, + 0x46, 0x71, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x4d, 0x42, 0x30, 0x1c, 0x39, 0x1c, 0xa6, 0x46, + 0x65, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x00, 0xd0, 0x01, 0x35, 0x6f, 0x43, 0xbe, + 0x19, 0x00, 0xe0, 0x00, 0x25, 0x01, 0x98, 0x40, 0x1b, 0x80, 0x01, 0x80, 0x09, 0x0a, 0x99, + 0x00, 0x29, 0x2c, 0xd1, 0x01, 0x9a, 0x06, 0x99, 0x4a, 0x60, 0x0c, 0x9a, 0x12, 0x89, 0xca, + 0x81, 0x08, 0x60, 0x8e, 0x81, 0x59, 0x4d, 0x28, 0x1c, 0x00, 0x21, 0xa6, 0x46, 0x5d, 0x4a, + 0xfe, 0x44, 0x10, 0x47, + + 0x01, 0x05, 0xff, 0xff, 0x22, 0x77, 0x08, 0x00, 0xfa, 0x02, 0x20, 0x07, 0x99, 0x08, 0x80, + 0xa6, 0x46, 0x55, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa6, 0x46, 0x53, 0x48, 0xfe, 0x44, 0x00, + 0x47, 0x4a, 0x48, 0x04, 0x21, 0xa6, 0x46, 0x4a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, + 0xf7, 0xd1, 0x28, 0x1c, 0x00, 0x21, 0xa6, 0x46, 0x4d, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xa6, + 0x46, 0x4c, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x0a, 0xe0, 0x0c, 0x9b, 0x0b, 0x99, 0x19, 0x70, + 0x31, 0x04, 0x09, 0x0c, 0x01, 0x9a, 0x1b, 0x89, 0xa6, 0x46, 0x4a, 0x4c, 0xfe, 0x44, 0x20, + 0x47, 0x09, 0x98, 0x04, 0x30, 0x09, 0x90, 0x08, 0x98, 0x04, 0x30, 0x08, 0x90, 0x0a, 0x98, + 0x01, 0x30, 0x0a, 0x90, 0x03, 0x28, 0x00, 0xd2, 0x74, 0xe7, 0x3f, 0x48, 0xff, 0x30, 0x0c, + 0x30, 0x0d, 0xb0, 0xf0, 0xbd, 0xc0, 0x46, 0x55, 0x53, 0x08, 0x00, 0x37, 0xeb, 0x03, 0x00, + 0x3d, 0x68, 0x03, 0x00, 0x30, 0xb5, 0x40, 0x69, 0x00, 0x28, 0x1f, 0xd0, 0x00, 0x68, 0x85, + 0x08, 0x01, 0x24, 0xa6, 0x46, 0x3a, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x01, 0x1c, 0x28, 0x1c, + 0xa6, 0x46, 0x2a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x28, 0x00, 0xda, 0x40, 0x42, 0x03, + 0x21, 0x09, 0x02, 0x41, 0x43, 0xc8, 0x0b, 0x28, 0x18, 0x81, 0x00, 0x34, 0x48, 0x00, 0x88, + 0x80, 0x00, 0x08, 0x1a, 0x00, 0x01, 0x00, 0x09, 0xa6, 0x46, 0x2f, 0x49, 0xfe, 0x44, 0x08, + 0x47, 0x2e, 0x48, 0x45, 0x30, 0x30, 0xbd, 0xc0, 0x46, 0xdb, 0xf5, 0x02, 0x00, 0xd1, 0x7a, + 0x02, 0x00, 0xc9, 0x9c, 0x03, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0x2a, 0x49, 0xa0, 0x8b, 0x88, + 0x42, 0x07, 0xd0, 0x60, 0x69, 0x40, 0x30, 0x2c, 0x21, 0x01, 0x22, 0x96, 0x46, 0x27, 0x4a, + 0xfe, 0x44, 0x10, 0x47, + + 0x01, 0x05, 0xff, 0xff, 0x1c, 0x78, 0x08, 0x00, 0xfa, 0x40, 0x20, 0x20, 0x62, 0x25, 0x48, + 0x29, 0x30, 0x10, 0xbd, 0xc0, 0x46, 0xdb, 0xe3, 0x03, 0x00, 0x61, 0x74, 0x08, 0x00, 0x0b, + 0xe2, 0x03, 0x00, 0x8b, 0x96, 0x01, 0x00, 0x91, 0xe5, 0x02, 0x00, 0x71, 0xe3, 0x02, 0x00, + 0x65, 0x75, 0x08, 0x00, 0xcd, 0x98, 0x01, 0x00, 0x95, 0xf4, 0x03, 0x00, 0x33, 0x70, 0x08, + 0x00, 0x31, 0x75, 0x08, 0x00, 0x00, 0xa6, 0x0e, 0x00, 0xa1, 0x75, 0x08, 0x00, 0x87, 0xca, + 0x04, 0x00, 0xfb, 0x16, 0x04, 0x00, 0x72, 0x61, 0x1a, 0x00, 0x2f, 0x4a, 0x05, 0x00, 0x65, + 0xcb, 0x04, 0x00, 0xe5, 0x75, 0x08, 0x00, 0x9b, 0xc3, 0x03, 0x00, 0x6d, 0x94, 0x05, 0x00, + 0x70, 0x61, 0x1a, 0x00, 0xf1, 0x16, 0x04, 0x00, 0x89, 0x49, 0x05, 0x00, 0xc1, 0xc0, 0x03, + 0x00, 0xfb, 0xbc, 0x03, 0x00, 0xe2, 0x04, 0x00, 0x00, 0x61, 0x48, 0x05, 0x00, 0x51, 0xc2, + 0x03, 0x00, 0x6d, 0x94, 0x05, 0x00, 0x51, 0xca, 0x04, 0x00, 0x87, 0x24, 0x04, 0x00, 0x45, + 0x25, 0x04, 0x00, 0x48, 0x53, 0x08, 0x00, 0xd9, 0xfc, 0x00, 0x00, 0x91, 0x1c, 0x04, 0x00, + 0x51, 0x8c, 0x00, 0x00, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x6e, 0xf8, 0xff, 0xbd, 0xff, + 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x07, 0xf9, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xfe, 0xf7, + 0xe4, 0xff, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0x0f, 0xf8, 0xff, 0xbd, 0xff, + 0xb5, 0x68, 0x46, 0xff, 0xf7, 0xfe, 0xf9, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, + 0x91, 0xfa, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xff, 0xf7, 0xdc, 0xfa, 0xff, 0xbd, 0xff, + 0xb5, 0x68, 0x46, 0xff, 0xf7, 0xa5, 0xf9, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xfe, 0xf7, + 0xa8, 0xfd, 0xff, 0xbd, + + 0x01, 0x05, 0xff, 0x5f, 0x16, 0x79, 0x08, 0x00, 0x5a, 0xff, 0xb5, 0x68, 0x46, 0xfe, 0xf7, + 0xcf, 0xfd, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xfe, 0xf7, 0x84, 0xfd, 0xff, 0xbd, 0xff, + 0xb5, 0x68, 0x46, 0xfe, 0xf7, 0x55, 0xfd, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xfe, 0xf7, + 0x65, 0xfd, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xfe, 0xf7, 0x15, 0xff, 0xff, 0xbd, 0xff, + 0xb5, 0x68, 0x46, 0xfe, 0xf7, 0x94, 0xff, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xfe, 0xf7, + 0x41, 0xff, 0xff, 0xbd, 0xff, 0xb5, 0x68, 0x46, 0xfe, 0xf7, 0x44, 0xfe, 0xff, 0xbd, 0xff, + 0xb5, 0x68, 0x46, 0xfe, 0xf7, 0xdd, 0xfe, 0xff, 0xbd, + + 0x01, 0x05, 0xff, 0x8d, 0x78, 0x7b, 0x08, 0x00, 0x88, 0x00, 0xb5, 0xf9, 0xf0, 0xd5, 0xf8, + 0x00, 0xbd, 0xcb, 0x70, 0x08, 0x00, 0x5f, 0x70, 0x08, 0x00, 0x7f, 0x70, 0x08, 0x00, 0xf1, + 0x70, 0x08, 0x00, 0x01, 0x78, 0x08, 0x00, 0xfd, 0x02, 0x18, 0x00, 0x41, 0x70, 0x08, 0x00, + 0x11, 0x71, 0x08, 0x00, 0x95, 0x71, 0x08, 0x00, 0xd7, 0x71, 0x08, 0x00, 0xfb, 0x71, 0x08, + 0x00, 0x1b, 0x72, 0x08, 0x00, 0x01, 0x70, 0x08, 0x00, 0x89, 0x03, 0x18, 0x00, 0x61, 0x03, + 0x18, 0x00, 0xad, 0x72, 0x08, 0x00, 0xd1, 0x72, 0x08, 0x00, 0x2d, 0x74, 0x08, 0x00, 0x47, + 0x72, 0x08, 0x00, 0x71, 0x73, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0x73, 0x08, 0x00, + 0x3b, 0x74, 0x08, 0x00, 0xf5, 0x73, 0x08, 0x00, 0x1d, 0x74, 0x08, 0x00, 0x23, 0x74, 0x08, + 0x00, 0xb9, 0x74, 0x08, 0x00, 0xf1, 0x74, 0x08, 0x00, 0x65, 0x75, 0x08, 0x00, 0x39, 0x76, + 0x08, 0x00, 0xa5, 0x77, 0x08, 0x00, 0x87, 0x6f, 0x08, 0x00, + + 0x01, 0x05, 0xff, 0x85, 0x04, 0xf3, 0x1a, 0x00, 0x80, 0x36, 0x5e, 0x02, 0x00, 0x38, 0xc2, + 0x02, 0x00, 0x00, 0xc5, 0x02, 0x00, 0x9c, 0x9c, 0x00, 0x00, 0x70, 0x8c, 0x00, 0x00, 0x02, + 0x69, 0x00, 0x00, 0x84, 0x97, 0x00, 0x00, 0x6a, 0xa0, 0x02, 0x00, 0xf0, 0x6e, 0x03, 0x00, + 0xf0, 0x8a, 0x04, 0x00, 0x32, 0xaf, 0x02, 0x00, 0xf4, 0xf8, 0x03, 0x00, 0x24, 0x8d, 0x03, + 0x00, 0xa8, 0x55, 0x00, 0x00, 0x00, 0x16, 0x04, 0x00, 0x14, 0x85, 0x01, 0x00, 0x54, 0x82, + 0x01, 0x00, 0x42, 0x7b, 0x02, 0x00, 0xac, 0xf9, 0x03, 0x00, 0xd6, 0x7b, 0x03, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x1c, 0x86, 0x00, 0x00, 0x68, 0x9d, 0x03, 0x00, 0xb4, 0xeb, 0x03, 0x00, + 0x78, 0x68, 0x03, 0x00, 0x3e, 0xf6, 0x02, 0x00, 0x3c, 0xe3, 0x03, 0x00, 0xdc, 0xe3, 0x02, + 0x00, 0xce, 0x98, 0x01, 0x00, 0x3a, 0xbd, 0x03, 0x00, 0x72, 0x25, 0x04, 0x00, 0xce, 0x44, + 0x01, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0x00, 0x00, 0x18, 0x00, 0xfa, 0xff, 0xb5, 0x00, 0x93, 0x01, 0x92, + 0x02, 0x91, 0x06, 0x1c, 0xe4, 0x4f, 0x38, 0x78, 0x44, 0x1e, 0x01, 0x28, 0x02, 0xd1, 0x01, + 0x21, 0xc9, 0x03, 0x01, 0xe0, 0x7d, 0x21, 0x09, 0x02, 0xd2, 0x48, 0x01, 0x22, 0x96, 0x46, + 0xd1, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x03, 0x91, 0xd4, 0x48, 0x00, 0x78, 0x02, 0x28, 0x00, + 0xd0, 0xb8, 0xe0, 0xd3, 0x4d, 0xcd, 0x48, 0x01, 0x2e, 0x53, 0xd0, 0x06, 0x1c, 0xb0, 0x89, + 0x00, 0x2c, 0x02, 0xd0, 0x7d, 0x20, 0x00, 0x02, 0x01, 0xe0, 0x01, 0x20, 0xc0, 0x03, 0x02, + 0x99, 0x48, 0x43, 0xc7, 0x49, 0x08, 0x18, 0xf0, 0x49, 0x01, 0x22, 0x96, 0x46, 0xc6, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0xb1, 0x81, 0x38, 0x78, 0x01, 0x28, 0x02, 0xd1, 0x01, 0x20, 0xc0, + 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, 0xc1, 0x4c, 0x0f, 0x27, 0x21, 0x88, 0x39, 0x40, + 0x22, 0x88, 0x12, 0x09, 0x3a, 0x40, 0x8a, 0x42, 0x04, 0xdd, 0x21, 0x88, 0x09, 0x11, 0x09, + 0x07, 0x0f, 0x0f, 0x01, 0xe0, 0x21, 0x88, 0x0f, 0x40, 0x02, 0x99, 0x41, 0x43, 0xb6, 0x48, + 0x40, 0x18, 0xdf, 0x49, 0x01, 0x22, 0x96, 0x46, 0xb4, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x28, + 0x1c, 0x00, 0x8e, 0x1f, 0x22, 0x10, 0x40, 0x40, 0x18, 0xa1, 0x89, 0x11, 0x40, 0x08, 0x18, + 0x31, 0x8a, 0x08, 0x18, 0x29, 0x88, 0x09, 0x0a, 0x08, 0x18, 0x29, 0x89, 0x09, 0x0a, 0x08, + 0x18, 0x39, 0x18, 0x01, 0x98, 0x40, 0x18, 0x05, 0x30, 0x01, 0x04, 0x09, 0x0c, 0xdc, 0x48, + 0x00, 0x22, 0x01, 0x23, 0x9e, 0x46, 0xdb, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x54, 0xe0, 0x06, + 0x1c, 0x30, 0x88, 0x00, 0x2c, 0x02, 0xd0, 0x7d, 0x20, 0x00, 0x02, 0x01, 0xe0, 0x01, 0x20, + 0xc0, 0x03, 0x02, 0x99, + + 0x01, 0x05, 0xff, 0xff, 0xfa, 0x00, 0x18, 0x00, 0xfa, 0x48, 0x43, 0x9d, 0x49, 0x08, 0x18, + 0xc6, 0x49, 0x01, 0x22, 0x96, 0x46, 0x9c, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x31, 0x80, 0x38, + 0x78, 0x01, 0x28, 0x02, 0xd1, 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, + 0x97, 0x4c, 0x0f, 0x25, 0xa1, 0x88, 0x09, 0x09, 0x29, 0x40, 0xa2, 0x88, 0x2a, 0x40, 0x8a, + 0x42, 0x03, 0xdd, 0xa1, 0x88, 0x09, 0x07, 0x0d, 0x0f, 0x02, 0xe0, 0xa1, 0x88, 0x09, 0x09, + 0x0d, 0x40, 0x1f, 0x27, 0x02, 0x99, 0x41, 0x43, 0x8b, 0x48, 0x40, 0x18, 0xb4, 0x49, 0x01, + 0x22, 0x96, 0x46, 0x8a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x30, 0x89, 0x38, 0x40, 0x40, 0x18, + 0xb1, 0x88, 0x39, 0x40, 0x08, 0x18, 0x21, 0x89, 0x39, 0x40, 0x08, 0x18, 0x87, 0x49, 0x09, + 0x88, 0x09, 0x0a, 0x08, 0x18, 0x85, 0x49, 0x09, 0x89, 0x09, 0x0a, 0x08, 0x18, 0x29, 0x18, + 0x01, 0x98, 0x40, 0x18, 0x05, 0x30, 0x01, 0x04, 0x09, 0x0c, 0xb1, 0x48, 0x00, 0x22, 0x01, + 0x23, 0x9e, 0x46, 0xb0, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x00, 0x98, 0x03, 0x99, 0x41, 0x18, + 0xae, 0x48, 0x40, 0x18, 0xaf, 0x49, 0x01, 0x22, 0x96, 0x46, 0x75, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x08, 0xe0, 0xa9, 0x48, 0x00, 0x99, 0x40, 0x18, 0xaa, 0x49, 0x01, 0x22, 0x96, 0x46, + 0x70, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xc8, 0x1c, 0xa5, 0x49, 0x08, 0x80, 0x09, 0x99, 0xa6, + 0x48, 0x49, 0x1c, 0x01, 0xd0, 0x59, 0x30, 0x00, 0xe0, 0x61, 0x30, 0x00, 0x90, 0xff, 0xbd, + 0xf8, 0xb5, 0x05, 0x1c, 0x9e, 0x48, 0x40, 0x19, 0x9f, 0x49, 0x01, 0x24, 0xa6, 0x46, 0x65, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xc8, 0x1c, 0x9a, 0x49, 0x08, 0x80, 0x6b, 0x48, 0x00, 0x78, + 0x01, 0x28, 0x02, 0xd1, + + 0x01, 0x05, 0xff, 0xff, 0xf4, 0x01, 0x18, 0x00, 0xfa, 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, + 0x7d, 0x20, 0x00, 0x02, 0x68, 0x43, 0x5c, 0x4e, 0x30, 0x18, 0x85, 0x49, 0xa6, 0x46, 0x5b, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x09, 0x04, 0x09, 0x0c, 0x94, 0x48, 0x04, 0x30, 0x06, 0x22, + 0xa6, 0x46, 0x91, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x90, 0x48, 0x5a, 0x30, 0x00, 0x21, 0xa6, + 0x46, 0x8f, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x07, 0x1c, 0x8c, 0x48, 0x08, 0x21, 0xa6, 0x46, + 0x8c, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xc7, 0x19, 0x14, 0x2f, 0x00, 0xd8, 0x14, 0x27, 0x55, + 0x48, 0x00, 0x78, 0x01, 0x28, 0x02, 0xd1, 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, + 0x00, 0x02, 0x68, 0x43, 0x30, 0x18, 0x70, 0x49, 0xa6, 0x46, 0x46, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0xc8, 0x1b, 0x05, 0x38, 0x01, 0x04, 0x09, 0x0c, 0x7d, 0x48, 0x2c, 0x30, 0x00, 0x22, + 0xa6, 0x46, 0x7a, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x7d, 0x4f, 0x38, 0x1c, 0x08, 0x21, 0xa6, + 0x46, 0x79, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x90, 0x38, 0x1c, 0x00, 0x21, 0xa6, 0x46, + 0x75, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x99, 0x88, 0x42, 0x06, 0xdd, 0x38, 0x1c, 0x00, + 0x21, 0xa6, 0x46, 0x71, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x05, 0xe0, 0x38, 0x1c, 0x08, 0x21, + 0xa6, 0x46, 0x6d, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x07, 0x1c, 0x6a, 0x48, 0x00, 0x21, 0xa6, + 0x46, 0x6a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x3f, 0x18, 0x08, 0x37, 0x34, 0x48, 0x00, 0x78, + 0x01, 0x28, 0x02, 0xd1, 0x01, 0x20, 0xc0, 0x03, 0x01, 0xe0, 0x7d, 0x20, 0x00, 0x02, 0x68, + 0x43, 0x30, 0x18, 0x4f, 0x49, 0xa6, 0x46, 0x25, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x78, 0x18, + 0x01, 0x04, 0x09, 0x0c, + + 0x01, 0x05, 0xff, 0xff, 0xee, 0x02, 0x18, 0x00, 0xfa, 0x56, 0x48, 0x00, 0x22, 0xa6, 0x46, + 0x55, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xf8, 0xbd, 0x10, 0xb5, 0x43, 0x69, 0x5f, 0x49, 0x09, + 0x78, 0x5b, 0x4a, 0x12, 0x78, 0x01, 0x2a, 0x04, 0xd1, 0x1c, 0x78, 0x00, 0x2c, 0x01, 0xd1, + 0x5c, 0x49, 0x09, 0x78, 0x1a, 0x4c, 0x24, 0x78, 0x00, 0x2c, 0x1b, 0xd0, 0xff, 0x29, 0x19, + 0xd0, 0x01, 0x2a, 0x08, 0xd0, 0x58, 0x4a, 0x12, 0x78, 0x01, 0x2a, 0x13, 0xd0, 0x1a, 0x78, + 0x01, 0x2a, 0x01, 0xd0, 0x02, 0x2a, 0x0e, 0xd1, 0x10, 0x22, 0xd4, 0x56, 0x8c, 0x42, 0x0a, + 0xdd, 0x61, 0x1a, 0x09, 0x06, 0x09, 0x0e, 0x5b, 0x1c, 0x00, 0x24, 0x1c, 0x57, 0x64, 0x1a, + 0x1c, 0x70, 0x01, 0x33, 0x01, 0x3a, 0xf8, 0xd1, 0x48, 0x49, 0x81, 0x60, 0x48, 0x48, 0x15, + 0x30, 0x10, 0xbd, 0x4a, 0x48, 0x15, 0x30, 0xf7, 0x46, 0xc0, 0x46, 0x80, 0xc3, 0xc9, 0x01, + 0x6d, 0x94, 0x05, 0x00, 0xc0, 0x79, 0x1a, 0x00, 0x3f, 0x42, 0x0f, 0x00, 0x05, 0x9a, 0x05, + 0x00, 0x28, 0x79, 0x1a, 0x00, 0xe8, 0x57, 0x08, 0x00, 0x2c, 0x7a, 0x1a, 0x00, 0xff, 0xb5, + 0x05, 0x1c, 0x03, 0x48, 0x00, 0x78, 0x01, 0x28, 0x05, 0xd1, 0x01, 0x26, 0xf6, 0x03, 0x04, + 0xe0, 0xc0, 0x46, 0x5e, 0x56, 0x08, 0x00, 0x7d, 0x26, 0x36, 0x02, 0x28, 0x48, 0x00, 0x21, + 0x01, 0x24, 0xa6, 0x46, 0x38, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x01, 0x1c, 0x19, 0x48, 0x48, + 0x43, 0x31, 0x1c, 0xa6, 0x46, 0x3b, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x01, 0x91, 0x6d, 0x69, + 0xee, 0x7a, 0x28, 0x1c, 0x21, 0x1c, 0xa6, 0x46, 0x31, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x07, + 0x1c, 0x28, 0x1c, 0x05, 0x21, 0xa6, 0x46, 0x2d, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x02, 0x90, + 0x28, 0x7f, 0x03, 0x90, + + 0x01, 0x05, 0xff, 0xff, 0xe8, 0x03, 0x18, 0x00, 0xfa, 0xed, 0x7e, 0xff, 0x2e, 0x04, 0xd0, + 0x30, 0x1c, 0xa6, 0x46, 0x29, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x78, 0x1c, 0x19, 0xd0, 0x1b, + 0x48, 0x0a, 0x21, 0xa6, 0x46, 0x26, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x06, 0x28, 0x09, 0xd0, + 0x01, 0x2e, 0x07, 0xd0, 0x38, 0x1c, 0xa6, 0x46, 0x22, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x09, + 0xe0, 0x40, 0x42, 0x0f, 0x00, 0x38, 0x1c, 0x31, 0x1c, 0x03, 0x9a, 0x2b, 0x1c, 0xa6, 0x46, + 0x1e, 0x4e, 0xfe, 0x44, 0x30, 0x47, 0x02, 0x98, 0x00, 0x90, 0x28, 0x1c, 0x39, 0x1c, 0x03, + 0x9a, 0x01, 0x9b, 0xa6, 0x46, 0x1a, 0x4c, 0xfe, 0x44, 0x20, 0x47, 0x00, 0x90, 0xff, 0xbd, + 0x04, 0x60, 0x1a, 0x00, 0xc9, 0x49, 0x05, 0x00, 0xe1, 0x04, 0x00, 0x00, 0x48, 0x53, 0x08, + 0x00, 0xe2, 0x04, 0x00, 0x00, 0x71, 0x55, 0x00, 0x00, 0x93, 0x49, 0x05, 0x00, 0x16, 0x74, + 0x1a, 0x00, 0x6b, 0x4a, 0x05, 0x00, 0x42, 0x74, 0x1a, 0x00, 0x44, 0x74, 0x1a, 0x00, 0xc6, + 0x63, 0x08, 0x00, 0x10, 0x30, 0x19, 0x00, 0xef, 0x68, 0x00, 0x00, 0xc1, 0x63, 0x08, 0x00, + 0xc0, 0x63, 0x08, 0x00, 0xc3, 0x63, 0x08, 0x00, 0xff, 0x15, 0x04, 0x00, 0xa7, 0x4a, 0x05, + 0x00, 0xe5, 0x2b, 0x00, 0x00, 0x81, 0x42, 0x02, 0x00, 0x4d, 0x4a, 0x05, 0x00, 0xd3, 0x01, + 0x18, 0x00, 0x55, 0x3f, 0x02, 0x00, 0x01, 0x00, 0x18, 0x00, 0x6d, 0x94, 0x05, 0x00, 0x70, + 0xb5, 0xde, 0x4d, 0xae, 0x7f, 0x01, 0x24, 0xa6, 0x46, 0xda, 0x48, 0xfe, 0x44, 0x00, 0x47, + 0xb0, 0x42, 0xf8, 0xd1, 0x03, 0x20, 0x17, 0x21, 0x89, 0x01, 0xa6, 0x46, 0xd6, 0x4a, 0xfe, + 0x44, 0x10, 0x47, 0xad, 0x7f, 0xa6, 0x46, 0xd3, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xa8, 0x42, + 0xf9, 0xd1, 0xfe, 0xe7, + + 0x01, 0x05, 0xff, 0xff, 0xe2, 0x04, 0x18, 0x00, 0xfa, 0xf0, 0xb5, 0x88, 0xb0, 0x0b, 0x21, + 0x09, 0x18, 0x68, 0x46, 0x0c, 0x22, 0x01, 0x24, 0xa6, 0x46, 0xd8, 0x4b, 0xfe, 0x44, 0x18, + 0x47, 0x68, 0x46, 0x01, 0x78, 0x03, 0x91, 0x45, 0x78, 0x81, 0x78, 0x04, 0x91, 0xc0, 0x78, + 0x05, 0x90, 0x01, 0x98, 0x06, 0x90, 0x02, 0x98, 0x07, 0x90, 0xa6, 0x46, 0xc7, 0x48, 0xfe, + 0x44, 0x00, 0x47, 0xcf, 0x4f, 0x38, 0x78, 0xc9, 0x4e, 0x81, 0x09, 0x16, 0xd3, 0x14, 0x20, + 0xb0, 0x80, 0xc8, 0x20, 0xa6, 0x46, 0xcc, 0x49, 0xfe, 0x44, 0x08, 0x47, 0xc0, 0x48, 0x00, + 0x21, 0xa6, 0x46, 0xc0, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xbf, 0x48, 0x03, 0x21, 0xa6, 0x46, + 0xbf, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x39, 0x78, 0xdf, 0x20, 0x08, 0x40, 0x38, 0x70, 0xc0, + 0x09, 0x0a, 0xd3, 0x24, 0x20, 0xb0, 0x80, 0xc8, 0x20, 0xa6, 0x46, 0xbf, 0x49, 0xfe, 0x44, + 0x08, 0x47, 0x39, 0x78, 0xbf, 0x20, 0x08, 0x40, 0x38, 0x70, 0xb7, 0x48, 0x07, 0x2d, 0x09, + 0xd0, 0xaa, 0x00, 0xb6, 0x49, 0x0b, 0x1c, 0x38, 0x3b, 0x9b, 0x58, 0x05, 0x1c, 0xab, 0x60, + 0x88, 0x58, 0x07, 0x90, 0x02, 0xe0, 0x05, 0x1c, 0x06, 0x98, 0xa8, 0x60, 0x07, 0x98, 0x68, + 0x60, 0x28, 0x1c, 0x00, 0x21, 0xa6, 0x46, 0xaa, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x03, 0x98, + 0x80, 0x1e, 0xac, 0x49, 0x10, 0xd0, 0x01, 0x38, 0x0c, 0xd0, 0x01, 0x38, 0x01, 0xd0, 0x02, + 0x20, 0x0b, 0xe0, 0x04, 0x98, 0x40, 0x06, 0x80, 0x0c, 0x78, 0x30, 0x88, 0x83, 0x15, 0x20, + 0xb0, 0x80, 0x20, 0x20, 0x10, 0xe0, 0x20, 0x1c, 0x00, 0xe0, 0x00, 0x20, 0x80, 0x07, 0x82, + 0x0f, 0x05, 0x98, 0x00, 0x07, 0x40, 0x0e, 0x80, 0x18, 0x04, 0x9a, 0x52, 0x06, 0x92, 0x0c, + 0x10, 0x18, 0x08, 0x80, + + 0x01, 0x05, 0xff, 0xff, 0xdc, 0x05, 0x18, 0x00, 0xfa, 0x11, 0x20, 0x30, 0x80, 0x04, 0x20, + 0x39, 0x78, 0x08, 0x43, 0x38, 0x70, 0x03, 0x98, 0x00, 0x28, 0x05, 0xd0, 0x91, 0x48, 0x00, + 0x21, 0xa6, 0x46, 0x92, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xc8, 0x20, 0xa6, 0x46, 0x97, 0x49, + 0xfe, 0x44, 0x08, 0x47, 0x8d, 0x48, 0x0c, 0x21, 0xa6, 0x46, 0x8d, 0x4a, 0xfe, 0x44, 0x10, + 0x47, 0x03, 0x98, 0x00, 0x28, 0x02, 0xd0, 0xff, 0x20, 0x02, 0x30, 0x28, 0x80, 0x08, 0xb0, + 0xf0, 0xbd, 0xf8, 0xb5, 0xc1, 0x7a, 0x00, 0x91, 0x07, 0x7b, 0x00, 0x2f, 0x03, 0xd0, 0x01, + 0x2f, 0x02, 0xd1, 0x01, 0x27, 0x00, 0xe0, 0x02, 0x27, 0x01, 0x24, 0xa6, 0x46, 0x7d, 0x48, + 0xfe, 0x44, 0x00, 0x47, 0x85, 0x4e, 0x30, 0x78, 0x7f, 0x4d, 0x81, 0x09, 0x16, 0xd3, 0x14, + 0x20, 0xa8, 0x80, 0xc8, 0x20, 0xa6, 0x46, 0x82, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x76, 0x48, + 0x00, 0x21, 0xa6, 0x46, 0x76, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x75, 0x48, 0x03, 0x21, 0xa6, + 0x46, 0x75, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x31, 0x78, 0xdf, 0x20, 0x08, 0x40, 0x30, 0x70, + 0xc0, 0x09, 0x0a, 0xd3, 0x24, 0x20, 0xa8, 0x80, 0xc8, 0x20, 0xa6, 0x46, 0x75, 0x49, 0xfe, + 0x44, 0x08, 0x47, 0x31, 0x78, 0xbf, 0x20, 0x08, 0x40, 0x30, 0x70, 0x73, 0x48, 0x01, 0x78, + 0x6e, 0x48, 0x01, 0x29, 0x12, 0xd0, 0x00, 0x99, 0x89, 0x01, 0x41, 0x80, 0x87, 0x80, 0x21, + 0x20, 0x28, 0x80, 0xc8, 0x20, 0xa6, 0x46, 0x6b, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x62, 0x48, + 0x0c, 0x21, 0xa6, 0x46, 0x61, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x02, 0x20, 0x13, 0xe0, 0x00, + 0x99, 0x8a, 0x01, 0x02, 0x21, 0x11, 0x43, 0xc1, 0x83, 0x07, 0x84, 0x25, 0x20, 0xa8, 0x80, + 0xc8, 0x20, 0xa6, 0x46, + + 0x01, 0x05, 0xff, 0xff, 0xd6, 0x06, 0x18, 0x00, 0xfa, 0x61, 0x49, 0xfe, 0x44, 0x08, 0x47, + 0x57, 0x48, 0x0c, 0x21, 0xa6, 0x46, 0x57, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x40, 0x20, 0x31, + 0x78, 0x08, 0x43, 0x30, 0x70, 0xf8, 0xbd, 0xf8, 0xb5, 0x00, 0x92, 0x0f, 0x1c, 0x05, 0x1c, + 0x61, 0x48, 0x01, 0x78, 0x01, 0x24, 0x58, 0x4e, 0xb5, 0x42, 0x0e, 0xdc, 0x5b, 0x48, 0xb5, + 0x42, 0x4e, 0xd0, 0x44, 0x4a, 0xaa, 0x1a, 0x52, 0xd0, 0x01, 0x3a, 0x49, 0xd0, 0x04, 0x3a, + 0x32, 0xd0, 0x68, 0x3a, 0x4c, 0xd0, 0x01, 0x3a, 0x50, 0xd0, 0x3a, 0xe0, 0x30, 0x1c, 0x2f, + 0x30, 0x28, 0x1a, 0x3a, 0xd0, 0x24, 0x38, 0x36, 0xd0, 0x01, 0x38, 0x18, 0xd0, 0x01, 0x38, + 0x30, 0xd1, 0x47, 0x48, 0x6d, 0x30, 0x00, 0x78, 0x02, 0x28, 0x0e, 0xd1, 0xf8, 0x7a, 0x00, + 0x07, 0x00, 0x0f, 0x47, 0x49, 0x0a, 0x1c, 0xb6, 0x3a, 0x10, 0x70, 0x02, 0x01, 0x02, 0x43, + 0x12, 0x01, 0x02, 0x43, 0x12, 0x01, 0x02, 0x43, 0x0a, 0x80, 0x0b, 0xe0, 0x0c, 0x20, 0x18, + 0x70, 0x08, 0xe0, 0x01, 0x29, 0x01, 0xd0, 0x04, 0x29, 0x04, 0xd1, 0x38, 0x1c, 0xa6, 0x46, + 0x3e, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x25, 0x1c, 0x00, 0x98, 0x05, 0x70, 0x4c, 0xe0, 0x00, + 0x29, 0x4a, 0xd1, 0xb8, 0x7d, 0x01, 0x28, 0x47, 0xd1, 0x04, 0x20, 0xa6, 0x46, 0x38, 0x49, + 0xfe, 0x44, 0x08, 0x47, 0xff, 0x20, 0xb8, 0x75, 0x3f, 0xe0, 0x00, 0x24, 0x3d, 0xe0, 0x39, + 0x48, 0x00, 0xe0, 0x2f, 0x48, 0xf9, 0x7a, 0x01, 0x70, 0xe6, 0xe7, 0x00, 0x21, 0x06, 0x22, + 0xa6, 0x46, 0x35, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x30, 0xe0, 0x03, 0x21, 0x06, 0x22, 0xa6, + 0x46, 0x32, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x31, 0x48, 0x00, 0x68, 0x00, 0x28, 0x13, 0xd1, + 0x04, 0x3e, 0xb5, 0x42, + + 0x01, 0x05, 0xff, 0xd1, 0xd0, 0x07, 0x18, 0x00, 0xcc, 0x09, 0xd0, 0x13, 0x48, 0x85, 0x42, + 0x20, 0xd1, 0x38, 0x1c, 0x25, 0x1c, 0xa6, 0x46, 0x26, 0x49, 0xfe, 0x44, 0x08, 0x47, 0xc9, + 0xe7, 0x38, 0x1c, 0x25, 0x1c, 0xa6, 0x46, 0x23, 0x49, 0xfe, 0x44, 0x08, 0x47, 0xc2, 0xe7, + 0x04, 0x20, 0xa6, 0x46, 0x25, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x47, 0x21, 0x09, 0x02, 0x01, + 0x80, 0x87, 0x80, 0x39, 0x0c, 0xc1, 0x80, 0xa6, 0x46, 0x21, 0x49, 0xfe, 0x44, 0x08, 0x47, + 0x21, 0x48, 0x9e, 0x30, 0x06, 0x99, 0x08, 0x62, 0x20, 0x1c, 0xf8, 0xbd, 0xc0, 0x46, 0x17, + 0xfd, 0x00, 0x00, 0x8b, 0x05, 0x05, 0x00, 0xf5, 0xd3, 0x04, 0x00, 0x8c, 0x4f, 0x08, 0x00, + 0x0d, 0x82, 0x03, 0x00, 0x0d, 0x18, 0x19, 0x00, 0x79, 0x48, 0x05, 0x00, 0x62, 0x1c, 0x19, + 0x00, 0x61, 0x48, 0x05, 0x00, 0x44, 0x24, 0x19, 0x00, 0x0c, 0x18, 0x19, 0x00, 0xc8, 0x8d, + 0x06, 0x00, 0x00, 0x30, 0x19, 0x00, 0x21, 0xa7, 0x05, 0x00, 0xd4, 0x0f, 0x08, 0x00, 0xbb, + 0x16, 0x04, 0x00, 0xc8, 0x63, 0x08, 0x00, 0x88, 0xfd, 0x00, 0x00, 0x4c, 0xa6, 0x1b, 0x00, + 0x6d, 0x09, 0x18, 0x00, 0xe1, 0x42, 0x02, 0x00, 0x6a, 0x0a, 0x1a, 0x00, 0x21, 0x06, 0x18, + 0x00, 0xe3, 0x04, 0x18, 0x00, 0xe8, 0x57, 0x08, 0x00, 0xc9, 0x63, 0x08, 0x00, 0x91, 0x48, + 0x05, 0x00, 0x2c, 0x51, 0x08, 0x00, 0x9b, 0x60, 0x04, 0x00, 0xe9, 0x3f, 0x05, 0x00, 0x81, + 0x60, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0xd0, 0x2d, 0x18, 0x00, 0xfa, 0xf0, 0xb5, 0xc6, 0x48, 0x00, 0x78, + 0x02, 0x28, 0x00, 0xd0, 0x9e, 0xe0, 0xc5, 0x48, 0x05, 0x21, 0x01, 0x25, 0xae, 0x46, 0xc4, + 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x01, 0x1c, 0xc0, 0x48, 0x00, 0x22, 0xae, 0x46, 0xf3, 0x4b, + 0xfe, 0x44, 0x18, 0x47, 0xf2, 0x48, 0x00, 0x78, 0x00, 0x28, 0x18, 0xd1, 0x13, 0x20, 0xbe, + 0x49, 0x08, 0x80, 0x03, 0x27, 0x39, 0x1c, 0x28, 0x1c, 0xae, 0x46, 0xbc, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0xec, 0x4e, 0x30, 0x1c, 0x0a, 0x30, 0x39, 0x1c, 0xae, 0x46, 0xb9, 0x4a, 0xfe, + 0x44, 0x10, 0x47, 0x30, 0x1c, 0x00, 0x21, 0x0c, 0x22, 0xae, 0x46, 0xe4, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0xb6, 0x4c, 0x27, 0x1c, 0x02, 0x3f, 0x38, 0x1c, 0x02, 0x21, 0x00, 0x22, 0xae, + 0x46, 0xb1, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xb2, 0x4e, 0x30, 0x1c, 0xc8, 0x38, 0x20, 0x60, + 0x38, 0x1c, 0x03, 0x21, 0x00, 0x22, 0xae, 0x46, 0xac, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x26, + 0x60, 0x38, 0x1c, 0x04, 0x21, 0x00, 0x22, 0xae, 0x46, 0xa8, 0x4b, 0xfe, 0x44, 0x18, 0x47, + 0xa9, 0x4e, 0x30, 0x1c, 0xd1, 0x38, 0x20, 0x60, 0x38, 0x1c, 0x05, 0x21, 0x00, 0x22, 0xae, + 0x46, 0xa2, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x26, 0x60, 0x38, 0x1c, 0x06, 0x21, 0x00, 0x22, + 0xae, 0x46, 0x9e, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x30, 0x1c, 0x32, 0x30, 0x20, 0x60, 0x38, + 0x1c, 0x07, 0x21, 0x00, 0x22, 0xae, 0x46, 0x99, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x30, 0x1c, + 0x62, 0x30, 0x20, 0x60, 0x38, 0x1c, 0x08, 0x21, 0x00, 0x22, 0xae, 0x46, 0x94, 0x4b, 0xfe, + 0x44, 0x18, 0x47, 0xc2, 0x36, 0x26, 0x60, 0x38, 0x1c, 0x09, 0x21, 0x00, 0x22, 0xae, 0x46, + 0x90, 0x4b, 0xfe, 0x44, + + 0x01, 0x05, 0xff, 0xff, 0xca, 0x2e, 0x18, 0x00, 0xfa, 0x18, 0x47, 0xe9, 0x48, 0x20, 0x60, + 0x38, 0x1c, 0x0a, 0x21, 0x00, 0x22, 0xae, 0x46, 0x8b, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xe6, + 0x48, 0x20, 0x60, 0x38, 0x1c, 0x0b, 0x21, 0x00, 0x22, 0xae, 0x46, 0x87, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0xe2, 0x48, 0x20, 0x60, 0xe2, 0x48, 0x00, 0x88, 0x80, 0x0b, 0x0e, 0xd3, 0x00, + 0x22, 0x10, 0x1c, 0xc3, 0x00, 0xe0, 0x49, 0x0c, 0x1c, 0x02, 0x3c, 0xe4, 0x18, 0x25, 0x88, + 0x2d, 0x06, 0x2d, 0x0e, 0x25, 0x80, 0xca, 0x52, 0x01, 0x30, 0x14, 0x28, 0xf2, 0xdb, 0xf0, + 0xbd, 0x10, 0xb5, 0x73, 0x48, 0x00, 0x78, 0x00, 0x28, 0x32, 0xd0, 0x02, 0x28, 0x3b, 0xd1, + 0xd7, 0x48, 0x48, 0x21, 0x09, 0x18, 0x0b, 0x88, 0x01, 0x22, 0x1a, 0x43, 0x0a, 0x80, 0xd1, + 0x4a, 0x70, 0x3a, 0x13, 0x88, 0x9b, 0x10, 0x9b, 0x00, 0x13, 0x80, 0x7c, 0x23, 0x8a, 0x8e, + 0x9a, 0x43, 0x32, 0x23, 0x13, 0x43, 0x8b, 0x86, 0xce, 0x4b, 0x19, 0x88, 0x49, 0x09, 0x4a, + 0x01, 0x08, 0x21, 0x11, 0x43, 0x19, 0x80, 0x01, 0x88, 0x49, 0x10, 0x49, 0x00, 0x01, 0x80, + 0xca, 0x4b, 0xff, 0x24, 0x19, 0x88, 0x21, 0x40, 0x03, 0x22, 0x12, 0x02, 0x0a, 0x43, 0x1a, + 0x80, 0x19, 0x89, 0x21, 0x40, 0xff, 0x22, 0x01, 0x32, 0x0a, 0x43, 0x1a, 0x81, 0x02, 0x22, + 0x01, 0x88, 0x91, 0x43, 0x01, 0x80, 0x10, 0xbd, 0x07, 0x21, 0x09, 0x02, 0xc0, 0x48, 0x0a, + 0x1c, 0x01, 0x24, 0xa6, 0x46, 0xbf, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xbf, 0x48, 0x04, 0x70, + 0x10, 0xbd, 0xf0, 0xb5, 0xbe, 0x4d, 0x06, 0x26, 0x2e, 0x70, 0x0f, 0x20, 0x68, 0x70, 0x3d, + 0x20, 0xa8, 0x70, 0x4d, 0x20, 0xe8, 0x70, 0x03, 0x20, 0x32, 0x1c, 0x0f, 0x23, 0xd2, 0x49, + 0xe4, 0x31, 0x01, 0x24, + + 0x01, 0x05, 0xff, 0xff, 0xc4, 0x2f, 0x18, 0x00, 0xfa, 0xa6, 0x46, 0xb7, 0x4f, 0xfe, 0x44, + 0x38, 0x47, 0xaa, 0x78, 0xeb, 0x78, 0x03, 0x20, 0xcd, 0x49, 0xe5, 0x31, 0xa6, 0x46, 0xb2, + 0x4d, 0xfe, 0x44, 0x28, 0x47, 0x03, 0x20, 0xc9, 0x49, 0xe6, 0x31, 0xa6, 0x46, 0xb0, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0xa6, 0x46, 0xaf, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xae, 0x4a, 0x00, + 0x21, 0x08, 0x1c, 0x13, 0x68, 0x00, 0x2b, 0x04, 0xd0, 0x03, 0x07, 0x1d, 0x0f, 0x23, 0x1c, + 0xab, 0x40, 0x19, 0x43, 0x03, 0x07, 0x1b, 0x0f, 0xa9, 0x4d, 0x0f, 0x2b, 0x04, 0xd1, 0xc7, + 0x08, 0x33, 0x1c, 0x3b, 0x40, 0xe9, 0x52, 0x00, 0x21, 0x04, 0x32, 0x01, 0x30, 0x20, 0x28, + 0xe9, 0xd3, 0xa4, 0x4e, 0x30, 0x78, 0x81, 0x08, 0x07, 0xd2, 0x28, 0x1c, 0x02, 0x30, 0x0f, + 0x21, 0xa6, 0x46, 0xa1, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x30, 0x78, 0xc0, 0x08, 0x05, 0xd2, + 0x28, 0x1c, 0x0c, 0x21, 0xa6, 0x46, 0x9c, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x9c, 0x48, 0x00, + 0x21, 0xa6, 0x46, 0x99, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x00, 0x26, 0x99, 0x48, 0x06, 0x70, + 0x99, 0x48, 0x06, 0x70, 0x46, 0x70, 0x19, 0x20, 0x40, 0x01, 0x98, 0x49, 0x08, 0x80, 0xff, + 0x21, 0x97, 0x48, 0x01, 0x70, 0x97, 0x48, 0x01, 0x70, 0x97, 0x48, 0x06, 0x70, 0x98, 0x48, + 0x97, 0x4a, 0x10, 0x60, 0x98, 0x48, 0x24, 0x22, 0x02, 0x70, 0x18, 0x22, 0x42, 0x70, 0x20, + 0x22, 0x82, 0x70, 0x10, 0x22, 0xc2, 0x70, 0x98, 0x4d, 0x28, 0x1c, 0x00, 0x0a, 0x93, 0x4a, + 0x10, 0x80, 0x93, 0x48, 0x01, 0x70, 0xa6, 0x46, 0x92, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x92, + 0x4f, 0xa6, 0x46, 0x93, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x39, 0x88, 0x01, 0x40, 0x48, 0x08, + 0x04, 0xd0, 0x00, 0x20, + + 0x01, 0x05, 0xff, 0xff, 0xbe, 0x30, 0x18, 0x00, 0xfa, 0xc0, 0x43, 0x45, 0x19, 0x85, 0x42, + 0xf2, 0xd1, 0xa6, 0x46, 0x8c, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x39, 0x88, 0x01, 0x40, 0x48, + 0x08, 0x04, 0xd0, 0x5c, 0x20, 0xa6, 0x46, 0x89, 0x49, 0xfe, 0x44, 0x08, 0x47, 0xa6, 0x46, + 0x88, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x3e, 0x80, 0xf0, 0xbd, 0xe8, 0x57, 0x08, 0x00, 0x6a, + 0x31, 0x19, 0x00, 0xc4, 0x61, 0x1a, 0x00, 0x57, 0x4a, 0x05, 0x00, 0x9e, 0x13, 0x08, 0x00, + 0x21, 0x99, 0x05, 0x00, 0x61, 0x48, 0x05, 0x00, 0xff, 0x48, 0x05, 0x00, 0x0c, 0x60, 0x1a, + 0x00, 0xdc, 0x09, 0x04, 0x00, 0x25, 0x0d, 0x04, 0x00, 0xf0, 0xb5, 0x94, 0xb0, 0x7b, 0x48, + 0x06, 0xc8, 0x6d, 0x46, 0x68, 0x46, 0x06, 0xc0, 0x7a, 0x48, 0x06, 0xc8, 0x02, 0xa8, 0x06, + 0xc0, 0x79, 0x48, 0x06, 0xc8, 0x04, 0xa8, 0x06, 0xc0, 0x78, 0x48, 0x06, 0xc8, 0x06, 0xa8, + 0x06, 0xc0, 0x77, 0x48, 0x06, 0xc8, 0x08, 0xa8, 0x06, 0xc0, 0x76, 0x48, 0x06, 0xc8, 0x0a, + 0xa8, 0x06, 0xc0, 0x75, 0x48, 0x06, 0xc8, 0x0c, 0xa8, 0x06, 0xc0, 0x74, 0x48, 0x06, 0xc8, + 0x0e, 0xa8, 0x06, 0xc0, 0x73, 0x48, 0x06, 0xc8, 0x10, 0xa8, 0x06, 0xc0, 0x72, 0x48, 0x06, + 0xc8, 0x12, 0xa8, 0x06, 0xc0, 0x0c, 0x20, 0x01, 0x1c, 0x71, 0x4e, 0x30, 0x1c, 0x48, 0x30, + 0x01, 0x24, 0xa6, 0x46, 0x72, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x10, 0x48, 0x00, 0x78, 0x00, + 0x28, 0x20, 0xd1, 0x03, 0x27, 0x39, 0x1c, 0x69, 0x48, 0xa6, 0x46, 0x6d, 0x4a, 0xfe, 0x44, + 0x10, 0x47, 0x35, 0x48, 0x39, 0x1c, 0xa6, 0x46, 0x6a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x08, + 0x48, 0x00, 0x21, 0x0c, 0x22, 0xa6, 0x46, 0x04, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x2f, 0x48, + 0x02, 0x21, 0xa6, 0x46, + + 0x01, 0x05, 0xff, 0xff, 0xb8, 0x31, 0x18, 0x00, 0xfa, 0x40, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x05, 0xe0, 0xd3, 0x48, 0x05, 0x00, 0x62, 0x56, 0x08, 0x00, 0x14, 0xf6, 0x1a, 0x00, 0x30, + 0x1c, 0x04, 0x21, 0xa6, 0x46, 0x3a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x39, 0x48, 0x02, 0x21, + 0xa6, 0x46, 0x5a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x55, 0x48, 0x0e, 0x99, 0x01, 0x60, 0xa9, + 0x8f, 0x81, 0x80, 0x10, 0x99, 0x81, 0x60, 0x11, 0xa9, 0x09, 0x88, 0x81, 0x81, 0x12, 0x99, + 0x01, 0x61, 0x13, 0xa9, 0x09, 0x88, 0x81, 0x82, 0x42, 0x21, 0x4e, 0x4d, 0x28, 0x1c, 0x60, + 0x30, 0x01, 0x60, 0x21, 0x1c, 0x28, 0x1c, 0xa6, 0x46, 0x4d, 0x4a, 0xfe, 0x44, 0x10, 0x47, + 0x28, 0x1c, 0xa0, 0x38, 0x00, 0x99, 0x01, 0x60, 0x01, 0x99, 0x41, 0x60, 0x02, 0x99, 0x81, + 0x60, 0x03, 0x99, 0xc1, 0x60, 0x04, 0x99, 0x01, 0x61, 0x05, 0x99, 0x41, 0x61, 0x06, 0x99, + 0x81, 0x62, 0x07, 0x99, 0xc1, 0x62, 0x08, 0x99, 0x81, 0x63, 0x09, 0x99, 0xc1, 0x63, 0x0a, + 0x99, 0x01, 0x65, 0x0b, 0x99, 0x41, 0x65, 0x0c, 0x99, 0x81, 0x66, 0x0d, 0x99, 0xc1, 0x66, + 0x28, 0x1c, 0x04, 0x30, 0x21, 0x1c, 0xa6, 0x46, 0x3a, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0xa6, + 0x46, 0x37, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x14, 0xb0, 0xf0, 0xbd, 0xc0, 0x46, 0x1e, 0xf6, + 0x1a, 0x00, 0x2f, 0x0e, 0x04, 0x00, 0x6a, 0x12, 0x40, 0x00, 0x85, 0x12, 0x00, 0x00, 0x5c, + 0x7b, 0x1a, 0x00, 0x04, 0x09, 0x1a, 0x00, 0x24, 0x79, 0x1a, 0x00, 0x54, 0x7d, 0x1a, 0x00, + 0x2c, 0x7a, 0x1a, 0x00, 0x00, 0x74, 0x1a, 0x00, 0xdb, 0x4a, 0x05, 0x00, 0x08, 0x51, 0x08, + 0x00, 0x0c, 0x51, 0x08, 0x00, 0x0b, 0xd4, 0x04, 0x00, 0xf5, 0xd3, 0x04, 0x00, 0x89, 0x0b, + 0x18, 0x00, 0x80, 0x7b, + + 0x01, 0x05, 0xff, 0x9f, 0xb2, 0x32, 0x18, 0x00, 0x9a, 0x08, 0x00, 0x84, 0xf3, 0x1a, 0x00, + 0xb2, 0x50, 0x08, 0x00, 0x79, 0x48, 0x05, 0x00, 0x78, 0x61, 0x1a, 0x00, 0x65, 0x63, 0x08, + 0x00, 0x60, 0x63, 0x08, 0x00, 0xcc, 0x24, 0x08, 0x00, 0xc0, 0x63, 0x08, 0x00, 0xc1, 0x63, + 0x08, 0x00, 0xca, 0x63, 0x08, 0x00, 0xf4, 0x62, 0x08, 0x00, 0x36, 0xa0, 0x1b, 0x00, 0x68, + 0x63, 0x08, 0x00, 0x4c, 0x25, 0x08, 0x00, 0xc3, 0x63, 0x08, 0x00, 0x19, 0x31, 0x18, 0x00, + 0x00, 0x7c, 0x1a, 0x00, 0xf0, 0xff, 0xff, 0x00, 0x07, 0xff, 0x03, 0x00, 0xd7, 0xd3, 0x04, + 0x00, 0x1d, 0x2f, 0x18, 0x00, 0xe1, 0x04, 0x00, 0x00, 0xa4, 0x62, 0x08, 0x00, 0xac, 0x62, + 0x08, 0x00, 0xb4, 0x62, 0x08, 0x00, 0xbc, 0x62, 0x08, 0x00, 0xc4, 0x62, 0x08, 0x00, 0xcc, + 0x62, 0x08, 0x00, 0xd4, 0x62, 0x08, 0x00, 0xdc, 0x62, 0x08, 0x00, 0xe4, 0x62, 0x08, 0x00, + 0xec, 0x62, 0x08, 0x00, 0x08, 0xf0, 0x1a, 0x00, 0x10, 0x60, 0x1a, 0x00, 0x98, 0x0b, 0x1a, + 0x00, 0xa0, 0x09, 0x1a, 0x00, 0xd1, 0x2d, 0x18, 0x00, 0x61, 0x48, 0x05, 0x00, + + 0x01, 0x05, 0xff, 0xff, 0xfc, 0x08, 0x18, 0x00, 0xfa, 0xf0, 0xb5, 0xd6, 0x49, 0x0d, 0x78, + 0x14, 0x2d, 0x2c, 0xda, 0xd8, 0x4c, 0x26, 0x1c, 0x30, 0x3e, 0x68, 0x1c, 0x00, 0x06, 0x00, + 0x0e, 0x30, 0x70, 0xd1, 0x4b, 0xaa, 0x00, 0xd1, 0x4f, 0x9f, 0x50, 0x14, 0x28, 0x18, 0xda, + 0xaa, 0x1c, 0x12, 0x06, 0x12, 0x0e, 0x72, 0x70, 0x80, 0x00, 0xce, 0x4e, 0x1e, 0x50, 0x14, + 0x2a, 0x08, 0xda, 0xe8, 0x1c, 0x20, 0x70, 0x90, 0x00, 0xcc, 0x4a, 0x1a, 0x50, 0x08, 0x78, + 0x03, 0x30, 0x08, 0x70, 0xf0, 0xbd, 0x0a, 0x70, 0x01, 0x20, 0x86, 0x46, 0xc9, 0x48, 0xfe, + 0x44, 0x00, 0x47, 0xfe, 0xe7, 0x08, 0x70, 0x01, 0x20, 0x86, 0x46, 0xc5, 0x48, 0xfe, 0x44, + 0x00, 0x47, 0xfe, 0xe7, 0x01, 0x20, 0x86, 0x46, 0xc2, 0x48, 0xfe, 0x44, 0x00, 0x47, 0xfe, + 0xe7, 0xf8, 0xb5, 0x00, 0x90, 0xc5, 0x7a, 0xc0, 0x49, 0x0d, 0x70, 0x02, 0x7b, 0xbf, 0x49, + 0x0a, 0x70, 0xbf, 0x49, 0x04, 0x1c, 0x63, 0x7b, 0x0b, 0x70, 0xbe, 0x48, 0xa4, 0x7b, 0x04, + 0x70, 0xc7, 0x4e, 0x00, 0x2d, 0x00, 0xd0, 0xba, 0xe0, 0xc0, 0x4a, 0x15, 0x1c, 0x8c, 0x3d, + 0xca, 0x4f, 0xbf, 0x0b, 0x01, 0x24, 0xa6, 0x46, 0xb8, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x29, + 0x88, 0x01, 0x40, 0x48, 0x08, 0x05, 0xd0, 0x38, 0x1c, 0x41, 0x1e, 0x0f, 0x04, 0x3f, 0x0c, + 0x00, 0x28, 0xf0, 0xd1, 0xa6, 0x46, 0xb1, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x29, 0x88, 0x01, + 0x40, 0x48, 0x08, 0x04, 0xd0, 0x58, 0x20, 0xa6, 0x46, 0xae, 0x49, 0xfe, 0x44, 0x08, 0x47, + 0xaa, 0x48, 0x00, 0x78, 0xac, 0x4f, 0x01, 0x28, 0x32, 0xd0, 0x00, 0x20, 0x01, 0x1c, 0x0c, + 0x20, 0x02, 0x1c, 0x38, 0x1c, 0xa6, 0x46, 0xa9, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0xa8, 0x48, + 0x00, 0x21, 0x08, 0x22, + + 0x01, 0x05, 0xff, 0xff, 0xf6, 0x09, 0x18, 0x00, 0xfa, 0xa6, 0x46, 0xa7, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0xa5, 0x4f, 0x24, 0x37, 0x38, 0x1c, 0x21, 0x1c, 0x0c, 0x22, 0xa6, 0x46, 0xa4, + 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x07, 0x20, 0x01, 0x1c, 0x20, 0x1c, 0xa6, 0x46, 0xa1, 0x4a, + 0xfe, 0x44, 0x10, 0x47, 0x14, 0x20, 0xa6, 0x46, 0xa0, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x07, + 0x20, 0xa6, 0x46, 0x9f, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x30, 0x70, 0x38, 0x1c, 0x00, 0x21, + 0x0c, 0x22, 0xa6, 0x46, 0x97, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x59, 0xe0, 0x38, 0x1c, 0x00, + 0x21, 0x08, 0x22, 0xa6, 0x46, 0x90, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x38, 0x1c, 0x00, 0x21, + 0x0c, 0x22, 0xa6, 0x46, 0x8d, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x8c, 0x48, 0x00, 0x21, 0x0a, + 0x1c, 0xa6, 0x46, 0x8b, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x89, 0x48, 0x00, 0x21, 0x08, 0x22, + 0xa6, 0x46, 0x88, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x03, 0x20, 0x02, 0x1c, 0x84, 0x48, 0x02, + 0x21, 0xa6, 0x46, 0x85, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x0b, 0x20, 0x02, 0x1c, 0x80, 0x48, + 0x21, 0x1c, 0x8e, 0x46, 0x81, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x20, 0x1c, 0x06, 0x21, 0xa6, + 0x46, 0x7f, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x07, 0x27, 0x39, 0x1c, 0x20, 0x1c, 0xa6, 0x46, + 0x7b, 0x4a, 0xfe, 0x44, 0x10, 0x47, 0x14, 0x20, 0xa6, 0x46, 0x7a, 0x49, 0xfe, 0x44, 0x08, + 0x47, 0x38, 0x1c, 0xa6, 0x46, 0x79, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x07, 0x1c, 0x06, 0x20, + 0xa6, 0x46, 0x76, 0x49, 0xfe, 0x44, 0x08, 0x47, 0x40, 0x00, 0x38, 0x43, 0x30, 0x70, 0x6d, + 0x48, 0x00, 0x21, 0x03, 0x22, 0xa6, 0x46, 0x6d, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x6a, 0x48, + 0x00, 0x21, 0x0b, 0x22, + + 0x01, 0x05, 0xff, 0xff, 0xf0, 0x0a, 0x18, 0x00, 0xfa, 0xa6, 0x46, 0x6a, 0x4b, 0xfe, 0x44, + 0x18, 0x47, 0x00, 0x20, 0x28, 0x80, 0x5f, 0x48, 0x03, 0x78, 0x5f, 0x48, 0x04, 0x78, 0x32, + 0x78, 0x00, 0xe0, 0x32, 0x70, 0x00, 0x98, 0xc0, 0x7b, 0x01, 0x2c, 0x26, 0xd1, 0x00, 0x2b, + 0x0d, 0xd1, 0x10, 0x1c, 0x09, 0xd0, 0x01, 0x38, 0x05, 0xd0, 0x01, 0x38, 0x01, 0xd0, 0x06, + 0x21, 0x16, 0xe0, 0x04, 0x21, 0x14, 0xe0, 0x02, 0x21, 0x12, 0xe0, 0x00, 0x21, 0x10, 0xe0, + 0x10, 0x1c, 0x0d, 0xd0, 0x01, 0x38, 0x09, 0xd0, 0x01, 0x38, 0x05, 0xd0, 0x01, 0x38, 0x01, + 0xd0, 0x10, 0x21, 0x06, 0xe0, 0x0e, 0x21, 0x04, 0xe0, 0x0c, 0x21, 0x02, 0xe0, 0x0a, 0x21, + 0x00, 0xe0, 0x08, 0x21, 0x00, 0x98, 0x08, 0x18, 0xc1, 0x7b, 0x55, 0x4b, 0x19, 0x70, 0x00, + 0x7c, 0x54, 0x4d, 0x28, 0x70, 0x54, 0x48, 0x11, 0x04, 0x09, 0x0c, 0x0c, 0x22, 0x01, 0x24, + 0xa6, 0x46, 0x47, 0x4b, 0xfe, 0x44, 0x18, 0x47, 0x32, 0x78, 0x2b, 0x78, 0x03, 0x20, 0x4f, + 0x49, 0xa6, 0x46, 0x4f, 0x4c, 0xfe, 0x44, 0x20, 0x47, 0xf8, 0xbd, 0x70, 0xb5, 0x00, 0x20, + 0x62, 0x49, 0x08, 0x70, 0x62, 0x49, 0xf7, 0x22, 0x0a, 0x70, 0xff, 0x22, 0x4a, 0x70, 0x8a, + 0x70, 0x7f, 0x22, 0xca, 0x70, 0x2e, 0x4b, 0x19, 0x1f, 0x48, 0x4a, 0x11, 0x60, 0x48, 0x49, + 0x08, 0x70, 0x5c, 0x49, 0x08, 0x70, 0x5c, 0x49, 0x08, 0x70, 0x46, 0x49, 0x08, 0x70, 0x47, + 0x48, 0x04, 0x1c, 0x71, 0x3c, 0x01, 0x22, 0x22, 0x70, 0x44, 0x49, 0x19, 0x60, 0x02, 0x21, + 0x01, 0x70, 0x44, 0x49, 0x59, 0x60, 0x03, 0x21, 0x21, 0x71, 0x43, 0x49, 0x99, 0x60, 0x01, + 0x1c, 0x33, 0x39, 0x04, 0x25, 0x0d, 0x70, 0x41, 0x4d, 0xdd, 0x60, 0x05, 0x25, 0xcd, 0x73, + 0x40, 0x49, 0x19, 0x61, + + 0x01, 0x05, 0xff, 0xff, 0xea, 0x0b, 0x18, 0x00, 0xfa, 0x06, 0x21, 0xa1, 0x71, 0x3f, 0x49, + 0x59, 0x61, 0x07, 0x21, 0xe1, 0x71, 0xe5, 0x1d, 0x3d, 0x49, 0x99, 0x61, 0x08, 0x26, 0x01, + 0x1c, 0x48, 0x39, 0x0e, 0x70, 0x3b, 0x49, 0xd9, 0x61, 0x09, 0x21, 0x69, 0x77, 0x3a, 0x49, + 0x19, 0x62, 0x0a, 0x21, 0x0d, 0x19, 0x29, 0x70, 0x39, 0x49, 0x59, 0x62, 0x0b, 0x21, 0xe9, + 0x75, 0x38, 0x49, 0x99, 0x62, 0x1b, 0x21, 0x09, 0x19, 0x0c, 0x25, 0x0d, 0x70, 0x36, 0x4d, + 0xdd, 0x62, 0x0d, 0x25, 0x65, 0x73, 0x35, 0x4c, 0x1c, 0x63, 0x0e, 0x24, 0x4c, 0x77, 0x34, + 0x49, 0x59, 0x63, 0x0f, 0x21, 0x21, 0x30, 0x01, 0x70, 0x32, 0x48, 0x98, 0x63, 0x03, 0x48, + 0x01, 0x70, 0x96, 0x46, 0x31, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x70, 0xbd, 0xc0, 0x46, 0x64, + 0x63, 0x08, 0x00, 0x6c, 0x63, 0x08, 0x00, 0x2b, 0x79, 0x08, 0x00, 0x35, 0x79, 0x08, 0x00, + 0xfb, 0x53, 0x08, 0x00, 0x21, 0x79, 0x08, 0x00, 0xb1, 0x04, 0x18, 0x00, 0xc2, 0x63, 0x08, + 0x00, 0xc5, 0x63, 0x08, 0x00, 0xc4, 0x63, 0x08, 0x00, 0xc6, 0x63, 0x08, 0x00, 0x07, 0xff, + 0x03, 0x00, 0xd7, 0xd3, 0x04, 0x00, 0x16, 0xf6, 0x1a, 0x00, 0xd3, 0x48, 0x05, 0x00, 0x8c, + 0x7c, 0x1a, 0x00, 0xa7, 0x48, 0x05, 0x00, 0x91, 0x48, 0x05, 0x00, 0x21, 0x99, 0x05, 0x00, + 0xbb, 0x16, 0x04, 0x00, 0xc3, 0x63, 0x08, 0x00, 0x67, 0x99, 0x05, 0x00, 0xc0, 0x63, 0x08, + 0x00, 0xc1, 0x63, 0x08, 0x00, 0x08, 0x31, 0x19, 0x00, 0xae, 0x05, 0x00, 0x00, 0x0b, 0xd4, + 0x04, 0x00, 0xff, 0xff, 0xff, 0x1f, 0x88, 0x53, 0x08, 0x00, 0x66, 0x63, 0x08, 0x00, 0x67, + 0x63, 0x08, 0x00, 0xc7, 0x78, 0x08, 0x00, 0xfd, 0x53, 0x08, 0x00, 0x0d, 0x79, 0x08, 0x00, + 0x17, 0x79, 0x08, 0x00, + + 0x01, 0x05, 0xff, 0x79, 0xe4, 0x0c, 0x18, 0x00, 0x74, 0x5d, 0x79, 0x08, 0x00, 0x67, 0x79, + 0x08, 0x00, 0x53, 0x79, 0x08, 0x00, 0x3f, 0x79, 0x08, 0x00, 0x49, 0x79, 0x08, 0x00, 0xd1, + 0x78, 0x08, 0x00, 0xdb, 0x78, 0x08, 0x00, 0xbd, 0x78, 0x08, 0x00, 0x03, 0x79, 0x08, 0x00, + 0xe5, 0x78, 0x08, 0x00, 0xef, 0x78, 0x08, 0x00, 0xf9, 0x78, 0x08, 0x00, 0xfd, 0x08, 0x18, + 0x00, 0xc9, 0x63, 0x08, 0x00, 0xbc, 0x63, 0x08, 0x00, 0xc8, 0x63, 0x08, 0x00, 0x5c, 0x63, + 0x08, 0x00, 0x10, 0xb5, 0x01, 0x24, 0xa6, 0x46, 0x06, 0x48, 0xfe, 0x44, 0x00, 0x47, 0x08, + 0x20, 0x06, 0x49, 0x04, 0x22, 0x04, 0x4b, 0xa6, 0x46, 0x05, 0x4c, 0xfe, 0x44, 0x20, 0x47, + 0x10, 0xbd, 0xc0, 0x46, 0xa5, 0x2f, 0x18, 0x00, 0xd0, 0x2d, 0x18, 0x00, 0x0c, 0x04, 0x00, + 0x00, 0xd1, 0x5e, 0x04, 0x00, + + 0x01, 0x83, 0xff, 0x14, 0x79, 0x7b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // + // + 0x01, 0xdc, 0xfd, 0x05, 0x00, 0x00, 0x00, 0x00, 0x12, + + 0x01, 0x0f, 0xfd, 0x01, 0x01, + + 0x01, 0x1c, 0xfd, 0x14, 0xff, 0x88, 0x13, 0x00, 0x00, 0xd0, 0x07, 0x00, 0x00, 0xff, 0xff, + 0x01, 0xff, 0xff, 0xff, 0xfa, 0x01, 0x00, 0x00, 0x00, + + 0x01, 0x1c, 0xfd, 0x14, 0xff, 0x88, 0x13, 0x00, 0x00, 0xd0, 0x07, 0x00, 0x00, 0xff, 0xff, + 0x01, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x58, 0xfd, 0x21, 0x01, 0xc4, 0xc4, 0xc4, 0xe2, 0xe2, 0xe2, 0xf1, 0xec, 0xab, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x14, 0x0a, 0x90, 0x00, 0x90, 0x00, 0x3c, 0x0a, 0x32, 0x02, 0x01, + 0x01, 0x01, 0x03, 0xf6, 0xec, 0xf6, 0xec, + + 0x01, 0x09, 0xfd, 0x08, 0x7e, 0x7c, 0x1a, 0x00, 0x10, 0x00, 0x10, 0x00, + + // + // + // ##-------------------------------------------------------------------------------- + // ## Description: QRCA_L_TRIOL PHY FW Initialization Script + // ## Version: 3.17_3 (based on ROM version) + // ##-------------------------------------------------------------------------------- + 0x01, 0x01, 0xff, 0x06, 0xc6, 0x32, 0x19, 0x00, 0x10, 0x10, + + 0x01, 0x01, 0xff, 0x06, 0x60, 0x32, 0x19, 0x00, 0x32, 0x10, + + 0x01, 0x82, 0xfd, 0x14, 0x00, 0x9c, 0x18, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xdc, + 0xe6, 0xf0, 0xfa, 0x04, 0x0e, 0x18, 0xff, 0x00, 0x00, + + 0x01, 0x82, 0xfd, 0x14, 0x01, 0x9c, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xd8, + 0xe2, 0xec, 0xf6, 0x00, 0x0a, 0x14, 0xff, 0x00, 0x00, + + 0x01, 0x82, 0xfd, 0x14, 0x02, 0x9c, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xd8, + 0xe2, 0xec, 0xf6, 0x00, 0x0a, 0x14, 0xff, 0x00, 0x00, + + 0x01, 0x87, 0xfd, 0x03, 0x0d, 0x0d, 0x0d, + + 0x01, 0x76, 0xfd, 0x31, 0x01, 0x21, 0x54, 0x00, 0x00, 0x61, 0x57, 0x00, 0x00, 0x14, 0x05, + 0x0a, 0x05, 0x00, 0x07, 0x06, 0x0a, 0x04, 0x05, 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x80, 0xfd, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + + 0x01, 0x80, 0xfd, 0x06, 0x3c, 0xf0, 0x5f, 0x00, 0x00, 0x00, + + // + // + // + 0x01, 0x38, 0xfe, 0x00, + + // + // #-------------------------------------------------------------------------------- + // # Description: BLE FW Initialization Script + // # + // # Compatibility: BL6450L, WL127x , WL128x, NL5500L + // # + // # Last Updated: 12-Mar-2012 19:04:40.59 + // # + // # Version: 1.2 + // # + // #-------------------------------------------------------------------------------- + // + // + // #LE Enable + 0x01, 0x5b, 0xfd, 0x02, 0x01, 0x01, + + // + // # Disable Cortex Sleep + 0x01, 0xa8, 0xfd, 0x01, 0x01, + + // + // + // # Cortex Reset (hold in reset while loading IMEM) + 0x01, 0x09, 0xfd, 0x08, 0x00, 0xc0, 0x1b, 0x00, 0x01, 0x00, 0x01, 0x00, + + // ######################## + // # Patch Start + // ######################## + // + 0x01, 0x05, 0xff, 0x19, 0xbc, 0x00, 0x1b, 0x00, 0x14, 0x37, 0x83, 0x49, 0x00, 0x01, 0xa0, + 0x40, 0x5a, 0x78, 0x44, 0x87, 0x46, 0xe8, 0x05, 0xc8, 0x05, 0x62, 0x06, 0x3c, 0x05, + + 0x01, 0x05, 0xff, 0x09, 0xfc, 0x00, 0x1b, 0x00, 0x04, 0x28, 0x46, 0x15, 0xe3, + + 0x01, 0x05, 0xff, 0x09, 0x34, 0x01, 0x1b, 0x00, 0x04, 0xfa, 0xe2, 0x40, 0xf6, + + 0x01, 0x05, 0xff, 0x09, 0x68, 0x01, 0x1b, 0x00, 0x04, 0x00, 0x20, 0xdf, 0xe2, + + 0x01, 0x05, 0xff, 0x09, 0xb0, 0x02, 0x1b, 0x00, 0x04, 0x00, 0x20, 0x3b, 0xe2, + + 0x01, 0x05, 0xff, 0x0d, 0xb4, 0x03, 0x1b, 0x00, 0x08, 0x01, 0x22, 0x00, 0x21, 0xe8, 0x7d, + 0x0b, 0x46, + + 0x01, 0x05, 0xff, 0x0d, 0xe0, 0x03, 0x1b, 0x00, 0x08, 0x53, 0x5c, 0x01, 0x22, 0x02, 0x21, + 0x00, 0xf0, + + 0x01, 0x05, 0xff, 0x09, 0x1c, 0x04, 0x1b, 0x00, 0x04, 0xcd, 0xfd, 0x85, 0xe1, + + 0x01, 0x05, 0xff, 0x09, 0x4c, 0x04, 0x1b, 0x00, 0x04, 0x00, 0xf0, 0x6e, 0x81, + + 0x01, 0x05, 0xff, 0x09, 0x34, 0x05, 0x1b, 0x00, 0x04, 0xc0, 0xf0, 0xfa, 0x80, + + 0x01, 0x05, 0xff, 0x09, 0x50, 0x05, 0x1b, 0x00, 0x04, 0xec, 0xe0, 0x04, 0xf0, + + 0x01, 0x05, 0xff, 0x09, 0xa8, 0x05, 0x1b, 0x00, 0x04, 0xcb, 0xff, 0xbf, 0xe0, + + 0x01, 0x05, 0xff, 0x0d, 0xfc, 0x05, 0x1b, 0x00, 0x08, 0x40, 0xf0, 0x88, 0x80, 0x00, 0x20, + 0x93, 0xe0, + + 0x01, 0x05, 0xff, 0x09, 0x3c, 0x06, 0x1b, 0x00, 0x04, 0x76, 0xe0, 0x94, 0xf8, + + 0x01, 0x05, 0xff, 0x09, 0x8c, 0x06, 0x1b, 0x00, 0x04, 0x23, 0x60, 0x4d, 0xe0, + + 0x01, 0x05, 0xff, 0xb9, 0xb8, 0x06, 0x1b, 0x00, 0xb4, 0x94, 0xf8, 0x34, 0x20, 0xc2, 0xf2, + 0x00, 0x05, 0xa7, 0x8c, 0x01, 0x11, 0x92, 0x1c, 0xab, 0x89, 0x01, 0xf0, 0x0f, 0x01, 0x94, + 0xf8, 0x33, 0x00, 0x62, 0xf3, 0x09, 0x03, 0x2f, 0x81, 0xab, 0x81, 0x04, 0xf0, 0xf4, 0xfa, + 0x00, 0x21, 0x94, 0xf8, 0x33, 0x00, 0x0a, 0x46, 0x04, 0xf0, 0xb4, 0xfd, 0x94, 0xf8, 0x33, + 0x00, 0x4f, 0xf0, 0x03, 0x0a, 0xc4, 0xf8, 0x00, 0xa0, 0x06, 0xeb, 0x40, 0x01, 0xb1, 0xf8, + 0x14, 0x06, 0x40, 0x1c, 0xa1, 0xf8, 0x14, 0x06, 0x96, 0xf8, 0x46, 0x06, 0x00, 0x28, 0x08, + 0xbf, 0x00, 0x20, 0x0e, 0xd0, 0x09, 0x21, 0x40, 0xf6, 0x6a, 0x20, 0xc2, 0xf2, 0x32, 0x00, + 0x05, 0xf0, 0x85, 0xff, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, + 0xf0, 0x85, 0xff, 0x00, 0x20, 0x06, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xe9, 0xf8, + 0x43, 0x40, 0xf2, 0xf8, 0x54, 0xc2, 0xf2, 0x00, 0x04, 0x27, 0x88, 0x0d, 0x46, 0x04, 0x46, + 0x79, 0x08, 0x40, 0xf2, 0x00, 0x07, 0x16, 0x46, 0x98, 0x46, 0x0a, 0xd3, 0x01, 0x46, 0x4f, + 0xf4, 0xe2, 0x70, 0x13, 0x46, 0x2a, 0x46, 0xcd, 0xf8, + + 0x01, 0x05, 0xff, 0xcd, 0x84, 0x07, 0x1b, 0x00, 0xc8, 0x00, 0xf0, 0x1b, 0x82, 0x0e, 0x2c, + 0x00, 0xf0, 0xa6, 0x81, 0x11, 0x2c, 0x00, 0xf0, 0xa0, 0x81, 0x97, 0xf8, 0x48, 0x26, 0x4f, + 0xf0, 0x01, 0x09, 0x09, 0xfa, 0x04, 0xf1, 0x11, 0x40, 0x31, 0x43, 0x4f, 0xf0, 0x00, 0x06, + 0x18, 0xbf, 0x4e, 0x46, 0x01, 0x2d, 0x18, 0xbf, 0x02, 0x2d, 0x72, 0xd1, 0x97, 0xf8, 0x47, + 0x16, 0x00, 0x29, 0x6e, 0xd1, 0x47, 0xf6, 0x0e, 0x50, 0xc2, 0xf2, 0x32, 0x00, 0x41, 0xf6, + 0x44, 0x41, 0x80, 0xf8, 0x00, 0x80, 0xc2, 0xf2, 0x00, 0x01, 0x09, 0x88, 0x19, 0xb9, 0x0b, + 0x21, 0x05, 0xf0, 0x2d, 0xff, 0x02, 0xe0, 0x0b, 0x21, 0x05, 0xf0, 0x22, 0xff, 0x46, 0xf6, + 0x78, 0x68, 0xc0, 0xf2, 0x00, 0x08, 0x41, 0xf6, 0x28, 0x47, 0x18, 0xf8, 0x04, 0x00, 0xc2, + 0xf2, 0x00, 0x07, 0x6e, 0xb9, 0x10, 0x38, 0xc1, 0xb2, 0x47, 0xf6, 0x4c, 0x70, 0xc2, 0xf2, + 0x32, 0x00, 0x05, 0xf0, 0x16, 0xff, 0x18, 0xf8, 0x04, 0x00, 0x10, 0x38, 0xc4, 0xb2, 0xb8, + 0x7f, 0x09, 0xe0, 0x10, 0x38, 0xc4, 0xb2, 0x47, 0xf6, 0x4c, 0x70, 0x21, 0x46, 0xc2, 0xf2, + 0x32, 0x00, 0x05, 0xf0, 0x00, 0xff, 0xb8, 0x7f, 0x38, 0xb9, 0x47, 0xf6, 0x48, 0x70, 0xc2, + 0xf2, 0x32, 0x00, 0x21, 0x46, 0x05, 0xf0, 0xfe, 0xfe, 0x06, 0xe0, 0x21, 0x46, 0x47, 0xf6, + 0x48, 0x70, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0xef, 0xfe, 0x02, 0x2d, 0x0e, 0xd0, + + 0x01, 0x05, 0xff, 0xcd, 0x4c, 0x08, 0x1b, 0x00, 0xc8, 0x40, 0xf6, 0x6a, 0x20, 0xc2, 0xf2, + 0x32, 0x00, 0x09, 0x21, 0x05, 0xf0, 0xed, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, + 0xf2, 0x32, 0x00, 0x05, 0xf0, 0xe6, 0xfe, 0x0d, 0xe0, 0x09, 0x21, 0x40, 0xf6, 0x6a, 0x20, + 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0xd7, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, + 0xf2, 0x32, 0x00, 0x05, 0xf0, 0xd7, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0xc2, 0xf2, 0x32, 0x00, + 0x07, 0x21, 0x05, 0xf0, 0xc9, 0xfe, 0x48, 0x46, 0xbd, 0xe8, 0xf8, 0x83, 0x0f, 0x2c, 0x08, + 0xbf, 0x05, 0x24, 0x11, 0xd0, 0x10, 0x2c, 0x08, 0xbf, 0x06, 0x24, 0x0d, 0xd0, 0x03, 0x2c, + 0x0b, 0xd9, 0x0e, 0x2c, 0x09, 0xd2, 0x24, 0x1f, 0x0c, 0x22, 0xe1, 0xb2, 0x47, 0xf6, 0x0e, + 0x50, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x55, 0xfe, 0x04, 0x24, 0x00, 0x2d, 0x00, 0xf0, + 0xb6, 0x80, 0xed, 0x1e, 0x47, 0xd0, 0x6d, 0x1e, 0x40, 0xf0, 0xff, 0x80, 0x40, 0xf6, 0x6a, + 0x20, 0xc2, 0xf2, 0x32, 0x00, 0x09, 0x21, 0x05, 0xf0, 0xa8, 0xfe, 0x40, 0xf6, 0x6a, 0x20, + 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0xa1, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x07, + 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x9a, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, + 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x93, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x08, 0x21, + + 0x01, 0x05, 0xff, 0xcd, 0x14, 0x09, 0x1b, 0x00, 0xc8, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, + 0x85, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x06, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x7e, + 0xfe, 0x97, 0xf8, 0x47, 0x06, 0x00, 0x28, 0x40, 0xf0, 0xd0, 0x80, 0x46, 0xf6, 0x78, 0x60, + 0xc0, 0xf2, 0x00, 0x00, 0x00, 0x5d, 0x10, 0x38, 0xc1, 0xb2, 0x47, 0xf6, 0x44, 0x70, 0xc2, + 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x6c, 0xfe, 0x47, 0xf6, 0x0e, 0x51, 0x48, 0x46, 0xc2, 0xf2, + 0x32, 0x01, 0x81, 0xf8, 0x00, 0x80, 0xbd, 0xe8, 0xf8, 0x83, 0x97, 0xf8, 0x47, 0x06, 0x00, + 0x28, 0x37, 0xd1, 0x47, 0xf6, 0x4c, 0x70, 0xc2, 0xf2, 0x32, 0x00, 0x47, 0xf6, 0x60, 0x01, + 0x05, 0xf0, 0x73, 0xfe, 0x47, 0xf6, 0x44, 0x70, 0x47, 0xf6, 0x60, 0x01, 0xc2, 0xf2, 0x32, + 0x00, 0x05, 0xf0, 0x6b, 0xfe, 0x41, 0xf6, 0x46, 0x40, 0xc2, 0xf2, 0x00, 0x00, 0x00, 0x78, + 0x08, 0xbb, 0x46, 0xf6, 0x78, 0x60, 0xc0, 0xf2, 0x00, 0x00, 0x00, 0x5d, 0x10, 0x38, 0xc1, + 0xb2, 0x47, 0xf6, 0x48, 0x70, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x43, 0xfe, 0x97, 0xf8, + 0x4a, 0x06, 0x06, 0x21, 0x04, 0x28, 0x09, 0xd0, 0x01, 0x28, 0x0d, 0xd1, 0x47, 0xf6, 0x40, + 0x40, 0xc2, 0xf2, 0x32, 0x00, 0x06, 0x21, 0x05, 0xf0, 0x2e, 0xfe, 0x05, 0xe0, 0x47, 0xf6, + 0x70, 0x40, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x27, 0xfe, 0x40, 0xf6, 0x6a, 0x20, + + 0x01, 0x05, 0xff, 0xcd, 0xdc, 0x09, 0x1b, 0x00, 0xc8, 0xc2, 0xf2, 0x32, 0x00, 0x09, 0x21, + 0x05, 0xf0, 0x27, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, + 0xf0, 0x20, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x07, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, + 0x19, 0xfe, 0x0a, 0x20, 0x04, 0xf0, 0x84, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, + 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x08, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x08, 0x21, 0xc2, 0xf2, + 0x32, 0x00, 0x05, 0xf0, 0x08, 0xfe, 0x40, 0xf6, 0x6a, 0x20, 0x06, 0x21, 0xc2, 0xf2, 0x32, + 0x00, 0x05, 0xf0, 0x01, 0xfe, 0x48, 0x46, 0xbd, 0xe8, 0xf8, 0x83, 0x97, 0xf8, 0x47, 0x06, + 0x46, 0xf6, 0x78, 0x65, 0xc0, 0xf2, 0x00, 0x05, 0x00, 0x28, 0x30, 0xd1, 0x28, 0x5d, 0x86, + 0xb9, 0x10, 0x38, 0xc1, 0xb2, 0x47, 0xf6, 0x4c, 0x70, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, + 0xec, 0xfd, 0x28, 0x5d, 0x10, 0x38, 0xc4, 0xb2, 0x41, 0xf6, 0x46, 0x40, 0xc2, 0xf2, 0x00, + 0x00, 0x00, 0x78, 0x0d, 0xe0, 0x10, 0x38, 0xc4, 0xb2, 0x47, 0xf6, 0x4c, 0x70, 0x21, 0x46, + 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0xd3, 0xfd, 0x41, 0xf6, 0x46, 0x40, 0xc2, 0xf2, 0x00, + 0x00, 0x00, 0x78, 0x38, 0xb9, 0x47, 0xf6, 0x48, 0x70, 0xc2, 0xf2, 0x32, 0x00, 0x21, 0x46, + 0x05, 0xf0, 0xcd, 0xfd, 0x06, 0xe0, 0x21, 0x46, 0x47, 0xf6, 0x48, 0x70, 0xc2, 0xf2, + + 0x01, 0x05, 0xff, 0xcd, 0xa4, 0x0a, 0x1b, 0x00, 0xc8, 0x32, 0x00, 0x05, 0xf0, 0xbe, 0xfd, + 0x40, 0xf6, 0x6a, 0x20, 0xc2, 0xf2, 0x32, 0x00, 0x09, 0x21, 0x05, 0xf0, 0xbe, 0xfd, 0x40, + 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0xb7, 0xfd, 0x40, 0xf6, + 0x6a, 0x20, 0x07, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0xb0, 0xfd, 0x01, 0x20, 0xbd, + 0xe8, 0xf8, 0x83, 0x97, 0xf8, 0x47, 0x06, 0x58, 0xbb, 0x47, 0xf6, 0x4c, 0x70, 0xc2, 0xf2, + 0x32, 0x00, 0x47, 0xf6, 0x60, 0x01, 0x05, 0xf0, 0xb7, 0xfd, 0x47, 0xf6, 0x44, 0x70, 0x47, + 0xf6, 0x60, 0x01, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0xaf, 0xfd, 0x47, 0xf6, 0x0e, 0x50, + 0x0b, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x93, 0xfd, 0x97, 0xf8, 0x4a, 0x06, 0x06, + 0x21, 0x04, 0x28, 0x09, 0xd0, 0x01, 0x28, 0x0d, 0xd1, 0x47, 0xf6, 0x40, 0x40, 0xc2, 0xf2, + 0x32, 0x00, 0x06, 0x21, 0x05, 0xf0, 0x7e, 0xfd, 0x05, 0xe0, 0x47, 0xf6, 0x70, 0x40, 0xc2, + 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x77, 0xfd, 0x40, 0xf6, 0x6a, 0x20, 0xc2, 0xf2, 0x32, 0x00, + 0x09, 0x21, 0x05, 0xf0, 0x77, 0xfd, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, 0x32, + 0x00, 0x05, 0xf0, 0x70, 0xfd, 0x40, 0xf6, 0x6a, 0x20, 0x07, 0x21, 0xc2, 0xf2, 0x32, 0x00, + 0x05, 0xf0, 0x69, 0xfd, 0x0a, 0x20, 0x04, 0xf0, 0xd4, 0xfd, 0x40, 0xf6, 0x6a, 0x20, + + 0x01, 0x05, 0xff, 0xbd, 0x6c, 0x0b, 0x1b, 0x00, 0xb8, 0x09, 0x21, 0xc2, 0xf2, 0x32, 0x00, + 0x05, 0xf0, 0x58, 0xfd, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, + 0xf0, 0x58, 0xfd, 0x40, 0xf6, 0x6a, 0x20, 0x07, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, + 0x4a, 0xfd, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x43, + 0xfd, 0x40, 0xf6, 0x6a, 0x20, 0x08, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x43, 0xfd, + 0x40, 0xf6, 0x6a, 0x20, 0x06, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x05, 0xf0, 0x3c, 0xfd, 0x01, + 0x20, 0xbd, 0xe8, 0xf8, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x11, 0xa4, 0x12, 0x1b, 0x00, 0x0c, 0x4b, 0x46, 0xa1, 0x62, 0x20, 0x79, + 0x01, 0x22, 0x19, 0x46, 0xff, 0xf7, + + 0x01, 0x05, 0xff, 0x09, 0x30, 0x13, 0x1b, 0x00, 0x04, 0x31, 0x46, 0xff, 0xf7, + + 0x01, 0x05, 0xff, 0x0d, 0x1c, 0x14, 0x1b, 0x00, 0x08, 0x20, 0x79, 0x1a, 0x46, 0x19, 0x46, + 0xff, 0xf7, + + 0x01, 0x05, 0xff, 0xcd, 0xa4, 0x1b, 0x1b, 0x00, 0xc8, 0x2d, 0xe9, 0xf0, 0x47, 0x41, 0xf6, + 0xac, 0x31, 0xc2, 0xf2, 0x00, 0x01, 0x41, 0xf6, 0x30, 0x46, 0x41, 0xf2, 0x30, 0x14, 0x01, + 0xf1, 0x14, 0x07, 0xc2, 0xf2, 0x00, 0x06, 0xba, 0x88, 0xc2, 0xf2, 0x00, 0x04, 0x38, 0x7a, + 0x01, 0x25, 0xb2, 0x82, 0x83, 0x01, 0x41, 0xf6, 0x86, 0x42, 0xc2, 0xf2, 0x00, 0x02, 0x84, + 0xf8, 0x24, 0x00, 0x03, 0xeb, 0x40, 0x13, 0x15, 0x70, 0xc2, 0x01, 0x02, 0xeb, 0x80, 0x02, + 0xa2, 0x18, 0x28, 0x32, 0xf8, 0x79, 0x22, 0x60, 0x40, 0xf2, 0x00, 0x02, 0xa0, 0x72, 0xc2, + 0xf2, 0x00, 0x02, 0x02, 0xf2, 0x4c, 0x68, 0xb8, 0x79, 0xd2, 0x18, 0x38, 0x32, 0x62, 0x60, + 0x0a, 0x7f, 0xe0, 0x72, 0xd0, 0x01, 0x00, 0xeb, 0x82, 0x00, 0x20, 0x18, 0x54, 0x30, 0x91, + 0xe8, 0x0c, 0x00, 0x08, 0x31, 0x80, 0xe8, 0x0c, 0x00, 0x08, 0x22, 0x04, 0xf1, 0x0c, 0x00, + 0x03, 0xf0, 0x3c, 0xfc, 0xe0, 0x7a, 0x61, 0x68, 0x81, 0xf8, 0x44, 0x00, 0x20, 0x68, 0x90, + 0xf8, 0x37, 0x00, 0x00, 0x28, 0x04, 0xbf, 0x0f, 0x20, 0xf0, 0x75, 0x04, 0xd0, 0x94, 0xf8, + 0x24, 0x00, 0x00, 0x1d, 0xc0, 0xb2, 0xf0, 0x75, 0xa3, 0x7a, 0x4f, 0xf0, 0x00, 0x0a, 0x86, + 0xf8, 0x16, 0xa0, 0x52, 0x46, 0x04, 0x21, 0xfe, 0xf7, 0x74, 0xfd, 0x41, 0xf2, 0x30, 0x19, + 0xc2, 0xf2, 0x00, 0x09, 0xd9, 0xf8, 0x00, 0x10, 0xa3, 0x7a, 0xf0, 0x7d, 0x91, 0xf8, + + 0x01, 0x05, 0xff, 0xcd, 0x6c, 0x1c, 0x1b, 0x00, 0xc8, 0x3a, 0x10, 0x2a, 0x46, 0xfe, 0xf7, + 0x67, 0xfd, 0x14, 0x20, 0x03, 0xf0, 0x4b, 0xfd, 0x25, 0x72, 0x48, 0xf2, 0x22, 0x0e, 0xb5, + 0x75, 0x65, 0x72, 0x41, 0xf6, 0x2c, 0x23, 0xd9, 0xf8, 0x00, 0x20, 0xc2, 0xf2, 0x20, 0x0e, + 0x77, 0x21, 0x82, 0xf8, 0x00, 0xa0, 0x82, 0xf8, 0x06, 0xa0, 0x84, 0xf8, 0x25, 0xa0, 0xd9, + 0xf8, 0x04, 0x00, 0x4f, 0xf6, 0xff, 0x7c, 0xc2, 0xf2, 0x00, 0x03, 0x80, 0xf8, 0x42, 0xa0, + 0xae, 0xf8, 0x00, 0x10, 0xae, 0xf8, 0x06, 0xc0, 0x40, 0xf6, 0x00, 0x3c, 0xd9, 0xf8, 0x00, + 0x10, 0xc2, 0xf2, 0x00, 0x0c, 0x02, 0xf1, 0x6c, 0x0e, 0x01, 0xf1, 0x3b, 0x00, 0x0c, 0xf1, + 0x8d, 0x01, 0xa3, 0xf8, 0x70, 0xe0, 0xa3, 0xf8, 0x68, 0x00, 0xd9, 0xf8, 0x04, 0xe0, 0xa3, + 0xf8, 0x4a, 0x10, 0x0c, 0xf1, 0xcd, 0x00, 0x0e, 0xf1, 0x28, 0x01, 0x1f, 0xfa, 0x81, 0xfc, + 0x02, 0xf1, 0x54, 0x01, 0x1f, 0xfa, 0x81, 0xfe, 0xa3, 0xf8, 0x08, 0xc0, 0x02, 0xf1, 0x44, + 0x01, 0x89, 0xb2, 0xa3, 0xf8, 0x38, 0xe0, 0x19, 0x85, 0x41, 0xf6, 0x6c, 0x13, 0xc2, 0xf2, + 0x00, 0x03, 0x58, 0x87, 0xa3, 0xf8, 0x70, 0xe0, 0xa3, 0xf8, 0x08, 0xc0, 0x19, 0x85, 0x10, + 0x6c, 0xa3, 0xf8, 0x60, 0x10, 0x04, 0xf0, 0xdd, 0xf9, 0xd9, 0xf8, 0x00, 0x00, 0x01, 0x6c, + 0x49, 0x08, 0x2e, 0xbf, 0xa8, 0xf8, 0x04, 0xa0, 0x02, 0x21, 0xa8, 0xf8, 0x04, 0x10, + + 0x01, 0x05, 0xff, 0xad, 0x34, 0x1d, 0x1b, 0x00, 0xa8, 0xb8, 0xf8, 0x00, 0x10, 0x90, 0xf8, + 0x3a, 0x30, 0x94, 0xf8, 0x0a, 0xe0, 0x09, 0x07, 0x49, 0x0e, 0x43, 0xf2, 0x00, 0x02, 0x41, + 0xea, 0xce, 0x11, 0x01, 0x2b, 0x4f, 0xea, 0x8e, 0x1c, 0xc2, 0xf2, 0x31, 0x02, 0x91, 0x83, + 0xb6, 0xf8, 0x14, 0xe0, 0xa2, 0xf8, 0x1e, 0xc0, 0x15, 0x84, 0x3f, 0x68, 0x2e, 0xd0, 0x2c, + 0x30, 0x90, 0xe8, 0x03, 0x00, 0x36, 0x1d, 0x42, 0xf2, 0x48, 0x4c, 0x86, 0xe8, 0x03, 0x00, + 0xc2, 0xf2, 0x31, 0x0c, 0xac, 0xf8, 0x02, 0xe0, 0x4f, 0xf0, 0x15, 0x0a, 0xac, 0xf8, 0x00, + 0xa0, 0xbc, 0xf8, 0x00, 0x00, 0x15, 0x28, 0x02, 0xd0, 0x5e, 0x20, 0x04, 0xf0, 0x6b, 0xfc, + 0x40, 0xf2, 0x00, 0x00, 0xc2, 0xf2, 0x00, 0x00, 0x90, 0xf8, 0x05, 0x36, 0x4f, 0xf2, 0x04, + 0x01, 0xc2, 0xf2, 0x32, 0x01, 0x10, 0x2b, 0x04, 0xda, 0x0a, 0x88, 0x28, 0x46, 0x98, 0x40, + 0x10, 0x43, 0x08, 0x80, 0x28, 0x46, 0x01, 0xf0, 0x79, 0xff, 0x03, 0xf0, 0xf6, 0xf8, 0xbd, + 0xe8, 0xf0, 0x87, 0x2c, 0x30, 0x90, 0xe8, 0x03, 0x00, 0x0c, 0x36, 0x86, 0xe8, 0x03, 0x00, + 0x27, 0x83, 0x01, 0xf0, 0x64, 0xf8, 0xbd, 0xe8, 0xf0, 0x87, 0x2d, 0xe9, + + 0x01, 0x05, 0xff, 0x11, 0x2c, 0x21, 0x1b, 0x00, 0x0c, 0xf1, 0xfa, 0x00, 0x21, 0x30, 0x79, + 0x0a, 0x46, 0x0b, 0x46, 0xfe, 0xf7, + + 0x01, 0x05, 0xff, 0xcd, 0xc0, 0x21, 0x1b, 0x00, 0xc8, 0x2d, 0xe9, 0xf0, 0x43, 0xad, 0xf1, + 0x0c, 0x0d, 0x41, 0xf6, 0xac, 0x35, 0x41, 0xf6, 0x44, 0x49, 0xc2, 0xf2, 0x00, 0x05, 0xc2, + 0xf2, 0x00, 0x09, 0xa8, 0x8a, 0x03, 0x21, 0x6f, 0x8a, 0xa9, 0xf8, 0x00, 0x00, 0x2c, 0x8a, + 0x40, 0xf2, 0x0a, 0x50, 0xc2, 0xf2, 0x32, 0x00, 0x04, 0xf0, 0x5f, 0xfa, 0x40, 0xf2, 0x00, + 0x06, 0xc2, 0xf2, 0x30, 0x06, 0xb0, 0x46, 0x48, 0xea, 0x07, 0x08, 0x08, 0xf1, 0x01, 0x08, + 0x46, 0xea, 0x04, 0x06, 0x38, 0xb9, 0x03, 0x21, 0x40, 0xf2, 0x1e, 0x50, 0xc2, 0xf2, 0x32, + 0x00, 0x04, 0xf0, 0x4c, 0xfa, 0x20, 0xb1, 0xb9, 0xf8, 0x00, 0x00, 0x00, 0x28, 0x00, 0xf0, + 0xac, 0x80, 0x40, 0xf6, 0x31, 0x31, 0xc2, 0xf2, 0x00, 0x01, 0x04, 0x22, 0x68, 0x46, 0x03, + 0xf0, 0x36, 0xf9, 0x00, 0x98, 0x03, 0xf0, 0x51, 0xff, 0x01, 0xa8, 0x04, 0xf0, 0xe6, 0xf8, + 0x41, 0xf6, 0x5c, 0x34, 0xc2, 0xf2, 0x00, 0x04, 0x04, 0xf1, 0x0c, 0x07, 0x08, 0x22, 0x05, + 0xf1, 0x08, 0x01, 0x07, 0xf1, 0x0c, 0x00, 0x03, 0xf0, 0x23, 0xf9, 0xe8, 0x7d, 0x84, 0xf8, + 0x31, 0x00, 0x04, 0xf0, 0x5b, 0xf8, 0x29, 0x7e, 0x84, 0xf8, 0x36, 0x00, 0x00, 0x22, 0x84, + 0xf8, 0x30, 0x10, 0x31, 0xf0, 0x01, 0x03, 0x08, 0xbf, 0x01, 0x22, 0x01, 0x20, 0x00, 0x29, + 0x84, 0xf8, 0x2e, 0x20, 0x1c, 0xbf, 0x06, 0x29, 0x00, 0x20, 0x2a, 0x8a, 0x69, 0x8a, + + 0x01, 0x05, 0xff, 0xcd, 0x88, 0x22, 0x1b, 0x00, 0xc8, 0x84, 0xf8, 0x2f, 0x00, 0xa2, 0x84, + 0xe1, 0x84, 0x70, 0x78, 0x00, 0xf0, 0x3f, 0x00, 0xc1, 0x00, 0x50, 0x31, 0x84, 0xf8, 0x34, + 0x00, 0x21, 0x85, 0x98, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0xc1, 0x00, 0x50, 0x31, + 0x84, 0xf8, 0x35, 0x00, 0x61, 0x85, 0x30, 0x78, 0x06, 0x22, 0xb1, 0x1c, 0x80, 0x11, 0x00, + 0xf0, 0x01, 0x00, 0x84, 0xf8, 0x37, 0x00, 0x38, 0x46, 0x03, 0xf0, 0xeb, 0xf8, 0x94, 0xf8, + 0x30, 0x00, 0x01, 0x28, 0x09, 0xd1, 0x30, 0x78, 0x06, 0xf1, 0x08, 0x01, 0xc2, 0x11, 0xb8, + 0x1d, 0x84, 0xf8, 0x38, 0x20, 0x06, 0x22, 0x03, 0xf0, 0xdd, 0xf8, 0xa8, 0x7d, 0x4f, 0xf0, + 0x01, 0x02, 0x30, 0xb9, 0x04, 0xf0, 0x04, 0xf8, 0x84, 0xf8, 0x33, 0x00, 0x94, 0xf8, 0x30, + 0x00, 0x10, 0xe0, 0x94, 0xf8, 0x31, 0x10, 0x94, 0xf8, 0x33, 0x00, 0x40, 0x1c, 0xc0, 0xb2, + 0x03, 0x28, 0x08, 0xbf, 0x00, 0x20, 0x02, 0xfa, 0x00, 0xf3, 0x19, 0x42, 0xf6, 0xd0, 0x84, + 0xf8, 0x33, 0x00, 0x94, 0xf8, 0x30, 0x00, 0x01, 0x28, 0x07, 0xd0, 0x00, 0x25, 0x89, 0xf8, + 0x03, 0x50, 0x89, 0xf8, 0x02, 0x50, 0x28, 0x46, 0x01, 0x26, 0x06, 0xe0, 0x10, 0x20, 0x01, + 0x26, 0x89, 0xf8, 0x03, 0x00, 0x00, 0x25, 0x89, 0xf8, 0x02, 0x60, 0x94, 0xf8, 0x33, 0x10, + 0x41, 0xf6, 0x2c, 0x42, 0xc2, 0xf2, 0x00, 0x02, 0x53, 0x5c, 0x04, 0x21, 0x2a, 0x46, + + 0x01, 0x05, 0xff, 0x51, 0x50, 0x23, 0x1b, 0x00, 0x4c, 0xfe, 0xf7, 0xf7, 0xf9, 0x43, 0xf2, + 0x20, 0x00, 0x84, 0xf8, 0x39, 0x50, 0x40, 0xf2, 0x0d, 0x02, 0xc2, 0xf2, 0x31, 0x00, 0x84, + 0xf8, 0x32, 0x50, 0xc2, 0xf2, 0x00, 0x02, 0x06, 0x80, 0x21, 0x8d, 0x15, 0x70, 0x28, 0x46, + 0x00, 0xf0, 0x20, 0xfe, 0x06, 0xe0, 0x11, 0x20, 0x89, 0xf8, 0x03, 0x00, 0x00, 0x21, 0x01, + 0x20, 0x01, 0xf0, 0x4f, 0xfa, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x83, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x47, + + 0x01, 0x05, 0xff, 0x09, 0x7c, 0x24, 0x1b, 0x00, 0x04, 0x04, 0xf0, 0xe8, 0xfd, + + 0x01, 0x05, 0xff, 0x09, 0xd4, 0x26, 0x1b, 0x00, 0x04, 0x78, 0xb5, 0x02, 0xf0, + + 0x01, 0x05, 0xff, 0xcd, 0x14, 0x27, 0x1b, 0x00, 0xc8, 0x00, 0x28, 0x42, 0xd0, 0x0a, 0x20, + 0x02, 0xf0, 0xf9, 0xff, 0x20, 0x68, 0x90, 0xf8, 0x3a, 0x00, 0x01, 0x28, 0x2c, 0xd1, 0x96, + 0xf8, 0x47, 0x06, 0x4f, 0xf0, 0x00, 0x01, 0xa9, 0x82, 0x80, 0xb9, 0x47, 0xf6, 0x48, 0x70, + 0xc2, 0xf2, 0x32, 0x00, 0x05, 0x21, 0x03, 0xf0, 0x72, 0xff, 0x96, 0xf8, 0x47, 0x06, 0x30, + 0xb9, 0x05, 0x21, 0x47, 0xf6, 0x4c, 0x70, 0xc2, 0xf2, 0x32, 0x00, 0x03, 0xf0, 0x6f, 0xff, + 0x40, 0xf6, 0x6a, 0x20, 0xc2, 0xf2, 0x32, 0x00, 0x09, 0x21, 0x03, 0xf0, 0x68, 0xff, 0x40, + 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x03, 0xf0, 0x61, 0xff, 0x40, 0xf6, + 0x6a, 0x20, 0x07, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x03, 0xf0, 0x5a, 0xff, 0x0d, 0xe0, 0x09, + 0x21, 0x40, 0xf6, 0x6a, 0x20, 0xc2, 0xf2, 0x32, 0x00, 0x03, 0xf0, 0x52, 0xff, 0x40, 0xf6, + 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0x03, 0xf0, 0x4b, 0xff, 0x03, 0xf0, 0x80, + 0xfb, 0x00, 0x20, 0x60, 0x72, 0x20, 0x68, 0x81, 0x1d, 0x91, 0xf8, 0x34, 0x20, 0x01, 0x2a, + 0x0c, 0xd1, 0x09, 0x78, 0x51, 0xb9, 0x61, 0x68, 0x4f, 0xf0, 0x01, 0x02, 0x81, 0xf8, 0x5e, + 0x20, 0x90, 0xf8, 0x37, 0x10, 0x11, 0xb9, 0x02, 0xf0, 0xe9, 0xfa, 0x20, 0x68, 0xc0, 0x6e, + 0x00, 0xf0, 0x03, 0x00, 0x03, 0x28, 0x29, 0xd1, 0x96, 0xf8, 0x0b, 0x16, 0x4f, 0xf2, + + 0x01, 0x05, 0xff, 0xcd, 0xdc, 0x27, 0x1b, 0x00, 0xc8, 0x04, 0x02, 0xc2, 0xf2, 0x32, 0x02, + 0x10, 0x29, 0x0b, 0xda, 0x13, 0x88, 0x01, 0x20, 0x00, 0xfa, 0x01, 0xf1, 0x19, 0x43, 0x11, + 0x80, 0x96, 0xf8, 0x0b, 0x36, 0x11, 0x88, 0x98, 0x40, 0x81, 0x43, 0x11, 0x80, 0x94, 0xf8, + 0x24, 0x30, 0xd9, 0x01, 0x01, 0xeb, 0x83, 0x01, 0x60, 0x18, 0x09, 0x19, 0x28, 0x31, 0x28, + 0x30, 0x82, 0x6c, 0x0c, 0x6f, 0x45, 0x6c, 0x10, 0x06, 0x91, 0xf8, 0x35, 0x20, 0x21, 0x78, + 0x40, 0xea, 0x15, 0x20, 0x00, 0x90, 0xa6, 0x20, 0x03, 0xf0, 0x46, 0xfd, 0x78, 0xbd, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0xb5, 0xad, 0xf1, 0x08, 0x0d, 0x41, 0xf6, 0xbc, 0x24, 0x41, 0xf6, 0x30, 0x45, 0xc2, 0xf2, + 0x00, 0x04, 0x20, 0x88, 0xc2, 0xf2, 0x00, 0x05, 0x03, 0x21, 0xa8, 0x82, 0x40, 0xf2, 0x0a, + 0x50, 0xc2, 0xf2, 0x32, 0x00, 0x03, 0xf0, 0x1e, 0xff, 0x38, 0xb9, 0x40, 0xf2, 0x1e, 0x50, + 0xc2, 0xf2, 0x32, 0x00, 0x03, 0x21, 0x03, 0xf0, 0x16, 0xff, 0x10, 0xb1, 0xa8, 0x8a, 0x00, + 0x28, 0x7d, 0xd0, 0x40, 0xf6, 0x31, 0x31, 0xc2, 0xf2, 0x00, 0x01, 0x04, 0x22, 0x01, 0xa8, + 0x02, 0xf0, 0x02, 0xfe, 0x01, 0x98, 0x03, 0xf0, 0x1d, 0xfc, 0x41, 0xf6, 0x2c, 0x42, + + 0x01, 0x05, 0xff, 0xcd, 0xa4, 0x28, 0x1b, 0x00, 0xc8, 0xe0, 0x78, 0x01, 0x26, 0xc2, 0xf2, + 0x00, 0x02, 0xa0, 0x70, 0x20, 0x79, 0xa1, 0x78, 0xae, 0x75, 0xe8, 0x75, 0x53, 0x5c, 0x00, + 0x22, 0x04, 0x21, 0xfd, 0xf7, 0x41, 0xff, 0x20, 0x79, 0x00, 0x26, 0xe6, 0x62, 0x01, 0x28, + 0x1b, 0xd0, 0x40, 0xf6, 0x90, 0x42, 0xc2, 0xf2, 0x30, 0x02, 0x40, 0xf2, 0x00, 0x05, 0x91, + 0x1c, 0xc2, 0xf2, 0x00, 0x05, 0x02, 0x23, 0x04, 0xf1, 0x0f, 0x00, 0x62, 0x63, 0x85, 0xf8, + 0x32, 0x30, 0x06, 0x22, 0x02, 0xf0, 0xd8, 0xfd, 0x61, 0x6b, 0x06, 0x22, 0x04, 0xf1, 0x17, + 0x00, 0x08, 0x31, 0x02, 0xf0, 0xd1, 0xfd, 0x40, 0xf2, 0xf4, 0x53, 0x16, 0xe0, 0x40, 0xf2, + 0x00, 0x01, 0xc2, 0xf2, 0x30, 0x01, 0x40, 0xf2, 0x00, 0x05, 0xc2, 0xf2, 0x00, 0x05, 0x02, + 0x23, 0x01, 0xf5, 0x48, 0x62, 0xe0, 0x1d, 0x01, 0xf6, 0x82, 0x41, 0xae, 0x77, 0x6e, 0x77, + 0x2b, 0x77, 0x62, 0x63, 0x06, 0x22, 0x02, 0xf0, 0xb9, 0xfd, 0x40, 0xf2, 0xf4, 0x53, 0x02, + 0xf0, 0xd2, 0xfb, 0xe8, 0x5a, 0x80, 0x08, 0x0c, 0xd3, 0x41, 0xf6, 0xac, 0x30, 0xc2, 0xf2, + 0x00, 0x00, 0x85, 0x89, 0x83, 0x68, 0x82, 0x88, 0x01, 0x68, 0x00, 0x95, 0x40, 0xf2, 0xa5, + 0x10, 0x03, 0xf0, 0xa0, 0xfc, 0x04, 0xf1, 0x4a, 0x00, 0x31, 0x46, 0x06, 0x22, 0x03, 0xf0, + 0x06, 0xf9, 0x84, 0xf8, 0x50, 0x60, 0x06, 0x22, 0x31, 0x46, 0x04, 0xf1, 0x1e, 0x00, + + 0x01, 0x05, 0xff, 0x41, 0x6c, 0x29, 0x1b, 0x00, 0x3c, 0x03, 0xf0, 0xfe, 0xf8, 0x43, 0xf2, + 0x20, 0x00, 0x03, 0x21, 0x84, 0xf8, 0x24, 0x60, 0xc2, 0xf2, 0x31, 0x00, 0x01, 0x80, 0x03, + 0xf0, 0x0c, 0xf8, 0x04, 0xe0, 0x11, 0x20, 0xe8, 0x75, 0x01, 0x20, 0x01, 0xf0, 0x85, 0xfd, + 0x02, 0xb0, 0x70, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0xcd, 0x44, 0x2c, 0x1b, 0x00, 0xc8, 0xf0, 0x83, 0x2d, 0xe9, 0xf0, 0x43, + 0xad, 0xf1, 0x08, 0x0d, 0x40, 0xf2, 0x4e, 0x68, 0xc2, 0xf2, 0x00, 0x08, 0x06, 0x46, 0xb8, + 0xf8, 0x00, 0x00, 0x41, 0xf6, 0x28, 0x44, 0xc2, 0xf2, 0x00, 0x04, 0x68, 0xb1, 0x41, 0xf6, + 0x34, 0x40, 0xc2, 0xf2, 0x00, 0x00, 0x03, 0x46, 0x41, 0xf6, 0x28, 0x44, 0x6f, 0xf0, 0x01, + 0x02, 0x00, 0x21, 0x02, 0xf0, 0x02, 0xfe, 0xc2, 0xf2, 0x00, 0x04, 0x20, 0x8a, 0xa1, 0x89, + 0x48, 0xf2, 0x00, 0x05, 0xcf, 0xf6, 0xff, 0x75, 0x46, 0xf2, 0x0a, 0x07, 0xc2, 0xf2, 0x20, + 0x07, 0x28, 0x43, 0xa7, 0xf8, 0x4c, 0x10, 0xa7, 0xf8, 0x4a, 0x00, 0x32, 0x7b, 0x31, 0x68, + 0x05, 0x20, 0x02, 0xf0, 0x10, 0xfe, 0xb0, 0x7b, 0x04, 0xf1, 0x0c, 0x09, 0x14, 0x34, 0x00, + 0x28, 0x1a, 0xbf, 0x30, 0x89, 0x80, 0x1c, 0x30, 0x89, 0x71, 0x89, 0x4f, 0xf0, 0x64, 0x0e, + 0x40, 0x18, 0x45, 0xea, 0xc0, 0x00, 0x78, 0x84, 0xa7, 0xf8, 0x00, 0xe0, 0x38, 0x88, 0xc0, + 0x09, 0x02, 0xd3, 0x38, 0x88, 0xc0, 0x09, 0xfc, 0xd2, 0x48, 0xf2, 0x18, 0x01, 0x4f, 0xf6, + 0xff, 0x70, 0xc2, 0xf2, 0x20, 0x01, 0xc8, 0x81, 0xb8, 0xf8, 0x00, 0x00, 0x20, 0xb1, 0x41, + 0xf6, 0xf8, 0x60, 0xc2, 0xf2, 0x00, 0x00, 0x08, 0x80, 0xb0, 0x88, 0x08, 0x80, 0xb8, 0xf8, + 0x00, 0x00, 0x31, 0x89, 0x23, 0x46, 0x00, 0xeb, 0xc1, 0x00, 0x50, 0x30, 0x80, 0xb2, + + 0x01, 0x05, 0xff, 0x75, 0x0c, 0x2d, 0x1b, 0x00, 0x70, 0x00, 0x21, 0x02, 0xb2, 0xad, 0xf8, + 0x04, 0x00, 0x48, 0x46, 0x02, 0xf0, 0xb4, 0xfd, 0xbd, 0xf8, 0x04, 0x00, 0x6b, 0x46, 0x00, + 0x21, 0x40, 0x1c, 0x02, 0xb2, 0x48, 0x46, 0x02, 0xf0, 0xab, 0xfd, 0xbd, 0xf8, 0x04, 0x10, + 0xbd, 0xf8, 0x00, 0x00, 0x02, 0xb0, 0x0d, 0x43, 0xa7, 0xf8, 0x48, 0x00, 0xa7, 0xf8, 0x46, + 0x50, 0xbd, 0xe8, 0xf0, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xb5, + + 0x01, 0x05, 0xff, 0x09, 0xb4, 0x30, 0x1b, 0x00, 0x04, 0x5b, 0x5c, 0x02, 0x21, + + 0x01, 0x05, 0xff, 0x11, 0x38, 0x39, 0x1b, 0x00, 0x0c, 0x00, 0x21, 0xc2, 0xf2, 0x00, 0x04, + 0x0a, 0x46, 0x20, 0x79, 0x0b, 0x46, + + 0x01, 0x05, 0xff, 0x15, 0x90, 0x41, 0x1b, 0x00, 0x10, 0x30, 0x40, 0x00, 0x21, 0xc2, 0xf2, + 0x00, 0x00, 0x0a, 0x46, 0xc0, 0x7d, 0x0b, 0x46, 0xfc, 0xf7, + + 0x01, 0x05, 0xff, 0x09, 0x08, 0x4a, 0x1b, 0x00, 0x04, 0x19, 0x46, 0x1a, 0x46, + + 0x01, 0x05, 0xff, 0x71, 0x58, 0x4c, 0x1b, 0x00, 0x6c, 0x10, 0xb5, 0x04, 0x46, 0x41, 0xf2, + 0x24, 0x03, 0x46, 0xf2, 0x0e, 0x00, 0x4f, 0xf6, 0xfc, 0x71, 0x1f, 0x22, 0xc2, 0xf2, 0x20, + 0x00, 0xc2, 0xf2, 0x31, 0x03, 0xa0, 0xf8, 0x5a, 0x10, 0x06, 0x21, 0x1a, 0x80, 0x4f, 0xf4, + 0xb6, 0x42, 0x01, 0x83, 0x18, 0x21, 0xc2, 0x82, 0x4f, 0xf4, 0x08, 0x52, 0x41, 0x83, 0x07, + 0x21, 0x02, 0x80, 0x41, 0x80, 0x02, 0xf0, 0x44, 0xfa, 0x01, 0x2c, 0x0e, 0xd1, 0x43, 0xf2, + 0x00, 0x00, 0xc2, 0xf2, 0x31, 0x00, 0x00, 0x21, 0xc1, 0x83, 0x81, 0x83, 0x47, 0xf6, 0x44, + 0x70, 0xc2, 0xf2, 0x32, 0x00, 0x47, 0xf6, 0x60, 0x01, 0x01, 0xf0, 0xd4, 0xfc, 0x10, 0xbd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x09, 0xd0, 0x4f, 0x1b, 0x00, 0x04, 0xe8, 0x7d, 0x02, 0x21, + + 0x01, 0x05, 0xff, 0x69, 0x14, 0x50, 0x1b, 0x00, 0x64, 0xad, 0xf1, 0x14, 0x0d, 0x4f, 0xf0, + 0x00, 0x04, 0x03, 0xb9, 0x01, 0x24, 0x41, 0xf6, 0x28, 0x43, 0x45, 0xf2, 0x55, 0x5c, 0x41, + 0xf6, 0x0c, 0x46, 0xc2, 0xf2, 0x00, 0x03, 0x02, 0x90, 0xc0, 0xf2, 0x55, 0x0c, 0xc2, 0xf2, + 0x00, 0x06, 0x00, 0x27, 0x9a, 0x18, 0x03, 0x91, 0x8d, 0xf8, 0x11, 0x40, 0x15, 0x79, 0xcd, + 0xf8, 0x00, 0xc0, 0x03, 0xf1, 0x14, 0x00, 0x01, 0x96, 0x40, 0xf2, 0x4e, 0x62, 0xc2, 0xf2, + 0x00, 0x02, 0x8d, 0xf8, 0x10, 0x50, 0x17, 0x80, 0x01, 0xf0, 0xd4, 0xf9, 0x68, 0x46, 0xfd, + 0xf7, 0x89, 0xfe, 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xb5, + + 0x01, 0x05, 0xff, 0x59, 0x58, 0x52, 0x1b, 0x00, 0x54, 0xfc, 0x32, 0x41, 0xf6, 0x2c, 0x4c, + 0xc2, 0xf2, 0x00, 0x02, 0xc2, 0xf2, 0x00, 0x0c, 0x40, 0xf2, 0x4e, 0x63, 0x45, 0xf2, 0x55, + 0x57, 0x00, 0x26, 0x91, 0x89, 0x01, 0x25, 0x1c, 0xf8, 0x00, 0x00, 0x02, 0x24, 0xc2, 0xf2, + 0x00, 0x03, 0xc0, 0xf2, 0x55, 0x07, 0x6f, 0xf3, 0x9f, 0x21, 0x8d, 0xf8, 0x0c, 0x00, 0xad, + 0xf8, 0x0a, 0x60, 0x8d, 0xf8, 0x0e, 0x50, 0x01, 0x92, 0x1c, 0x80, 0x89, 0x1e, 0x00, 0x97, + 0x68, 0x46, 0xad, 0xf8, 0x08, 0x10, 0xfd, 0xf7, 0xd1, 0xfc, 0x04, 0xb0, 0xf0, 0xbd, 0x00, + 0x00, 0x18, 0xb5, + + 0x01, 0x05, 0xff, 0x15, 0x44, 0x55, 0x1b, 0x00, 0x10, 0x47, 0x40, 0x00, 0x21, 0xc2, 0xf2, + 0x00, 0x00, 0x0a, 0x46, 0x00, 0x78, 0x0b, 0x46, 0xfb, 0xf7, + + 0x01, 0x05, 0xff, 0x2d, 0xc4, 0x56, 0x1b, 0x00, 0x28, 0x10, 0xb5, 0x40, 0xf2, 0x00, 0x04, + 0x02, 0x20, 0xc2, 0xf2, 0x00, 0x04, 0x60, 0x77, 0xff, 0xf7, 0x0d, 0xff, 0x05, 0x20, 0x00, + 0xf0, 0x1a, 0xf8, 0x41, 0xf6, 0xc0, 0x20, 0x00, 0x21, 0x01, 0x22, 0xc2, 0xf2, 0x00, 0x00, + 0x00, 0x78, 0x0b, 0x46, + + 0x01, 0x05, 0xff, 0x09, 0x0c, 0x57, 0x1b, 0x00, 0x04, 0x11, 0x80, 0x10, 0xbd, + + 0x01, 0x05, 0xff, 0x49, 0xcc, 0x58, 0x1b, 0x00, 0x44, 0x46, 0xf2, 0x28, 0x04, 0xc2, 0xf2, + 0x20, 0x04, 0x4f, 0xf0, 0x18, 0x05, 0x40, 0xf2, 0x4e, 0x63, 0x25, 0x80, 0xc2, 0xf2, 0x00, + 0x03, 0x1b, 0x88, 0x41, 0xf6, 0x28, 0x45, 0xc2, 0xf2, 0x00, 0x05, 0x03, 0xeb, 0xc0, 0x03, + 0x63, 0x80, 0x2b, 0x78, 0x4f, 0xea, 0x01, 0x66, 0x4f, 0xea, 0x11, 0x21, 0xa1, 0x81, 0x4f, + 0xea, 0x16, 0x45, 0x65, 0x81, 0x13, 0xb1, 0x11, 0x46, 0x01, 0xf0, 0x1a, 0xfc, 0x70, 0xbd, + 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x31, 0x2c, 0x59, 0x1b, 0x00, 0x2c, 0x00, 0x94, 0xad, 0xf8, 0x0a, 0x10, + 0xad, 0xf8, 0x08, 0x30, 0x38, 0x78, 0x00, 0x21, 0x8d, 0xf8, 0x0e, 0x10, 0x8d, 0xf8, 0x0c, + 0x00, 0x01, 0xf0, 0xe2, 0xfb, 0x68, 0x46, 0xfd, 0xf7, 0x7d, 0xf9, 0x04, 0xb0, 0x90, 0xbd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xb5, + + 0x01, 0x05, 0xff, 0x3d, 0x34, 0x5b, 0x1b, 0x00, 0x38, 0x45, 0xf2, 0x55, 0x56, 0x40, 0xf2, + 0x4e, 0x64, 0x01, 0x90, 0x01, 0x27, 0x00, 0x25, 0xc0, 0xf2, 0x55, 0x06, 0xc2, 0xf2, 0x00, + 0x04, 0x8d, 0xf8, 0x10, 0x30, 0x03, 0x91, 0x02, 0x92, 0x68, 0x46, 0x8d, 0xf8, 0x11, 0x70, + 0x00, 0x96, 0x25, 0x80, 0xfd, 0xf7, 0x0d, 0xf9, 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x75, 0x60, 0x5c, 0x1b, 0x00, 0x70, 0x01, 0x68, 0xb1, 0xf1, 0xff, 0x3f, + 0x1c, 0xbf, 0x49, 0x1c, 0x01, 0x60, 0x13, 0xd1, 0x41, 0x68, 0x00, 0x23, 0x03, 0x60, 0x01, + 0xf0, 0x7f, 0x02, 0x7f, 0x2a, 0x04, 0xbf, 0x21, 0xf0, 0x7f, 0x01, 0x41, 0x60, 0x4f, 0xea, + 0x41, 0x62, 0x06, 0xd0, 0x02, 0xf1, 0x00, 0x72, 0x21, 0xf0, 0x7f, 0x01, 0x41, 0xea, 0x52, + 0x61, 0x41, 0x60, 0x70, 0x47, 0x00, 0x00, 0x70, 0xb5, 0xad, 0xf1, 0x14, 0x0d, 0x41, 0xf6, + 0xcc, 0x36, 0x40, 0xf2, 0x4e, 0x65, 0x03, 0x90, 0x00, 0x24, 0xc2, 0xf2, 0x00, 0x06, 0xc2, + 0xf2, 0x00, 0x05, 0x00, 0x93, 0x8d, 0xf8, 0x10, 0x20, 0x02, 0x91, 0x68, 0x46, 0x8d, 0xf8, + 0x11, 0x40, 0x01, 0x96, 0x2c, 0x80, 0xfd, 0xf7, 0x58, 0xf8, 0x05, 0xb0, 0x70, 0xbd, 0x00, + 0x00, + + 0x01, 0x05, 0xff, 0xcd, 0x78, 0x6e, 0x1b, 0x00, 0xc8, 0x1d, 0x1c, 0x1b, 0xff, 0x15, 0x1e, + 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xfe, 0xf7, 0x31, + 0xfb, 0x40, 0xf6, 0x6a, 0x20, 0x07, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0xcc, 0xfb, + 0x40, 0xf6, 0x6a, 0x20, 0x09, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0xc5, 0xfb, 0x40, + 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0xbe, 0xfb, 0x00, 0xbd, + 0x70, 0xb5, 0x41, 0xf6, 0x48, 0x44, 0xc2, 0xf2, 0x00, 0x04, 0xe0, 0x68, 0x81, 0x79, 0x4f, + 0xf4, 0xaf, 0x70, 0xa0, 0xeb, 0xc1, 0x00, 0x80, 0xb2, 0xfe, 0xf7, 0x1d, 0xfc, 0x40, 0xf6, + 0x6a, 0x20, 0x07, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0xa1, 0xfb, 0x40, 0xf6, 0x6a, + 0x20, 0x09, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0x9a, 0xfb, 0x40, 0xf6, 0x6a, 0x20, + 0x02, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0x9a, 0xfb, 0x14, 0x20, 0xfe, 0xf7, 0x05, + 0xfc, 0x40, 0xf2, 0x00, 0x01, 0xc2, 0xf2, 0x00, 0x01, 0x91, 0xf8, 0x96, 0x05, 0x63, 0x7a, + 0x41, 0xf6, 0x44, 0x42, 0xc2, 0xf2, 0x00, 0x02, 0x40, 0xea, 0x03, 0x10, 0x43, 0xf2, 0x1c, + 0x03, 0x12, 0x88, 0xc0, 0x00, 0xc2, 0xf2, 0x31, 0x03, 0x00, 0x24, 0x40, 0xf2, 0x4e, 0x65, + 0x42, 0xf2, 0x48, 0x46, 0x18, 0x80, 0x4c, 0x53, 0xc2, 0xf2, 0x31, 0x06, 0x72, 0x80, + + 0x01, 0x05, 0xff, 0xcd, 0x40, 0x6f, 0x1b, 0x00, 0xc8, 0x15, 0x20, 0x30, 0x80, 0x30, 0x88, + 0x15, 0x28, 0x02, 0xd0, 0x5e, 0x20, 0xff, 0xf7, 0x8d, 0xfb, 0x40, 0xf2, 0x00, 0x00, 0xc2, + 0xf2, 0x00, 0x00, 0x90, 0xf8, 0x05, 0x36, 0x4f, 0xf2, 0x04, 0x01, 0xc2, 0xf2, 0x32, 0x01, + 0x10, 0x2b, 0x04, 0xda, 0x0a, 0x88, 0x01, 0x20, 0x98, 0x40, 0x10, 0x43, 0x08, 0x80, 0x41, + 0xf6, 0x48, 0x40, 0xc2, 0xf2, 0x00, 0x00, 0xc1, 0x68, 0x42, 0x7a, 0x41, 0xf6, 0x6c, 0x40, + 0x89, 0x79, 0xc2, 0xf2, 0x00, 0x00, 0xfe, 0xf7, 0x2b, 0xfd, 0x70, 0xbd, 0x00, 0xb5, 0x41, + 0xf6, 0x48, 0x40, 0x07, 0x21, 0xc2, 0xf2, 0x00, 0x00, 0xff, 0xf7, 0x9b, 0xfb, 0x40, 0xf6, + 0x6a, 0x20, 0x07, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0x3d, 0xfb, 0x14, 0x20, 0xfe, + 0xf7, 0xaf, 0xfb, 0x40, 0xf2, 0x97, 0x50, 0xc2, 0xf2, 0x00, 0x00, 0x00, 0x78, 0x43, 0xf2, + 0x20, 0x01, 0xc2, 0xf2, 0x31, 0x01, 0x08, 0x80, 0x00, 0xbd, 0x00, 0xb5, 0x41, 0xf6, 0x47, + 0x40, 0x03, 0x21, 0xc2, 0xf2, 0x00, 0x00, 0x01, 0x70, 0x40, 0xf6, 0x6a, 0x20, 0x07, 0x21, + 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0x28, 0xfb, 0x40, 0xf6, 0x6a, 0x20, 0x09, 0x21, 0xc2, + 0xf2, 0x32, 0x00, 0xff, 0xf7, 0x21, 0xfb, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, + 0x32, 0x00, 0xff, 0xf7, 0x1a, 0xfb, 0x40, 0xf6, 0x6a, 0x20, 0x02, 0x21, 0xc2, 0xf2, + + 0x01, 0x05, 0xff, 0xcd, 0x08, 0x70, 0x1b, 0x00, 0xc8, 0x32, 0x00, 0xff, 0xf7, 0x13, 0xfb, + 0x40, 0xf6, 0x6a, 0x20, 0x08, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0x05, 0xfb, 0x40, + 0xf6, 0x6a, 0x20, 0x06, 0x21, 0xc2, 0xf2, 0x32, 0x00, 0xff, 0xf7, 0xfe, 0xfa, 0x43, 0xf2, + 0x5c, 0x10, 0x00, 0x21, 0xc2, 0xf2, 0x31, 0x00, 0xff, 0xf7, 0xf7, 0xfa, 0x41, 0xf6, 0x50, + 0x40, 0xc2, 0xf2, 0x00, 0x00, 0x00, 0x78, 0x10, 0xb9, 0x00, 0xf0, 0xbc, 0xff, 0x00, 0xbd, + 0x00, 0xf0, 0x22, 0xff, 0x00, 0xbd, 0xf0, 0xb5, 0x40, 0xf2, 0x00, 0x02, 0xc2, 0xf2, 0x00, + 0x02, 0xd2, 0xf8, 0x8c, 0x35, 0x04, 0x78, 0x40, 0xf2, 0x00, 0x01, 0x6f, 0xf3, 0x1f, 0x43, + 0xc2, 0xf2, 0x30, 0x01, 0x19, 0x43, 0x42, 0xf2, 0x6c, 0x45, 0x0c, 0x80, 0x43, 0xf2, 0x00, + 0x01, 0x00, 0x23, 0xc4, 0xf2, 0x00, 0x05, 0x2b, 0x80, 0x4f, 0xf4, 0x20, 0x65, 0xc2, 0xf2, + 0x31, 0x01, 0x01, 0x24, 0x41, 0xf2, 0x08, 0x46, 0x40, 0x27, 0x4f, 0xf0, 0x78, 0x0c, 0x4d, + 0x80, 0x0e, 0x80, 0xcf, 0x83, 0xa1, 0xf8, 0x1c, 0xc0, 0x8c, 0x80, 0x0c, 0x84, 0x01, 0x78, + 0x10, 0x29, 0x29, 0xda, 0x11, 0xb3, 0x49, 0x1e, 0x16, 0xd0, 0x49, 0x1e, 0x0a, 0xd0, 0x49, + 0x1e, 0x22, 0xd1, 0x42, 0xf2, 0x46, 0x40, 0xc2, 0xf2, 0x31, 0x00, 0x83, 0x80, 0x04, 0x80, + 0x92, 0xf8, 0x49, 0x06, 0x1b, 0xe0, 0x42, 0xf2, 0x46, 0x40, 0xc2, 0xf2, 0x31, 0x00, + + 0x01, 0x05, 0xff, 0xcd, 0xd0, 0x70, 0x1b, 0x00, 0xc8, 0x02, 0x21, 0x81, 0x80, 0x04, 0x80, + 0x92, 0xf8, 0x49, 0x06, 0x11, 0xe0, 0x42, 0xf2, 0x46, 0x40, 0xc2, 0xf2, 0x31, 0x00, 0x02, + 0x21, 0x81, 0x80, 0x04, 0x80, 0x92, 0xf8, 0x49, 0x06, 0x07, 0xe0, 0x42, 0xf2, 0x46, 0x40, + 0xc2, 0xf2, 0x31, 0x00, 0x83, 0x80, 0x04, 0x80, 0x92, 0xf8, 0x49, 0x06, 0x00, 0xf0, 0x7f, + 0x00, 0x82, 0xf8, 0x49, 0x06, 0xf0, 0xbd, 0x40, 0xf2, 0x00, 0x00, 0xc2, 0xf2, 0x00, 0x00, + 0xb0, 0xf8, 0x50, 0x16, 0xa0, 0xf8, 0x4e, 0x16, 0x70, 0x47, 0x10, 0xb5, 0x41, 0xf6, 0xf8, + 0x60, 0x46, 0xf2, 0x01, 0x03, 0x42, 0xf2, 0x01, 0x02, 0xc2, 0xf2, 0x00, 0x00, 0x4f, 0xf4, + 0x00, 0x61, 0x4f, 0xf4, 0x33, 0x64, 0x43, 0x80, 0x82, 0x80, 0xc1, 0x80, 0x04, 0x80, 0x10, + 0xbd, 0x10, 0xb5, 0x40, 0xf2, 0x4e, 0x62, 0x46, 0xf6, 0x40, 0x63, 0xc2, 0xf2, 0x00, 0x02, + 0x46, 0xf2, 0x0c, 0x04, 0xc0, 0xf2, 0x00, 0x03, 0x12, 0x88, 0xc2, 0xf2, 0x20, 0x04, 0x59, + 0x5c, 0x02, 0xeb, 0xc0, 0x00, 0x20, 0x80, 0x48, 0xf2, 0xe0, 0x12, 0x08, 0x02, 0xe2, 0x80, + 0x20, 0x81, 0x10, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x25, 0x98, 0x71, 0x1b, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0xcd, 0xf4, 0x78, 0x1b, 0x00, 0xc8, 0xf0, 0x83, 0x70, 0xb5, 0x41, 0xf6, + 0x48, 0x44, 0x06, 0x46, 0xc2, 0xf2, 0x00, 0x04, 0xe0, 0x68, 0x07, 0x21, 0x45, 0x78, 0x40, + 0xf6, 0x6a, 0x20, 0xc2, 0xf2, 0x32, 0x00, 0xfe, 0xf7, 0x90, 0xfe, 0x01, 0x20, 0xfd, 0xf7, + 0xae, 0xfb, 0x00, 0x2e, 0x40, 0xf2, 0x00, 0x01, 0x46, 0xd1, 0xc2, 0xf2, 0x00, 0x01, 0x91, + 0xf8, 0x98, 0x05, 0x01, 0xf2, 0xfc, 0x56, 0x90, 0xb9, 0xe0, 0x68, 0x2d, 0x18, 0x2a, 0x79, + 0xe9, 0x78, 0xa8, 0x78, 0xfb, 0xf7, 0x9c, 0xfe, 0x30, 0xb9, 0x61, 0x69, 0x49, 0x1c, 0x61, + 0x61, 0x2c, 0x20, 0xfe, 0xf7, 0xe2, 0xfd, 0x70, 0xbd, 0x30, 0x88, 0x40, 0x1c, 0x30, 0x80, + 0x70, 0xbd, 0xff, 0xf7, 0x5e, 0xfe, 0xe0, 0x68, 0x28, 0x18, 0x02, 0x79, 0xc1, 0x78, 0x80, + 0x78, 0xff, 0xf7, 0x92, 0xfd, 0x00, 0xf0, 0xd0, 0xf9, 0xb6, 0xf8, 0x42, 0x00, 0x80, 0x08, + 0x2c, 0xbf, 0x01, 0x22, 0x00, 0x22, 0x0e, 0x20, 0x00, 0x21, 0xfb, 0xf7, 0xe7, 0xfe, 0x06, + 0x46, 0xe0, 0x68, 0x2d, 0x18, 0xa8, 0x78, 0xe9, 0x78, 0x2a, 0x79, 0xfb, 0xf7, 0x73, 0xfe, + 0x01, 0x2e, 0x04, 0xbf, 0xa1, 0x69, 0x00, 0x28, 0x07, 0xd0, 0x4e, 0xb9, 0x01, 0x28, 0x07, + 0xd1, 0xa1, 0x69, 0x88, 0x8f, 0x40, 0x1c, 0x88, 0x87, 0x70, 0xbd, 0x48, 0x8f, 0x40, 0x1c, + 0x48, 0x87, 0x70, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x75, 0xbc, 0x79, 0x1b, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, + + 0x01, 0x05, 0xff, 0x09, 0x04, 0x7b, 0x1b, 0x00, 0x04, 0x28, 0xb9, 0x0f, 0x20, + + 0x01, 0x05, 0xff, 0x55, 0x98, 0x7e, 0x1b, 0x00, 0x50, 0x00, 0x20, 0xad, 0xf8, 0x04, 0x00, + 0x00, 0x90, 0xff, 0xf7, 0x75, 0xf8, 0x41, 0xf6, 0x48, 0x44, 0x41, 0xf6, 0x74, 0x40, 0xc2, + 0xf2, 0x00, 0x04, 0x6a, 0x46, 0x69, 0x46, 0x63, 0x7a, 0xc2, 0xf2, 0x00, 0x00, 0xfd, 0xf7, + 0x38, 0xfe, 0x02, 0xb0, 0x02, 0x20, 0xe0, 0x61, 0x10, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xb5, 0x41, 0xf6, 0x48, 0x44, 0xc2, 0xf2, + 0x00, 0x04, 0xe0, 0x69, 0x01, 0x28, 0x14, 0xd1, 0xfe, 0xf7, 0xd1, 0xff, 0x60, 0x69, + + 0x01, 0x05, 0xff, 0x15, 0x0c, 0x7f, 0x1b, 0x00, 0x10, 0x10, 0xbd, 0x00, 0xb5, 0x41, 0xf6, + 0x50, 0x40, 0xc2, 0xf2, 0x00, 0x00, 0x00, 0x21, 0x02, 0x78, + + 0x01, 0x05, 0xff, 0x45, 0x30, 0x7f, 0x1b, 0x00, 0x40, 0xff, 0xf7, 0x4a, 0xf8, 0x00, 0xbd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x05, 0xff, 0x0d, 0xd4, 0x7f, 0x1b, 0x00, 0x08, 0x56, 0xfc, 0xfe, 0xf7, 0x70, 0xff, + 0x00, 0xbd, + + // + // ######################## + // # Patch End + // ######################## + // #release Cortex Reset + 0x01, 0x09, 0xfd, 0x08, 0x00, 0xc0, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x00, + + // + // # Enable Cortex Sleep + 0x01, 0xa8, 0xfd, 0x01, 0x00, + + // + // #RESET BLE + 0x01, 0x5b, 0xfd, 0x02, 0x01, 0x00, + + // + 0x01, 0xdd, 0xfd, 0x01, 0x01, + + // + // ################################################################# + // ## START of CC256x Add-On + // ################################################################# + // + // ## Enable fast clock XTAL support + 0x01, 0x1c, 0xfd, 0x14, 0x01, 0x88, 0x13, 0x00, 0x00, 0xd0, 0x07, 0x00, 0x00, 0xff, 0xff, + 0x04, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, + + // + // ## Enable eHCILL + 0x01, 0x2b, 0xfd, 0x05, 0x10, 0x00, 0x50, 0x00, 0x96, + + // + 0x01, 0x0c, 0xfd, 0x09, 0x01, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0x64, 0x00, + + // + // ################################################################# + // ## END of CC256x Add-On + // ################################################################# +}; + +const uint32_t cc256x_init_script_size = 17759; + diff --git a/metawatch/bluetooth_init_cc256x.h b/metawatch/bluetooth_init_cc256x.h new file mode 100644 index 0000000..fcc092c --- /dev/null +++ b/metawatch/bluetooth_init_cc256x.h @@ -0,0 +1,11 @@ +#ifndef _BT_CC2560_H +#define _BT_CC2560_H + +/* the init/patch script for CC256x chipset */ +/* see TI license for details */ + +extern const uint8_t cc256x_init_script[]; +extern const uint8_t cc256x_init_script_2[]; +extern const uint32_t cc256x_init_script_size; +extern const char *cc256x_version; +#endif diff --git a/metawatch/bt_hci.c b/metawatch/bt_hci.c new file mode 100644 index 0000000..56e490e --- /dev/null +++ b/metawatch/bt_hci.c @@ -0,0 +1,512 @@ +#include +#include +#include +#include +#include + +#include "mw_main.h" + +#include "mw_uart.h" +#include "mw_bt.h" +#include "bt_hci.h" +#include "bt_l2cap.h" + + +static uint8_t local_bdaddr[6]; + +uint8_t *bt_hci_get_local_bdaddr(void) +{ + return local_bdaddr; +} + +static void bt_print_bd_addr(uint8_t *bd_addr) +{ +#if defined MW_DEVBOARD_V2 + int i; + char nums[4]; + + for (i=5; i>=0; i--) { + snprintf(nums, 4, "%02x", bd_addr[i]); + debug_uart_tx(nums); + if (i>0) + debug_uart_tx_char(':'); + } +#endif +} + +void bt_hci_process_acl_packet(unsigned char *packet) +{ +#if defined MW_DEVBOARD_V2 + char tstr[32]; +#endif + uint16_t dlen; + uint16_t handle; + L2CAP_PB_FLAG PB; + L2CAP_BC_FLAG BC; + uint16_t channel; + uint16_t mlen; + +// debug_uart_tx("ACL packet, "); + handle = packet[0] | ((packet[1] & 0x0f) << 8); +// snprintf(tstr, 32, "handle 0x%04x ", handle); +// debug_uart_tx(tstr); + PB = (packet[1] >> 4) & 0x03; + BC = (packet[1] >> 6) & 0x03; +// snprintf(tstr, 32, "PB 0x%02x BC 0x%02x ", PB, BC); +// debug_uart_tx(tstr); + + dlen = packet[2] | ((uint16_t)packet[3] << 8); +// snprintf(tstr, 32, "len 0x%04x \n", dlen); +// debug_uart_tx(tstr); +// debug_dump_hex(dlen+4, packet); + + channel = packet[4+2] | (packet[4+3] << 8); + mlen = packet[4] | (packet[4+1] << 8); + switch (channel) { + case L2CAP_CID_SIGNALING: + bt_l2cap_proc_signalling(handle, (packet+8), mlen); + break; + case L2CAP_CID_CONNECTIONLESS_CHANNEL: + break; + case L2CAP_CID_ATTRIBUTE_PROTOCOL: + break; + case L2CAP_CID_SIGNALING_LE: + break; + case L2CAP_CID_SECURITY_MANAGER_PROTOCOL: + break; + default: + if (channel > 0x3f) { + // just for sure, add a 0 as string delimiter + packet[mlen+8] = 0x00; + bt_l2cap_proc_dyn_channel(channel, handle, (packet+8), mlen); + } else { +#if defined MW_DEVBOARD_V2 + snprintf(tstr, 32, "L2CAP unhandled CID 0x%04x\n", channel); + debug_uart_tx(tstr); +#endif + } + break; + } +} + +void bt_hci_process_event_packet(unsigned char *packet) +{ +#if defined MW_DEVBOARD_V2 + char tstr[32]; +#endif + int i; + // uint8_t bd_addr[6]; + uint32_t dev_type; + +// debug_uart_tx("Event packet, "); +// snprintf(tstr, 32, "evt 0x%02x: ", packet[0]); +// debug_uart_tx(tstr); + + switch (packet[0]) { + case HCI_EVENT_INQUIRY_COMPLETE: + debug_uart_tx("inq complete\n"); + break; + case HCI_EVENT_INQUIRY_RESULT: + debug_uart_tx("inq result\n"); + break; + case HCI_EVENT_CONNECTION_COMPLETE: + debug_uart_tx("con complete from "); +#if defined MW_DEVBOARD_V2 + bt_print_bd_addr((packet+5)); + snprintf(tstr, 32, " status 0x%02x handle 0x%02x", packet[2], packet[3]); + debug_uart_tx(tstr); + snprintf(tstr, 32, " type 0x%02x enc 0x%02x\n", packet[11], packet[12]); + debug_uart_tx(tstr); + if (packet[2] == 0x00) + debug_uart_tx("connection established\n"); + else + debug_uart_tx("connection failed\n"); +#endif + break; + case HCI_EVENT_CONNECTION_REQUEST: { + uint8_t bd_addr[7]; + + switch (packet[11]) { + case HCI_LINK_TYPE_SCO: + debug_uart_tx("SCO"); + break; + case HCI_LINK_TYPE_ACL: + debug_uart_tx("ACL"); + break; + case HCI_LINK_TYPE_ESCO: + debug_uart_tx("eSCO"); + break; + default: + debug_uart_tx("unknown type"); + break; + } + debug_uart_tx(" con req from "); + for (i=0; i<6; i++) { + bd_addr[i] = packet[i+2]; + } + bt_print_bd_addr(bd_addr); + dev_type = (uint32_t)packet[8] << 16; + dev_type |= (uint32_t)packet[9] << 8; + dev_type |= packet[10]; +#if defined MW_DEVBOARD_V2 + snprintf(tstr, 32, " rem. dtype 0x%06lx\n", dev_type); + debug_uart_tx(tstr); +#endif + //memcpy(tstr, bd_addr, 6); + //tstr[6] = 0x01; /* remain slave */ + bd_addr[6] = 0x01; /* remain slave */ + bt_hci_cmd(HCI_LINK_CTRL_OGF, HCI_ACCEPT_CONN_REQ_OCF, 7, bd_addr); + } break; + case HCI_EVENT_DISCONNECTION_COMPLETE: + debug_uart_tx("discon complete\n"); + break; + case HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT: + debug_uart_tx("auth complete\n"); + break; + case HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE: + debug_uart_tx("rem name req complete\n"); + break; + case HCI_EVENT_ENCRYPTION_CHANGE: + debug_uart_tx("enc change\n"); + break; + case HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE: + debug_uart_tx("change con link key complete\n"); + break; + case HCI_EVENT_MASTER_LINK_KEY_COMPLETE: + debug_uart_tx("master link key complete\n"); + break; + case HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE: + debug_uart_tx("read rem feat. complete\n"); + break; + case HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE: + debug_uart_tx("read rem version complete\n"); + break; + case HCI_EVENT_QOS_SETUP_COMPLETE: + debug_uart_tx("qos setup complete\n"); + break; + case HCI_EVENT_COMMAND_COMPLETE: + // snprintf(tstr, 32, "%d cmd(s) complete: 0x%02x%02x=%d", packet[2], packet[3], packet[4], packet[5]); + // debug_uart_tx(tstr); + if (packet[2] > 0 && + packet[3] == ((HCI_R_BD_ADDR_OCF | (HCI_INFO_PARAM_OGF << 10)) & 0xff) && + packet[4] == (((HCI_R_BD_ADDR_OCF | (HCI_INFO_PARAM_OGF << 10)) & 0xff00) >> 8)) { // read local bdaddr + memcpy(local_bdaddr, (packet+6), 6); +#if defined MW_DEVBOARD_V2 + debug_uart_tx("local bdaddr = "); + bt_print_bd_addr((uint8_t *)(packet+6)); + debug_uart_tx("\n"); +#endif + } + break; + case HCI_EVENT_COMMAND_STATUS: + debug_uart_tx("cmd status\n"); + break; + case HCI_EVENT_HARDWARE_ERROR: +#if defined MW_DEVBOARD_V2 + debug_uart_tx("hardw err"); + snprintf(tstr, 32, " 0x%02x\n", packet[2]); + debug_uart_tx(tstr); +#endif + break; + case HCI_EVENT_FLUSH_OCCURED: + debug_uart_tx("flush occured\n"); + break; + case HCI_EVENT_ROLE_CHANGE: + debug_uart_tx("role change\n"); + break; + case HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS: + debug_uart_tx("numb compl. packets\n"); + break; + case HCI_EVENT_MODE_CHANGE_EVENT: + debug_uart_tx("mode change\n"); + break; + case HCI_EVENT_RETURN_LINK_KEYS: + debug_uart_tx("return link keys\n"); + break; + case HCI_EVENT_PIN_CODE_REQUEST: + debug_uart_tx("pin code request\n"); +#if defined MW_DEVBOARD_V2 + debug_uart_tx("from "); + bt_print_bd_addr((uint8_t *)(packet+2)); + debug_uart_tx("\n"); +#endif + memmove(packet, (packet+2), 6); + packet[6] = 0x04; // PIN has length of 4 + memcpy((packet+7), BT_PIN, 4); + packet[7] = '4'; + packet[8] = '3'; + packet[9] = '1'; + packet[10] = '2'; + bt_hci_cmd(HCI_LINK_CTRL_OGF, HCI_PIN_CODE_REQ_REP_OCF, 11, packet); + break; + case HCI_EVENT_LINK_KEY_REQUEST: + debug_uart_tx("link key request\n"); + break; + case HCI_EVENT_LINK_KEY_NOTIFICATION: + debug_uart_tx("link key notify\n"); + break; + case HCI_EVENT_DATA_BUFFER_OVERFLOW: + debug_uart_tx("evt data buf overflow\n"); + break; + case HCI_EVENT_MAX_SLOTS_CHANGED: + debug_uart_tx("max slots changed\n"); + break; + case HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE: + debug_uart_tx("read clock offset compl.\n"); + break; + case HCI_EVENT_PACKET_TYPE_CHANGED: + debug_uart_tx("packet type changed\n"); + break; + case HCI_EVENT_PAGE_SCAN_REPETION_MODE_CHANGE: + debug_uart_tx("page scan repetition mode changed\n"); + break; + case HCI_EVENT_INQUIRY_RESULT_WITH_RSSI: + debug_uart_tx("inq result with RSSI\n"); + break; + case HCI_EVENT_EXTENDED_INQUIRY_RESPONSE: + debug_uart_tx("ext. inq. resp.\n"); + break; + case HCI_EVENT_LE_META: + debug_uart_tx("LE meta\n"); + break; + case HCI_EVENT_VENDOR_SPECIFIC: + debug_uart_tx("vend. spec.\n"); + break; + default: + debug_uart_tx("unknown\n"); + break; + } +// debug_uart_tx("\n"); +// for (i=2; i<=(packet[1]+1); i++) { +// snprintf(tstr, 32, " 0x%02x", packet[i]); +// debug_uart_tx(tstr); +// } +// debug_uart_tx("\n"); +} + +typedef enum { + HCI_PACKET_START = 0, + HCI_CMD_PACKET, + HCI_ACL_PACKET_HEADER, + HCI_ACL_PACKET_DATA, + HCI_SCO_PACKET, + HCI_EVENT_PACKET_HEADER, + HCI_EVENT_PACKET_DATA, + HCI_EHCILL_PACKET, + EHCILL_SLEEPING +} bt_hci_state_t; + +static bt_hci_state_t state = HCI_PACKET_START; + +unsigned char bt_feed_packet_data(unsigned char pdata) +{ + char tstr[32]; + static unsigned char packet[255]; + static uint16_t bytes_left = 0; + static uint16_t pdata_pos = 0; + +// snprintf(tstr, 32, "bt 0x%02x ", pdata); +// debug_uart_tx(tstr); + switch (state) { + case HCI_PACKET_START: + switch (pdata) { + case HCI_EVENT_PACKET: + state = HCI_EVENT_PACKET_HEADER; + bytes_left = 1; + pdata_pos = 0; + memset(packet, 0, 64); + break; + case HCI_ACL_DATA_PACKET: + state = HCI_ACL_PACKET_HEADER; + bytes_left = 3; + pdata_pos = 0; + memset(packet, 0, 64); + break; + case EHCILL_GO_TO_SLEEP_IND: + debug_uart_tx("eHCILL go to sleep ind\n"); + state = HCI_PACKET_START; + // disable BT UART? + // mabye UCA1CTL1 = UCSWRST ? + + pdata = EHCILL_GO_TO_SLEEP_ACK; + mw_bt_uart_tx(&pdata, 0x01); + + // pull RTS -> stop data + BT_IO_POUT |= BT_IO_RTS; + + // enable IRQ on CTS + P1IFG &= ~BT_IO_CTS; + P1IE |= BT_IO_CTS; + + state = EHCILL_SLEEPING; + break; + case EHCILL_GO_TO_SLEEP_ACK: + debug_uart_tx("eHCILL go to sleep ack\n"); + state = HCI_PACKET_START; + break; + case EHCILL_WAKE_UP_IND: + debug_uart_tx("eHCILL wake up ind\n"); + state = HCI_PACKET_START; + break; + case EHCILL_WAKE_UP_ACK: + debug_uart_tx("eHCILL wake up ack\n"); + state = HCI_PACKET_START; + break; + default: + debug_uart_tx("unexpected packet start\n"); + break; + } + break; + case HCI_EVENT_PACKET_HEADER: + if (bytes_left != 0) { + packet[pdata_pos++] = pdata; + bytes_left--; + } else { + state = HCI_EVENT_PACKET_DATA; + packet[pdata_pos++] = pdata; + bytes_left = pdata; + } + break; + case HCI_EVENT_PACKET_DATA: + packet[pdata_pos++] = pdata; + bytes_left--; + if (bytes_left == 0) { + state = HCI_PACKET_START; + bt_hci_process_event_packet(packet); + } + break; + case HCI_ACL_PACKET_HEADER: + if (bytes_left != 0) { + packet[pdata_pos++] = pdata; + bytes_left--; + } else { + state = HCI_ACL_PACKET_DATA; + packet[pdata_pos] = pdata; + bytes_left = (packet[pdata_pos-1] | (packet[pdata_pos] << 8)); +// snprintf(tstr, 32, "ACL data len 0x%04x\n", bytes_left); +// debug_uart_tx(tstr); +// snprintf(tstr, 32, "%d (0x%02x 0x%02x)\n", pdata_pos, packet[pdata_pos-1], packet[pdata_pos]); +// debug_uart_tx(tstr); + pdata_pos++; + } + break; + case HCI_ACL_PACKET_DATA: +// snprintf(tstr, 32, "%02x ", pdata); +// debug_uart_tx(tstr); + packet[pdata_pos++] = pdata; + bytes_left--; + if (bytes_left == 0) { +// debug_uart_tx("\n"); + state = HCI_PACKET_START; + bt_hci_process_acl_packet(packet); + } + break; + default: + debug_uart_tx("hosed HCI state!\n"); + snprintf(tstr, 32, " state = %d\n", state); + debug_uart_tx(tstr); + break; + }; + + // one byte consumed + return 1; +} + +typedef struct { + uint8_t type; + uint16_t cmd; + uint8_t length; +} __attribute__((packed)) bt_hci_cmd_t; + +void bt_hci_cmd(const uint8_t OGF, const uint8_t OCF, const uint8_t data_len, const void *data) +{ + bt_hci_cmd_t packet; + + // refuse any HCI if interface is not enabled + if (mw_bt_is_enabled() == 0) + return; + + if (state == EHCILL_SLEEPING) { + uint8_t ehcill_p = EHCILL_WAKE_UP_IND; + + debug_uart_tx("wakeup HCILL\n"); + state = HCI_PACKET_START; + mw_bt_uart_tx(&ehcill_p, 1); + __delay_cycles(300000); + BT_IO_POUT &= ~BT_IO_RTS; // drop RTS -> start data + } + packet.type = HCI_COMMAND_PACKET; + packet.cmd = OCF | (OGF<<10); + packet.length = data_len; + mw_bt_uart_tx(&packet, sizeof(bt_hci_cmd_t)); + if (data_len > 0 && data != NULL) + mw_bt_uart_tx(data, data_len); +} + +typedef struct { + uint16_t acl_handle; + uint16_t max_interval; + uint16_t min_interval; + uint16_t sniff_attempt; + uint16_t sniff_timeout; +} __attribute__((packed)) bt_hci_sniff_cmd_t; + +void bt_hci_set_sniff_mode(const uint16_t acl_handle, const uint16_t max_interval, const uint16_t min_interval, const uint16_t sniff_attempt, const uint16_t sniff_timeout) +{ + bt_hci_sniff_cmd_t sniff_cmd; + + sniff_cmd.acl_handle = acl_handle; + sniff_cmd.max_interval = max_interval; + sniff_cmd.min_interval = min_interval; + sniff_cmd.sniff_attempt = sniff_attempt; + sniff_cmd.sniff_timeout = sniff_timeout; + + bt_hci_cmd(HCI_LINK_POLICY_OGF, HCI_SNIFF_MODE_OCF, sizeof(sniff_cmd), &sniff_cmd); +} + +typedef struct { + uint8_t type; + uint16_t handle; + uint16_t total_length; + uint16_t data_length; + uint16_t channel; +} __attribute__((packed)) bt_hci_acl_t; + +void bt_acl_send(const uint16_t handle, const uint8_t PB, const uint8_t BC, const uint16_t channel, const uint16_t dlen, const void *dat) +{ + bt_hci_acl_t packet; + + // refuse any HCI if interface is not enabled + if (mw_bt_is_enabled() == 0) + return; + + packet.type = HCI_ACL_DATA_PACKET; + packet.handle = handle | ((PB & 0x03) << 12) | ((BC & 0x03) << 14); + packet.total_length = dlen + 4; + packet.data_length = dlen; + packet.channel = channel; + mw_bt_uart_tx(&packet, sizeof(bt_hci_acl_t)); + mw_bt_uart_tx(dat, dlen); +} + +void bt_hci_init(void) +{ + state = HCI_PACKET_START; +} + +void bt_hci_ehcill_wake(void) +{ + const uint8_t ehcill_p = EHCILL_WAKE_UP_ACK; + + debug_uart_tx("HCILL wakeup\n"); + + P1IE &= ~BT_IO_CTS; + P1IFG &= ~BT_IO_CTS; + state = HCI_PACKET_START; + + BT_IO_POUT &= ~BT_IO_RTS; // drop RTS -> start data + + mw_bt_uart_tx(&ehcill_p, 1); + //__delay_cycles(160000); +} + diff --git a/metawatch/bt_hci.h b/metawatch/bt_hci.h new file mode 100644 index 0000000..e446b09 --- /dev/null +++ b/metawatch/bt_hci.h @@ -0,0 +1,95 @@ +#ifndef _BT_HCI_H +#define _BT_HCI_H + +/* HCI Command OGF */ +#define HCI_LINK_CTRL_OGF 0x01 +#define HCI_LINK_POLICY_OGF 0x02 +#define HCI_HC_BB_OGF 0x03 +#define HCI_INFO_PARAM_OGF 0x04 + +/* HCI Command OCF */ +#define HCI_DISCONN_OCF 0x06 +#define HCI_ACCEPT_CONN_REQ_OCF 0x09 +#define HCI_RESET_OCF 0x03 +#define HCI_W_SCAN_EN_OCF 0x1A +#define HCI_R_COD_OCF 0x23 +#define HCI_W_COD_OCF 0x24 +#define HCI_H_BUF_SIZE_OCF 0x33 +#define HCI_H_NUM_COMPL_OCF 0x35 +#define HCI_R_BUF_SIZE_OCF 0x05 +#define HCI_R_BD_ADDR_OCF 0x09 +#define HCI_W_LOCAL_NAME_OCF 0x13 +#define HCI_PIN_CODE_REQ_REP_OCF 0x0D +#define HCI_R_STORED_LINK_KEY_OCF 0x0D +#define HCI_W_STORED_LINK_KEY_OCF 0x11 +#define HCI_LINK_KEY_REQ_REP_OCF 0x0B +#define HCI_SNIFF_MODE_OCF 0x03 + +#define HCI_COMMAND_PACKET 0x01 +#define HCI_ACL_DATA_PACKET 0x02 +#define HCI_SCO_DATA_PACKET 0x03 +#define HCI_EVENT_PACKET 0x04 + +#define HCI_EVENT_INQUIRY_COMPLETE 0x01 +#define HCI_EVENT_INQUIRY_RESULT 0x02 +#define HCI_EVENT_CONNECTION_COMPLETE 0x03 +#define HCI_EVENT_CONNECTION_REQUEST 0x04 +#define HCI_EVENT_DISCONNECTION_COMPLETE 0x05 +#define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT 0x06 +#define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 0x07 +#define HCI_EVENT_ENCRYPTION_CHANGE 0x08 +#define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 0x09 +#define HCI_EVENT_MASTER_LINK_KEY_COMPLETE 0x0A +#define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE 0x0B +#define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C +#define HCI_EVENT_QOS_SETUP_COMPLETE 0x0D +#define HCI_EVENT_COMMAND_COMPLETE 0x0E +#define HCI_EVENT_COMMAND_STATUS 0x0F +#define HCI_EVENT_HARDWARE_ERROR 0x10 +#define HCI_EVENT_FLUSH_OCCURED 0x11 +#define HCI_EVENT_ROLE_CHANGE 0x12 +#define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS 0x13 +#define HCI_EVENT_MODE_CHANGE_EVENT 0x14 +#define HCI_EVENT_RETURN_LINK_KEYS 0x15 +#define HCI_EVENT_PIN_CODE_REQUEST 0x16 +#define HCI_EVENT_LINK_KEY_REQUEST 0x17 +#define HCI_EVENT_LINK_KEY_NOTIFICATION 0x18 +#define HCI_EVENT_DATA_BUFFER_OVERFLOW 0x1A +#define HCI_EVENT_MAX_SLOTS_CHANGED 0x1B +#define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 0x1C +#define HCI_EVENT_PACKET_TYPE_CHANGED 0x1D +#define HCI_EVENT_PAGE_SCAN_REPETION_MODE_CHANGE 0x20 +#define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 0x22 +#define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 0x2F +#define HCI_EVENT_LE_META 0x3E +#define HCI_EVENT_VENDOR_SPECIFIC 0xFF + +#define HCI_SUBEVENT_LE_CONNECTION_COMPLETE 0x01 +#define HCI_SUBEVENT_LE_ADVERTISING_REPORT 0x02 +#define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 0x03 +#define HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 0x04 +#define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 0x05 + +#define HCI_LINK_TYPE_SCO 0x00 +#define HCI_LINK_TYPE_ACL 0x01 +#define HCI_LINK_TYPE_ESCO 0x02 + +#define HCI_BB_SCAN_NOSCAN 0x00 +#define HCI_BB_SCAN_INQUIRY 0x01 +#define HCI_BB_SCAN_PAGE 0x02 + +/* CC256x specific eHCILL */ +#define EHCILL_GO_TO_SLEEP_IND 0x30 +#define EHCILL_GO_TO_SLEEP_ACK 0x31 +#define EHCILL_WAKE_UP_IND 0x32 +#define EHCILL_WAKE_UP_ACK 0x33 + +#define BT_PIN "4312" + +void bt_hci_init(void); +void bt_hci_cmd(const uint8_t OGF, const uint8_t OCF, const uint8_t data_len, const void *data); +void bt_hci_set_sniff_mode(const uint16_t acl_handle, const uint16_t max_interval, const uint16_t min_interval, const uint16_t sniff_attempt, const uint16_t sniff_timeout); +void bt_acl_send(const uint16_t handle, const uint8_t PB, const uint8_t BC, const uint16_t channel, const uint16_t len, const void *dat); +uint8_t *bt_hci_get_local_bdaddr(void); +void bt_hci_ehcill_wake(void); +#endif diff --git a/metawatch/bt_l2cap.c b/metawatch/bt_l2cap.c new file mode 100644 index 0000000..1a7c686 --- /dev/null +++ b/metawatch/bt_l2cap.c @@ -0,0 +1,281 @@ +#include +#include +#include + +#include "mw_uart.h" +#include "mw_bt.h" +#include "bt_hci.h" +#include "bt_l2cap.h" + +#include "oswald_main.h" + +static bt_l2cap_con_t _l2cap_con; + +void init_l2cap(void) +{ + memset(&_l2cap_con, 0, sizeof(bt_l2cap_con_t)); +} + +void bt_l2cap_proc_dyn_channel(const uint16_t channel, const uint16_t handle, const void *mdat, uint16_t mlen) +{ + if (channel == _l2cap_con.locCID) { + debug_uart_tx("L2CAP data rcvd: "); + debug_dump_ascii(mlen, mdat); + if (_l2cap_con.PSM == 0x1001) { + oswald_handle_comm_input(mlen, mdat); + } else if (_l2cap_con.PSM == 0x0001) { // SDP + debug_uart_tx("SDP req: "); + debug_dump_hex(mlen, mdat); + } else + debug_uart_tx("L2CAP data on unhandled PSM\n"); + } else { + debug_uart_tx("L2CAP CID does not match local CID\n"); + } +} + +uint8_t bt_l2cap_get_connected(const uint16_t channel) +{ + if (_l2cap_con.locCID == channel) + return _l2cap_con.cstate; + else + return BT_L2CAP_CON_IDLE; +} + +void bt_l2cap_send_channel(const uint16_t channel, const void *mdat, uint16_t mlen) +{ + if (_l2cap_con.cstate == BT_L2CAP_CON_CONNECTED && _l2cap_con.hci_handle != 0 && _l2cap_con.remCID != 0 && + mlen != 0 && mdat != NULL) { + bt_acl_send(_l2cap_con.hci_handle, PB_FIRST_FLUSHABLE, BC_NO_BROADCAST, _l2cap_con.remCID, mlen, mdat); + } +} + +typedef struct { + uint8_t resp; + uint8_t ident; + uint16_t length; + uint16_t DCID; + uint16_t SCID; +} __attribute__((packed)) bt_l2cap_disconn_resp_t; + +typedef struct { + uint8_t resp; + uint8_t ident; + uint16_t length; + uint16_t SCID; + uint16_t flags; + uint16_t result; + uint16_t config; +} __attribute__((packed)) bt_l2cap_conf_resp_t; + + +void bt_l2cap_proc_signalling(const uint16_t handle, unsigned char *mdat, uint16_t mlen) +{ +#if defined MW_DEVBOARD_V2 + char tstr[16]; +#endif + debug_uart_tx("ACL L2CAP signalling "); + switch (mdat[0]) { + case COMMAND_REJECT: + debug_uart_tx("command reject\n"); + break; + case CONNECTION_REQUEST: { + uint8_t ident = mdat[1]; + uint16_t PSM = mdat[4] | (mdat[5] << 8);; + uint16_t src_CID = mdat[6] | (mdat[7] << 8);; + +#if defined MW_DEVBOARD_V2 + debug_uart_tx("connection request on "); + snprintf(tstr, 16, "PSM 0x%04x ", PSM); + debug_uart_tx(tstr); + snprintf(tstr, 16, "srcCID 0x%04x\n", src_CID); + debug_uart_tx(tstr); +#endif + bt_l2cap_handle_connection_request(handle, ident, PSM, src_CID); + } break; + case CONNECTION_RESPONSE: + debug_uart_tx("connection response\n"); + break; + case CONFIGURE_REQUEST: { + uint8_t ident = mdat[1]; + uint16_t len = mdat[2] | (mdat[3] << 8); + uint16_t dst_CID = mdat[4] | (mdat[5] << 8); + uint16_t flags = mdat[6] | (mdat[7] << 8); + bt_l2cap_conf_resp_t resp; + +#if defined MW_DEVBOARD_V2 + debug_uart_tx("configure request "); + snprintf(tstr, 16, "len 0x%04x ", len); + debug_uart_tx(tstr); + snprintf(tstr, 16, "DCID 0x%04x ", dst_CID); + debug_uart_tx(tstr); + snprintf(tstr, 16, "flags 0x%04x\n", flags); + debug_uart_tx(tstr); +#if 0 + for (i=8; i<((len-4)+8); i++) { + snprintf(tstr, 16, "0x%02x ", mdat[i]); + debug_uart_tx(tstr); + } + debug_uart_tx("\n"); +#endif + debug_dump_hex(len-4+8, (mdat+8)); +#endif + resp.resp = CONFIGURE_RESPONSE; + resp.ident = ident; + resp.length = 0x06; + if (dst_CID != _l2cap_con.locCID) + debug_uart_tx("warning: DCID does not match\n"); + resp.SCID = _l2cap_con.remCID; + resp.flags = flags; + resp.result = 0x0000; // success + resp.config = 0x0000; // OK? + + bt_acl_send(handle, PB_FIRST_FLUSHABLE, BC_NO_BROADCAST, L2CAP_CID_SIGNALING, sizeof(bt_l2cap_conf_resp_t)-2, &resp); + + } break; + case CONFIGURE_RESPONSE: + debug_uart_tx("configure response\n"); + break; + case DISCONNECTION_REQUEST: { + bt_l2cap_disconn_resp_t resp; + uint8_t ident = mdat[1]; + uint16_t dst_CID = mdat[4] | (mdat[5] << 8); + uint16_t src_CID = mdat[6] | (mdat[7] << 8); + + debug_uart_tx("disconnect request\n"); + + if (dst_CID != _l2cap_con.locCID || src_CID != _l2cap_con.remCID) + debug_uart_tx("warning: discon on unknown CID\n"); + resp.resp = DISCONNECTION_RESPONSE; + resp.ident = ident; + resp.length = 0x0004; + resp.DCID = _l2cap_con.locCID; + resp.SCID = _l2cap_con.remCID; + + bt_acl_send(handle, PB_FIRST_FLUSHABLE, BC_NO_BROADCAST, L2CAP_CID_SIGNALING, sizeof(bt_l2cap_disconn_resp_t), &resp); + + init_l2cap(); + } break; + case DISCONNECTION_RESPONSE: + debug_uart_tx("disconnect response\n"); + break; + case ECHO_REQUEST: + debug_uart_tx("echo request\n"); + mdat[0] = ECHO_RESPONSE; + bt_acl_send(handle, PB_FIRST_FLUSHABLE, BC_NO_BROADCAST, L2CAP_CID_SIGNALING, mlen, mdat); + break; + case ECHO_RESPONSE: + debug_uart_tx("echo response\n"); + break; + case INFORMATION_REQUEST: { + uint16_t info_type = mdat[4] | (mdat[5] << 8); + debug_uart_tx("information request "); + switch (info_type) { + case 0x0001: + debug_uart_tx("connectionless mtu\n"); + break; + case 0x0002: + debug_uart_tx("ext. feat. support\n"); + mdat[0] = INFORMATION_RESPONSE; + mdat[2] = 0x02; + mdat[3] = 0x00; + mdat[6] = 0x01; // not supported + mdat[7] = 0x00; + bt_acl_send(handle, PB_FIRST_FLUSHABLE, BC_NO_BROADCAST, L2CAP_CID_SIGNALING, 0x08, mdat); + break; + case 0x0003: + debug_uart_tx("fixed channel support\n"); + break; + default: + debug_uart_tx("unknown\n"); + break; + }; + } break; + case INFORMATION_RESPONSE: + debug_uart_tx("information response\n"); + break; + default: + debug_uart_tx("unknown\n"); + break; + } +} + +typedef struct { + uint8_t resp; + uint8_t ident; + uint16_t length; + uint16_t DCID; + uint16_t SCID; + uint16_t result; + uint16_t status; +} __attribute__((packed)) bt_l2cap_conn_resp_t; + +typedef struct { + uint8_t resp; + uint8_t ident; + uint16_t length; + uint16_t DCID; + uint16_t flags; + uint8_t option; + uint8_t olen; + uint16_t odat; +} __attribute__((packed)) bt_l2cap_conf_req_t; + +void bt_l2cap_handle_connection_request(const uint16_t handle, const uint8_t ident, const uint16_t PSM, const uint16_t src_CID) +{ + bt_l2cap_conn_resp_t resp; + + // for now we only support one connection, only on PSM 0x1001 + if (_l2cap_con.cstate == BT_L2CAP_CON_IDLE && PSM == 0x1001) { + bt_l2cap_conf_req_t req; + + _l2cap_con.cstate = BT_L2CAP_CON_CONNECTED; + _l2cap_con.hci_handle = handle; + _l2cap_con.PSM = PSM; + + _l2cap_con.locCID = 0x0040; + _l2cap_con.remCID = src_CID; + + _l2cap_con.locMTU = 0xf0; + _l2cap_con.remMTU = 0x00; + + resp.resp = CONNECTION_RESPONSE; + resp.ident = ident; + resp.length = 0x0008; + resp.DCID = _l2cap_con.locCID; + resp.SCID = _l2cap_con.remCID; + resp.result = BT_L2CAP_CON_RES_SUCCESS; + resp.status = BT_L2CAP_CON_STAT_NOINFO; + + debug_uart_tx("l2cap accepting connection\n"); + bt_acl_send(handle, PB_FIRST_FLUSHABLE, BC_NO_BROADCAST, L2CAP_CID_SIGNALING, sizeof(bt_l2cap_conn_resp_t), &resp); + + req.resp = CONFIGURE_REQUEST; + req.ident = ident; + req.length = 0x08; + req.DCID = _l2cap_con.remCID; + req.flags = 0x00; + req.option = 0x01; // MTU + req.olen = 0x02; + req.odat = _l2cap_con.locMTU; + + bt_acl_send(handle, PB_FIRST_FLUSHABLE, BC_NO_BROADCAST, L2CAP_CID_SIGNALING, sizeof(bt_l2cap_conf_req_t), &req); + + // max_interval Mandatory Range: 0x0006 to 0x0540 + // min_interval Mandatory Range: 0x0006 to 0x0540 + // sniff_attempt Mandatory Range for Controller: 1 to Tsniff/2 + // sniff_timeout Mandatory Range for Controller: 0 to 0x0028 + bt_hci_set_sniff_mode(handle, 0x10, 0x06, 0x20, 0x10); + } else { + resp.resp = CONNECTION_RESPONSE; + resp.ident = ident; + resp.length = 0x0008; + resp.DCID = 0x0000; + resp.SCID = src_CID; + resp.result = BT_L2CAP_CON_RES_REFUSED_RSRC; + resp.status = BT_L2CAP_CON_STAT_NOINFO; + + debug_uart_tx("l2cap refusing connection\n"); + bt_acl_send(handle, PB_FIRST_FLUSHABLE, BC_NO_BROADCAST, L2CAP_CID_SIGNALING, sizeof(bt_l2cap_conn_resp_t), &resp); + } +} + diff --git a/metawatch/bt_l2cap.h b/metawatch/bt_l2cap.h new file mode 100644 index 0000000..075ee6b --- /dev/null +++ b/metawatch/bt_l2cap.h @@ -0,0 +1,77 @@ +#ifndef _BT_L2CAP_H +#define _BT_L2CAP_H + + +#define L2CAP_CID_SIGNALING 0x0001 +#define L2CAP_CID_CONNECTIONLESS_CHANNEL 0x0002 +#define L2CAP_CID_ATTRIBUTE_PROTOCOL 0x0004 +#define L2CAP_CID_SIGNALING_LE 0x0005 +#define L2CAP_CID_SECURITY_MANAGER_PROTOCOL 0x0006 + +typedef enum { + COMMAND_REJECT = 1, + CONNECTION_REQUEST, + CONNECTION_RESPONSE, + CONFIGURE_REQUEST, + CONFIGURE_RESPONSE, + DISCONNECTION_REQUEST, + DISCONNECTION_RESPONSE, + ECHO_REQUEST, + ECHO_RESPONSE, + INFORMATION_REQUEST, + INFORMATION_RESPONSE +} L2CAP_SIGNALING_COMMANDS; + +typedef enum { + PB_FIRST_NON_FLUSH = 0, + PB_CONTINUE_FRAGMENT, + PB_FIRST_FLUSHABLE, + PB_COMPLETE_PDU +} L2CAP_PB_FLAG; + +typedef enum { + BC_NO_BROADCAST = 0, + BC_ACTIVE_SLAVE, + BC_PARKED_SLAVE, + BC_RESERVED +} L2CAP_BC_FLAG; + +// Connection result values +#define BT_L2CAP_CON_RES_SUCCESS 0x0000 +#define BT_L2CAP_CON_RES_PENDING 0x0001 +#define BT_L2CAP_CON_RES_REFUSED_PSM 0x0002 +#define BT_L2CAP_CON_RES_REFUSED_SECURITY 0x0003 +#define BT_L2CAP_CON_RES_REFUSED_RSRC 0x0004 + +#define BT_L2CAP_CON_STAT_NOINFO 0x0000 +#define BT_L2CAP_CON_STAT_AUTHEN_PENDING 0x0001 +#define BT_L2CAP_CON_STAT_AUTHOR_PENDING 0x0002 + +typedef enum { + BT_L2CAP_CON_IDLE = 0, + BT_L2CAP_CON_CONNECTED +} bt_l2cap_con_state_t; + +// describes the L2CAP connection +typedef struct { + bt_l2cap_con_state_t cstate; + + uint16_t hci_handle; + uint16_t PSM; // PSM of this connection + + uint16_t locCID; // our local CID + uint16_t remCID; // remote host CID + + uint16_t locMTU; + uint16_t remMTU; +} bt_l2cap_con_t; + +void init_l2cap(void); +void bt_l2cap_proc_dyn_channel(const uint16_t channel, const uint16_t handle, const void *mdat, uint16_t mlen); +uint8_t bt_l2cap_get_connected(const uint16_t channel); +void bt_l2cap_send_channel(const uint16_t channel, const void *mdat, uint16_t mlen); +void bt_l2cap_proc_signalling(const uint16_t handle, unsigned char *mdat, uint16_t mlen); +void bt_l2cap_handle_connection_request(const uint16_t handle, const uint8_t ident, const uint16_t PSM, const uint16_t src_CID); + +#endif + diff --git a/metawatch/calendar.d b/metawatch/calendar.d new file mode 100644 index 0000000..20d6983 --- /dev/null +++ b/metawatch/calendar.d @@ -0,0 +1,12 @@ +calendar.o: calendar.c oswald.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/stdio.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/include/stddef.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/sys/types.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/sys/cdefs.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/sys/inttypes.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/inttypes.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/stdint.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/msp430libc.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/include/stdarg.h \ + /opt/msp430/lib/gcc/msp430/4.7.0/../../../../msp430/include/string.h \ + calendar.h diff --git a/metawatch/hal_devboard_v2_defs.h b/metawatch/hal_devboard_v2_defs.h new file mode 100644 index 0000000..ef57cf2 --- /dev/null +++ b/metawatch/hal_devboard_v2_defs.h @@ -0,0 +1,664 @@ +//============================================================================== +// Copyright 2011 Meta Watch Ltd. - http://www.MetaWatch.org/ +// +// Licensed under the Meta Watch License, Version 1.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.MetaWatch.org/licenses/license-1.0.html +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//============================================================================== + +/******************************************************************************/ +/*! \file hal_devboard_v2_defs.h + * + * Pin and peripheral definitions for Development Board Version 2 + */ +/******************************************************************************/ + + +#ifndef HAL_DEVBOARD_V2_DEFS_H +#define HAL_DEVBOARD_V2_DEFS_H + + +// Defines for the LCD display interface, single channel SPI output +#define LCD_5V_PDIR P4DIR +#define LCD_5V_POUT P4OUT +#define LCD_5V_BIT BIT0 + +#define ENABLE_LCD_POWER() { \ + LCD_5V_PDIR |= LCD_5V_BIT; \ + LCD_5V_POUT |= LCD_5V_BIT; \ +} + +#define DISABLE_LCD_POWER() { \ + LCD_5V_PDIR |= LCD_5V_BIT; \ + LCD_5V_POUT &= ~LCD_5V_BIT; \ +} + +#define LCD_ENABLE_PDIR ( P3DIR ) +#define LCD_ENABLE_POUT ( P3OUT ) +#define LCD_ENABLE_PIN ( BIT6 ) + +#define ENABLE_LCD_ENABLE() { \ + LCD_ENABLE_PDIR |= LCD_ENABLE_PIN; \ + LCD_ENABLE_POUT |= LCD_ENABLE_PIN; \ +} + +#define DISABLE_LCD_ENABLE() { \ + LCD_ENABLE_PDIR |= LCD_ENABLE_PIN; \ + LCD_ENABLE_POUT &= ~LCD_ENABLE_PIN; \ +} + +#define LCD_CS_PDIR ( P9DIR ) +#define LCD_CS_POUT ( P9OUT ) +#define LCD_CS_PIN ( BIT0 ) + +#define LCD_SPI_PORT_SEL ( P3SEL ) +#define LCD_SPI_SIMO_BIT ( BIT1 ) +#define LCD_SPI_CLK_BIT ( BIT3 ) +#define LCD_SPI_SOMI_BIT ( BIT2 ) + +#define LCD_CS_ASSERT() { LCD_CS_POUT |= LCD_CS_PIN; } +#define LCD_CS_DEASSERT() { LCD_CS_POUT &= ~LCD_CS_PIN; } + +#define CONFIG_LCD_PINS() { \ + LCD_SPI_PORT_SEL |= LCD_SPI_SIMO_BIT; \ + LCD_SPI_PORT_SEL |= LCD_SPI_CLK_BIT; \ + LCD_SPI_PORT_SEL |= LCD_SPI_SOMI_BIT; \ + ENABLE_LCD_ENABLE(); \ + LCD_CS_PDIR |= LCD_CS_PIN; \ + LCD_CS_DEASSERT(); \ +} + +// labeled EL_EN on schematic +#define LCD_LED_PDIR ( P4DIR ) +#define LCD_LED_POUT ( P4OUT ) +#define LCD_LED_PIN ( BIT4 ) + +#define DISABLE_LCD_LED() { \ + LCD_LED_PDIR |= LCD_LED_PIN; \ + LCD_LED_POUT &= ~LCD_LED_PIN; \ +} + +#define ENABLE_LCD_LED() { \ + LCD_LED_PDIR |= LCD_LED_PIN; \ + LCD_LED_POUT |= LCD_LED_PIN; \ +} + +#define LCD_SPI_UCBxCTL0 UCB0CTL0 // Control register +#define LCD_SPI_UCBxCTL1 UCB0CTL1 // Control register +#define LCD_SPI_UCBxBR0 UCB0BR0 // Baudrate prescale +#define LCD_SPI_UCBxBR1 UCB0BR1 // Baudrate divider + +#define LCD_SPI_UCBxTXBUF UCB0TXBUF // Transmit buffer +#define LCD_SPI_UCBxRXBUF UCB0RXBUF // Receive buffer + +#define LCD_SPI_UCBxIE UCB0IE // Interrupt enable register +#define LCD_SPI_UCBxIFG UCB0IFG // Interrupt flag register +#define LCD_SPI_UCBxIV UCB0IV // Interrupt vector register +#define LCD_SPI_UCBxSTAT UCB0STAT // status register + + +// Definitions for the OLED Display +// peripheral mapping for OLED +#define OLED_I2C_CTL0 ( UCB0CTL0 ) +#define OLED_I2C_CTL1 ( UCB0CTL1 ) +#define OLED_I2C_BR0 ( UCB0BR0 ) +#define OLED_I2C_BR1 ( UCB0BR1 ) +#define OLED_I2C_I2CSA ( UCB0I2CSA ) +#define OLED_I2C_IE ( UCB0IE ) +#define OLED_I2C_IFG ( UCB0IFG ) +#define OLED_I2C_TXBUF ( UCB0TXBUF ) +#define OLED_I2C_RXBUF ( UCB0RXBUF ) +// interrupt mapping for OLED +#define USCI_OLED_I2C_VECTOR ( USCI_B0_VECTOR ) +#define USCI_OLED_I2C_IV ( UCB0IV ) + +// OLED reset is active low +#define OLED_RSTN_PDIR ( P8DIR ) +#define OLED_RSTN_POUT ( P8OUT ) +#define OLED_RSTN_PIN ( BIT7 ) + +#define OLED_RSTN_CONFIG() { OLED_RSTN_PDIR |= OLED_RSTN_PIN; OLED_RSTN_ASSERT(); } +#define OLED_RSTN_ASSERT() { OLED_RSTN_POUT &= ~OLED_RSTN_PIN; } +#define OLED_RSTN_DEASSERT() { OLED_RSTN_POUT |= OLED_RSTN_PIN; } + +#define OLED_CS1N_PDIR ( P8DIR ) +#define OLED_CS1N_POUT ( P8OUT ) +#define OLED_CS1N_PIN ( BIT0 ) + +#define OLED_CS1N_CONFIG() { OLED_CS1N_PDIR |= OLED_CS1N_PIN; OLED_CS1N_DISABLE(); } +#define OLED_CS1N_ENABLE() { OLED_CS1N_POUT &= ~OLED_CS1N_PIN; } +#define OLED_CS1N_DISABLE() { OLED_CS1N_POUT |= OLED_CS1N_PIN; } + +#define OLED_CS2N_PDIR ( P8DIR ) +#define OLED_CS2N_POUT ( P8OUT ) +#define OLED_CS2N_PIN ( BIT1 ) + +#define OLED_CS2N_CONFIG() { OLED_CS2N_PDIR |= OLED_CS2N_PIN; OLED_CS2N_DISABLE(); } +#define OLED_CS2N_ENABLE() { OLED_CS2N_POUT &= ~OLED_CS2N_PIN; } +#define OLED_CS2N_DISABLE() { OLED_CS2N_POUT |= OLED_CS2N_PIN; } + +#define OLED_SDA_PDIR ( P3DIR ) +#define OLED_SDA_POUT ( P3OUT ) +#define OLED_SDA_PIN ( BIT1 ) +#define OLED_SDA_PSEL ( P3SEL) + +#define OLED_SCL_PDIR ( P3DIR ) +#define OLED_SCL_POUT ( P3OUT ) +#define OLED_SCL_PORT ( P3 ) +#define OLED_SCL_PIN ( BIT2 ) +#define OLED_SCL_PSEL ( P3SEL ) + +// the select line overrides the pdir and pout settings +#define OLED_SDA_CONFIG_FOR_PERIPHERAL_USE() { OLED_SDA_PSEL |= OLED_SDA_PIN; } +#define OLED_SCL_CONFIG_FOR_PERIPHERAL_USE() { OLED_SCL_PSEL |= OLED_SCL_PIN; } + +#define OLED_I2C_CONFIG_FOR_PERIPHERAL_USE() { \ + OLED_SDA_CONFIG_FOR_PERIPHERAL_USE(); \ + OLED_SCL_CONFIG_FOR_PERIPHERAL_USE(); } + +#define OLED_SDA_CONFIG_FOR_SLEEP() { \ + OLED_SDA_PSEL &= ~OLED_SDA_PIN; \ + OLED_SDA_PDIR |= OLED_SDA_PIN; \ + OLED_SDA_POUT |= OLED_SDA_PIN; } + +#define OLED_SCL_CONFIG_FOR_SLEEP() { \ + OLED_SCL_PSEL &= ~OLED_SCL_PIN; \ + OLED_SCL_PDIR |= OLED_SCL_PIN; \ + OLED_SCL_POUT |= OLED_SCL_PIN; } + +#define OLED_I2C_CONFIG_FOR_SLEEP() { \ + OLED_SDA_CONFIG_FOR_SLEEP(); \ + OLED_SCL_CONFIG_FOR_SLEEP(); } + +#define OLED_POWER_ENABLE_PIN ( BIT0 ) +#define OLED_POWER_ENABLE_POUT ( P4OUT ) +#define OLED_POWER_ENABLE_PDIR ( P4DIR ) +#define OLED_POWER_CONFIG() { P4DIR |= OLED_POWER_ENABLE_PIN; OLED_POWER_DISABLE(); } +#define OLED_POWER_ENABLE() { P4OUT |= OLED_POWER_ENABLE_PIN; } +#define OLED_POWER_DISABLE() { P4OUT &= ~OLED_POWER_ENABLE_PIN; } + +// VLED_EN is active low +#define OLED_IO_POWER_ENABLE_PIN ( BIT3 ) +#define OLED_IO_POWER_ENABLE_POUT ( P5OUT ) +#define OLED_IO_POWER_ENABLE_PDIR ( P5DIR ) +#define OLED_IO_POWER_CONFIG() { P5DIR |= OLED_IO_POWER_ENABLE_PIN; OLED_IO_POWER_DISABLE(); } +#define OLED_IO_POWER_ENABLE() { P5OUT &= ~OLED_IO_POWER_ENABLE_PIN; } +#define OLED_IO_POWER_DISABLE() { P5OUT |= OLED_IO_POWER_ENABLE_PIN; } + +#ifdef ANALOG +#define CONFIG_OLED_PINS() { \ + OLED_RSTN_CONFIG(); \ + OLED_CS1N_CONFIG(); \ + OLED_CS2N_CONFIG(); \ + OLED_POWER_CONFIG(); \ + OLED_I2C_CONFIG_FOR_SLEEP(); \ + OLED_IO_POWER_CONFIG(); \ +} +#else +/* jumpers for 10V must be removed for power consumption measurements */ +#define CONFIG_OLED_PINS() { \ + OLED_RSTN_CONFIG(); \ + OLED_CS1N_CONFIG(); \ + OLED_CS1N_ENABLE(); \ + OLED_CS2N_CONFIG(); \ + OLED_CS2N_ENABLE(); \ + OLED_POWER_CONFIG(); \ + OLED_IO_POWER_CONFIG(); \ +} +#endif + + +// Real time clock defines +// RTC 1 Hz output, also used to toggle the bias on the LCD +#define RTC_1HZ_PORT_DIR ( P2DIR ) +#define RTC_1HZ_PORT_SEL ( P2SEL ) +#define RTC_1HZ_BIT ( BIT4 ) + + +// Button defines + +#define BUTTON_TIME_COUNT_ARRAY_LEN 8 +#define ALL_BUTTONS_OFF 0xFF + +#define SW_A BIT0 +#define SW_B BIT1 +#define SW_C BIT2 +#define SW_D BIT3 +// Bit 4 is not used +#define SW_E BIT5 +#define SW_F BIT6 +#define SW_P BIT7 + +#define SW_A_INDEX ( 0 ) +#define SW_B_INDEX ( 1 ) +#define SW_C_INDEX ( 2 ) +#define SW_D_INDEX ( 3 ) +#define SW_UNUSED_INDEX ( 4 ) +#define SW_E_INDEX ( 5 ) +#define SW_F_INDEX ( 6 ) +#define SW_P_INDEX ( 7 ) +#define TOTAL_BTN_NUM ( 8 ) + +#ifdef ANALOG + /* analog board has traces for all of the buttons but + * only 3 and pull switch are populated */ + #define ALL_BUTTONS (SW_A | SW_B | SW_C | SW_P) + +#elif defined(DIGITAL) + + #define ALL_BUTTONS (SW_A | SW_B | SW_C | SW_D | SW_E | SW_F) + +#endif + +#define RESISTOR_ENABLE_BUTTONS ( ALL_BUTTONS ) +#define INT_EDGE_SEL_BUTTONS (ALL_BUTTONS) + +#define BUTTON_PORT_VECTOR PORT2_VECTOR +#define BUTTON_PORT_DIR P2DIR +#define BUTTON_PORT_SEL P2SEL +#define BUTTON_PORT_OUT P2OUT +#define BUTTON_PORT_REN P2REN +#define BUTTON_PORT_IE P2IE +#define BUTTON_PORT_IES P2IES +#define BUTTON_PORT_IFG P2IFG + +#define DISABLE_BUTTONS() { \ + BUTTON_PORT_IE &= ~INT_EDGE_SEL_BUTTONS; \ + BUTTON_PORT_REN &= ~ALL_BUTTONS; \ + BUTTON_PORT_OUT &= ~ALL_BUTTONS; \ +} + +/* SHIPPING */ +/* S5 or SW_E is the button that takes the watch out of shipping mode */ +#define ENABLE_SHIPPING_WAKEUP() { \ + P1IE = 0x00; \ + PMMCTL0_H = 0xA5; \ + PMMRIE = 0x0000; \ + RTCPS0CTL = 0x0000; \ + RTCPS1CTL = 0x0000; \ + UCSCTL8 = 0x0700; \ + BUTTON_PORT_REN = SW_E; \ + BUTTON_PORT_OUT = SW_E; \ + BUTTON_PORT_DIR &= ~SW_E; \ + BUTTON_PORT_IES = SW_E; \ + BUTTON_PORT_IFG = 0x00; \ + BUTTON_PORT_IE = SW_E; \ +} + +// NOTE the the buttons are grounded. That means that we want to invert the bits +// when reading the port to have positive logic where a button press is a "1" +#define BUTTON_PORT_IN ~P2IN + +// Configure the hardware port for the button support P2.4 is excluded +#define CONFIGURE_BUTTON_PINS() { \ + BUTTON_PORT_REN = (unsigned char) RESISTOR_ENABLE_BUTTONS; \ + BUTTON_PORT_OUT = (unsigned char) ALL_BUTTONS; \ + BUTTON_PORT_DIR &= (unsigned char) ~ALL_BUTTONS; \ + BUTTON_PORT_IES |= INT_EDGE_SEL_BUTTONS; \ + BUTTON_PORT_IFG &= ~ALL_BUTTONS; \ + BUTTON_PORT_IE |= ALL_BUTTONS; \ +} + + +// Battery charger control for a BQ24080 +#define BAT_CHARGE_DIR P6DIR +#define BAT_CHARGE_REN P6REN +#define BAT_CHARGE_OUT P6OUT +#define BAT_CHARGE_IN P6IN +//#define BAT_CHARGE_IE P6IE +//#define PWR_PORT_VECTOR PORT6_VECTOR +//#define PWR_PORT_IFG P6IFG + +#define BAT_CHARGE_ENABLE_PIN BIT2 +#define BAT_CHARGE_STAT1 BIT3 +#define BAT_CHARGE_STAT2 BIT4 +#define BAT_CHARGE_PWR_BIT BIT5 + +// Enable charging, asserted low +#define BATTERY_CHARGE_ENABLE() { BAT_CHARGE_OUT &= ~BAT_CHARGE_ENABLE_PIN; } + +// disable charging, sleep the part +#define BATTERY_CHARGE_DISABLE() { BAT_CHARGE_OUT |= BAT_CHARGE_ENABLE_PIN; } + +//RESET PIN NMI or RESET +#define SET_RESET_PIN_NMI() {SFRRPCR &= ~SYSRSTRE; SFRRPCR |= SYSNMI;} +#define SET_RESET_PIN_RST() {SFRRPCR |= SYSRSTRE; SFRRPCR &= ~SYSNMI;} +#define RESET_PIN (SFRRPCR & SYSNMI) // return 1 for NMI + +// +// Ambient Light Sensor +// +#define GC1_PDIR ( P6DIR ) +#define GC1_POUT ( P6OUT ) +#define GC1_PSEL ( P6SEL ) +#define GC1_PIN ( BIT0 ) + +#define GC2_PDIR ( P6DIR ) +#define GC2_POUT ( P6OUT ) +#define GC2_PSEL ( P6SEL ) +#define GC2_PIN ( BIT6 ) + +#define IOUT_PDIR ( P6DIR ) +#define IOUT_PSEL ( P6SEL ) +#define IOUT_PIN ( BIT1 ) + +#define LIGHT_SENSE_INIT() \ +{ \ + IOUT_PDIR &= ~IOUT_PIN; \ + IOUT_PSEL |= IOUT_PIN; \ + GC1_PDIR |= GC1_PIN; \ + GC2_PDIR |= GC2_PIN; \ + LIGHT_SENSE_DISABLE(); \ +} + +#define LIGHT_SENSOR_SHUTDOWN() \ +{ \ + GC1_POUT &= ~GC1_PIN; \ + GC2_POUT &= ~GC2_PIN; \ +} + +#define LIGHT_SENSOR_L_GAIN() \ +{ \ + GC1_POUT |= GC1_PIN; \ + GC2_POUT |= GC2_PIN; \ +} + +#define LIGHT_SENSE_ENABLE()\ +{ \ + LIGHT_SENSOR_L_GAIN(); \ +} + +#define LIGHT_SENSE_DISABLE() \ +{ \ + LIGHT_SENSOR_SHUTDOWN(); \ +} + + + +// +// This pin controls if the battery voltage can be read +// +#define BATTERY_READ_CONTROL_PDIR ( P4DIR ) +#define BATTERY_READ_CONTROL_POUT ( P4OUT ) +#define BATTERY_READ_CONTROL_PIN ( BIT6 ) + +#define BATTERY_SENSE_INPUT_PDIR ( P7DIR ) +#define BATTERY_SENSE_INPUT_PSEL ( P7SEL ) +#define BATTERY_SENSE_INPUT_PIN ( BIT7 ) + +#define BATTERY_SENSE_INIT() \ +{ \ + BATTERY_READ_CONTROL_PDIR |= BATTERY_READ_CONTROL_PIN; \ + BATTERY_SENSE_INPUT_PDIR &= ~BATTERY_SENSE_INPUT_PIN; \ + BATTERY_SENSE_INPUT_PSEL |= BATTERY_SENSE_INPUT_PIN; \ + BATTERY_SENSE_DISABLE(); \ +} + +#define BATTERY_SENSE_ENABLE() \ +{ \ + BATTERY_READ_CONTROL_POUT |= BATTERY_READ_CONTROL_PIN; \ +} + +#define BATTERY_SENSE_DISABLE() \ +{ \ + BATTERY_READ_CONTROL_POUT &= ~BATTERY_READ_CONTROL_PIN; \ +} + +// +// hardware configuration is a voltage divider to ADC input +// +#define HARDWARE_CFG_CONTROL_PDIR ( P5DIR ) +#define HARDWARE_CFG_CONTROL_POUT ( P5OUT ) +#define HARDWARE_CFG_CONTROL_PIN ( BIT0 ) + +#define HARDWARE_CFG_INPUT_PDIR ( P7DIR ) +#define HARDWARE_CFG_INPUT_PSEL ( P7SEL ) +#define HARDWARE_CFG_INPUT_PIN ( BIT5 ) + +#define HARDWARE_CFG_SENSE_INIT() \ +{ \ + HARDWARE_CFG_CONTROL_PDIR |= HARDWARE_CFG_CONTROL_PIN; \ + HARDWARE_CFG_INPUT_PDIR &= ~HARDWARE_CFG_INPUT_PIN; \ + HARDWARE_CFG_INPUT_PSEL |= HARDWARE_CFG_INPUT_PIN; \ + HARDWARE_CFG_SENSE_DISABLE(); \ +} + +#define HARDWARE_CFG_SENSE_ENABLE() \ +{ \ + HARDWARE_CFG_CONTROL_POUT |= HARDWARE_CFG_CONTROL_PIN; \ +} + +#define HARDWARE_CFG_SENSE_DISABLE() \ +{ \ + HARDWARE_CFG_CONTROL_POUT &= ~HARDWARE_CFG_CONTROL_PIN; \ +} + + +#define APPLE_SDA_PDIR ( P10DIR ) +#define APPLE_SDA_POUT ( P10OUT ) +#define APPLE_SDA_PIN ( BIT1 ) + +#define APPLE_SCL_PDIR ( P10DIR ) +#define APPLE_SCL_POUT ( P10OUT ) +#define APPLE_SCL_PIN ( BIT2 ) + +#define APPLE_POWER_PDIR ( P4DIR ) +#define APPLE_POWER_POUT ( P4OUT ) +#define APPLE_POWER_PIN ( BIT5 ) + +/* power enable is active low */ +#define APPLE_POWER_ENABLE() { APPLE_POWER_POUT &= ~APPLE_POWER_PIN; } +#define APPLE_POWER_DISABLE() { APPLE_POWER_POUT |= APPLE_POWER_PIN; } + +#define APPLE_POWER_CONFIG() { \ + APPLE_POWER_PDIR |= APPLE_POWER_PIN; \ + APPLE_POWER_DISABLE(); \ +} + + +/* since the apple chip is currently not powered + * the pins should be at 0 instead of 1 + */ +#define APPLE_I2C_PIN_CONFIG() { \ + APPLE_SDA_PDIR |= APPLE_SDA_PIN; \ + APPLE_SDA_POUT &= ~APPLE_SDA_PIN; \ + APPLE_SCL_PDIR |= APPLE_SCL_PIN; \ + APPLE_SCL_POUT &= ~APPLE_SCL_PIN; \ +} + +#define APPLE_CONFIG() { \ + APPLE_POWER_CONFIG(); \ + APPLE_I2C_PIN_CONFIG(); \ +} + +#define SRAM_SCLK_PSEL ( P3SEL ) +#define SRAM_SCLK_PDIR ( P3DIR ) +#define SRAM_SCLK_POUT ( P3OUT ) +#define SRAM_SCLK_PIN ( BIT0 ) + +#define SRAM_SOMI_PSEL ( P3SEL ) +#define SRAM_SOMI_PDIR ( P3DIR ) +#define SRAM_SOMI_POUT ( P3OUT ) +#define SRAM_SOMI_PIN ( BIT5 ) + +#define SRAM_SIMO_PSEL ( P3SEL ) +#define SRAM_SIMO_PDIR ( P3DIR ) +#define SRAM_SIMO_POUT ( P3OUT ) +#define SRAM_SIMO_PIN ( BIT4 ) + +#define SRAM_CSN_PDIR ( P9DIR ) +#define SRAM_CSN_POUT ( P9OUT ) +#define SRAM_CSN_PIN ( BIT6) + +#define SRAM_HOLDN_PDIR ( P9DIR ) +#define SRAM_HOLDN_POUT ( P9OUT ) +#define SRAM_HOLDN_PIN ( BIT7 ) + +#define CONFIG_SRAM_PINS() \ +{ \ + SRAM_CSN_PDIR |= SRAM_CSN_PIN; \ + SRAM_CSN_POUT |= SRAM_CSN_PIN; \ + SRAM_HOLDN_PDIR |= SRAM_HOLDN_PIN; \ + SRAM_HOLDN_POUT |= SRAM_HOLDN_PIN; \ +} + +#define SRAM_CSN_ASSERT() { SRAM_CSN_POUT &= ~SRAM_CSN_PIN; } + +#define SRAM_CSN_DEASSERT() { \ + WAIT_FOR_SRAM_SPI_SHIFT_COMPLETE(); \ + SRAM_CSN_POUT |= SRAM_CSN_PIN; \ +} + +/* wait for shift to complete ( ~3 us ) */ +#define WAIT_FOR_SRAM_SPI_SHIFT_COMPLETE() { while( (UCA0STAT & 0x01) != 0 ); } + +#define ACCELEROMETER_SDA_PIN ( BIT7 ) +#define ACCELEROMETER_SDA_PSEL ( P3SEL ) +#define ACCELEROMETER_SDA_POUT ( P3OUT ) +#define ACCELEROMETER_SDA_PDIR ( P3OUT ) +#define ACCELEROMETER_SDA_PREN ( P1REN ) + +#define ACCELEROMETER_SCL_PIN ( BIT4 ) +#define ACCELEROMETER_SCL_PSEL ( P5SEL ) +#define ACCELEROMETER_SCL_POUT ( P5OUT ) +#define ACCELEROMETER_SCL_PDIR ( P5OUT ) +#define ACCELEROMETER_SCL_PREN ( P5REN ) + +#define ACCELEROMETER_INT_PIN ( BIT7 ) +#define ACCELEROMETER_INT_PDIR ( P1DIR ) +#define ACCELEROMETER_INT_PSEL ( P1SEL ) +#define ACCELEROMETER_INT_PIFG ( P1IFG ) +#define ACCELEROMETER_INT_PIE ( P1IE ) + +#define ACCELEROMETER_POWER_POUT ( P9OUT ) +#define ACCELEROMETER_POWER_PDIR ( P9DIR ) +#define ACCELEROMETER_POWER_PINS ( BIT1 | BIT2 ) + +/* this is for reference only (it doesn't control anything) */ +#define ACCELEROMETER_INT_NUM (PIN7_INT) + +#define LED4_PIN ( BIT2 ) +#define LED5_PIN ( BIT3 ) +#define LED6_PIN ( BIT4 ) +#define LED7_PIN ( BIT5 ) + +#define LEDS_PDIR ( P8DIR ) +#define LEDS_POUT ( P8OUT ) + +#define LED4_ON() { LEDS_POUT |= LED4_PIN; } +#define LED5_ON() { LEDS_POUT |= LED5_PIN; } +#define LED6_ON() { LEDS_POUT |= LED6_PIN; } +#define LED7_ON() { LEDS_POUT |= LED7_PIN; } + +#define LED4_OFF() { LEDS_POUT &= ~LED4_PIN; } +#define LED5_OFF() { LEDS_POUT &= ~LED5_PIN; } +#define LED6_OFF() { LEDS_POUT &= ~LED6_PIN; } +#define LED7_OFF() { LEDS_POUT &= ~LED7_PIN; } + +#define LED4_TOGGLE() { LEDS_POUT ^= LED4_PIN; } +#define LED5_TOGGLE() { LEDS_POUT ^= LED5_PIN; } +#define LED6_TOGGLE() { LEDS_POUT ^= LED6_PIN; } +#define LED7_TOGGLE() { LEDS_POUT ^= LED7_PIN; } + +#define CONFIG_LED_PINS() { \ + LEDS_PDIR |= LED4_PIN | LED5_PIN | LED6_PIN | LED7_PIN; \ + LED4_OFF(); LED5_OFF(); LED6_OFF(); LED7_OFF(); \ +} + +#define DEBUG1_PIN ( BIT1 ) +#define DEBUG3_PIN ( BIT4 ) +#define DEBUG4_PIN ( BIT7 ) +#define DEBUG5_PIN ( BIT6 ) + +#define DEBUG1_PDIR ( P5DIR ) +#define DEBUG3_PDIR ( P7DIR ) +#define DEBUG4_PDIR ( P6DIR ) +#define DEBUG5_PDIR ( P7DIR ) + +#define DEBUG1_POUT ( P5OUT ) +#define DEBUG3_POUT ( P7OUT ) +#define DEBUG4_POUT ( P6OUT ) +#define DEBUG5_POUT ( P7OUT ) + +#define DEBUG1_HIGH() { DEBUG1_POUT |= DEBUG1_PIN; } +#define DEBUG3_HIGH() { DEBUG3_POUT |= DEBUG3_PIN; } +#define DEBUG4_HIGH() { DEBUG4_POUT |= DEBUG4_PIN; } +#define DEBUG5_HIGH() { DEBUG5_POUT |= DEBUG5_PIN; } + +#define DEBUG1_LOW() { DEBUG1_POUT &= ~DEBUG1_PIN; } +#define DEBUG3_LOW() { DEBUG3_POUT &= ~DEBUG3_PIN; } +#define DEBUG4_LOW() { DEBUG4_POUT &= ~DEBUG4_PIN; } +#define DEBUG5_LOW() { DEBUG5_POUT &= ~DEBUG5_PIN; } + +#define DEBUG1_PULSE() { DEBUG1_HIGH(); DEBUG1_LOW(); } +#define DEBUG3_PULSE() { DEBUG3_HIGH(); DEBUG3_LOW(); } +#define DEBUG4_PULSE() { DEBUG4_HIGH(); DEBUG4_LOW(); } +#define DEBUG5_PULSE() { DEBUG5_HIGH(); DEBUG5_LOW(); } + +#define DEBUG1_TOGGLE() { DEBUG1_POUT ^= DEBUG1_PIN; } +#define DEBUG3_TOGGLE() { DEBUG3_POUT ^= DEBUG3_PIN; } +#define DEBUG4_TOGGLE() { DEBUG4_POUT ^= DEBUG4_PIN; } +#define DEBUG5_TOGGLE() { DEBUG5_POUT ^= DEBUG5_PIN; } + +#define CONFIG_DEBUG_PINS() { \ + DEBUG1_PDIR |= DEBUG1_PIN; \ + DEBUG3_PDIR |= DEBUG3_PIN; \ + DEBUG4_PDIR |= DEBUG4_PIN; \ + DEBUG5_PDIR |= DEBUG5_PIN; \ + DEBUG1_POUT &= ~DEBUG1_PIN; \ + DEBUG3_POUT &= ~DEBUG3_PIN; \ + DEBUG4_POUT &= ~DEBUG4_PIN; \ + DEBUG5_POUT &= ~DEBUG5_PIN; \ +} + + + +/* + * Sideband signals (for lack of another word) + */ +#define BT_CLK_REQ_PDIR ( P1DIR ) +#define BT_CLK_REQ_POUT ( P1OUT ) +#define BT_CLK_REQ_PIN ( BIT4 ) + +#define BT_IO1_PDIR ( P1DIR ) +#define BT_IO1_POUT ( P1OUT ) +#define BT_IO1_PIN ( BIT5 ) + +#define BT_IO2_PDIR ( P1DIR ) +#define BT_IO2_POUT ( P1OUT ) +#define BT_IO2_PIN ( BIT6 ) + +/******************************************************************************/ + +/* peripheral mapping for accelerometer */ +#define ACCELEROMETER_CTL0 ( UCB1CTL0 ) +#define ACCELEROMETER_CTL1 ( UCB1CTL1 ) +#define ACCELEROMETER_BR0 ( UCB1BR0 ) +#define ACCELEROMETER_BR1 ( UCB1BR1 ) +#define ACCELEROMETER_I2CSA ( UCB1I2CSA ) +#define ACCELEROMETER_IE ( UCB1IE ) +#define ACCELEROMETER_IFG ( UCB1IFG ) +#define ACCELEROMETER_TXBUF ( UCB1TXBUF ) +#define ACCELEROMETER_RXBUF ( UCB1RXBUF ) +#define ACCELEROMETER_STAT ( UCB1STAT ) +/* interrupt mapping for accelerometer */ +#define USCI_ACCELEROMETER_VECTOR ( USCI_B1_VECTOR ) +#define USCI_ACCELEROMETER_IV ( UCB1IV ) + + + + +#endif // HAL_DEVBOARD_V2_DEFS_H + + + + + diff --git a/metawatch/hal_digital_v2_defs.h b/metawatch/hal_digital_v2_defs.h new file mode 100644 index 0000000..854996c --- /dev/null +++ b/metawatch/hal_digital_v2_defs.h @@ -0,0 +1,619 @@ +//============================================================================== +// Copyright 2011 Meta Watch Ltd. - http://www.MetaWatch.org/ +// +// Licensed under the Meta Watch License, Version 1.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.MetaWatch.org/licenses/license-1.0.html +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//============================================================================== + +/******************************************************************************/ +/*! \file hal_digital_v2_defs.h + * + * Pin and peripheral definitions for Digital Watch Version 2 + */ +/******************************************************************************/ + +#ifndef HAL_DIGITAL_V2_DEFS_H +#define HAL_DIGITAL_V2_DEFS_H + + +// Defines for the LCD display interface, single channel SPI output +#define LCD_5V_PDIR P4DIR +#define LCD_5V_POUT P4OUT +#define LCD_5V_BIT BIT0 + +#define ENABLE_LCD_POWER() { \ + LCD_5V_PDIR |= LCD_5V_BIT; \ + LCD_5V_POUT |= LCD_5V_BIT; \ +} + +#define DISABLE_LCD_POWER() { \ + LCD_5V_PDIR |= LCD_5V_BIT; \ + LCD_5V_POUT &= ~LCD_5V_BIT; \ +} + +#define LCD_ENABLE_PDIR ( P3DIR ) +#define LCD_ENABLE_POUT ( P3OUT ) +#define LCD_ENABLE_PIN ( BIT6 ) + +#define ENABLE_LCD_ENABLE() { \ + LCD_ENABLE_PDIR |= LCD_ENABLE_PIN; \ + LCD_ENABLE_POUT |= LCD_ENABLE_PIN; \ +} + +#define DISABLE_LCD_ENABLE() { \ + LCD_ENABLE_PDIR |= LCD_ENABLE_PIN; \ + LCD_ENABLE_POUT &= ~LCD_ENABLE_PIN; \ +} + +#define LCD_CS_PDIR ( P3DIR ) +#define LCD_CS_POUT ( P3OUT ) +#define LCD_CS_PIN ( BIT2 ) + +#define LCD_SPI_PORT_SEL ( P3SEL ) +#define LCD_SPI_SIMO_BIT ( BIT1 ) +#define LCD_SPI_CLK_BIT ( BIT3 ) + +#define LCD_CS_ASSERT() { LCD_CS_POUT |= LCD_CS_PIN; } +#define LCD_CS_DEASSERT() { LCD_CS_POUT &= ~LCD_CS_PIN; } + +/* unused in this version */ +#define SPECIAL_DMA_CONFIG() { } +#define OLED_CS1N_ENABLE() { } +#define OLED_CS1N_DISABLE() { } + + +#define CONFIG_LCD_PINS() { \ + LCD_SPI_PORT_SEL |= LCD_SPI_SIMO_BIT; \ + LCD_SPI_PORT_SEL |= LCD_SPI_CLK_BIT; \ + ENABLE_LCD_ENABLE(); \ + LCD_CS_PDIR |= LCD_CS_PIN; \ + LCD_CS_DEASSERT(); \ +} + +// labeled EL_EN on schematic +#define LCD_LED_PDIR ( P4DIR ) +#define LCD_LED_POUT ( P4OUT ) +#define LCD_LED_PIN ( BIT4 ) + +#define DISABLE_LCD_LED() { \ + LCD_LED_PDIR |= LCD_LED_PIN; \ + LCD_LED_POUT &= ~LCD_LED_PIN; \ +} + +#define ENABLE_LCD_LED() { \ + LCD_LED_PDIR |= LCD_LED_PIN; \ + LCD_LED_POUT |= LCD_LED_PIN; \ +} +// Use UCB2 as the SPI port define the registers and interrupt vector to all be +// for UCB2 by replacing the x in the last section of the name with a 2 +#define LCD_SPI_UCBxCTL0 UCB0CTL0 // Control register +#define LCD_SPI_UCBxCTL1 UCB0CTL1 // Control register +#define LCD_SPI_UCBxBR0 UCB0BR0 // Baudrate prescale +#define LCD_SPI_UCBxBR1 UCB0BR1 // Baudrate divider + +#define LCD_SPI_UCBxTXBUF UCB0TXBUF // Transmit buffer +#define LCD_SPI_UCBxRXBUF UCB0RXBUF // Receive buffer + +#define LCD_SPI_UCBxIE UCB0IE // Interrupt enable register +#define LCD_SPI_UCBxIFG UCB0IFG // Interrupt flag register +#define LCD_SPI_UCBxIV UCB0IV // Interrupt vector register +#define LCD_SPI_UCBxSTAT UCB0STAT // status register + +#if 0 +// Definitions for the OLED Display +// peripheral mapping for OLED +#define OLED_I2C_CTL0 ( UCB0CTL0 ) +#define OLED_I2C_CTL1 ( UCB0CTL1 ) +#define OLED_I2C_BR0 ( UCB0BR0 ) +#define OLED_I2C_BR1 ( UCB0BR1 ) +#define OLED_I2C_I2CSA ( UCB0I2CSA ) +#define OLED_I2C_IE ( UCB0IE ) +#define OLED_I2C_IFG ( UCB0IFG ) +#define OLED_I2C_TXBUF ( UCB0TXBUF ) +#define OLED_I2C_RXBUF ( UCB0RXBUF ) +// interrupt mapping for OLED +#define USCI_OLED_I2C_VECTOR ( USCI_B0_VECTOR ) +#define USCI_OLED_I2C_IV ( UCB0IV ) + +// OLED reset is active low +#define OLED_RSTN_PDIR ( P3DIR ) +#define OLED_RSTN_POUT ( P3OUT ) +#define OLED_RSTN_PIN ( BIT3 ) + +#define OLED_RSTN_CONFIG() { OLED_RSTN_PDIR |= OLED_RSTN_PIN; OLED_RSTN_ASSERT(); } +#define OLED_RSTN_ASSERT() { OLED_RSTN_POUT &= ~OLED_RSTN_PIN; } +#define OLED_RSTN_DEASSERT() { OLED_RSTN_POUT |= OLED_RSTN_PIN; } + +#define OLED_CS1N_PDIR ( P8DIR ) +#define OLED_CS1N_POUT ( P8OUT ) +#define OLED_CS1N_PIN ( BIT0 ) + +#define OLED_CS1N_CONFIG() { OLED_CS1N_PDIR |= OLED_CS1N_PIN; OLED_CS1N_DISABLE(); } +#define OLED_CS1N_ENABLE() { OLED_CS1N_POUT &= ~OLED_CS1N_PIN; } +#define OLED_CS1N_DISABLE() { OLED_CS1N_POUT |= OLED_CS1N_PIN; } + +#define OLED_CS2N_PDIR ( P8DIR ) +#define OLED_CS2N_POUT ( P8OUT ) +#define OLED_CS2N_PIN ( BIT1 ) + +#define OLED_CS2N_CONFIG() { OLED_CS2N_PDIR |= OLED_CS2N_PIN; OLED_CS2N_DISABLE(); } +#define OLED_CS2N_ENABLE() { OLED_CS2N_POUT &= ~OLED_CS2N_PIN; } +#define OLED_CS2N_DISABLE() { OLED_CS2N_POUT |= OLED_CS2N_PIN; } + +#define OLED_SDA_PDIR ( P3DIR ) +#define OLED_SDA_POUT ( P3OUT ) +#define OLED_SDA_PIN ( BIT1 ) +#define OLED_SDA_PSEL ( P3SEL) + +#define OLED_SCL_PDIR ( P3DIR ) +#define OLED_SCL_POUT ( P3OUT ) +#define OLED_SCL_PORT ( P3 ) +#define OLED_SCL_PIN ( BIT2 ) +#define OLED_SCL_PSEL ( P3SEL ) + +// the select line overrides the pdir and pout settings +#define OLED_SDA_CONFIG_FOR_PERIPHERAL_USE() { OLED_SDA_PSEL |= OLED_SDA_PIN; } +#define OLED_SCL_CONFIG_FOR_PERIPHERAL_USE() { OLED_SCL_PSEL |= OLED_SCL_PIN; } + +#define OLED_I2C_CONFIG_FOR_PERIPHERAL_USE() { \ + OLED_SDA_CONFIG_FOR_PERIPHERAL_USE(); \ + OLED_SCL_CONFIG_FOR_PERIPHERAL_USE(); } + +#define OLED_SDA_CONFIG_FOR_SLEEP() { \ + OLED_SDA_PSEL &= ~OLED_SDA_PIN; \ + OLED_SDA_PDIR |= OLED_SDA_PIN; \ + OLED_SDA_POUT |= OLED_SDA_PIN; } + +#define OLED_SCL_CONFIG_FOR_SLEEP() { \ + OLED_SCL_PSEL &= ~OLED_SCL_PIN; \ + OLED_SCL_PDIR |= OLED_SCL_PIN; \ + OLED_SCL_POUT |= OLED_SCL_PIN; } + +#define OLED_I2C_CONFIG_FOR_SLEEP() { \ + OLED_SDA_CONFIG_FOR_SLEEP(); \ + OLED_SCL_CONFIG_FOR_SLEEP(); } + +#define OLED_POWER_ENABLE_PIN ( BIT0 ) +#define OLED_POWER_ENABLE_POUT ( P4OUT ) +#define OLED_POWER_ENABLE_PDIR ( P4DIR ) +#define OLED_POWER_CONFIG() { P4DIR |= OLED_POWER_ENABLE_PIN; OLED_POWER_DISABLE(); } +#define OLED_POWER_ENABLE() { P4OUT |= OLED_POWER_ENABLE_PIN; } +#define OLED_POWER_DISABLE() { P4OUT &= ~OLED_POWER_ENABLE_PIN; } + +// VLED_EN is active low +#define OLED_IO_POWER_ENABLE_PIN ( BIT3 ) +#define OLED_IO_POWER_ENABLE_POUT ( P5OUT ) +#define OLED_IO_POWER_ENABLE_PDIR ( P5DIR ) +#define OLED_IO_POWER_CONFIG() { P5DIR |= OLED_IO_POWER_ENABLE_PIN; OLED_IO_POWER_DISABLE(); } +#define OLED_IO_POWER_ENABLE() { P5OUT &= ~OLED_IO_POWER_ENABLE_PIN; } +#define OLED_IO_POWER_DISABLE() { P5OUT |= OLED_IO_POWER_ENABLE_PIN; } + + + + + + +#endif // OLED + +#define CONFIG_OLED_PINS() { } + + +// Real time clock defines +// RTC 1 Hz output, also used to toggle the bias on the LCD +#define RTC_1HZ_PORT_DIR ( P2DIR ) +#define RTC_1HZ_PORT_SEL ( P2SEL ) +#define RTC_1HZ_BIT ( BIT4 ) + + +// Button defines + +#define BUTTON_TIME_COUNT_ARRAY_LEN 8 +#define ALL_BUTTONS_OFF 0xFF + +#define SW_A BIT0 +#define SW_B BIT1 +#define SW_C BIT2 +#define SW_D BIT3 +// Bit 4 is not used +#define SW_E BIT5 +#define SW_F BIT6 +#define SW_P BIT7 + +#define SW_A_INDEX ( 0 ) +#define SW_B_INDEX ( 1 ) +#define SW_C_INDEX ( 2 ) +#define SW_D_INDEX ( 3 ) +#define SW_UNUSED_INDEX ( 4 ) +#define SW_E_INDEX ( 5 ) +#define SW_F_INDEX ( 6 ) +#define SW_P_INDEX ( 7 ) +/* the switch does not count */ +#define TOTAL_BTN_NUM ( 7 ) + +#ifdef ANALOG + #define ALL_BUTTONS (SW_A | SW_B | SW_C | SW_D | SW_E | SW_F | SW_P) +#elif defined(DIGITAL) + #define ALL_BUTTONS (SW_A | SW_B | SW_C | SW_D | SW_E | SW_F) +#endif + +// The digital watch version 1 has 1 Meg pull downs +// so the code below wont work +#define RESISTOR_ENABLE_BUTTONS ALL_BUTTONS + +// Setting the edge select bit high generates and interrupt on the falling edge +#define INT_EDGE_SEL_BUTTONS (ALL_BUTTONS) + +#define BUTTON_PORT_VECTOR PORT2_VECTOR +#define BUTTON_PORT_DIR P2DIR +#define BUTTON_PORT_SEL P2SEL +#define BUTTON_PORT_OUT P2OUT +#define BUTTON_PORT_REN P2REN +#define BUTTON_PORT_IE P2IE +#define BUTTON_PORT_IES P2IES +#define BUTTON_PORT_IFG P2IFG + +#define DISABLE_BUTTONS() { \ + BUTTON_PORT_IE &= ~INT_EDGE_SEL_BUTTONS; \ + BUTTON_PORT_REN &= ~ALL_BUTTONS; \ + BUTTON_PORT_OUT &= ~ALL_BUTTONS; \ +} + +/* SHIPPING */ +/* S5 or SW_E is the button that takes the watch out of shipping mode */ +#define ENABLE_SHIPPING_WAKEUP() { \ + P1IE = 0x00; \ + PMMCTL0_H = 0xA5; \ + PMMRIE = 0x0000; \ + RTCPS0CTL = 0x0000; \ + RTCPS1CTL = 0x0000; \ + UCSCTL8 = 0x0700; \ + BUTTON_PORT_REN = SW_E; \ + BUTTON_PORT_OUT = SW_E; \ + BUTTON_PORT_DIR &= ~SW_E; \ + BUTTON_PORT_IES |= SW_E; \ + BUTTON_PORT_IFG = 0x00; \ + BUTTON_PORT_IE |= SW_E; \ +} + +// NOTE the the buttons are grounded. That means that we want to invert the bits +// when reading the port to have positive logic where a button press is a "1" +#define BUTTON_PORT_IN ~P2IN + +// Configure the hardware port for the button support P2.4 is excluded +#define CONFIGURE_BUTTON_PINS() { \ + BUTTON_PORT_REN = (unsigned char) RESISTOR_ENABLE_BUTTONS; \ + BUTTON_PORT_OUT = (unsigned char) ALL_BUTTONS; \ + BUTTON_PORT_DIR &= (unsigned char) ~ALL_BUTTONS; \ + BUTTON_PORT_IES |= INT_EDGE_SEL_BUTTONS; \ + BUTTON_PORT_IFG &= ~ALL_BUTTONS; \ + BUTTON_PORT_IE |= ALL_BUTTONS; \ +} + + +// Battery charger control for a BQ24080 +#define BAT_CHARGE_DIR P6DIR +#define BAT_CHARGE_REN P6REN +#define BAT_CHARGE_OUT P6OUT +#define BAT_CHARGE_IN P6IN + +#define BAT_CHARGE_ENABLE_PIN BIT2 +#define BAT_CHARGE_STAT1 BIT3 +#define BAT_CHARGE_STAT2 BIT4 +#define BAT_CHARGE_PWR_BIT BIT5 + +// Enable charging, asserted low +#define BATTERY_CHARGE_ENABLE() { BAT_CHARGE_OUT &= ~BAT_CHARGE_ENABLE_PIN; } + +// disable charging, sleep the part +#define BATTERY_CHARGE_DISABLE() { BAT_CHARGE_OUT |= BAT_CHARGE_ENABLE_PIN; } + +//RESET PIN NMI or RESET +#define SET_RESET_PIN_NMI() {SFRRPCR &= ~SYSRSTRE; SFRRPCR |= SYSNMI;} +#define SET_RESET_PIN_RST() {SFRRPCR |= SYSRSTRE; SFRRPCR &= ~SYSNMI;} +#define RESET_PIN (SFRRPCR & SYSNMI) // return 1 for NMI + +// +// Ambient Light Sensor +// +#define GC1_PDIR ( P6DIR ) +#define GC1_POUT ( P6OUT ) +#define GC1_PSEL ( P6SEL ) +#define GC1_PIN ( BIT0 ) + +#define GC2_PDIR ( P6DIR ) +#define GC2_POUT ( P6OUT ) +#define GC2_PSEL ( P6SEL ) +#define GC2_PIN ( BIT6 ) + +#define IOUT_PDIR ( P6DIR ) +#define IOUT_PSEL ( P6SEL ) +#define IOUT_PIN ( BIT1 ) + +#define LIGHT_SENSE_INIT() \ +{ \ + IOUT_PDIR &= ~IOUT_PIN; \ + IOUT_PSEL |= IOUT_PIN; \ + GC1_PDIR |= GC1_PIN; \ + GC2_PDIR |= GC2_PIN; \ + LIGHT_SENSE_DISABLE(); \ +} + +#define LIGHT_SENSOR_SHUTDOWN() \ +{ \ + GC1_POUT &= ~GC1_PIN; \ + GC2_POUT &= ~GC2_PIN; \ +} + +#define LIGHT_SENSOR_L_GAIN() \ +{ \ + GC1_POUT |= GC1_PIN; \ + GC2_POUT |= GC2_PIN; \ +} + +#define LIGHT_SENSE_ENABLE()\ +{ \ + LIGHT_SENSOR_L_GAIN(); \ +} + +#define LIGHT_SENSE_DISABLE() \ +{ \ + LIGHT_SENSOR_SHUTDOWN(); \ +} + + + +// +// This pin controls if the battery voltage can be read +// +#define BATTERY_READ_CONTROL_PDIR ( P4DIR ) +#define BATTERY_READ_CONTROL_POUT ( P4OUT ) +#define BATTERY_READ_CONTROL_PIN ( BIT6 ) + +#define BATTERY_SENSE_INPUT_PDIR ( P7DIR ) +#define BATTERY_SENSE_INPUT_PSEL ( P7SEL ) +#define BATTERY_SENSE_INPUT_PIN ( BIT7 ) + +#define BATTERY_SENSE_INIT() \ +{ \ + BATTERY_READ_CONTROL_PDIR |= BATTERY_READ_CONTROL_PIN; \ + BATTERY_SENSE_INPUT_PDIR &= ~BATTERY_SENSE_INPUT_PIN; \ + BATTERY_SENSE_INPUT_PSEL |= BATTERY_SENSE_INPUT_PIN; \ + BATTERY_SENSE_DISABLE(); \ +} + +#define BATTERY_SENSE_ENABLE() \ +{ \ + BATTERY_READ_CONTROL_POUT |= BATTERY_READ_CONTROL_PIN; \ +} + +#define BATTERY_SENSE_DISABLE() \ +{ \ + BATTERY_READ_CONTROL_POUT &= ~BATTERY_READ_CONTROL_PIN; \ +} + +// +// hardware configuration is a voltage divider to ADC input +// +#define HARDWARE_CFG_CONTROL_PDIR ( P8DIR ) +#define HARDWARE_CFG_CONTROL_POUT ( P8OUT ) +#define HARDWARE_CFG_CONTROL_PIN ( BIT2 ) + +#define HARDWARE_CFG_INPUT_PDIR ( P7DIR ) +#define HARDWARE_CFG_INPUT_PSEL ( P7SEL ) +#define HARDWARE_CFG_INPUT_PIN ( BIT5 ) + +#define HARDWARE_CFG_SENSE_INIT() \ +{ \ + HARDWARE_CFG_CONTROL_PDIR |= HARDWARE_CFG_CONTROL_PIN; \ + HARDWARE_CFG_INPUT_PDIR &= ~HARDWARE_CFG_INPUT_PIN; \ + HARDWARE_CFG_INPUT_PSEL |= HARDWARE_CFG_INPUT_PIN; \ + HARDWARE_CFG_SENSE_DISABLE(); \ +} + +#define HARDWARE_CFG_SENSE_ENABLE() \ +{ \ + HARDWARE_CFG_CONTROL_POUT |= HARDWARE_CFG_CONTROL_PIN; \ +} + +#define HARDWARE_CFG_SENSE_DISABLE() \ +{ \ + HARDWARE_CFG_CONTROL_POUT &= ~HARDWARE_CFG_CONTROL_PIN; \ +} + + +#define APPLE_SDA_PDIR ( P10DIR ) +#define APPLE_SDA_POUT ( P10OUT ) +#define APPLE_SDA_PIN ( BIT1 ) + +#define APPLE_SCL_PDIR ( P10DIR ) +#define APPLE_SCL_POUT ( P10OUT ) +#define APPLE_SCL_PIN ( BIT2 ) + +#define APPLE_POWER_PDIR ( P4DIR ) +#define APPLE_POWER_POUT ( P4OUT ) +#define APPLE_POWER_PIN ( BIT5 ) + +/* power enable is active low */ +#define APPLE_POWER_ENABLE() { APPLE_POWER_POUT &= ~APPLE_POWER_PIN; } +#define APPLE_POWER_DISABLE() { APPLE_POWER_POUT |= APPLE_POWER_PIN; } + +#define APPLE_POWER_CONFIG() { \ + APPLE_POWER_PDIR |= APPLE_POWER_PIN; \ + APPLE_POWER_DISABLE(); \ +} + + +/* since the apple chip is currently not powered + * the pins should be at 0 instead of 1 + */ +#define APPLE_I2C_PIN_CONFIG() { \ + APPLE_SDA_PDIR |= APPLE_SDA_PIN; \ + APPLE_SDA_POUT &= ~APPLE_SDA_PIN; \ + APPLE_SCL_PDIR |= APPLE_SCL_PIN; \ + APPLE_SCL_POUT &= ~APPLE_SCL_PIN; \ +} + +#define APPLE_CONFIG() { \ + APPLE_POWER_CONFIG(); \ + APPLE_I2C_PIN_CONFIG(); \ +} + +#define SRAM_SCLK_PSEL ( P3SEL ) +#define SRAM_SCLK_PDIR ( P3DIR ) +#define SRAM_SCLK_POUT ( P3OUT ) +#define SRAM_SCLK_PIN ( BIT0 ) + +#define SRAM_SOMI_PSEL ( P3SEL ) +#define SRAM_SOMI_PDIR ( P3DIR ) +#define SRAM_SOMI_POUT ( P3OUT ) +#define SRAM_SOMI_PIN ( BIT5 ) + +#define SRAM_SIMO_PSEL ( P3SEL ) +#define SRAM_SIMO_PDIR ( P3DIR ) +#define SRAM_SIMO_POUT ( P3OUT ) +#define SRAM_SIMO_PIN ( BIT4 ) + +#define SRAM_CSN_PDIR ( P9DIR ) +#define SRAM_CSN_POUT ( P9OUT ) +#define SRAM_CSN_PIN ( BIT6) + +#define SRAM_HOLDN_PDIR ( P9DIR ) +#define SRAM_HOLDN_POUT ( P9OUT ) +#define SRAM_HOLDN_PIN ( BIT7 ) + +#define CONFIG_SRAM_PINS() \ +{ \ + SRAM_CSN_PDIR |= SRAM_CSN_PIN; \ + SRAM_CSN_POUT |= SRAM_CSN_PIN; \ + SRAM_HOLDN_PDIR |= SRAM_HOLDN_PIN; \ + SRAM_HOLDN_POUT |= SRAM_HOLDN_PIN; \ +} + +#define SRAM_CSN_ASSERT() { SRAM_CSN_POUT &= ~SRAM_CSN_PIN; } + +#define SRAM_CSN_DEASSERT() { \ + WAIT_FOR_SRAM_SPI_SHIFT_COMPLETE(); \ + SRAM_CSN_POUT |= SRAM_CSN_PIN; \ +} + +/* wait for shift to complete ( ~3 us ) */ +#define WAIT_FOR_SRAM_SPI_SHIFT_COMPLETE() { while( (UCA0STAT & 0x01) != 0 ); } + +#define ACCELEROMETER_SDA_PIN ( BIT7 ) +#define ACCELEROMETER_SDA_PSEL ( P3SEL ) +#define ACCELEROMETER_SDA_POUT ( P3OUT ) +#define ACCELEROMETER_SDA_PDIR ( P3OUT ) +#define ACCELEROMETER_SDA_PREN ( P1REN ) + +#define ACCELEROMETER_SCL_PIN ( BIT4 ) +#define ACCELEROMETER_SCL_PSEL ( P5SEL ) +#define ACCELEROMETER_SCL_POUT ( P5OUT ) +#define ACCELEROMETER_SCL_PDIR ( P5OUT ) +#define ACCELEROMETER_SCL_PREN ( P5REN ) + +#define ACCELEROMETER_INT_PIN ( BIT7 ) +#define ACCELEROMETER_INT_PDIR ( P1DIR ) +#define ACCELEROMETER_INT_PSEL ( P1SEL ) +#define ACCELEROMETER_INT_PIFG ( P1IFG ) +#define ACCELEROMETER_INT_PIE ( P1IE ) + +#define ACCELEROMETER_POWER_POUT ( P9OUT ) +#define ACCELEROMETER_POWER_PDIR ( P9DIR ) +#define ACCELEROMETER_POWER_PINS ( BIT1 | BIT2 ) + +/* this is for reference only (it doesn't control anything) */ +#define ACCELEROMETER_INT_NUM (PIN7_INT) + +#define LED4_ON() { } +#define LED5_ON() { } +#define LED6_ON() { } +#define LED7_ON() { } + +#define LED4_OFF() { } +#define LED5_OFF() { } +#define LED6_OFF() { } +#define LED7_OFF() { } + +#define CONFIG_LED_PINS() { } + + + +#define DEBUG1_HIGH() { } +#define DEBUG3_HIGH() { } +#define DEBUG4_HIGH() { } +#define DEBUG5_HIGH() { } + +#define DEBUG1_LOW() { } +#define DEBUG3_LOW() { } +#define DEBUG4_LOW() { } +#define DEBUG5_LOW() { } + +#define DEBUG1_PULSE() { } +#define DEBUG3_PULSE() { } +#define DEBUG4_PULSE() { } +#define DEBUG5_PULSE() { } + +#define DEBUG1_TOGGLE() { } +#define DEBUG3_TOGGLE() { } +#define DEBUG4_TOGGLE() { } +#define DEBUG5_TOGGLE() { } + +#define CONFIG_DEBUG_PINS() { } + +/* + * Sideband signals (for lack of another word) + */ +#define BT_CLK_REQ_PDIR ( P1DIR ) +#define BT_CLK_REQ_POUT ( P1OUT ) +#define BT_CLK_REQ_PIN ( BIT4 ) + +#define BT_IO1_PDIR ( P1DIR ) +#define BT_IO1_POUT ( P1OUT ) +#define BT_IO1_PIN ( BIT5 ) + +#define BT_IO2_PDIR ( P1DIR ) +#define BT_IO2_POUT ( P1OUT ) +#define BT_IO2_PIN ( BIT6 ) + +/******************************************************************************/ + +/* peripheral mapping for accelerometer */ +#define ACCELEROMETER_CTL0 ( UCB1CTL0 ) +#define ACCELEROMETER_CTL1 ( UCB1CTL1 ) +#define ACCELEROMETER_BR0 ( UCB1BR0 ) +#define ACCELEROMETER_BR1 ( UCB1BR1 ) +#define ACCELEROMETER_I2CSA ( UCB1I2CSA ) +#define ACCELEROMETER_IE ( UCB1IE ) +#define ACCELEROMETER_IFG ( UCB1IFG ) +#define ACCELEROMETER_TXBUF ( UCB1TXBUF ) +#define ACCELEROMETER_RXBUF ( UCB1RXBUF ) +#define ACCELEROMETER_STAT ( UCB1STAT ) +/* interrupt mapping for accelerometer */ +#define USCI_ACCELEROMETER_VECTOR ( USCI_B1_VECTOR ) +#define USCI_ACCELEROMETER_IV ( UCB1IV ) + +/******************************************************************************/ + +/* IN1 on mux */ +#define MUX_CONTROL1_PDIR ( P10DIR ) +#define MUX_CONTROL1_POUT ( P10OUT ) +#define MUX_CONTROL1_PIN ( BIT7 ) + +#define MUX_CONTROL2_PDIR ( P10DIR ) +#define MUX_CONTROL2_POUT ( P10OUT ) +#define MUX_CONTROL2_PIN ( BIT6 ) + + +#endif // HAL_DIGITAL_V2_DEFS_H + + + diff --git a/metawatch/hal_io_macros.h b/metawatch/hal_io_macros.h new file mode 100644 index 0000000..182a147 --- /dev/null +++ b/metawatch/hal_io_macros.h @@ -0,0 +1,116 @@ +//============================================================================== +// Copyright Meta Watch Ltd. - http://www.MetaWatch.org/ +// +// Licensed under the Meta Watch License, Version 1.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.MetaWatch.org/licenses/license-1.0.html +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//============================================================================== + +/******************************************************************************/ +/*! \file hal_io_macros.c + * + * Separate the pin definitions for each board type from the macros + * + */ +/******************************************************************************/ + +#ifndef HAL_IO_MACROS +#define HAL_IO_MACROS + +/******************************************************************************/ + +#define BT_CLK_REQ_CONFIG_AS_INPUT() { \ + BT_CLK_REQ_PDIR &= ~BT_CLK_REQ_PIN; \ +} + +#define BT_CLK_REQ_CONFIG_AS_OUTPUT_LOW() { \ + BT_CLK_REQ_PDIR |= BT_CLK_REQ_PIN; \ + BT_CLK_REQ_POUT &= ~BT_CLK_REQ_PIN; \ +} + +#define BT_IO1_CONFIG_AS_INPUT() { \ + BT_IO1_PDIR &= ~BT_IO1_PIN; } + +#define BT_IO1_CONFIG_AS_OUTPUT_LOW() { \ + BT_IO1_PDIR |= BT_IO1_PIN; \ + BT_IO1_POUT &= ~BT_IO1_PIN; \ +} + +#define BT_IO2_CONFIG_AS_INPUT() { \ + BT_IO2_PDIR &= ~BT_IO2_PIN; \ +} + +#define BT_IO2_CONFIG_AS_OUTPUT_LOW() { \ + BT_IO2_PDIR |= BT_IO2_PIN; \ + BT_IO2_POUT &= ~BT_IO2_PIN; } + +/******************************************************************************/ + +#define ACCELEROMETER_INT_ENABLE() { \ + ACCELEROMETER_INT_PIFG &= ~ACCELEROMETER_INT_PIN; \ + ACCELEROMETER_INT_PIE |= ACCELEROMETER_INT_PIN; \ +} + +#define ACCELEROMETER_INT_DISABLE() { \ + ACCELEROMETER_INT_PIE &= ~ACCELEROMETER_INT_PIN; \ + ACCELEROMETER_INT_PIFG &= ~ACCELEROMETER_INT_PIN; \ +} + +#define CONFIG_ACCELEROMETER_PINS() { \ + ACCELEROMETER_SDA_PSEL |= ACCELEROMETER_SDA_PIN; \ + ACCELEROMETER_SCL_PSEL |= ACCELEROMETER_SCL_PIN; \ + ACCELEROMETER_INT_PDIR &= ~ACCELEROMETER_INT_PIN; \ +} + +/* only configuration 5 and later boards support turning on/off the power + * to the accelerometer + */ +#define ENABLE_ACCELEROMETER_POWER() { \ + ACCELEROMETER_POWER_PDIR |= ACCELEROMETER_POWER_PINS; \ + ACCELEROMETER_POWER_POUT |= ACCELEROMETER_POWER_PINS; \ +} + +#define DISABLE_ACCELEROMETER_POWER() { \ + ACCELEROMETER_POWER_PDIR |= ACCELEROMETER_POWER_PINS; \ + ACCELEROMETER_POWER_POUT &= ~ACCELEROMETER_POWER_PINS; \ +} + +/******************************************************************************/ + +#define ENABLE_MUX_OUTPUT_CONTROL() { \ + MUX_CONTROL1_PDIR |= MUX_CONTROL1_PIN; \ + MUX_CONTROL2_PDIR |= MUX_CONTROL2_PIN; \ +} + +#define MUX_OUTPUT_OFF() { \ + MUX_CONTROL1_POUT &= ~MUX_CONTROL1_PIN; \ + MUX_CONTROL2_POUT &= ~MUX_CONTROL2_PIN; \ +} + +#define MUX_OUTPUT_SELECTS_SERIAL() { \ + MUX_CONTROL1_POUT |= MUX_CONTROL1_PIN; \ + MUX_CONTROL2_POUT &= ~MUX_CONTROL2_PIN; \ +} + +#define MUX_OUTPUT_SELECTS_GND() { \ + MUX_CONTROL1_POUT &= ~MUX_CONTROL1_PIN; \ + MUX_CONTROL2_POUT |= MUX_CONTROL2_PIN; \ +} + +#define MUX_OUTPUT_SELECTS_SPY() { \ + MUX_CONTROL1_POUT |= MUX_CONTROL1_PIN; \ + MUX_CONTROL2_POUT |= MUX_CONTROL2_PIN; \ +} + + +/******************************************************************************/ + +#endif /* HAL_IO_MACROS */ diff --git a/metawatch/mw_acc.c b/metawatch/mw_acc.c new file mode 100644 index 0000000..1080c3e --- /dev/null +++ b/metawatch/mw_acc.c @@ -0,0 +1,423 @@ +#include +#include +#include +#include + +#include "mw_main.h" +#include "mw_uart.h" + +#include "mw_acc.h" + +#include "oswald_main.h" + +#define ACCEL_STATE_DISABLED 0x00 +#define ACCEL_STATE_ENABLED 0x01 + +static uint8_t AccelState; +static uint8_t AccelerometerBusy; +static uint8_t LengthCount; +static uint8_t Index; +static uint8_t *pAccelerometerData; + +/* + * Accelerometer is a Kionix KXTF9-4100 connected to I2C + * I2C is pretty slow so reading and writing should be done non blocking + * using interrupts. + */ + +#define ACCELEROMETER_NO_INTERRUPTS 0x00 +#define ACCELEROMETER_ALIFG 0x02 +#define ACCELEROMETER_NACKIFG 0x04 +#define ACCELEROMETER_STTIFG 0x06 +#define ACCELEROMETER_STPIFG 0x08 +#define ACCELEROMETER_RXIFG 0x0a +#define ACCELEROMETER_TXIFG 0x0c + +#pragma vector=USCI_B1_VECTOR +__interrupt void ACCERLEROMETER_I2C_ISR(void) +{ + // debug_uart_tx("ACC i2c irq\n"); + switch (USCI_ACCELEROMETER_IV) { + case ACCELEROMETER_NO_INTERRUPTS: + break; + case ACCELEROMETER_ALIFG: + break; + case ACCELEROMETER_NACKIFG: + nop(); + break; + case ACCELEROMETER_STTIFG: + nop(); + break; + case ACCELEROMETER_STPIFG: + nop(); + break; + case ACCELEROMETER_RXIFG: + if (LengthCount > 0) { + pAccelerometerData[Index++] = ACCELEROMETER_RXBUF; + LengthCount--; + if ( LengthCount == 1 ) { + /* All but one byte received. Send stop */ + ACCELEROMETER_CTL1 |= UCTXSTP; + } else if ( LengthCount == 0 ) { + /* Last byte received; disable rx interrupt */ + ACCELEROMETER_IE &= ~UCRXIE; + AccelerometerBusy = 0; + } + } + break; + case ACCELEROMETER_TXIFG: + if ( LengthCount > 0 ) { + ACCELEROMETER_TXBUF = pAccelerometerData[Index++]; + LengthCount--; + } else { + /* disable transmit interrupt and send stop */ + ACCELEROMETER_IE &= ~UCTXIE; + ACCELEROMETER_CTL1 |= UCTXSTP; + AccelerometerBusy = 0; + } + break; + default: + break; + } + +} + +void mw_acc_init_i2c(void) +{ + /* enable reset before configuration */ + ACCELEROMETER_CTL1 |= UCSWRST; + + /* configure as master using smclk / 40 = 399.5 kHz */ + ACCELEROMETER_CTL0 = UCMST + UCMODE_3 + UCSYNC; + ACCELEROMETER_CTL1 = UCSSEL__SMCLK + UCSWRST; + ACCELEROMETER_BR0 = 42; + + ACCELEROMETER_BR1 = 0; + ACCELEROMETER_I2CSA = KIONIX_DEVICE_ADDRESS; + + /* release reset */ + ACCELEROMETER_CTL1 &= ~UCSWRST; +} + +void mw_acc_disable_i2c(void) +{ + /* enable reset to hold it */ + ACCELEROMETER_CTL1 |= UCSWRST; +} + +void mw_acc_i2c_write(uint8_t RegisterAddress, uint8_t *pData, uint8_t Length) +{ + int tmo; + + if (Length == 0 || pData == 0) + return; + + while (UCB1STAT & UCBBUSY) + nop(); + + AccelerometerBusy = 1; + LengthCount = Length; + Index = 0; + pAccelerometerData = pData; + + /* + * enable transmit interrupt and + * setup for write and send the start condition + */ + ACCELEROMETER_IFG = 0; + ACCELEROMETER_CTL1 |= UCTR + UCTXSTT; + while(!(ACCELEROMETER_IFG & UCTXIFG)) + nop(); + + /* + * clear transmit interrupt flag, enable interrupt, + * send the register address + */ + ACCELEROMETER_IFG = 0; + ACCELEROMETER_IE |= UCTXIE; + ACCELEROMETER_TXBUF = RegisterAddress; + + tmo = 0; + while (AccelerometerBusy) { + while (tmo++ < 1000) + __delay_cycles(16000); + if (tmo >= 1000) { + debug_uart_tx("ACC I2C tx tmo\n"); + return; + } + } + + while (ACCELEROMETER_CTL1 & UCTXSTP) + nop(); + + /* the rest of TX will be handled by the ISR */ +} + +void mw_acc_i2c_read_single(const uint8_t RegisterAddress, const uint8_t *pData) +{ + if ( pData == 0 ) + return; + + /* wait for bus to be free */ + while (UCB1STAT & UCBBUSY) + nop(); + + AccelerometerBusy = 1; + LengthCount = 1; + Index = 0; + pAccelerometerData = (uint8_t *)pData; + + /* transmit address */ + ACCELEROMETER_IFG = 0; + ACCELEROMETER_CTL1 |= UCTR + UCTXSTT; + while (!(ACCELEROMETER_IFG & UCTXIFG)) + nop(); + + /* write register address */ + ACCELEROMETER_IFG = 0; + ACCELEROMETER_TXBUF = RegisterAddress; + while (!(ACCELEROMETER_IFG & UCTXIFG)) + nop(); + + /* send a repeated start (same slave address now it is a read command) + * read possible extra character from rxbuffer + */ + ACCELEROMETER_RXBUF; + ACCELEROMETER_IFG = 0; + ACCELEROMETER_IE |= UCRXIE; + ACCELEROMETER_CTL1 &= ~UCTR; + /* for a read of a single byte the stop must be sent while the byte is being + * received. If this is interrupted an extra byte may be read. + * however, it will be discarded during the next read + */ + if (LengthCount == 1) { + /* errata usci30: prevent interruption of sending stop + * so that only one byte is read + * this requires 62 us @ 320 kHz, 51 @ 400 kHz + */ + __disable_interrupt(); + + ACCELEROMETER_CTL1 |= UCTXSTT; + + while(ACCELEROMETER_CTL1 & UCTXSTT) + nop(); + + ACCELEROMETER_CTL1 |= UCTXSTP; + + __enable_interrupt(); + } else { + ACCELEROMETER_CTL1 |= UCTXSTT; + } + + /* wait until all data has been received and the stop bit has been sent */ + while (AccelerometerBusy) + nop(); + while (ACCELEROMETER_CTL1 & UCTXSTP) + nop(); + Index = 0; + pAccelerometerData = 0; +} + +/* errata usci30: only perform single reads + * second solution: use DMA + */ +void mw_acc_i2c_read(const uint8_t RegisterAddress, uint8_t *pData, const uint8_t Length) +{ + int i; + + for ( i = 0; i < Length; i++ ) { + mw_acc_i2c_read_single(RegisterAddress + i, (pData + i)); + } +} + + +void mw_acc_init(void) +{ + uint8_t WriteRegisterData; + uint8_t pReadRegisterData[4]; +#if defined MW_DEVBOARD_V2 + char tstr[16]; +#endif + + // it takes at least 20ms to power up + ENABLE_ACCELEROMETER_POWER(); + __delay_cycles(320000); + + mw_acc_init_i2c(); + + /* + * make sure part is in standby mode because some registers can only + * be changed when the part is not active. + */ + WriteRegisterData = PC1_STANDBY_MODE; + mw_acc_i2c_write(KIONIX_CTRL_REG1, &WriteRegisterData, 1); + + /* enable face-up and face-down detection */ + WriteRegisterData = TILT_FDM | TILT_FUM; + mw_acc_i2c_write(KIONIX_CTRL_REG2, &WriteRegisterData, 1); + + /* + * the interrupt from the accelerometer can be used to get periodic data + * the real time clock can also be used + */ + + /* change to output data rate to 25 Hz */ + WriteRegisterData = WUF_ODR_25HZ | TAP_ODR_400HZ; + mw_acc_i2c_write(KIONIX_CTRL_REG3, &WriteRegisterData, 1); + + /* enable interrupt and make it active high */ + WriteRegisterData = IEN | IEA; + mw_acc_i2c_write(KIONIX_INT_CTRL_REG1, &WriteRegisterData, 1); + + /* enable motion detection interrupt for all three axis */ + WriteRegisterData = XBW | YBW | ZBW; + mw_acc_i2c_write(KIONIX_INT_CTRL_REG2, &WriteRegisterData, 1); + + /* enable tap interrupt for Z-axis */ + WriteRegisterData = TFDM; + mw_acc_i2c_write(KIONIX_INT_CTRL_REG3, &WriteRegisterData, 1); + + /* set TDT_TIMER to 0.2 secs*/ + WriteRegisterData = 0x50; + mw_acc_i2c_write(KIONIX_TDT_TIMER, &WriteRegisterData, 1); + + /* set tap low and high thresholds (default: 26 and 182) */ + WriteRegisterData = 40; //78; + mw_acc_i2c_write(KIONIX_TDT_L_THRESH, &WriteRegisterData, 1); + WriteRegisterData = 128; + mw_acc_i2c_write(KIONIX_TDT_H_THRESH, &WriteRegisterData, 1); + + /* set WUF_TIMER counter */ + WriteRegisterData = 10; + mw_acc_i2c_write(KIONIX_WUF_TIMER, &WriteRegisterData, 1); + + /* this causes data to always be sent */ + // WriteRegisterData = 0x00; + WriteRegisterData = 0x01 /*0x08*/; + mw_acc_i2c_write(KIONIX_WUF_THRESH, &WriteRegisterData, 1); + + /* single byte read test */ + mw_acc_i2c_read(KIONIX_DCST_RESP, pReadRegisterData, 1); +#if defined MW_DEVBOARD_V2 + snprintf(tstr, 16, "acc DCST 0x%02x\n", pReadRegisterData[0]); + debug_uart_tx(tstr); +#endif + + /* multiple byte read test */ + mw_acc_i2c_read(KIONIX_WHO_AM_I, pReadRegisterData, 2); +#if defined MW_DEVBOARD_V2 + snprintf(tstr, 16, "acc is 0x%02x 0x%02x\n", pReadRegisterData[0], pReadRegisterData[1]); + debug_uart_tx(tstr); +#endif + + /* + * KIONIX_CTRL_REG3 and DATA_CTRL_REG can remain at their default values + * + * 50 Hz + */ +#if 0 + /* KTXF9 300 uA; KTXI9 165 uA */ + WriteRegisterData = PC1_OPERATING_MODE | TAP_ENABLE_TDTE; + + /* 180 uA; KTXI9 115 uA */ + WriteRegisterData = PC1_OPERATING_MODE | RESOLUTION_8BIT | WUF_ENABLE; + + /* 180 uA; KTXI9 8.7 uA */ + WriteRegisterData = PC1_OPERATING_MODE | TILT_ENABLE_TPE; + + /* 720 uA; KTXI9 330 uA */ + WriteRegisterData = PC1_OPERATING_MODE | RESOLUTION_12BIT | WUF_ENABLE; +#endif + + /* setup the default for the AccelerometerEnable command */ +#if 0 + OperatingModeRegister = PC1_OPERATING_MODE | RESOLUTION_12BIT | TAP_ENABLE_TDTE | TILT_ENABLE_TPE; // | WUF_ENABLE; + InterruptControl = INTERRUPT_CONTROL_DISABLE_INTERRUPT; + SidControl = SID_CONTROL_SEND_DATA; + SidAddr = KIONIX_XOUT_L; + SidLength = XYZ_DATA_LENGTH; + + AccelState = ACCEL_STATE_INIT; +#endif +} + +void mw_acc_enable(void) +{ + uint8_t sdata; + + mw_acc_init(); + + sdata = PC1_OPERATING_MODE | RESOLUTION_12BIT | TAP_ENABLE_TDTE | TILT_ENABLE_TPE | WUF_ENABLE; + //sdata = PC1_OPERATING_MODE | RESOLUTION_8BIT | TAP_ENABLE_TDTE | TILT_ENABLE_TPE; // | WUF_ENABLE; + mw_acc_i2c_write(KIONIX_CTRL_REG1, &sdata, 1); + + ACCELEROMETER_INT_ENABLE(); + mw_acc_i2c_read(KIONIX_INT_REL, &sdata, 1); + AccelState = ACCEL_STATE_ENABLED; +} + +void mw_acc_disable(void) +{ + uint8_t sdata; + + if (AccelState == ACCEL_STATE_ENABLED) { + sdata = PC1_STANDBY_MODE; + mw_acc_i2c_write(KIONIX_CTRL_REG1, &sdata, 1); + + ACCELEROMETER_INT_DISABLE(); + mw_acc_disable_i2c(); + /// DISABLE_ACCELEROMETER_POWER(); + AccelState = ACCEL_STATE_DISABLED; + } +} + +void mw_acc_read(int16_t *x, int16_t *y, int16_t *z) +{ + uint8_t rdata[6]; + + if (AccelState == ACCEL_STATE_ENABLED) { + mw_acc_i2c_read(KIONIX_XOUT_L, rdata, 6); + + *x = rdata[0] | (rdata[1] << 8); + *y = rdata[2] | (rdata[3] << 8); + *z = rdata[4] | (rdata[5] << 8); + } else { + *x = 0; + *y = 0; + *z = 0; + } +} + +void mw_acc_handle_irq(void) +{ + uint8_t sdata, srcreg1, srcreg2; +#if defined MW_DEVBOARD_V2 + char tstr[16]; +#endif + + if (AccelState != ACCEL_STATE_ENABLED) + return; + + mw_acc_i2c_read(KIONIX_INT_SRC_REG1, &srcreg1, 1); +#if defined MW_DEVBOARD_V2 + snprintf(tstr, 16, "accsrc1: 0x%02x\n", srcreg1); + debug_uart_tx(tstr); +#endif + mw_acc_i2c_read(KIONIX_INT_SRC_REG2, &srcreg2, 1); +#if defined MW_DEVBOARD_V2 + snprintf(tstr, 16, "accsrc2: 0x%02x\n", srcreg2); + debug_uart_tx(tstr); +#endif + if (srcreg1 & INT_TAP_SINGLE) { + }; + if (srcreg1 & INT_TAP_DOUBLE) { + }; + if (srcreg2 & INT_WUFS) { + int16_t x, y, z; + mw_acc_read(&x, &y, &z); + oswald_handle_accel_event((int8_t)(x / (32768 / 255)), (int8_t)(y / (32768 / 255)), (int8_t)(z / (32768 / 255))); + } + + mw_acc_i2c_read(KIONIX_INT_REL, &sdata, 1); +} + diff --git a/metawatch/mw_acc.h b/metawatch/mw_acc.h new file mode 100644 index 0000000..2acf7c7 --- /dev/null +++ b/metawatch/mw_acc.h @@ -0,0 +1,120 @@ +#ifndef _MW_ACC_H +#define _MW_ACC_H + +#define KIONIX_DEVICE_ADDRESS ( 0x0F ) + +/* KIONIX accelerometer register addresses */ +#define KIONIX_XOUT_HPF_L ( 0x00 ) +#define KIONIX_XOUT_HPF_H ( 0x01 ) +#define KIONIX_YOUT_HPF_L ( 0x02 ) +#define KIONIX_YOUT_HPF_H ( 0x03 ) +#define KIONIX_ZOUT_HPF_L ( 0x04 ) +#define KIONIX_ZOUT_HPF_H ( 0x05 ) +#define KIONIX_XOUT_L ( 0x06 ) +#define KIONIX_XOUT_H ( 0x07 ) +#define KIONIX_YOUT_L ( 0x08 ) +#define KIONIX_YOUT_H ( 0x09 ) +#define KIONIX_ZOUT_L ( 0x0A ) +#define KIONIX_ZOUT_H ( 0x0B ) +#define KIONIX_DCST_RESP ( 0x0C ) +#define KIONIX_WHO_AM_I ( 0x0F ) +#define KIONIX_TILT_POS_CUR ( 0x10 ) +#define KIONIX_TILT_POS_PRE ( 0x11 ) +#define KIONIX_INT_SRC_REG1 ( 0x15 ) +#define KIONIX_INT_SRC_REG2 ( 0x16 ) +#define KIONIX_STATUS_REG ( 0x18 ) +#define KIONIX_INT_REL ( 0x1A ) +#define KIONIX_CTRL_REG1 ( 0x1B ) +#define KIONIX_CTRL_REG2 ( 0x1C ) +#define KIONIX_CTRL_REG3 ( 0x1D ) +#define KIONIX_INT_CTRL_REG1 ( 0x1E ) +#define KIONIX_INT_CTRL_REG2 ( 0x1F ) +#define KIONIX_INT_CTRL_REG3 ( 0x20 ) +#define KIONIX_DATA_CTRL_REG ( 0x21 ) +#define KIONIX_TILT_TIMER ( 0x28 ) +#define KIONIX_WUF_TIMER ( 0x29 ) +#define KIONIX_TDT_TIMER ( 0x2B ) +#define KIONIX_TDT_H_THRESH ( 0x2C ) +#define KIONIX_TDT_L_THRESH ( 0x2D ) +#define KIONIX_TDT_TAP_TIMER ( 0x2E ) +#define KIONIX_TDT_TOTAL_TIMER ( 0x2F ) +#define KIONIX_TDT_LATENCY_TIMER ( 0x30 ) +#define KIONIX_TDT_WINDOW_TIMER ( 0x31 ) +#define KIONIX_SELF_TEST ( 0x3A ) +#define KIONIX_WUF_THRESH ( 0x5A ) +#define KIONIX_TILT_ANGLE ( 0x5C ) +#define KIONIX_HYST_SET ( 0x5F ) + +/* CTRL_REG1 */ +#define PC1_STANDBY_MODE ( 0 << 7 ) +#define PC1_OPERATING_MODE ( 1 << 7 ) +#define RESOLUTION_8BIT ( 0 << 6 ) +#define RESOLUTION_12BIT ( 1 << 6 ) +#define DRDYE_DATA_AVAILABLE ( 1 << 5 ) +#define WUF_ENABLE ( 1 << 1 ) +#define TAP_ENABLE_TDTE ( 1 << 2 ) +#define TILT_ENABLE_TPE ( 1 << 0 ) + +/* CTRL_REG2 */ +#define TILT_LEM (1 << 5 ) +#define TILT_RIM (1 << 4 ) +#define TILT_DOM (1 << 3 ) +#define TILT_UPM (1 << 2 ) +#define TILT_FDM (1 << 1 ) +#define TILT_FUM (1 << 0 ) + +/* CTRL_REG3 */ +#define SRST ( 1 << 7 ) +#define TILT_ODR_1_6HZ ( 0 << 5 ) +#define TILT_ODR_6_3HZ ( 1 << 5 ) +#define TILT_ODR_12_5HZ ( 2 << 5 ) +#define TILT_ODR_50HZ ( 3 << 5 ) +#define DCST ( 1 << 4 ) +#define TAP_ODR_50HZ ( 0 << 2 ) +#define TAP_ODR_100HZ ( 1 << 2 ) +#define TAP_ODR_200HZ ( 2 << 2 ) +#define TAP_ODR_400HZ ( 3 << 2 ) +#define WUF_ODR_25HZ ( 0 << 0 ) +#define WUF_ODR_50HZ ( 1 << 0 ) +#define WUF_ODR_100HZ ( 2 << 0 ) +#define WUF_ODR_200HZ ( 3 << 0 ) + +/* INT_CTRL_REG1 */ +#define IEN ( 1 << 5 ) +#define IEA ( 1 << 4 ) +#define IEL ( 1 << 3 ) +#define IEU ( 1 << 2 ) + +/* INT_CTRL_REG2 */ +#define XBW ( 1 << 7 ) +#define YBW ( 1 << 6 ) +#define ZBW ( 1 << 5 ) + +/* INT_CTRL_REG3 */ +#define TLEM (1 << 5) +#define TRIM (1 << 4) +#define TDOM (1 << 3) +#define TUPM (1 << 2) +#define TFDM (1 << 1) +#define TFUM (1 << 0) + +/* INT_SRC_REG2 */ +#define INT_TPS 0x01 +#define INT_WUFS 0x02 +#define INT_TAP_SINGLE 0x04 +#define INT_TAP_DOUBLE 0x08 +#define INT_DRDY 0x10 + + +void mw_acc_init_i2c(void); +void mw_acc_disable_i2c(void); +void mw_acc_i2c_read(const uint8_t RegisterAddress, uint8_t *pData, const uint8_t Length); +void mw_acc_i2c_write(uint8_t RegisterAddress, uint8_t *pData, uint8_t Length); + +void mw_acc_init(void); +void mw_acc_enable(void); +void mw_acc_disable(void); +void mw_acc_read(int16_t *x, int16_t *y, int16_t *z); +void mw_acc_handle_irq(void); + +#endif diff --git a/metawatch/mw_adc.c b/metawatch/mw_adc.c new file mode 100644 index 0000000..d5db450 --- /dev/null +++ b/metawatch/mw_adc.c @@ -0,0 +1,101 @@ +#include +#include +#include + +#include "mw_main.h" + +#define HARDWARE_CFG_INPUT_CHANNEL ( ADC12INCH_13 ) +#define BATTERY_SENSE_INPUT_CHANNEL ( ADC12INCH_15 ) +#define LIGHT_SENSE_INPUT_CHANNEL ( ADC12INCH_1 ) + +#define ENABLE_ADC() { ADC12CTL0 |= ADC12ON; ADC12CTL0 |= ADC12ENC + ADC12SC; } +#define DISABLE_ADC() { ADC12CTL0 &= ~ADC12ENC; ADC12CTL0 &= ~ADC12ON; } +#define CLEAR_START_ADDR() { ADC12CTL1 &= 0x0FFF; } + +const double CONVERSION_FACTOR_BATTERY = ((24300.0+38300.0)*2.5*1000.0)/(4095.0*24300.0); +#define BATTERY_FULL_LEVEL (4140) +#define BATTERY_CRITICAL_LEVEL (3300) +#define BATTERY_LEVEL_RANGE (BATTERY_FULL_LEVEL - BATTERY_CRITICAL_LEVEL) + +/*! conversion factor */ +const double CONVERSION_FACTOR = 2.5*10000.0/4096.0; + + +void mw_init_adc(void) +{ + REFCTL0 = REFMSTR | REFTCOFF; + + LIGHT_SENSE_INIT(); + BATTERY_SENSE_INIT(); + HARDWARE_CFG_SENSE_INIT(); + + /* allow conditional request for modosc */ + UCSCTL8 |= MODOSCREQEN; + + /* select ADC12SC bit as sample and hold source (00) + * and use pulse mode + * use modosc / 8 because frequency must be 0.45 MHz to 2.7 MHz (0.625 MHz) + */ + ADC12CTL1 = ADC12CSTARTADD_0 + ADC12SHP + ADC12SSEL_0 + ADC12DIV_7; + + /* 12 bit resolution, only use reference when doing a conversion */ + ADC12CTL2 = ADC12TCOFF + ADC12RES_2 + ADC12REFBURST; + + /* setup input channels */ + ADC12MCTL0 = HARDWARE_CFG_INPUT_CHANNEL + ADC12EOS; + ADC12MCTL1 = BATTERY_SENSE_INPUT_CHANNEL + ADC12EOS; + ADC12MCTL2 = LIGHT_SENSE_INPUT_CHANNEL + ADC12EOS; +} + +unsigned int mw_get_battery_adc_val(void) +{ + BATTERY_SENSE_ENABLE(); + + /* low_bat_en assertion to bat_sense valid is ~100 ns */ + /* Start battery sense conversion */ + CLEAR_START_ADDR(); + ADC12CTL1 |= ADC12CSTARTADD_1; + ENABLE_ADC(); + + /* WaitForAdcBusy(); */ + while (ADC12CTL1 & ADC12BUSY) + nop(); + + /* Convert the ADC count for the battery input into a voltage + * ADC12MEM1: Counts Battery Voltage in ADC counts + * Result: Battery voltage in millivolts */ + BATTERY_SENSE_DISABLE(); + + return (unsigned int)(CONVERSION_FACTOR_BATTERY * (double)ADC12MEM1); +} + +uint8_t mw_get_battery_percentage_from_val(unsigned int BattVal) +{ + if (BattVal > BATTERY_FULL_LEVEL) + BattVal = BATTERY_FULL_LEVEL; + if (BattVal < BATTERY_CRITICAL_LEVEL) + BattVal = 0; + else + BattVal -= BATTERY_CRITICAL_LEVEL; + BattVal = (BattVal > 0) ? (BattVal * 10 / (BATTERY_LEVEL_RANGE / 10)) : 0; + + return (unsigned char)BattVal; +} + +uint16_t mw_get_amblight_adc_val(void) +{ + LIGHT_SENSE_ENABLE(); + + CLEAR_START_ADDR(); + ADC12CTL1 |= ADC12CSTARTADD_2; + ENABLE_ADC(); + + /* WaitForAdcBusy(); */ + while (ADC12CTL1 & ADC12BUSY) + nop(); + + LIGHT_SENSE_DISABLE(); + + return ADC12MEM2; +} + diff --git a/metawatch/mw_adc.h b/metawatch/mw_adc.h new file mode 100644 index 0000000..8ab0511 --- /dev/null +++ b/metawatch/mw_adc.h @@ -0,0 +1,10 @@ +#ifndef _MW_ADC_H +#define _MW_ADC_H + +void mw_init_adc(void); +unsigned int mw_get_battery_adc_val(void); +uint8_t mw_get_battery_percentage_from_val(unsigned int BatVal); +uint16_t mw_get_amblight_adc_val(void); + +#endif + diff --git a/metawatch/mw_bt.c b/metawatch/mw_bt.c new file mode 100644 index 0000000..ace18e9 --- /dev/null +++ b/metawatch/mw_bt.c @@ -0,0 +1,295 @@ +#include +#include +#include +#include +#include + +#include "mw_main.h" + +#include "mw_uart.h" +#include "mw_bt.h" +#include "bt_hci.h" +#include "bt_l2cap.h" + +#include "bluetooth_init_cc256x.h" + + +static char bt_rx_buf[BT_RX_MAX_SIZE]; +static unsigned char bt_rx_buf_wpos = 0; +static unsigned char bt_rx_buf_rpos = 0; +static uint8_t mw_bt_enabled = 0; + +int mw_bt_get_rxbuf_len(void) +{ + if (bt_rx_buf_rpos > bt_rx_buf_wpos) + return (BT_RX_MAX_SIZE - bt_rx_buf_rpos) + bt_rx_buf_wpos; + else + return bt_rx_buf_wpos - bt_rx_buf_rpos; +} + +const unsigned char *mw_bt_get_rx_buf(unsigned char **rpos, unsigned char *len) +{ + *rpos = &bt_rx_buf_rpos; + + if (bt_rx_buf_rpos > bt_rx_buf_wpos) + *len = (BT_RX_MAX_SIZE - bt_rx_buf_rpos) + bt_rx_buf_wpos; + else + *len = bt_rx_buf_wpos - bt_rx_buf_rpos; + + // if we reach high water mark raise RTS to stop more data + if (*len > (BT_RX_MAX_SIZE-(BT_RX_MAX_SIZE/10))) { + debug_uart_tx("BT UART RTS\n"); + BT_IO_POUT |= BT_IO_RTS; // low == ready, high == !ready + } else { + BT_IO_POUT &= ~BT_IO_RTS; // low == ready, high == !ready + } + + return (unsigned char *)bt_rx_buf; +} + +#pragma vector=USCI_A1_VECTOR +__interrupt void UCA1_ISR (void) +{ + switch (UCA1IV) { + case 2: // RXIFG + /* clear IRQ flag */ + //UCA1IFG &= ~UCRXIFG; + /* wake up to handle the received char */ + if (UCA1STAT & UCRXERR) { + debug_uart_tx("BT UART RXERR: "); + if (UCA1STAT & UCOE) + debug_uart_tx("overrun "); + if (UCA1STAT & UCPE) + debug_uart_tx("parity err "); + if (UCA1STAT & UCFE) + debug_uart_tx("frm-err "); + debug_uart_tx("\n"); + } + bt_rx_buf[bt_rx_buf_wpos++] = UCA1RXBUF; + bt_rx_buf_wpos %= BT_RX_MAX_SIZE; + // LPM3_EXIT; + LPM3_EXIT_ISR(); + _event_src |= BT_UART_RCV_EVENT; + break; + case 4: // TXIFG + debug_uart_tx("BT UART TX IRQ - huh?\n"); + break; + default: + break; + }; +} + +void mw_init_bt_uart(const bt_uart_baud_t baud) +{ + UCA1CTL1 = UCSWRST; + + UCA1CTL1 |= UCSSEL__SMCLK; + + switch (baud) { + case BT_UART_BD115200: + default: + UCA1BR0 = 138; + UCA1MCTL = UCBRS_7 + UCBRF_0; + break; + }; + UCA1STAT = 0; + // UCA1CTL0 = UCMODE_0; // UART mode + // UCA1CTL0 &= ~UC7BIT; // 8bit char + //UCA1CTL0 |= UCRXEIE; + + UCA1CTL1 &= ~UCSWRST; + + /* clear interrup flags */ + UCA1IFG = 0; + UCA1IE = UCRXIE; +} + +#if 0 // Does never finish, presumably trigger does not trigger, unknown :( +void mw_bt_uart_tx(const void *buf, const unsigned int len) +{ + UCA1IE &= UCTXIE; + + DMACTL0 = DMA0TSEL_21; + + DMA0DA = (unsigned int) &UCA1TXBUF; + DMA0SA = (uint32_t) buf; + DMA0SZ = len; + + //DMA0CTL = 0x03F0; + DMA0CTL = DMADT_1 | DMASRCINCR_3 | DMASBDB | DMALEVEL | DMAIE; + UCA1IFG &= ~UCTXIFG; + DMA0CTL |= DMAEN; + + while ((DMA0CTL & DMAIFG) == 0 && (DMA0CTL & DMAABORT) == 0) + nop(); +} +#else +int mw_bt_uart_tx(const void *buf, const unsigned int len) +{ + unsigned int pos, i; + // char txstr[8]; + + pos = 0; + // debug_uart_tx("BT tx: "); + while (pos < len) { + // watch for CTS to be low + i = 0; + while ((BT_IO_PIN & BT_IO_CTS) && (i < 1000)) { + __delay_cycles(16000); + i++; + if (i >= 1000) + return -1; + // nop(); + } + + // do not start a transfer if UART is busy, e.g. rx-ing + while (UCA1STAT & UCBUSY) + nop(); + + UCA1TXBUF = *(unsigned char *) (buf+pos); + // debug_uart_tx_char(*(unsigned char *) (buf+pos)); + // snprintf(txstr, 8, "0x%02x ", *(unsigned char *) (buf+pos)); + // debug_uart_tx(txstr); + pos++; + while ((UCA1IFG & UCTXIFG) == 0) + nop(); + } + while (UCA1STAT & UCBUSY) + nop(); + + return len; +} +#endif + +static int load_cc256x_init_script(void) +{ + uint32_t pos; + unsigned char *tptr; + int tlen; + + pos = 0; + while (pos < cc256x_init_script_size) { + if (_event_src != 0) + handle_event(); + tptr = (unsigned char *)(cc256x_init_script + pos); + tlen = mw_bt_uart_tx(tptr, 4 + tptr[3]); + if (tlen < 0) + return -1; + pos += tlen /*4 + tptr[3]*/; + // each init script part is one HCI command so wait for reply + if (_event_src != 0) + handle_event(); + } + return 0; +} + +void mw_enable_bt(void) +{ + int i; + + /* make sure it resets */ + BT_SHUTDOWN(); + __delay_cycles(16000); + + /* enable 32kHz ACLK output to BT module */ + P11DIR |= BIT0; + P11SEL |= BIT0; + + // wait for clock to stabilize + __delay_cycles(16000); + + // disable the IRQ on CTS, later used to get a wakeup IRQ from eHCILL + // will be enabled when going to sleep + P1IE &= ~BT_IO_CTS; + P1IES &= ~BT_IO_CTS; + + BT_IO_PDIR &= ~(BT_IO_CTS | BT_IO_PIN1 | BT_IO_PIN2 | BT_IO_CLKREQ); + BT_IO_PDIR |= BT_IO_RTS; + + BT_IO_POUT &= ~(BT_IO_CTS | BT_IO_PIN1 | BT_IO_PIN2 | BT_IO_CLKREQ); + BT_IO_POUT &= ~BT_IO_RTS; // low == ready, high == !ready + + BT_IO_REN |= BT_IO_CTS; // enable pull-down on CTS, POUT-CTS is 0 already + + /* setup UART pins */ + BT_UART_PSEL |= BT_UART_TX_PIN | BT_UART_RX_PIN; + // P5OUT |= BT_UART_TX_PIN | BT_UART_RX_PIN; + // P5REN |= BT_UART_TX_PIN | BT_UART_RX_PIN; + + mw_init_bt_uart(BT_UART_BD115200); + + bt_rx_buf_wpos = 0; + bt_rx_buf_rpos = 0; + + /* release BT reset pin */ + BT_ENABLE(); + + for (i=0; i<1000; i++) { + __delay_cycles(16000); + if ((BT_IO_PIN & BT_IO_CTS) == 0) // when CTS goes low module is ready + break; + } + if (i>=1000) { + debug_uart_tx("Timeout waiting for CC256x to lower CTS\n"); + mw_bt_enabled = 0; + } else { + debug_uart_tx("CC256x CTS low - uploading init\n"); + + // the init script consists of HCI cmds so HCI must be setup before + bt_hci_init(); + + // give it some more time before anyone sends data + for (i=0; i<10; i++) { + __delay_cycles(16000); + } + if (load_cc256x_init_script() < 0) { + debug_uart_tx("init upload failed!\n"); + return; + } + + __delay_cycles(32000); + + debug_uart_tx("init uploaded\n"); + + init_l2cap(); + + if (_event_src != 0) + handle_event(); + + mw_bt_enabled = 1; + } +} + +void mw_disable_bt(void) +{ + mw_bt_enabled = 0; + + // disable the IRQ on CTS + P1IE &= ~BT_IO_CTS; + P1IES &= ~BT_IO_CTS; + // BT_IO_REN &= ~BT_IO_CTS; // disable pull-down on CTS + P1IFG &= ~BT_IO_CTS; + + /* disable UART RX interrupt */ + UCA1IE &= ~UCRXIE; + + /* disable UART pins */ + BT_UART_PSEL &= ~(BT_UART_TX_PIN | BT_UART_RX_PIN); + + /* set BT reset pin */ + BT_SHUTDOWN(); + + /* disable 32kHz ACLK output to BT module */ + P11DIR &= ~BIT0; + P11SEL &= ~BIT0; + + /* make all I/O Pins inputs so we do not drive against a "deaf" module */ + BT_IO_PDIR &= ~(BT_IO_RTS | BT_IO_CTS | BT_IO_PIN1 | BT_IO_PIN2 | BT_IO_CLKREQ); + BT_IO_POUT &= ~(BT_IO_RTS | BT_IO_CTS | BT_IO_PIN1 | BT_IO_PIN2 | BT_IO_CLKREQ); +} + +uint8_t mw_bt_is_enabled(void) +{ + return mw_bt_enabled; +} + diff --git a/metawatch/mw_bt.h b/metawatch/mw_bt.h new file mode 100644 index 0000000..913a9ef --- /dev/null +++ b/metawatch/mw_bt.h @@ -0,0 +1,67 @@ +#ifndef _MW_BT_H +#define _MW_BT_H + +#define BT_RST_PIN BIT3 +#define BT_RST_PSEL P10SEL +#define BT_RST_POUT P10OUT +#define BT_RST_PDIR P10DIR + +#define BT_IO_PSEL P1SEL +#define BT_IO_RTS BIT0 +#define BT_IO_CTS BIT3 +#define BT_IO_POUT P1OUT +#define BT_IO_PIN P1IN +#define BT_IO_PDIR P1DIR +#define BT_IO_REN P1REN + +#define BT_IO_PIN1 BIT5 +#define BT_IO_PIN2 BIT6 +#define BT_IO_CLKREQ BIT4 + +#define BT_SHUTDOWN() { BT_RST_POUT &= ~BT_RST_PIN; } +#define BT_ENABLE() { BT_RST_POUT |= BT_RST_PIN; } + +#define BT_UART_PSEL P5SEL +#define BT_UART_PDIR P5DIR +#define BT_UART_REN P5REN +#define BT_UART_POUT P5OUT +#define BT_UART_TX_PIN BIT6 +#define BT_UART_RX_PIN BIT7 + +#define CONFIG_BT_PINS() { \ + BT_RST_PSEL &= ~BT_RST_PIN; \ + BT_RST_PDIR |= BT_RST_PIN; \ + BT_SHUTDOWN(); \ + BT_IO_PSEL &= ~(BT_IO_RTS | BT_IO_CTS | BT_IO_PIN1 | BT_IO_PIN2 | BT_IO_CLKREQ); \ + BT_IO_PDIR &= ~(BT_IO_RTS | BT_IO_CTS | BT_IO_PIN1 | BT_IO_PIN2 | BT_IO_CLKREQ); \ + BT_IO_POUT &= ~(BT_IO_RTS | BT_IO_CTS | BT_IO_PIN1 | BT_IO_PIN2 | BT_IO_CLKREQ); \ + BT_UART_PSEL &= ~(BT_UART_TX_PIN | BT_UART_RX_PIN); \ + BT_UART_PDIR &= ~(BT_UART_TX_PIN | BT_UART_RX_PIN); \ + BT_UART_REN |= BT_UART_TX_PIN | BT_UART_RX_PIN; \ + BT_UART_POUT |= BT_UART_TX_PIN | BT_UART_RX_PIN; \ +} + +void mw_enable_bt(void); +void mw_disable_bt(void); + +typedef enum { + BT_UART_BD19200 = 0, + BT_UART_BD38400, + BT_UART_BD57600, + BT_UART_BD115200, + BT_UART_BD234000, +} bt_uart_baud_t; + +#define BT_MW_DEVICE_CLASS 0x842704 /* Limited discovery, Rendering, Information, Wearable, Wrist Watch */ +#define BT_RX_MAX_SIZE 255 + +void mw_init_bt_uart(const bt_uart_baud_t baud); + +int mw_bt_uart_tx(const void *buf, const unsigned int len); +// extern char BT_UART_RX_CHAR; + +int mw_bt_get_rxbuf_len(void); +const unsigned char *mw_bt_get_rx_buf(unsigned char **rpos, unsigned char *len); +unsigned char bt_feed_packet_data(unsigned char pdata); +uint8_t mw_bt_is_enabled(void); +#endif diff --git a/metawatch/mw_lcd.c b/metawatch/mw_lcd.c new file mode 100644 index 0000000..2082a6d --- /dev/null +++ b/metawatch/mw_lcd.c @@ -0,0 +1,293 @@ +#include +#include + +#include "mw_main.h" + +#include "mw_lcd.h" +#include "mw_uart.h" + +// SMCLK = 16MHz -> divide by 16 to get 1 MHz SPI clock, +// 1MHz maximum according to LCD spec +//#define SPI_PRESCALE_L 0x10 +// currently we only run @1MHz +#define SPI_PRESCALE_L 0x10 +#define SPI_PRESCALE_H 0x00 + +#define LCD_STATIC_CMD 0x00 +#define LCD_WRITE_CMD 0x01 +#define LCD_CLEAR_CMD 0x04 + +static const unsigned char LCD_CLEAR_COMMAND[] = {LCD_CLEAR_CMD, 0x00}; +#define LCD_CLEAR_CMD_SIZE 0x02 +static const unsigned char LCD_STATIC_COMMAND[] = {LCD_STATIC_CMD, 0x00}; +#define LCD_STATIC_CMD_SIZE 0x02 + + +/* the LCD frame buffer, 96 lines */ +tLcdLine lcd_buf[96]; + + +#define LCD_DMA +/* errata - DMA variables cannot be function scope */ +#ifdef LCD_DMA +static unsigned char LcdDmaBusy = 0; +#endif + + +void memfill(void *target, unsigned char val, unsigned int count) +{ + while (count--) { + *(unsigned char *)(target+count) = val; + } +} + +void mw_lcd_init(void) +{ + int i; + + /* basic I/O setup */ + ENABLE_LCD_POWER(); + CONFIG_LCD_PINS(); + + // DISABLE_LCD_ENABLE(); + ENABLE_LCD_ENABLE(); + + /* Put state machine in reset while it is configured */ + LCD_SPI_UCBxCTL1 |= UCSWRST; + + /* + * 3-pin, 8-bit SPI master, Clock polarity low + * Clock phase set, least sig bit first + * SMCLK is the clock source + * set the clock prescaler + */ + LCD_SPI_UCBxCTL0 |= UCMST+ UCCKPH + UCSYNC; + + LCD_SPI_UCBxCTL1 |= UCSSEL_2; + LCD_SPI_UCBxBR0 = SPI_PRESCALE_L; + LCD_SPI_UCBxBR1 = SPI_PRESCALE_H; + + /* remove reset */ + LCD_SPI_UCBxCTL1 &= ~UCSWRST; + + /* pre-fill the frame-buffer */ + for (i=0; i<96; i++) { + lcd_buf[i].Row = i+1; + memfill(lcd_buf[i].Data, 0xff, 12); + // lcd_buf[i].Data[0] = i; + lcd_buf[i].Dummy = 0x00; + }; +} + +static void mw_lcd_write_line(const void *pData, unsigned char Size) +{ +#ifndef xLCD_DMA + unsigned char Index; +#endif + + LCD_CS_ASSERT(); + +#ifdef xLCD_DMA + LcdDmaBusy = 1; + + /* USCIB0 TXIFG is the DMA trigger + * DMACTL1 controls dma2 and [dma3] + */ + DMACTL1 = DMA2TSEL_19; + + DMA2SA = (unsigned int) pData; + DMA2DA = (unsigned int) &LCD_SPI_UCBxTXBUF; + + DMA2SZ = (unsigned int)Size; + + /* + * single transfer, increment source address, source byte and dest byte, + * level sensitive, enable interrupt, clear interrupt flag + */ + DMA2CTL = DMADT_0 + DMASRCINCR_3 + DMASBDB + DMALEVEL + DMAIE; + + /* start the transfer */ + DMA2CTL |= DMAEN; + + while (LcdDmaBusy) + nop(); +#else +// debug_uart_tx("+wl1"); + for ( Index = 0; Index < Size; Index++ ) { + LCD_SPI_UCBxTXBUF = ((unsigned char *)pData)[Index]; +// debug_uart_tx("."); + while (!(LCD_SPI_UCBxIFG & UCTXIFG)) { +// debug_uart_tx("+"); + nop(); + } + } +// debug_uart_tx("\n+wl2\n"); +#endif + + /* wait for shift to complete ( ~3 us ) */ + while (LCD_SPI_UCBxSTAT & 0x01) { + nop(); +// debug_uart_tx("."); + }; + + /* now the chip select can be deasserted */ + LCD_CS_DEASSERT(); +// debug_uart_tx("\n-wl\n"); +} + + +void mw_lcd_static_mode(void) +{ + mw_lcd_write_line(LCD_STATIC_COMMAND, LCD_STATIC_CMD_SIZE); +} + +void mw_lcd_clear(void) +{ + unsigned char i; + + mw_lcd_write_line(LCD_CLEAR_COMMAND, LCD_CLEAR_CMD_SIZE); + + /* pre-fill the frame-buffer */ + for (i=0; i<96; i++) { + memfill(lcd_buf[i].Data, 0xff, 12); + }; +} + +void mw_lcd_clear_fb(void) +{ + unsigned char i; + + /* pre-fill the frame-buffer */ + for (i=0; i<96; i++) { +#if LCD_BLACK == 0 + memfill(lcd_buf[i].Data, 0xff, 12); +#else + memfill(lcd_buf[i].Data, 0x00, 12); +#endif + }; +} + +#pragma vector=DMA_VECTOR +__interrupt void DMA_ISR (void) +{ + switch (DMAIV) { + case 0: + DMA0CTL &= ~DMAEN; // disable + DMA0CTL &= ~DMAIFG; // clear IRQ flag + debug_uart_tx("DMA0 IRQ\n"); + break; + case 2: + debug_uart_tx("DMA1 IRQ\n"); + break; + case 4: + debug_uart_tx("DMA2b IRQ\n"); + break; + case 6: + DMA2CTL &= ~DMAEN; // disable + DMA2CTL &= ~DMAIFG; // clear IRQ flag +#ifdef LCD_DMA + LcdDmaBusy = 0; +#endif + //LED7_TOGGLE(); + // debug_uart_tx("DMA2 IRQ\n"); + break; + } +} + +/* writes the complete internal framebuffer to the LCD */ +void mw_lcd_update_screen(void) +{ +//#ifndef LCD_DMA + unsigned int i,j; +//#endif + +// debug_uart_tx("uscr1\n"); + + // invert the buffer + if (0) { + for (i=0; i<96; i++) { + for ( j = 0; j < 12; j++ ) { + lcd_buf[i].Data[j] = ~lcd_buf[i].Data[j]; + } + } + } + + LCD_CS_ASSERT(); + + /* send WRITE command */ + LCD_SPI_UCBxTXBUF = LCD_WRITE_CMD; + while (!(LCD_SPI_UCBxIFG & UCTXIFG)) + nop(); + +// debug_uart_tx("uscr2\n"); + +#ifdef LCD_DMA + LcdDmaBusy = 1; + + /* USCIB0 TXIFG is the DMA trigger + * DMACTL1 controls dma2 and [dma3] + */ + DMACTL1 = DMA2TSEL_19; + + DMA2SA = (unsigned int) lcd_buf; + DMA2DA = (unsigned int) &LCD_SPI_UCBxTXBUF; + + DMA2SZ = 96 * sizeof(tLcdLine); + + /* + * single transfer, increment source address, source byte and dest byte, + * level sensitive, enable interrupt, clear interrupt flag + */ + DMA2CTL = DMADT_0 + DMASRCINCR_3 + DMASBDB + DMALEVEL + DMAIE; + + /* start the transfer */ + DMA2CTL |= DMAEN; + +// debug_uart_tx("uscr3\n"); + + // LED7_OFF(); + while (LcdDmaBusy) + nop(); + +// debug_uart_tx("uscr4\n"); +#else + for (i=0; i<96; i++) { + for ( j = 0; j < sizeof(tLcdLine); j++ ) { + LCD_SPI_UCBxTXBUF = ((unsigned char *)(&lcd_buf[i]))[j]; + while (!(LCD_SPI_UCBxIFG & UCTXIFG)) + nop(); + } + } +#endif + + /* send final trailer byte */ + LCD_SPI_UCBxTXBUF = 0x00; + while (!(LCD_SPI_UCBxIFG & UCTXIFG)) + nop(); + +// debug_uart_tx("uscr5\n"); + /* wait for shift to complete ( ~3 us ) */ + while (LCD_SPI_UCBxSTAT & 0x01) + nop(); + +// debug_uart_tx("uscr6\n"); + LCD_CS_DEASSERT(); + + mw_lcd_static_mode(); +} + +void mw_lcd_draw_pixel(const uint8_t x, const uint8_t y, const uint8_t color) +{ + switch (color) { + case 1: + lcd_buf[y].Data[x/8] |= 1 << (x % 8); + break; + case 0: + lcd_buf[y].Data[x/8] &= ~(1 << (x % 8)); + break; + case 2: + lcd_buf[y].Data[x/8] ^= 1 << (x % 8); + break; + } +} + diff --git a/metawatch/mw_lcd.h b/metawatch/mw_lcd.h new file mode 100644 index 0000000..0113c81 --- /dev/null +++ b/metawatch/mw_lcd.h @@ -0,0 +1,31 @@ +#ifndef _MW_LCD_H +#define _MW_LCD_H + +typedef struct +{ + unsigned char Row; /* row number for LCD command */ + unsigned char Data[12]; /* 12*8 = 96bit */ + unsigned char Dummy; /* 0x00 dummy byte to latch data into LCD */ +} tLcdLine; + +extern tLcdLine lcd_buf[]; + +void memfill(void *target, unsigned char val, unsigned int count); + +void mw_lcd_init(void); +void mw_lcd_clear(void); +void mw_lcd_clear_fb(void); +void mw_lcd_update_screen(void); + +#if 0 +#define LCD_BLACK 0 +#define LCD_WHITE 1 +#else +#define LCD_BLACK 1 +#define LCD_WHITE 0 +#endif +#define LCD_XOR 2 +void mw_lcd_draw_pixel(const uint8_t x, const uint8_t y, const uint8_t color); + +#endif + diff --git a/metawatch/mw_main.c b/metawatch/mw_main.c new file mode 100644 index 0000000..07f8ba5 --- /dev/null +++ b/metawatch/mw_main.c @@ -0,0 +1,738 @@ +#include +#include +#include +#include + +#include "F5xx_F6xx_Core_Lib/HAL_PMM.h" +#include "F5xx_F6xx_Core_Lib/HAL_UCS.h" + +#include "mw_main.h" + +#include "mw_uart.h" +#include "mw_lcd.h" +#include "mw_bt.h" +#include "mw_adc.h" +#include "mw_bt.h" +#include "mw_acc.h" +#include "bt_hci.h" +#include "bt_l2cap.h" + +#include "oswald_main.h" +#include "oswald_hal.h" + +#include "bluetooth_init_cc256x.h" + +uint16_t _event_src = 0; + +#define HARDWARE_REVISION_ADDRESS (0x1a07) + +uint8_t GetMsp430HardwareRevision(void) +{ + uint8_t *pDeviceType = (uint8_t *)(uint8_t *)HARDWARE_REVISION_ADDRESS; + + return pDeviceType[0]+'1'; +} + +uint8_t DetermineErrata(void) +{ + uint8_t Revision = GetMsp430HardwareRevision(); + + switch (Revision) { + case 'F': + case 'G': + case 'H': + return 0; + break; + default: + return 1; + break; + } +} + +static void set16mhz(void) +{ + UCSCTL0 = 0x00; // Set lowest possible DCOx, MODx + UCSCTL1 = DCORSEL_5; // Select suitable range + UCSCTL2 = 488 + FLLD_1; // Set DCO Multiplier + UCSCTL4 = SELA__XT1CLK | SELS__DCOCLKDIV | SELM__DCOCLKDIV ; + + // Worst-case settling time for the DCO when the DCO range bits have been + // changed is n x 32 x 32 x f_FLL_reference. See UCS chapter in 5xx UG + // for optimization. + // 32 x 32 x / f_FLL_reference (32,768 Hz) = .03125 = t_DCO_settle + // t_DCO_settle / (1 / 18 MHz) = 562500 = counts_DCO_settle + + // __delay_cycles(562500); + int i; + for (i=0;i<10;i++){ + __delay_cycles(56250); + } +} + +static unsigned char PMM15Check(void) +{ + // First check if SVSL/SVML is configured for fast wake-up + if ((!(SVSMLCTL & SVSLE)) || ((SVSMLCTL & SVSLE) && (SVSMLCTL & SVSLFP)) || + (!(SVSMLCTL & SVMLE)) || ((SVSMLCTL & SVMLE) && (SVSMLCTL & SVMLFP))) + { + // Next Check SVSH/SVMH settings to see if settings are affected by PMM15 + if ((SVSMHCTL & SVSHE) && (!(SVSMHCTL & SVSHFP))) + { + if ( (!(SVSMHCTL & SVSHMD)) || + ((SVSMHCTL & SVSHMD) && (SVSMHCTL & SVSMHACE)) ) + return 1; // SVSH affected configurations + } + + if ((SVSMHCTL & SVMHE) && (!(SVSMHCTL & SVMHFP)) && (SVSMHCTL & SVSMHACE)) + return 1; // SVMH affected configurations + } + + return 0; // SVS/M settings not affected by PMM15 +} + +#define configCPU_CLOCK_HZ ((unsigned long) 16777216) /* 512*32768 */ +#define configTICK_RATE_HZ ((unsigned int)1024) +#define ACLK_MULTIPLIER ((unsigned int)512) + +static void setup_clocks(void) +{ + unsigned long i; + + SetVCore(PMMCOREV_2); + + /* use external oscillator */ + P7SEL |= BIT0 + BIT1; + +#if 1 + if ((UCSCTL6 & XT1DRIVE_3) != XT1DRIVE_3) { + UCSCTL6_L |= XT1DRIVE1_L + XT1DRIVE0_L; + } + i = 50000; + while ((SFRIFG1 & OFIFG) && i--) { + UCSCTL7 &= ~(DCOFFG + XT1LFOFFG + XT1HFOFFG + XT2OFFG); + SFRIFG1 &= ~OFIFG; + } + UCSCTL6 = (UCSCTL6 & ~(XT1DRIVE_3)) |(XT1DRIVE_0); + + set16mhz(); + + UCSCTL8 |= SMCLKREQEN; +#else + // Startup LFXT1 32 kHz crystal + while (LFXT_Start_Timeout(XT1DRIVE_0, 50000) == UCS_STATUS_ERROR) + nop(); + + // select the sources for the FLL reference and ACLK + SELECT_ACLK(SELA__XT1CLK); + SELECT_FLLREF(SELREF__XT1CLK); + + // 512 * 32768 = 16777216 / 1024 + Init_FLL_Settle(configCPU_CLOCK_HZ/configTICK_RATE_HZ, ACLK_MULTIPLIER); + + // Disable FLL loop control +// __bis_SR_register(SCG0); +#endif + // setup for quick wake up from interrupt and + // minimal power consumption in sleep mode + DISABLE_SVSL(); // SVS Low side is turned off + DISABLE_SVSL_RESET(); + + DISABLE_SVML(); // Monitor low side is turned off + DISABLE_SVML_INTERRUPT(); + + DISABLE_SVMH(); // Monitor high side is turned off + DISABLE_SVMH_INTERRUPT(); + + ENABLE_SVSH(); // SVS High side is turned on + ENABLE_SVSH_RESET(); // Enable POR on SVS Event + + SVSH_ENABLED_IN_LPM_FULL_PERF(); // SVS high side Full perf mode, + // stays on in LPM3,enhanced protect + SVSL_ENABLED_IN_LPM_FAST_WAKE(); + + // Wait until high side, low side settled + while ((PMMIFG & SVSMLDLYIFG) == 0 && (PMMIFG & SVSMHDLYIFG) == 0) + nop(); + CLEAR_PMM_IFGS(); + + while (PMM15Check()); + + // Errata PMM17 + if (DetermineErrata()) { + *(unsigned int*)(0x0110) = 0x9602; + *(unsigned int*)(0x0112) |= 0x0800; + } + + /* enable oscillator fault NMI IRQ */ +// SFRIE1 = OFIE; +} + +#if 0 +#pragma vector=PWR_PORT_VECTOR +__interrupt void PWR_ISR (void) +{ + /* clear all possible sources */ + PWR_PORT_IFG &= ~(BAT_CHARGE_STAT1 | BAT_CHARGE_STAT2 | BAT_CHARGE_PWR_BIT); + _event_src |= POWER_SRC_EVENT; + LPM3_EXIT(); + nop(); +} +#endif + +static void mw_init_vibrate_pwm(void) +{ +#ifdef MW_DIGITAL_V2 + // Start with P7.3 as an output + P7OUT &= ~BIT3; // Low when a digital output + P7SEL &= ~BIT3; // P7 option select = false + P7DIR |= BIT3; // P7 outputs + + TA1CTL = 0; + + // No expansion divide + TA1EX0 = 0; + + // do a PWM with 64 total steps. This gives a count up of 32 and + // a count down of 32 + TA1CCR0 = 31; + + // Compare channel 2 is used as output + TA1CCTL2 = OUTMOD_6; // PWM output mode: 6 - toggle/set + TA1CCR2 = 10; // 10 is a 2/3 duty cycle +#endif +} + + +static void setup_pins(void) +{ + CONFIG_SRAM_PINS(); + CONFIGURE_BUTTON_PINS(); +#ifdef MW_DEVBOARD_V2 + CONFIG_LED_PINS(); // debug LEDs on devboard +#endif + DISABLE_LCD_LED(); // frontlight + CONFIG_DEBUG_PINS(); + CONFIG_ACCELEROMETER_PINS(); + //DISABLE_ACCELEROMETER_POWER(); // starts from config 5 and later + ENABLE_ACCELEROMETER_POWER(); // starts from config 5 and later + + HARDWARE_CFG_SENSE_INIT(); + + APPLE_CONFIG(); + APPLE_POWER_DISABLE(); + + CONFIG_BT_PINS(); +// BT_CLK_REQ_CONFIG_AS_OUTPUT_LOW(); +// BT_IO1_CONFIG_AS_OUTPUT_LOW(); +// BT_IO2_CONFIG_AS_OUTPUT_LOW(); + BT_CLK_REQ_CONFIG_AS_INPUT(); + BT_IO1_CONFIG_AS_INPUT(); + BT_IO2_CONFIG_AS_INPUT(); + mw_disable_bt(); + + LIGHT_SENSE_INIT(); + LIGHT_SENSOR_SHUTDOWN(); + + BATTERY_SENSE_INIT(); + BATTERY_SENSE_DISABLE(); + BAT_CHARGE_DIR &= ~(BAT_CHARGE_STAT1 | BAT_CHARGE_STAT2 | BAT_CHARGE_PWR_BIT); + BAT_CHARGE_OUT |= BAT_CHARGE_PWR_BIT | BAT_CHARGE_STAT1 | BAT_CHARGE_STAT2; // pull-up + BAT_CHARGE_REN |= BAT_CHARGE_PWR_BIT; // enable resistors + // BAT_CHARGE_IE |= BAT_CHARGE_PWR_BIT; + BAT_CHARGE_OUT |= BAT_CHARGE_ENABLE_PIN; // !CE, negative logic + BAT_CHARGE_DIR |= BAT_CHARGE_ENABLE_PIN; + + /* disable reset function, enable NMI, do not enable NMI IRQ */ + /* to avoid accidential reset on charger clip connect */ +#ifndef MW_DEVBOARD_V2 // but only on real watch + SFRRPCR &= ~SYSRSTRE; + SFRRPCR |= SYSNMI; +#endif + /* allow debug UART */ +/* + P10SEL &= ~(BIT6 | BIT7); + P10DIR |= BIT6 | BIT7; + P10OUT &= ~(BIT6 | BIT7); +*/ +#ifndef MW_DEVBOARD_V2 + ENABLE_MUX_OUTPUT_CONTROL(); +#ifdef MW_DEBUG_UART + MUX_OUTPUT_SELECTS_SERIAL(); +#else + MUX_OUTPUT_OFF(); +#endif +#endif +} + +#pragma vector=WDT_VECTOR +__interrupt void WDT_ISR (void) +{ + /* eventually we will do something here, not for now */ + _event_src |= WATCHDOG_EVENT; + nop(); +} + +static void setup_wdt(void) +{ +#if 1 + WDTCTL = WDTPW + WDTHOLD; // disable watchdog +#else + WDTCTL = WDT_ADLY_1000; // 1 second timeout + SFRIE1 |= WDTIE; // Enable WDT interrupt +#endif +} + +#if 1 +#pragma vector=UNMI_VECTOR +__interrupt void NMI_ISR (void) +{ +#if defined MW_DEVBOARD_V2 + LED7_TOGGLE(); + debug_uart_tx_char('n'); +#endif + while ((SFRIFG1 & OFIFG)) { + UCSCTL7 &= ~(DCOFFG + XT1LFOFFG + XT1HFOFFG + XT2OFFG); + SFRIFG1 &= ~OFIFG; + } +} +#endif + +#pragma vector=RTC_VECTOR +__interrupt void RTC_ISR (void) +{ + switch (RTCIV) { + case RTCIV_NONE: + debug_uart_tx("RTC none IRQ\n"); + break; + case RTCIV_RTCRDYIFG: + case RTCIV_RTCTEVIFG: + case RTCIV_RTCAIFG: + case RTCIV_RT0PSIFG: + debug_uart_tx("RTC misc IRQ\n"); + break; + case RTCIV_RT1PSIFG: + RTCPS1CTL &= ~RT1PSIFG; + _event_src |= RTC_1HZ_EVENT; + // LPM3_EXIT; + LPM3_EXIT_ISR(); +#if defined MW_DEVBOARD_V2 + LED7_TOGGLE(); +#endif + break; + default: + break; + }; +} + +void setup_rtc(void) +{ + // stop it + RTCCTL01 = RTCHOLD; + + // calibration + RTCCTL2 = 0x00 & 0x3f; + RTCCTL2 |= RTCCALS; + + // Set the counter for RTC mode + RTCCTL01 |= RTCMODE; + + // set 128 Hz rate for prescale 0 interrupt + RTCPS0CTL |= RT0IP_7; + + // enable 1 pulse per second interrupt using prescale 1 + RTCPS1CTL |= RT1IP_6 | RT1PSIE; + + // 1 Hz calibration output + RTCCTL23 |= RTCCALF_3; + + // setting the peripheral selection bit makes the other I/O control a don't care + // P2.4 = 1 Hz RTC calibration output + // Direction needs to be set as output + RTC_1HZ_PORT_SEL |= RTC_1HZ_BIT; + RTC_1HZ_PORT_DIR |= RTC_1HZ_BIT; + + RTCYEAR = (unsigned int) 2013; + RTCMON = (unsigned int) 1; + RTCDAY = (unsigned int) 1; + RTCDOW = (unsigned int) 2; + RTCHOUR = (unsigned int) 01; + RTCMIN = (unsigned int) 0; + RTCSEC = (unsigned int) 0; + + // Enable the RTC + RTCCTL01 &= ~RTCHOLD; + nop(); +} + +#if defined MW_DEVBOARD_V2 || MW_DEBUG_UART +static void dbg_out_rtc(void) +{ + char clk_str[16]; + snprintf(clk_str, 16, "%02d:%02d.%02d %d\n", RTCHOUR, RTCMIN, RTCSEC, RTCDOW); + debug_uart_tx(clk_str); +} +#endif + +static void handle_button_event(void) +{ + unsigned char _button_state = 0; +#if 0 + char clk_str[16]; + snprintf(clk_str, 16, "0x%02x\n", _button_state); + debug_uart_tx(clk_str); +#endif + while (_button_state != (BUTTON_PORT_IN & ALL_BUTTONS)) { + __delay_cycles(562500); + _button_state = (BUTTON_PORT_IN & ALL_BUTTONS); + __delay_cycles(562500); + } + // BUTTON_PORT_IE |= INT_EDGE_SEL_BUTTONS; + + if (_button_state & SW_A) { + debug_uart_tx("switch A\n"); + oswald_handle_button_press(BUTTON_A); + } + if (_button_state & SW_B) { + debug_uart_tx("switch B\n"); + oswald_handle_button_press(BUTTON_B); + } + if (_button_state & SW_C) { + debug_uart_tx("switch C\n"); + oswald_handle_button_press(BUTTON_C); + } + if (_button_state & SW_D) { + debug_uart_tx("switch D\n"); + oswald_handle_button_press(BUTTON_D); + } + if (_button_state & SW_E) { + debug_uart_tx("switch E\n"); + oswald_handle_button_press(BUTTON_E); + } + if (_button_state & SW_F) { + debug_uart_tx("switch F\n"); + oswald_handle_button_press(BUTTON_F); + } +} + +void check_pwr_state(void) +{ + if (BAT_CHARGE_IN & BAT_CHARGE_PWR_BIT) { + BAT_CHARGE_OUT |= BAT_CHARGE_ENABLE_PIN; + BAT_CHARGE_REN &= ~(BAT_CHARGE_STAT1 | BAT_CHARGE_STAT2); // disable pull-up + } else { + BAT_CHARGE_OUT &= ~BAT_CHARGE_ENABLE_PIN; + BAT_CHARGE_REN |= BAT_CHARGE_STAT1 | BAT_CHARGE_STAT2; // enable pull-up + } +} + +static void handle_bt_uart_rx_event(void) +{ + const unsigned char *rx; + unsigned char len, *rp, p; + + rx = mw_bt_get_rx_buf(&rp, &len); + + p = 0; + while (p < len) { + p += bt_feed_packet_data(rx[(*rp+p)%BT_RX_MAX_SIZE]); + } + // all consumed + *rp = (*rp + len) % BT_RX_MAX_SIZE; +} + +#if defined MW_DEVBOARD_V2 || MW_DEBUG_UART +static void handle_uart_rx_event(void) +{ + char c; +#ifndef CC256x_TRANSP + char tstr[255]; + + if (debug_uart_rx_char(&c)) { + debug_uart_tx_char(c); + if (c == 'a') { + debug_uart_tx("\nenabling ACC\n"); + mw_acc_enable(); + } else if (c == 'A') { + debug_uart_tx("\ndisabling ACC\n"); + mw_acc_disable(); + } else if (c == 'r') { + int16_t x,y,z; + debug_uart_tx("\nread ACC: "); + mw_acc_read(&x, &y, &z); + snprintf(tstr, 64, "x:%d y:%d z:%d\n", x,y,z); + debug_uart_tx(tstr); + } else if (c =='R') { + int16_t al; + al = mw_get_amblight_adc_val(); + snprintf(tstr, 64, "light: %d\n", al); + debug_uart_tx(tstr); + } else if (c == 'b') { + debug_uart_tx("\nenabling BT\n"); + mw_enable_bt(); + } else if (c == 'B') { + debug_uart_tx("\ndisabling BT\n"); + mw_disable_bt(); + } else if (c == 'c') { + debug_uart_tx("\nCharger status: "); + snprintf(tstr, 16, "0x%04x 0x%04x ", BAT_CHARGE_IN, (BAT_CHARGE_IN & BAT_CHARGE_PWR_BIT)); + debug_uart_tx(tstr); + if (BAT_CHARGE_IN & BAT_CHARGE_PWR_BIT) + debug_uart_tx("no ext pwr, "); + else + debug_uart_tx("ext pwr connected, "); + switch (BAT_CHARGE_IN & (BAT_CHARGE_STAT1 | BAT_CHARGE_STAT2)) { + case BAT_CHARGE_STAT1: + debug_uart_tx("charge done\n"); + break; + case BAT_CHARGE_STAT2: + debug_uart_tx("fast charge\n"); + break; + case (BAT_CHARGE_STAT1 | BAT_CHARGE_STAT2): + debug_uart_tx("suspend, sleep or fault\n"); + break; + default: + debug_uart_tx("precharge\n"); + break; + } + if (BAT_CHARGE_IN & BAT_CHARGE_ENABLE_PIN) + debug_uart_tx(" !charge\n"); + else + debug_uart_tx(" charge\n"); + } else if (c == 'd') { + debug_uart_tx("charging disabled\n"); + BAT_CHARGE_OUT |= BAT_CHARGE_ENABLE_PIN; + } else if (c == 'e') { + debug_uart_tx("charging enabled\n"); + BAT_CHARGE_OUT &= ~BAT_CHARGE_ENABLE_PIN; + } else if (c == 'l') { + debug_uart_tx("backlight LED on\n"); + hal_lcd_set_backlight(TRUE); + } else if (c == 'L') { + debug_uart_tx("backlight LED off\n"); + hal_lcd_set_backlight(FALSE); + } else if (c == 'u') { + mw_lcd_update_screen(); + } else if (c == '+') { + nop(); + } else if (c == '-') { + nop(); + } else if (c == 'H') { + uint8_t dclass[3]; + dclass[0] = BT_MW_DEVICE_CLASS & 0xff; + dclass[1] = (BT_MW_DEVICE_CLASS & 0xff00) >> 8; + dclass[2] = (BT_MW_DEVICE_CLASS & 0xff0000) >> 16; + + debug_uart_tx("HCI reset\n"); + bt_hci_cmd(HCI_HC_BB_OGF, HCI_RESET_OCF, 0, NULL); + bt_hci_cmd(HCI_HC_BB_OGF, HCI_W_COD_OCF, 3, dclass); + } else if (c == 'i') { + debug_uart_tx("Information:\n"); + debug_uart_tx("Oswald "); + debug_uart_tx(MW_MAIN_VERSION); + debug_uart_tx("\n"); + debug_uart_tx("Build #"); + debug_uart_tx(BUILDNO); + debug_uart_tx("\n"); + debug_uart_tx("BT V "); + debug_uart_tx(cc256x_version); + debug_uart_tx("\n"); + debug_uart_tx("MCU Rev "); + debug_uart_tx_char(GetMsp430HardwareRevision()); + debug_uart_tx("\n"); + } else if (c == 'S') { + debug_uart_tx("Scan enable\n"); + tstr[0] = HCI_BB_SCAN_INQUIRY | HCI_BB_SCAN_PAGE; + bt_hci_cmd(HCI_HC_BB_OGF, HCI_W_SCAN_EN_OCF, 1, (uint8_t *)tstr); + } else if (c == 'h') { + RTCHOUR++; + if (RTCHOUR > 23) + RTCHOUR = 0; + } else if (c == 'm') { + RTCMIN++; + if (RTCMIN > 59) + RTCMIN = 0; + } else if (c == 'N') { + debug_uart_tx("Set name\n"); + tstr[0] = 'O'; + tstr[1] = 's'; + tstr[2] = 'w'; + tstr[3] = 'a'; + tstr[4] = 'l'; + tstr[5] = 'd'; + tstr[6] = 0x00; + bt_hci_cmd(HCI_HC_BB_OGF, HCI_W_LOCAL_NAME_OCF, 0x07, (uint8_t *)tstr); + } else if (c == 'R') { + bt_hci_cmd(HCI_INFO_PARAM_OGF, HCI_R_BD_ADDR_OCF, 0, NULL); + } + } +#endif +} +#endif + +void start_timer(int cycles) +{ + TA0EX0 = TAIDEX_0; + TA0CTL = TASSEL_1 | TACLR | MC__STOP; // SMCLK, clear TAR + TA0CCTL0 = CCIE; // CCR0 interrupt enabled + TA0CCR0 = cycles; + TA0CTL |= MC_1; // Start Timer_A in continuous mode +} + +void stop_timer(void) +{ + TA0CCTL0 &= ~CCIE; // CCR0 interrupt enabled + TA0CTL = MC__STOP; // Start Timer_A in continuous mode +} + +// Timer A0 interrupt service routine +#pragma vector=TIMER0_A0_VECTOR +__interrupt void TIMER0_A0_ISR (void) +{ + TA0CTL &= ~(TAIFG); +#if defined xMW_DEVBOARD_V2 + LED6_TOGGLE(); +#endif + _event_src |= TIMER_500MS_EVENT | TIMER_100MS_EVENT; + // LPM3_EXIT; + LPM3_EXIT_ISR(); +} + +uint8_t handle_event(void) +{ +#if defined MW_DEVBOARD_V2 || MW_DEBUG_UART + char tstr[64]; +#endif + if (_event_src == 0) + return 1; + + while (_event_src != 0) { + if (_event_src & WATCHDOG_EVENT) { + _event_src &= ~WATCHDOG_EVENT; + debug_uart_tx_char('w'); + } else if (_event_src & RTC_1HZ_EVENT) { + _event_src &= ~RTC_1HZ_EVENT; + check_pwr_state(); + oswald_one_second_tick(); +#if defined MW_DEVBOARD_V2 || MW_DEBUG_UART + dbg_out_rtc(); +#endif + } else if (_event_src & BT_UART_RCV_EVENT) { + _event_src &= ~BT_UART_RCV_EVENT; + handle_bt_uart_rx_event(); + } else if (_event_src & BT_UART_WAKEUP_EVENT) { + _event_src &= ~BT_UART_WAKEUP_EVENT; + bt_hci_ehcill_wake(); + } else if (_event_src & DBG_UART_RCV_EVENT) { + _event_src &= ~DBG_UART_RCV_EVENT; +#if defined MW_DEVBOARD_V2 || MW_DEBUG_UART + handle_uart_rx_event(); +#endif + } else if (_event_src & BUTTON_EVENT) { + _event_src &= ~BUTTON_EVENT; + handle_button_event(); + } else if (_event_src & TIMER_500MS_EVENT) { + _event_src &= ~TIMER_500MS_EVENT; + oswald_halfsecond_tick(); + } else if (_event_src & TIMER_100MS_EVENT) { + _event_src &= ~TIMER_100MS_EVENT; + oswald_centisecond_tick(); + } else if (_event_src & ACCEL_EVENT) { + _event_src &= ~ACCEL_EVENT; + mw_acc_handle_irq(); + } else { +#if defined MW_DEVBOARD_V2 || MW_DEBUG_UART + snprintf(tstr, 64, "unhandled event in 0x%04x\n", _event_src); + debug_uart_tx(tstr); +#endif + } + } + return 0; +} + +#pragma vector=BUTTON_PORT_VECTOR +__interrupt void BUTTON_ISR (void) +{ + // LPM3_EXIT; + LPM3_EXIT_ISR(); + BUTTON_PORT_IFG &= ~ALL_BUTTONS; + // BUTTON_PORT_IE &= ~INT_EDGE_SEL_BUTTONS; + _event_src |= BUTTON_EVENT; + //_button_state = (BUTTON_PORT_IN & ALL_BUTTONS); +} + +#pragma vector=PORT1_VECTOR +__interrupt void PORT1_GPIO_ISR (void) +{ + if (P1IFG & BT_IO_CTS) { + //LPM3_EXIT; + LPM3_EXIT_ISR(); + P1IE &= ~BT_IO_CTS; + P1IFG &= ~BT_IO_CTS; + debug_uart_tx("BT CTS irq\n"); + _event_src |= BT_UART_WAKEUP_EVENT; + // bt_hci_ehcill_wake(); + } else if (P1IFG & ACCELEROMETER_INT_PIN) { + //LPM3_EXIT; + LPM3_EXIT_ISR(); + P1IFG &= ~ACCELEROMETER_INT_PIN; + // debug_uart_tx("ACC irq\n"); + _event_src |= ACCEL_EVENT; + } +} + + +#if 0 +#pragma vector=NOVECTOR +__interrupt void UNEXP_ISR (void) +{ + debug_uart_tx("unexpected IRQ occured\n"); +} +#endif + + +int main(void) +{ + setup_wdt(); + setup_pins(); + setup_clocks(); + setup_rtc(); + + /* enable interrupts, we will need them! */ + __enable_interrupt(); + +#if defined MW_DEVBOARD_V2 || MW_DEBUG_UART + init_debug_uart(); + debug_uart_tx("\nOswald on MetaWatch\n"); +#endif + + mw_lcd_init(); + mw_lcd_clear(); + mw_lcd_update_screen(); + + mw_init_adc(); + mw_init_vibrate_pwm(); + + oswald_set_time(RTCHOUR, RTCMIN, RTCSEC, TRUE); + oswald_set_date(RTCDAY, RTCMON, RTCYEAR, TRUE); + oswald_init(); + + while (1) { + /* handle pending events */ + handle_event(); + + /* enter LPM3 sleep mode waiting for interrupt */ + /* errata PMM11 + PMM12 - divide MCLK before going to sleep */ + if (DetermineErrata()) { + MCLK_DIV(2); + nop(); + } + LPM3; + nop(); + if (DetermineErrata()) { + __delay_cycles(100); + MCLK_DIV(1); + } + }; + +return 0; +} diff --git a/metawatch/mw_main.h b/metawatch/mw_main.h new file mode 100644 index 0000000..8d02f7d --- /dev/null +++ b/metawatch/mw_main.h @@ -0,0 +1,40 @@ +#ifndef _GCCFWTEST_LCD_H +#define _GCCFWTEST_LCD_H + +#define MW_MAIN_VERSION "MW v0.4" + +#if defined MW_DEVBOARD_V2 +#include "hal_devboard_v2_defs.h" +#elif defined MW_DIGITAL_V2 +#include "hal_digital_v2_defs.h" +#else +#error "Define a watch type!" +#endif +#include "hal_io_macros.h" + +#define LPM3_EXIT_ISR() { _BIC_SR_IRQ(SCG1+OSCOFF+CPUOFF); nop(); } + +#define WATCHDOG_EVENT 1 << 0 +#define RTC_1HZ_EVENT 1 << 1 +#define DBG_UART_RCV_EVENT 1 << 2 +#define BUTTON_EVENT 1 << 3 +#define TIMER_500MS_EVENT 1 << 4 +#define TIMER_100MS_EVENT 1 << 5 +#define POWER_SRC_EVENT 1 << 6 +#define BT_UART_RCV_EVENT 1 << 7 +#define BT_UART_WAKEUP_EVENT 1 << 8 +#define ACCEL_EVENT 1 << 9 + +extern unsigned int _event_src; + +//#define TIMER_500MS_CYCLES 32768 + +#define TIMER_500MS_CYCLES 16384 +#define TIMER_100MS_CYCLES 327 + +void start_timer(int cycles); +void stop_timer(void); + +uint8_t handle_event(void); + +#endif diff --git a/metawatch/mw_uart.c b/metawatch/mw_uart.c new file mode 100644 index 0000000..a85ce8c --- /dev/null +++ b/metawatch/mw_uart.c @@ -0,0 +1,121 @@ +#include +#include +#include +#include + +#include "mw_main.h" + +#include "mw_uart.h" + +static char UART_RX_CHAR = 0; + +#if defined MW_DEVBOARD_V2 || MW_DEBUG_UART + +void debug_uart_tx_char(char c); + +#pragma vector=USCI_A3_VECTOR +__interrupt void UCA_ISR (void) +{ + switch (UCA3IV) { + case 2: // RXIFG + /* clear IRQ flag */ + UCA3IFG &= ~UCRXIFG; + UART_RX_CHAR = UCA3RXBUF; + _event_src |= DBG_UART_RCV_EVENT; + /* wake up to handle the received char */ + // LPM3_EXIT; + LPM3_EXIT_ISR(); + break; + case 4: // TXIFG + break; + default: + break; + } +} + +void init_debug_uart(void) +{ + /* assert reset */ + UCA3CTL1 = UCSWRST; + + /* reset default SMCLK = 1.048MHz */ + UCA3CTL1 |= UCSSEL__SMCLK; + /* CLK baud BRx BRSx BRFx */ + /* 1,048,576 115200 9 1 0 */ + /* 16,000,000 115200 138 7 0 */ + + UCA3BR0 = 138; + UCA3MCTL = UCBRS_7 | UCBRF_0; + + /* set P10.4 & P10.5 to UCA function */ + P10SEL |= BIT4; + P10SEL |= BIT5; + + UCA3STAT = 0; + + /* deassert reset */ + UCA3CTL1 &= ~UCSWRST; + + /* enable receive interrupt */ + UCA3IE = UCRXIE; + /* clear interrup flags */ + UCA3IFG = 0; +} + +void debug_uart_tx_char(const char c) +{ + while (UCA3STAT & UCBUSY) + nop(); + UCA3TXBUF = c; + while ((UCA3IFG & UCTXIFG) == 0 ) + nop(); +} + +void debug_uart_tx(const char *buf) +{ + unsigned char i = 0; + + while (buf[i] != 0) { + debug_uart_tx_char(buf[i]); + if (buf[i++] == '\n') + debug_uart_tx_char('\r'); + } + while (UCA3STAT & UCBUSY) + nop(); +} + +void debug_dump_hex(const uint16_t len, const void *buf) +{ + int i; + char tstr[8]; + + for (i=0; i +#include +#include +#include + +#include "mw_main.h" + +#include "mw_lcd.h" +#include "mw_adc.h" +#include "mw_bt.h" +#include "bt_hci.h" +#include "bt_l2cap.h" +#include "bluetooth_init_cc256x.h" +#include "mw_acc.h" + +#include "oswald.h" +#include "oswald_hal.h" + +#include "calendar.h" + + +const char *hal_get_version_string(void) +{ + return MW_MAIN_VERSION; +} + +const char *hal_get_buildno_string(void) +{ + return BUILDNO; +} + +const char *hal_get_radio_version_string(void) +{ + return cc256x_version; +} + +void hal_lcd_set_pixel(uint8_t x, uint8_t y, uint8_t color) +{ + if (x > 95) + x = 95; + if (y > 95) + y = 95; + mw_lcd_draw_pixel(x, y, color ? LCD_BLACK : LCD_WHITE); +} + +void hal_lcd_clear_display(void) +{ + mw_lcd_clear_fb(); +} + +void hal_lcd_update_display(void) +{ + mw_lcd_update_screen(); +} + +void hal_lcd_set_backlight(boolean state) +{ + if (state) { + ENABLE_LCD_LED(); + } else { + DISABLE_LCD_LED(); + } +} + +boolean hal_lcd_get_backlight(void) +{ + return (LCD_LED_POUT & LCD_LED_PIN) ? TRUE : FALSE; +} + +void hal_enable_centisecond_timer(void) +{ + start_timer(TIMER_100MS_CYCLES); +} + +void hal_disable_centisecond_timer(void) +{ + stop_timer(); +} + +void hal_enable_halfsecond_timer(void) +{ + start_timer(TIMER_500MS_CYCLES); +} + +void hal_disable_halfsecond_timer(void) +{ + stop_timer(); +} + +void hal_get_rtc(clock_state *rtc) +{ + /* Update clock state from RTC */ + rtc->hour = RTCHOUR; + rtc->minute = RTCMIN; + rtc->second = RTCSEC; + rtc->day = RTCDAY; + rtc->month = RTCMON; + rtc->year = RTCYEAR; + rtc->wday = RTCDOW; +} + +void hal_set_rtc(clock_state *rtc, boolean set_sec) +{ + /* Update clock state from RTC */ + RTCHOUR = rtc->hour; + RTCMIN = rtc->minute; + if (set_sec) + RTCSEC = rtc->second; + RTCDAY = rtc->day; + RTCMON = rtc->month; + RTCYEAR = rtc->year; + rtc->wday = getWochentag(rtc->day, rtc->month, rtc->year); + RTCDOW = rtc->wday; +} + +void hal_get_power_state(power_state *pwr) +{ + unsigned int val; + + pwr->source = (BAT_CHARGE_IN & BAT_CHARGE_PWR_BIT) ? POWER_SOURCE_BATTERY : POWER_SOURCE_EXTERNAL; + + /* unless the charger is enabled we do not get a reasonable state */ + if (!(BAT_CHARGE_IN & BAT_CHARGE_ENABLE_PIN)) { + switch (BAT_CHARGE_IN & (BAT_CHARGE_STAT1 | BAT_CHARGE_STAT2)) { + case BAT_CHARGE_STAT1: + pwr->charge_state = POWER_CHARGER_DONE; + break; + case BAT_CHARGE_STAT2: + pwr->charge_state = POWER_CHARGER_CHARGING; + break; + case (BAT_CHARGE_STAT1 | BAT_CHARGE_STAT2): + pwr->charge_state = POWER_CHARGER_UNK; + break; + default: + pwr->charge_state = POWER_CHARGER_PRECHARGE; + break; + } + } else { + pwr->charge_state = POWER_CHARGER_UNK; + } + + if ((pwr->source == POWER_SOURCE_BATTERY) && (RTCSEC != 0)) { + /* the ADC and activating the measuring shunts is + * power expensive so only do this every minute */ + return; + }; + + /* get new values and so some averaging to avoid jumps */ + val = mw_get_battery_adc_val(); + pwr->percent = mw_get_battery_percentage_from_val(val); + pwr->level = val; +} + +void hal_vibration_set_state(boolean state) +{ +#ifdef MW_DIGITAL_V2 + if (state) { + TA1CTL |= TASSEL__ACLK | MC__UPDOWN | ID_0; + P7SEL |= BIT3; + } else { + TA1CTL = 0; + P7SEL &= ~BIT3; + } +#endif +} + +boolean hal_vibration_get_state(void) +{ +#ifdef MW_DIGITAL_V2 + return (P7SEL & BIT3) ? TRUE : FALSE; +#else + return FALSE; +#endif +} + +#define BLUETOOTH_DEVICE_NAME "Oswald on MetaWatch" +static boolean bt_is_visible = FALSE; + + +bluetooth_state hal_bluetooth_set_state(bluetooth_state state) +{ + uint8_t buf[32]; + + if (state == BLUETOOTH_OFF && mw_bt_is_enabled() == 1) { + mw_disable_bt(); + bt_is_visible = FALSE; + return BLUETOOTH_OFF; + } else if (state == BLUETOOTH_ON && mw_bt_is_enabled() == 0) { + mw_enable_bt(); + // set our name + memset(buf, 0, 32); + strncpy((char *)buf, BLUETOOTH_DEVICE_NAME, strlen(BLUETOOTH_DEVICE_NAME)); + bt_hci_cmd(HCI_HC_BB_OGF, HCI_W_LOCAL_NAME_OCF, strlen(BLUETOOTH_DEVICE_NAME)+1, buf); + // read our local address + bt_hci_cmd(HCI_INFO_PARAM_OGF, HCI_R_BD_ADDR_OCF, 0, NULL); + // enable page scan + buf[0] = HCI_BB_SCAN_PAGE; + bt_hci_cmd(HCI_HC_BB_OGF, HCI_W_SCAN_EN_OCF, 1, buf); + bt_is_visible = FALSE; + return BLUETOOTH_ON; + } else + return BLUETOOTH_ILL; +} + +bluetooth_state hal_bluetooth_get_state(void) +{ + if (mw_bt_is_enabled() == 1) { + if (bt_l2cap_get_connected(0x40)) + return BLUETOOTH_CONNECTED; + else + return BLUETOOTH_ON; + } else + return BLUETOOTH_OFF; +} + +uint8_t *hal_bluetooth_get_local_bdaddr(void) +{ + return bt_hci_get_local_bdaddr(); +} + +void hal_bluetooth_set_visible(boolean visible) +{ + uint8_t buf[2]; + + if (mw_bt_is_enabled() == 0) { + bt_is_visible = FALSE; + return; + } + + if (visible) { + // enable page and inquiry scan + buf[0] = HCI_BB_SCAN_INQUIRY | HCI_BB_SCAN_PAGE; + bt_hci_cmd(HCI_HC_BB_OGF, HCI_W_SCAN_EN_OCF, 1, buf); + bt_is_visible = TRUE; + } else { + // enable page scan only + buf[0] = HCI_BB_SCAN_PAGE; + bt_hci_cmd(HCI_HC_BB_OGF, HCI_W_SCAN_EN_OCF, 1, buf); + bt_is_visible = FALSE; + } +} + +boolean hal_bluetooth_get_visible(void) +{ + return bt_is_visible; +} + +void hal_bluetooth_send_data(const void *mdat, uint16_t mlen) +{ + bt_l2cap_send_channel(0x40, mdat, mlen); +} + +/* + * Control the accelerometer + */ +void hal_accelerometer_enable(void) +{ + mw_acc_enable(); +} + +void hal_accelerometer_disable(void) +{ + mw_acc_disable(); +} + +uint16_t hal_amblight_get_val(void) +{ + return mw_get_amblight_adc_val(); +} + diff --git a/metawatch/sharp_mem_lcd.c b/metawatch/sharp_mem_lcd.c new file mode 100644 index 0000000..df5b3ed --- /dev/null +++ b/metawatch/sharp_mem_lcd.c @@ -0,0 +1,113 @@ +// taken and adapted from +// Programming Sharp’s Memory LCDs +// by Ken Green + +// LCD commands - Note: the bits are reversed per the memory LCD data +// sheets because of the order the bits are shifted out in the SPI +// port. +#define MLCD_WR 0x80 //MLCD write line command +#define MLCD_CM 0x20 //MLCD clear memory command +#define MLCD_NO 0x00 //MLCD NOP command (used to switch VCOM) + +//LCD resolution +#define MLCD_XRES 96 //pixels per horizontal line +#define MLCD_YRES 96 //pixels per vertical line +#define MLCD_BYTES_LINE MLCD_XRES / 8 //number of bytes in a line +#define MLCD_BUF_SIZE MLCD_YRES * MLCD_BYTES_LINE + +//defines the VCOM bit in the command word that goes to the LCD +#define VCOM_HI 0x40 +#define VCOM_LO 0x00 + +static char *frmbufter; //current address of buffer to be displayed +static char locbuf[MLCD_BYTES_LINE + 3]; // local line buffer +static char linenum; // current line number being transmitted + +//there are 3 stages in transmitting a buffer: +//stage 0: first line (has command in it) +//stage 1: 2nd through last line (no command) +//stage 2: null byte trailer +static int stage = 0; + +//current state of vcom. This should alternate +//between VCOM _ HI and VCOM _ LO on a 1-30 second +//period. +extern char vcom; + +//////////////////////////////////////////////////////////////// +// +// This routine transmits the contents of the pixel memory in +// a frame buffer to the memory LCD. It uses DMA to transfer +// each individual line. The address of the frame buffer to +// transfer is in the global variable show _ frm. +// +// +// NOTE: this routine also acts as the interrupt handler for SPI interrupts. +// +// +// INPUTS: +// The SPI and DMA units must have been previously initialized +// show _ frm: +// pointer to the buffer to be displayed +// +//////////////////////////////////////////////////////////////// +void show _ frame(char *show _ frm) { +int i; +unsigned long sts; + + switch(stage) { + case 0: + // stage 0: sending the first line. The command is + // included in this line + set_scs(HIGH); //set SCS high + frmbufptr = show_frm; //init pointer to frame buffer + linebuf = locbuf; //init pointer to line buffer + linenum = 1; //init line address + + //first line of data is preceeded by a write command + *linebuf++ = MLCD _ WR | vcom; //command (note: no need to swap) + *linebuf++ = swap(linenum++); //line number (address) + + for (i=0; i MLCD_YRES) + stage = 2; //all lines sent, go to next stage + break; + case 2: + // All lines sent, send a fi nal null byte trailer. The DMA + //transfer of the last line is fi nished and the channel + //disabled. All that is left is to write a trailing null + //byte. It’s not worth using DMA to transfer 1 byte, so + //it’s done by directing writing to the SPI port. + //Write the last (null) byte + Write_to_SPI(0); + //Since there is no interrupt on transmit buffer empty, loop + //here until the byte is sent, then drop SCS. + i = 0; + while (SPI_BSY); //wait until done + set_scs(LOW); + stage = 0; //go back to stage 0 - sending out first line + } +} + diff --git a/metawatch/sintab.py b/metawatch/sintab.py new file mode 100644 index 0000000..5e693b3 --- /dev/null +++ b/metawatch/sintab.py @@ -0,0 +1,9 @@ +import sys +import math + +sys.stdout.write ("int16_t sintab[]={ ") + +for i in range (0, 360): + sys.stdout.write ("%4.0f," % (math.sin(((2*3.14159265358979323846)/360)*i)*100)) + +sys.stdout.write ("};\n") diff --git a/ui/Makefile.am b/ui/Makefile.am new file mode 100644 index 0000000..ac6e296 --- /dev/null +++ b/ui/Makefile.am @@ -0,0 +1,23 @@ +ACLOCAL_AMFLAGS = -I m4 + +bin_PROGRAMS = .buildno oswald-gui + +oswald_gui_SOURCES = oswald-ui.c oswald_main.c \ + oswald_watch_faces.c oswald_strings.c oswald_screens.c \ + embedvm.c oswald_graphics.c calendar.c oswald_fonts.c + +# BUILDNO = \"$(shell cat .buildno)\" +BUILDNO = \"$(shell date +%y%m%d)-\#$(shell cat .buildno)\" + +oswald_gui_CFLAGS = -DBUILDNO=$(BUILDNO) -g $(GTK_CFLAGS) + +oswald_gui_LDADD = $(GTK_LIBS) + +EXTRA_DIST = config.rpath m4/ChangeLog \ + AUTHORS \ + COPYING \ + README.txt + +.buildno: $(oswald_gui_OBJECTS) + @if ! test -f .buildno; then echo 0 > .buildno; fi + @echo $$(($$(cat .buildno) + 1)) > .buildno diff --git a/ui/autogen.sh b/ui/autogen.sh new file mode 100755 index 0000000..d53cc4c --- /dev/null +++ b/ui/autogen.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +version=1.11 +set -x +aclocal-$version +autoconf +libtoolize +automake-$version --add-missing --foreign diff --git a/ui/bitmaps/Bluetooth_icon.xbm b/ui/bitmaps/Bluetooth_icon.xbm new file mode 100644 index 0000000..ba0e1b8 --- /dev/null +++ b/ui/bitmaps/Bluetooth_icon.xbm @@ -0,0 +1,10 @@ +#define Bluetooth_icon_width 24 +#define Bluetooth_icon_height 24 +static unsigned char Bluetooth_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x78, 0x00, 0x00, 0xd8, 0x00, 0x80, 0x98, 0x01, 0x80, 0x19, 0x03, + 0x00, 0x9b, 0x01, 0x00, 0xde, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x7e, 0x00, 0x00, 0xdb, 0x00, 0x80, 0x99, 0x01, + 0x80, 0x18, 0x03, 0x00, 0x98, 0x01, 0x00, 0xd8, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/Exit_icon.xbm b/ui/bitmaps/Exit_icon.xbm new file mode 100644 index 0000000..02d1abb --- /dev/null +++ b/ui/bitmaps/Exit_icon.xbm @@ -0,0 +1,10 @@ +#define Exit_icon_width 24 +#define Exit_icon_height 24 +static unsigned char Exit_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0xf0, 0xff, 0x03, + 0x30, 0x0c, 0x03, 0x30, 0x0c, 0x03, 0x30, 0x0c, 0x03, 0x30, 0x0c, 0x01, + 0x30, 0x0c, 0x02, 0x30, 0x0c, 0x03, 0x30, 0x8c, 0x03, 0x30, 0xcc, 0x1f, + 0x30, 0xcc, 0x1f, 0x30, 0x8c, 0x03, 0x30, 0x0c, 0x03, 0x30, 0x06, 0x02, + 0x30, 0x03, 0x01, 0xb0, 0x01, 0x03, 0xf0, 0x00, 0x03, 0x70, 0x00, 0x03, + 0xf0, 0xff, 0x03, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/Message_icon.xbm b/ui/bitmaps/Message_icon.xbm new file mode 100644 index 0000000..3eb7bd5 --- /dev/null +++ b/ui/bitmaps/Message_icon.xbm @@ -0,0 +1,10 @@ +#define Message_icon_width 24 +#define Message_icon_height 24 +static unsigned char Message_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, + 0xfc, 0xff, 0x3f, 0x3c, 0x00, 0x3c, 0x6c, 0x00, 0x36, 0xcc, 0x00, 0x33, + 0x8c, 0x81, 0x31, 0x0c, 0xc3, 0x30, 0x0c, 0x66, 0x30, 0x0c, 0x3c, 0x30, + 0x0c, 0x18, 0x30, 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, + 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/acc_icon.xbm b/ui/bitmaps/acc_icon.xbm new file mode 100644 index 0000000..b8c4bb8 --- /dev/null +++ b/ui/bitmaps/acc_icon.xbm @@ -0,0 +1,10 @@ +#define acc_icon_width 24 +#define acc_icon_height 24 +static unsigned char acc_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x70, 0x00, 0x00, + 0xa8, 0xe0, 0x00, 0x20, 0x40, 0x00, 0x20, 0xe0, 0x00, 0x20, 0x0e, 0x00, + 0x20, 0x0c, 0x00, 0x20, 0x0a, 0x00, 0x20, 0x01, 0x00, 0xa0, 0x40, 0x00, + 0x60, 0x80, 0x14, 0xf8, 0xff, 0x09, 0x30, 0x80, 0x14, 0x28, 0x40, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/alarm_icon.xbm b/ui/bitmaps/alarm_icon.xbm new file mode 100644 index 0000000..24fbdab --- /dev/null +++ b/ui/bitmaps/alarm_icon.xbm @@ -0,0 +1,10 @@ +#define alarm_icon_width 24 +#define alarm_icon_height 24 +static unsigned char alarm_icon_bits[] = { + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x38, 0x1e, 0xff, 0x78, 0xce, 0xff, 0x73, + 0xe6, 0x00, 0x67, 0x70, 0x18, 0x0e, 0x38, 0x18, 0x1c, 0x18, 0x18, 0x18, + 0x0c, 0x18, 0x30, 0x0c, 0x18, 0x30, 0x0c, 0x18, 0x30, 0x0c, 0xf8, 0x31, + 0x0c, 0xf8, 0x31, 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, + 0x18, 0x00, 0x18, 0x38, 0x00, 0x1c, 0x70, 0x00, 0x0e, 0xe0, 0x00, 0x07, + 0xc0, 0xff, 0x03, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/battery0_icon.xbm b/ui/bitmaps/battery0_icon.xbm new file mode 100644 index 0000000..b23ee6f --- /dev/null +++ b/ui/bitmaps/battery0_icon.xbm @@ -0,0 +1,7 @@ +#define battery0_icon_width 15 +#define battery0_icon_height 20 +static unsigned char battery0_icon_bits[] = { + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x3e, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/battery100_icon.xbm b/ui/bitmaps/battery100_icon.xbm new file mode 100644 index 0000000..1fef144 --- /dev/null +++ b/ui/bitmaps/battery100_icon.xbm @@ -0,0 +1,7 @@ +#define battery100_icon_width 15 +#define battery100_icon_height 20 +static unsigned char battery100_icon_bits[] = { + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, + 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, + 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/battery25_icon.xbm b/ui/bitmaps/battery25_icon.xbm new file mode 100644 index 0000000..e3e46e4 --- /dev/null +++ b/ui/bitmaps/battery25_icon.xbm @@ -0,0 +1,7 @@ +#define battery25_icon_width 15 +#define battery25_icon_height 20 +static unsigned char battery25_icon_bits[] = { + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x3e, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/battery50_icon.xbm b/ui/bitmaps/battery50_icon.xbm new file mode 100644 index 0000000..141252d --- /dev/null +++ b/ui/bitmaps/battery50_icon.xbm @@ -0,0 +1,7 @@ +#define battery50_icon_width 15 +#define battery50_icon_height 20 +static unsigned char battery50_icon_bits[] = { + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x3e, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, + 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/battery75_icon.xbm b/ui/bitmaps/battery75_icon.xbm new file mode 100644 index 0000000..2323dcc --- /dev/null +++ b/ui/bitmaps/battery75_icon.xbm @@ -0,0 +1,7 @@ +#define battery75_icon_width 15 +#define battery75_icon_height 20 +static unsigned char battery75_icon_bits[] = { + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x3e, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, + 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, + 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/bluetooth_con_icon.xbm b/ui/bitmaps/bluetooth_con_icon.xbm new file mode 100644 index 0000000..468f55e --- /dev/null +++ b/ui/bitmaps/bluetooth_con_icon.xbm @@ -0,0 +1,7 @@ +#define bluetooth_con_icon_width 15 +#define bluetooth_con_icon_height 20 +static unsigned char bluetooth_con_icon_bits[] = { + 0x6c, 0x00, 0xce, 0x00, 0xaa, 0x00, 0xc6, 0x00, 0xaa, 0x00, 0xce, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/bluetooth_icon.xbm b/ui/bitmaps/bluetooth_icon.xbm new file mode 100644 index 0000000..74cf698 --- /dev/null +++ b/ui/bitmaps/bluetooth_icon.xbm @@ -0,0 +1,7 @@ +#define bluetooth_icon_width 15 +#define bluetooth_icon_height 20 +static unsigned char bluetooth_icon_bits[] = { + 0x10, 0x00, 0x30, 0x00, 0x54, 0x00, 0x38, 0x00, 0x54, 0x00, 0x30, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/charger_icon.xbm b/ui/bitmaps/charger_icon.xbm new file mode 100644 index 0000000..c328fae --- /dev/null +++ b/ui/bitmaps/charger_icon.xbm @@ -0,0 +1,7 @@ +#define charger_icon_width 15 +#define charger_icon_height 20 +static unsigned char charger_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x7c, 0x00, + 0x7c, 0x00, 0x38, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/checked_icon.xbm b/ui/bitmaps/checked_icon.xbm new file mode 100644 index 0000000..ddb4610 --- /dev/null +++ b/ui/bitmaps/checked_icon.xbm @@ -0,0 +1,4 @@ +#define checked_icon_width 7 +#define checked_icon_height 7 +static unsigned char checked_icon_bits[] = { + 0x7f, 0x41, 0x5d, 0x5d, 0x5d, 0x41, 0x7f, }; diff --git a/ui/bitmaps/downbutton_icon.xbm b/ui/bitmaps/downbutton_icon.xbm new file mode 100644 index 0000000..cd7ed6d --- /dev/null +++ b/ui/bitmaps/downbutton_icon.xbm @@ -0,0 +1,7 @@ +#define downbutton_icon_width 15 +#define downbutton_icon_height 20 +static unsigned char downbutton_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x80, 0x7f, 0x00, 0x3f, + 0x00, 0x1e, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/enterbutton_icon.xbm b/ui/bitmaps/enterbutton_icon.xbm new file mode 100644 index 0000000..a78da70 --- /dev/null +++ b/ui/bitmaps/enterbutton_icon.xbm @@ -0,0 +1,7 @@ +#define enterbutton_icon_width 15 +#define enterbutton_icon_height 20 +static unsigned char enterbutton_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x64, 0x00, 0x66, 0x00, 0x67, 0x80, 0x7f, 0x80, 0x7f, 0x00, 0x07, + 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/exit_icon.xbm b/ui/bitmaps/exit_icon.xbm new file mode 100644 index 0000000..18e6c46 --- /dev/null +++ b/ui/bitmaps/exit_icon.xbm @@ -0,0 +1,10 @@ +#define exit_icon_width 24 +#define exit_icon_height 24 +static unsigned char exit_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0xf0, 0xff, 0x03, + 0x30, 0x0c, 0x03, 0x30, 0x0c, 0x03, 0x30, 0x0c, 0x03, 0x30, 0x0c, 0x01, + 0x30, 0x0c, 0x02, 0x30, 0x0c, 0x03, 0x30, 0x8c, 0x03, 0x30, 0xcc, 0x1f, + 0x30, 0xcc, 0x1f, 0x30, 0x8c, 0x03, 0x30, 0x0c, 0x03, 0x30, 0x06, 0x02, + 0x30, 0x03, 0x01, 0xb0, 0x01, 0x03, 0xf0, 0x00, 0x03, 0x70, 0x00, 0x03, + 0xf0, 0xff, 0x03, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/info_icon.xbm b/ui/bitmaps/info_icon.xbm new file mode 100644 index 0000000..9b2c1c2 --- /dev/null +++ b/ui/bitmaps/info_icon.xbm @@ -0,0 +1,10 @@ +#define info_icon_width 24 +#define info_icon_height 24 +static unsigned char info_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xc0, 0xff, 0x03, + 0xe0, 0x00, 0x07, 0x70, 0x1c, 0x0e, 0x38, 0x1c, 0x1c, 0x18, 0x1c, 0x18, + 0x0c, 0x00, 0x30, 0x0c, 0x1c, 0x30, 0x0c, 0x1c, 0x30, 0x0c, 0x1c, 0x30, + 0x0c, 0x1c, 0x30, 0x0c, 0x1c, 0x30, 0x0c, 0x1c, 0x30, 0x0c, 0x1c, 0x30, + 0x18, 0x1c, 0x18, 0x38, 0x1c, 0x1c, 0x70, 0x00, 0x0e, 0xe0, 0x00, 0x07, + 0xc0, 0xff, 0x03, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/lapsebutton_icon.xbm b/ui/bitmaps/lapsebutton_icon.xbm new file mode 100644 index 0000000..82ae88a --- /dev/null +++ b/ui/bitmaps/lapsebutton_icon.xbm @@ -0,0 +1,7 @@ +#define lapsebutton_icon_width 15 +#define lapsebutton_icon_height 20 +static unsigned char lapsebutton_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, + 0x00, 0x63, 0x00, 0x67, 0xc0, 0x6f, 0xc0, 0x6f, 0x00, 0x67, 0x00, 0x63, + 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/leftbutton_icon.xbm b/ui/bitmaps/leftbutton_icon.xbm new file mode 100644 index 0000000..5853d90 --- /dev/null +++ b/ui/bitmaps/leftbutton_icon.xbm @@ -0,0 +1,7 @@ +#define leftbutton_icon_width 15 +#define leftbutton_icon_height 20 +static unsigned char leftbutton_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x06, 0x00, 0x07, 0x80, 0x7f, 0x80, 0x7f, 0x00, 0x07, + 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/main_menu_icon.xbm b/ui/bitmaps/main_menu_icon.xbm new file mode 100644 index 0000000..f106a24 --- /dev/null +++ b/ui/bitmaps/main_menu_icon.xbm @@ -0,0 +1,10 @@ +#define main_menu_icon_width 24 +#define main_menu_icon_height 24 +static unsigned char main_menu_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x1f, 0xfc, 0xff, 0x3f, + 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, + 0xcc, 0xdd, 0x31, 0xcc, 0xdd, 0x31, 0xcc, 0xdd, 0x31, 0x0c, 0x00, 0x30, + 0xcc, 0xdd, 0x31, 0xcc, 0xdd, 0x31, 0xcc, 0xdd, 0x31, 0x0c, 0x00, 0x30, + 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, 0xfc, 0xff, 0x3f, + 0xf8, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/message_icon.xbm b/ui/bitmaps/message_icon.xbm new file mode 100644 index 0000000..5bff5fb --- /dev/null +++ b/ui/bitmaps/message_icon.xbm @@ -0,0 +1,10 @@ +#define message_icon_width 24 +#define message_icon_height 24 +static unsigned char message_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0x0e, 0x00, 0x70, + 0x1e, 0x00, 0x78, 0x36, 0x00, 0x6c, 0x66, 0x00, 0x66, 0xc6, 0x00, 0x63, + 0x86, 0x81, 0x61, 0x06, 0xc3, 0x60, 0x06, 0x66, 0x60, 0x06, 0x3c, 0x60, + 0x06, 0x18, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, + 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/resetbutton_icon.xbm b/ui/bitmaps/resetbutton_icon.xbm new file mode 100644 index 0000000..6576efc --- /dev/null +++ b/ui/bitmaps/resetbutton_icon.xbm @@ -0,0 +1,7 @@ +#define resetbutton_icon_width 15 +#define resetbutton_icon_height 20 +static unsigned char resetbutton_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x0e, 0x00, 0xff, 0x00, + 0xff, 0x00, 0xce, 0x00, 0xcc, 0x00, 0xc8, 0x00, 0xc0, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/rightbutton_icon.xbm b/ui/bitmaps/rightbutton_icon.xbm new file mode 100644 index 0000000..48f9ac5 --- /dev/null +++ b/ui/bitmaps/rightbutton_icon.xbm @@ -0,0 +1,7 @@ +#define rightbutton_icon_width 15 +#define rightbutton_icon_height 20 +static unsigned char rightbutton_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x18, 0x00, 0x38, 0x80, 0x7f, 0x80, 0x7f, 0x00, 0x38, + 0x00, 0x18, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/startstopbutton_icon.xbm b/ui/bitmaps/startstopbutton_icon.xbm new file mode 100644 index 0000000..160799b --- /dev/null +++ b/ui/bitmaps/startstopbutton_icon.xbm @@ -0,0 +1,7 @@ +#define startstopbutton_icon_width 15 +#define startstopbutton_icon_height 20 +static unsigned char startstopbutton_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, + 0x00, 0x1b, 0x00, 0x3b, 0x00, 0x7b, 0x00, 0x7b, 0x00, 0x3b, 0x00, 0x1b, + 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/stopwatch.xbm b/ui/bitmaps/stopwatch.xbm new file mode 100644 index 0000000..ce022fb --- /dev/null +++ b/ui/bitmaps/stopwatch.xbm @@ -0,0 +1,10 @@ +#define stopwatch_width 24 +#define stopwatch_height 24 +static unsigned char stopwatch_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x7e, 0x10, 0x80, 0x81, 0x39, 0x40, 0x18, 0x1e, 0x20, 0x18, 0x0c, + 0x10, 0x18, 0x08, 0x08, 0x18, 0x10, 0x08, 0x18, 0x10, 0x04, 0x18, 0x20, + 0x04, 0x18, 0x20, 0x04, 0x18, 0x20, 0x04, 0x00, 0x20, 0x04, 0x00, 0x20, + 0x04, 0x00, 0x20, 0x08, 0x00, 0x10, 0x08, 0x00, 0x10, 0x10, 0x00, 0x08, + 0x20, 0x00, 0x04, 0x40, 0x00, 0x02, 0x80, 0x81, 0x01, 0x00, 0x7e, 0x00, + }; diff --git a/ui/bitmaps/stopwatch_icon.xbm b/ui/bitmaps/stopwatch_icon.xbm new file mode 100644 index 0000000..e3aa9cf --- /dev/null +++ b/ui/bitmaps/stopwatch_icon.xbm @@ -0,0 +1,10 @@ +#define stopwatch_icon_width 24 +#define stopwatch_icon_height 24 +static unsigned char stopwatch_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0xff, 0x0c, + 0xc0, 0xff, 0x1f, 0xe0, 0x00, 0x1f, 0x70, 0x18, 0x0e, 0x38, 0x18, 0x1c, + 0x18, 0x18, 0x18, 0x0c, 0x18, 0x30, 0x0c, 0x18, 0x30, 0x0c, 0x18, 0x30, + 0x0c, 0x18, 0x30, 0x0c, 0x18, 0x30, 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, + 0x0c, 0x00, 0x30, 0x18, 0x00, 0x18, 0x38, 0x00, 0x1c, 0x70, 0x00, 0x0e, + 0xe0, 0x00, 0x07, 0xc0, 0xff, 0x03, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, + }; diff --git a/ui/bitmaps/timesetup_icon.xbm b/ui/bitmaps/timesetup_icon.xbm new file mode 100644 index 0000000..5e8699d --- /dev/null +++ b/ui/bitmaps/timesetup_icon.xbm @@ -0,0 +1,10 @@ +#define timesetup_icon_width 24 +#define timesetup_icon_height 24 +static unsigned char timesetup_icon_bits[] = { + 0x00, 0xff, 0x00, 0xc0, 0xff, 0x03, 0xe0, 0x00, 0x07, 0x70, 0x18, 0x0e, + 0x38, 0x18, 0x1c, 0x18, 0x18, 0x18, 0x0c, 0x18, 0x30, 0x0c, 0x18, 0x30, + 0x0c, 0x18, 0x30, 0x0c, 0xf8, 0x31, 0x0c, 0xf8, 0x31, 0x0c, 0x00, 0x30, + 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, 0x18, 0x00, 0x18, 0x38, 0x00, 0x1c, + 0x70, 0x00, 0x0e, 0xe0, 0x00, 0x07, 0xc0, 0xff, 0x03, 0x00, 0xff, 0x00, + 0xfe, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xfe, 0x00, 0x00, + }; diff --git a/ui/bitmaps/unchecked_icon.xbm b/ui/bitmaps/unchecked_icon.xbm new file mode 100644 index 0000000..f750c04 --- /dev/null +++ b/ui/bitmaps/unchecked_icon.xbm @@ -0,0 +1,4 @@ +#define unchecked_icon_width 7 +#define unchecked_icon_height 7 +static unsigned char unchecked_icon_bits[] = { + 0x7f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x7f, }; diff --git a/ui/bitmaps/upbutton_icon.xbm b/ui/bitmaps/upbutton_icon.xbm new file mode 100644 index 0000000..6e16dd4 --- /dev/null +++ b/ui/bitmaps/upbutton_icon.xbm @@ -0,0 +1,7 @@ +#define upbutton_icon_width 15 +#define upbutton_icon_height 20 +static unsigned char upbutton_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x1e, 0x00, 0x3f, 0x80, 0x7f, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, + 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/ui/bitmaps/watch_icon.xbm b/ui/bitmaps/watch_icon.xbm new file mode 100644 index 0000000..ecd95d1 --- /dev/null +++ b/ui/bitmaps/watch_icon.xbm @@ -0,0 +1,10 @@ +#define watch_icon_width 24 +#define watch_icon_height 24 +static unsigned char watch_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0xc0, 0xff, 0x03, 0xe0, 0x00, 0x07, 0x70, 0x18, 0x0e, + 0x38, 0x18, 0x1c, 0x18, 0x18, 0x18, 0x0c, 0x18, 0x30, 0x0c, 0x18, 0x30, + 0x0c, 0x18, 0x30, 0x0c, 0xf8, 0x31, 0x0c, 0xf8, 0x31, 0x0c, 0x00, 0x30, + 0x0c, 0x00, 0x30, 0x0c, 0x00, 0x30, 0x18, 0x00, 0x18, 0x38, 0x00, 0x1c, + 0x70, 0x00, 0x0e, 0xe0, 0x00, 0x07, 0xc0, 0xff, 0x03, 0x00, 0xff, 0x00, + }; diff --git a/ui/calendar.c b/ui/calendar.c new file mode 100644 index 0000000..feca174 --- /dev/null +++ b/ui/calendar.c @@ -0,0 +1,209 @@ +#include "oswald.h" + +#include "calendar.h" + +unsigned char is_leap(const unsigned int year) +{ + /* the rule is, everything that can be devided by 4 is leap. + * Exception: the year can be devided by 100, then it is not, + * except it canbe devided by 400, then it is again. + */ + + if ((year % 400) == 0) + return 1; + else if ((year % 100) == 0) + return 0; + else if ((year % 4) == 0) + return 1; + + return 0; +} + +unsigned short days_of_month(const unsigned int uMonat, const unsigned int uJahr) +{ + // invalid,January,Febuary,March,April,May,June,July,August,September,October,November,December + int arrTageImMonat[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; + + if (uMonat == 2) { + // Febuary: distinguish leap + if (is_leap(uJahr)) + return 29; + else + return 28; + } + + if ((uMonat >= 1) && (uMonat <= 12)) + return arrTageImMonat[uMonat]; + else { + return 0; + } +} + +short getAnzahlTageImJahr(const unsigned int uJahr) +{ + return (is_leap(uJahr)) ? 366 : 365; +} + +short getWochentag(const unsigned int uTag, const unsigned int uMonat, const unsigned int uJahr) +{ + // ungült Jan Feb Mrz Apr Mai Jun Jul Aug Sep Okt Nov Dez + unsigned char arrMonatsOffset[13] = { 0, 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5}; + short nErgebnis = 0; + + // Monat / Tag - Plausi prüfen: + if ((uTag > 31) || (uMonat > 12) || (uMonat <= 0) + || (uTag <= 0) || (uJahr <= 0)) { + return -1; + } + + unsigned char cbTagesziffer = (uTag % 7); + unsigned char cbMonatsziffer = arrMonatsOffset[uMonat]; + unsigned char cbJahresziffer = ((uJahr % 100) + ((uJahr % 100) / 4)) % 7; + unsigned char cbJahrhundertziffer = (3 - ((uJahr / 100) % 4)) * 2; + + // Schaltjahreskorrektur: + if ((uMonat <= 2) && (is_leap(uJahr))) + cbTagesziffer = cbTagesziffer + 6; + + nErgebnis = (cbTagesziffer + cbMonatsziffer + cbJahresziffer + cbJahrhundertziffer) % 7; + + // Ergebnis: + // 0 = Sonntag + // 1 = Montag + // 2 = Dienstag + // 3 = Mittwoch + // 4 = Donnerstag + // 5 = Freitag + // 6 = Samstag + return nErgebnis; +} + +short getTagDesJahres(const unsigned int uTag, const unsigned int uMonat, const unsigned int uJahr) +{ + // Der wievielte Tag des Jahres ist dieser Tag + if ((uMonat == 0) || (uMonat > 12)) { + return -1; + } + + unsigned int uLokalTag = uTag; + unsigned int uLokalMonat = uMonat; + + while (uLokalMonat > 1) { + uLokalMonat--; + uLokalTag += days_of_month(uLokalMonat, uJahr); + } + + return uLokalTag; +} + +short getKalenderwoche(short uTag, short uMonat, short uJahr) +{ + // Berechnung erfolgt analog DIN 1355, welche besagt: + // Der erste Donnerstag im neuen Jahr liegt immer in der KW 1. + // "Woche" ist dabei definiert als [Mo, ..., So]. + short nTagDesJahres = getTagDesJahres(uTag, uMonat, uJahr); + + // Berechnen des Wochentags des 1. Januar: + short nWochentag1Jan = getWochentag(1, 1, uJahr); + + // Sonderfälle Freitag und Samstag + if (nWochentag1Jan >= 5) + nWochentag1Jan = nWochentag1Jan - 7; + + // Sonderfälle "Jahresanfang mit KW - Nummer aus dem Vorjahr" + if ( (nTagDesJahres + nWochentag1Jan) <= 1) { + return getKalenderwoche(31, 12, uJahr - 1); + } + + short nKalenderWoche = ((nTagDesJahres + nWochentag1Jan + 5) / 7); + + // 53 Kalenderwochen hat grundsätzlich nur ein Jahr, + // welches mit einem Donnerstag anfängt ! + // In Schaltjahren ist es auch mit einem Mittwoch möglich, z.B. 1992 + // Andernfalls ist diese KW schon die KW1 des Folgejahres. + if (nKalenderWoche == 53) { + boolean bIstSchaltjahr = is_leap(uJahr); + + if ((nWochentag1Jan == 4) // Donnerstag + || (nWochentag1Jan == -3) // auch Donnerstag + || ((nWochentag1Jan == 3) && bIstSchaltjahr) + || ((nWochentag1Jan == -4) && bIstSchaltjahr)) { + ; // Das ist korrekt und erlaubt + } else + nKalenderWoche = 1; // Korrektur des Wertes + } + + return nKalenderWoche; +} + +void getOsterdatum(const unsigned int uJahr, unsigned int *uTag, unsigned int *uMonat) +{ + // Berechnet für ein beliebiges Jahr das Osterdatum. + + // Quelle des Gauss - Algorithmus: Stefan Gerth, + // "Die Gauß'sche Osterregel", Nürnberg, Februar 2003. + // http://krapfen.org/content/paper/Schule/Facharbeit/Berechnung_des_Osterfestes.pdf + + unsigned int a = uJahr % 19; + unsigned int b = uJahr % 4; + unsigned int c = uJahr % 7; + + int k = uJahr / 100; + int q = k / 4; + int p = ((8 * k) + 13) / 25; + unsigned int Egz = (38 - (k - q) + p) % 30; // Die Jahrhundertepakte + unsigned int M = (53 - Egz) % 30; + unsigned int N = (4 + k - q) % 7; + + unsigned int d = ((19 * a) + M) % 30; + unsigned int e = ((2 * b) + (4 * c) + (6 * d) + N) % 7; + + // Ausrechnen des Ostertermins: + if ((22 + d + e) <= 31) { + *uTag = 22 + d + e; + *uMonat = 3; + } else { + *uTag = d + e - 9; + *uMonat = 4; + + // Zwei Ausnahmen berücksichtigen: + if (*uTag == 26) + *uTag = 19; + else if ((*uTag == 25) && (d == 28) && (a > 10)) + *uTag = 18; + } + + // Offsets für andere Feiertage: + + // Schwerdonnerstag / Weiberfastnacht -52 + // Rosenmontag -48 + // Fastnachtsdienstag -47 + // Aschermittwoch -46 + // Gründonnerstag -3 + // Karfreitag -2 + // Ostersonntag 0 + // Ostermontag +1 + // Christi Himmelfahrt +39 + // Pfingstsonntag +49 + // Pfingstmontag +50 + // Fronleichnam +60 + + // Mariä Himmelfahrt ist stets am 15. August (Danke an Michael Plugge!) +} + +void getViertenAdvent(const unsigned int uJahr, unsigned int *uTag, unsigned int *uMonat) +{ + // Berechnet für ein beliebiges Jahr das Datum des 4. Advents-Sonntags. + // Der 4. Adventssonntag ist stets der Sonntag vor dem 1. Weihnachtsfeiertag, + // muß also stets in der Periode [18. - 24.12.] liegen: + + *uMonat = 12; // Das steht jedes Jahr fest :-) + + short nWoTag = getWochentag(24, 12, uJahr); // Wochentag des 24.12. ermitteln + + *uTag = 24 - nWoTag; + + // Offsets: Der Buß- und Bettag liegt stets 32 Tage vor dem 4. Advent +} + + diff --git a/ui/calendar.h b/ui/calendar.h new file mode 100644 index 0000000..636085f --- /dev/null +++ b/ui/calendar.h @@ -0,0 +1,21 @@ +#ifndef _CALENDAR_H +#define _CALENDAR_H + +unsigned char is_leap(const unsigned int year); + +unsigned short days_of_month(const unsigned int uMonat, const unsigned int uJahr); + +short getAnzahlTageImJahr(const unsigned int uJahr); + +short getWochentag(const unsigned int uTag, const unsigned int uMonat, const unsigned int uJahr); + +short getTagDesJahres(const unsigned int uTag, const unsigned int uMonat, const unsigned int uJahr); + +short getKalenderwoche(short uTag, short uMonat, short uJahr); + +void getOsterdatum(const unsigned int uJahr, unsigned int *uTag, unsigned int *uMonat); + +void getViertenAdvent(const unsigned int uJahr, unsigned int *uTag, unsigned int *uMonat); + +#endif + diff --git a/ui/configure.in b/ui/configure.in new file mode 100644 index 0000000..7aa5ef3 --- /dev/null +++ b/ui/configure.in @@ -0,0 +1,17 @@ +AC_CONFIG_MACRO_DIR([m4]) +# AC_CONFIG_HEADER(config.h) + +AC_INIT(Makefile.am) +AM_INIT_AUTOMAKE(oswald-gui, 0.01) + +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_LIBTOOL + +AM_MAINTAINER_MODE + +PKG_CHECK_MODULES(GTK, gtk+-2.0) +AC_SUBST(GTK_LIBS) +AC_SUBST(GTK_CFLAGS) + +AC_OUTPUT([ Makefile ]) \ No newline at end of file diff --git a/ui/embedvm.c b/ui/embedvm.c new file mode 100644 index 0000000..88ec457 --- /dev/null +++ b/ui/embedvm.c @@ -0,0 +1,311 @@ +/* + * EmbedVM - Embedded Virtual Machine for uC Applications + * + * Copyright (C) 2011 Clifford Wolf + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include "embedvm.h" + +static inline int16_t signext(uint16_t val, uint16_t mask) +{ + val = val & mask; + if ((val & ~(mask >> 1)) != 0) + val |= ~mask; + return val; +} + +extern void embedvm_exec(struct embedvm_s *vm) +{ + uint8_t opcode = vm->mem_read(vm->ip, false, vm->user_ctx); + uint16_t addr = 0; + int16_t a = 0, b = 0; + int8_t sfa = 0; + + switch (opcode) + { + case 0x00 ... 0x3f: + sfa = signext(opcode, 0x3f); + embedvm_push(vm, embedvm_local_read(vm, sfa)); + vm->ip++; + break; + case 0x40 ... 0x7f: + sfa = signext(opcode, 0x3f); + embedvm_local_write(vm, sfa, embedvm_pop(vm)); + vm->ip++; + break; + case 0x80+0 ... 0x80+11: + case 0xa8+0 ... 0xa8+5: + b = embedvm_pop(vm); + case 0x80+12 ... 0x80+14: + a = embedvm_pop(vm); + switch (opcode) + { + case 0x80 + 0: embedvm_push(vm, a + b); break; + case 0x80 + 1: embedvm_push(vm, a - b); break; + case 0x80 + 2: embedvm_push(vm, a * b); break; + case 0x80 + 3: embedvm_push(vm, a / b); break; + case 0x80 + 4: embedvm_push(vm, a % b); break; + case 0x80 + 5: embedvm_push(vm, a << b); break; + case 0x80 + 6: embedvm_push(vm, a >> b); break; + case 0x80 + 7: embedvm_push(vm, a & b); break; + case 0x80 + 8: embedvm_push(vm, a | b); break; + case 0x80 + 9: embedvm_push(vm, a ^ b); break; + case 0x80 + 10: embedvm_push(vm, a && b); break; + case 0x80 + 11: embedvm_push(vm, a || b); break; + case 0x80 + 12: embedvm_push(vm, ~a); break; + case 0x80 + 13: embedvm_push(vm, -a); break; + case 0x80 + 14: embedvm_push(vm, !a); break; + case 0xa8 + 0: embedvm_push(vm, a < b); break; + case 0xa8 + 1: embedvm_push(vm, a <= b); break; + case 0xa8 + 2: embedvm_push(vm, a == b); break; + case 0xa8 + 3: embedvm_push(vm, a != b); break; + case 0xa8 + 4: embedvm_push(vm, a >= b); break; + case 0xa8 + 5: embedvm_push(vm, a > b); break; + + } + vm->ip++; + break; + case 0x90 ... 0x97: + a = signext(opcode, 0x07); + if ((a & 0x04) != 0) + a |= ~0x07; + embedvm_push(vm, a); + vm->ip++; + break; + case 0x98: + a = vm->mem_read(vm->ip+1, false, vm->user_ctx) & 0x00ff; + embedvm_push(vm, a); + vm->ip += 2; + break; + case 0x99: + a = vm->mem_read(vm->ip+1, false, vm->user_ctx) & 0x00ff; + embedvm_push(vm, signext(a, 0x00ff)); + vm->ip += 2; + break; + case 0x9a: + a = vm->mem_read(vm->ip+1, true, vm->user_ctx); + embedvm_push(vm, a); + vm->ip += 3; + break; + case 0x9b: + a = embedvm_pop(vm); + if (0) { + case 0x9c: + a = 0; + } + vm->sp = vm->sfp; + vm->ip = embedvm_pop(vm); + vm->sfp = embedvm_pop(vm); + if ((vm->sfp & 1) != 0) + vm->sfp &= ~1; + else + embedvm_push(vm, a); + break; + case 0x9d: + embedvm_pop(vm); + vm->ip++; + break; + case 0x9e: + addr = embedvm_pop(vm); + if (vm->mem_read(vm->ip+1, false, vm->user_ctx) == 0x9d) { + embedvm_push(vm, vm->sfp | 1); + embedvm_push(vm, vm->ip + 2); + } else { + embedvm_push(vm, vm->sfp); + embedvm_push(vm, vm->ip + 1); + } + vm->sfp = vm->sp; + vm->ip = addr; + break; + case 0x9f: + vm->ip = embedvm_pop(vm); + break; + case 0xa0 ... 0xa0+7: + if ((opcode & 1) == 0) { + addr = vm->ip + signext(vm->mem_read(vm->ip+1, false, vm->user_ctx), 0x00ff); + vm->ip += 2; + } else { + addr = vm->ip + vm->mem_read(vm->ip+1, true, vm->user_ctx); + vm->ip += 3; + } + switch (opcode) + { + case 0xa0: + case 0xa1: + vm->ip = addr; + break; + case 0xa2: + case 0xa3: + if (vm->mem_read(vm->ip, false, vm->user_ctx) == 0x9d) { + embedvm_push(vm, vm->sfp | 1); + embedvm_push(vm, vm->ip + 1); + } else { + embedvm_push(vm, vm->sfp); + embedvm_push(vm, vm->ip); + } + vm->sfp = vm->sp; + vm->ip = addr; + break; + case 0xa4: + case 0xa5: + if (embedvm_pop(vm)) + vm->ip = addr; + break; + case 0xa6: + case 0xa7: + if (!embedvm_pop(vm)) + vm->ip = addr; + break; + } + break; + case 0xae: + embedvm_push(vm, vm->sp); + vm->ip++; + break; + case 0xaf: + embedvm_push(vm, vm->sfp); + vm->ip++; + break; + case 0xb0 ... 0xb0+15: + { + uint8_t argc = embedvm_pop(vm); + int16_t argv[argc]; + for (sfa=0; sfacall_user(opcode - 0xb0, argc, argv, vm->user_ctx); + embedvm_push(vm, a); + } + vm->ip++; + break; + case 0xc0 ... 0xef: + if ((opcode & 0x07) == 5) { + /* this is a "bury" instruction */ + uint8_t depth = (opcode >> 3) & 0x07; + int16_t stack[depth+1]; + for (sfa = 0; sfa <= depth; sfa++) + stack[sfa] = embedvm_pop(vm); + embedvm_push(vm, stack[0]); + for (sfa = depth; sfa > 0; sfa--) + embedvm_push(vm, stack[sfa]); + embedvm_push(vm, stack[0]); + vm->ip++; + break; + } + if ((opcode & 0x07) == 6) { + /* this is a "dig" instruction */ + uint8_t depth = (opcode >> 3) & 0x07; + int16_t stack[depth+2]; + for (sfa = 0; sfa < depth+2; sfa++) + stack[sfa] = embedvm_pop(vm); + for (sfa = depth+1; sfa > 0; sfa--) + embedvm_push(vm, stack[sfa-1]); + embedvm_push(vm, stack[depth+1]); + vm->ip++; + break; + } + sfa = ((opcode >> 3) & 0x07) == 4 || ((opcode >> 3) & 0x07) == 5 ? 1 : 0; + switch (opcode & 0x07) + { + case 0: + addr = vm->mem_read(vm->ip+1, false, vm->user_ctx) & 0x00ff; + vm->ip += 2; + break; + case 1: + addr = vm->mem_read(vm->ip+1, true, vm->user_ctx); + vm->ip += 3; + break; + case 2: + addr = embedvm_pop(vm); + vm->ip++; + break; + case 3: + addr = (embedvm_pop(vm) << sfa) + (vm->mem_read(vm->ip+1, false, vm->user_ctx) & 0x00ff); + vm->ip += 2; + break; + case 4: + addr = (embedvm_pop(vm) << sfa) + vm->mem_read(vm->ip+1, true, vm->user_ctx); + vm->ip += 3; + break; + } + switch ((opcode >> 3) & 0x07) + { + case 0: + embedvm_push(vm, vm->mem_read(addr, false, vm->user_ctx) & 0x00ff); + break; + case 1: + vm->mem_write(addr, embedvm_pop(vm), false, vm->user_ctx); + break; + case 2: + embedvm_push(vm, signext(vm->mem_read(addr, false, vm->user_ctx), 0x00ff)); + break; + case 3: + vm->mem_write(addr, embedvm_pop(vm), false, vm->user_ctx); + break; + case 4: + embedvm_push(vm, vm->mem_read(addr, true, vm->user_ctx)); + break; + case 5: + vm->mem_write(addr, embedvm_pop(vm), true, vm->user_ctx); + break; + } + break; + case 0xf0 ... 0xf7: + for (sfa = 0; sfa <= (opcode & 0x07); sfa++) + embedvm_push(vm, 0); + vm->ip++; + break; + case 0xf8 ... 0xff: + a = embedvm_pop(vm); + vm->sp += 2 + 2*(opcode & 0x07); + embedvm_push(vm, a); + vm->ip++; + break; + } +} + +void embedvm_interrupt(struct embedvm_s *vm, uint16_t addr) +{ + embedvm_push(vm, vm->sfp | 1); + embedvm_push(vm, vm->ip); + vm->sfp = vm->sp; + vm->ip = addr; +} + +int16_t embedvm_pop(struct embedvm_s *vm) +{ + int16_t value = vm->mem_read(vm->sp, true, vm->user_ctx); + vm->sp += 2; + return value; +} + +void embedvm_push(struct embedvm_s *vm, int16_t value) +{ + vm->sp -= 2; + vm->mem_write(vm->sp, value, true, vm->user_ctx); +} + +int16_t embedvm_local_read(struct embedvm_s *vm, int8_t sfa) +{ + uint16_t addr = vm->sfp - 2*sfa + (sfa < 0 ? +2 : -2); + return vm->mem_read(addr, true, vm->user_ctx); +} + +void embedvm_local_write(struct embedvm_s *vm, int8_t sfa, int16_t value) +{ + uint16_t addr = vm->sfp - 2*sfa + (sfa < 0 ? +2 : -2); + vm->mem_write(addr, value, true, vm->user_ctx); +} + diff --git a/ui/embedvm.h b/ui/embedvm.h new file mode 100644 index 0000000..1381b24 --- /dev/null +++ b/ui/embedvm.h @@ -0,0 +1,53 @@ +/* + * EmbedVM - Embedded Virtual Machine for uC Applications + * + * Copyright (C) 2011 Clifford Wolf + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#ifndef EMBEDVM_H +#define EMBEDVM_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct embedvm_s +{ + uint16_t ip, sp, sfp; + void *user_ctx; + + int16_t (*mem_read)(uint16_t addr, bool is16bit, void *ctx); + void (*mem_write)(uint16_t addr, int16_t value, bool is16bit, void *ctx); + int16_t (*call_user)(uint8_t funcid, uint8_t argc, int16_t *argv, void *ctx); +}; + +extern void embedvm_exec(struct embedvm_s *vm); +extern void embedvm_interrupt(struct embedvm_s *vm, uint16_t addr); + +int16_t embedvm_pop(struct embedvm_s *vm); +void embedvm_push(struct embedvm_s *vm, int16_t value); + +int16_t embedvm_local_read(struct embedvm_s *vm, int8_t sfa); +void embedvm_local_write(struct embedvm_s *vm, int8_t sfa, int16_t value); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/ui/fonts/DroidSans-Bold.ttf b/ui/fonts/DroidSans-Bold.ttf new file mode 100644 index 0000000..d065b64 Binary files /dev/null and b/ui/fonts/DroidSans-Bold.ttf differ diff --git a/ui/fonts/DroidSans-Bold11x14.bdf b/ui/fonts/DroidSans-Bold11x14.bdf new file mode 100644 index 0000000..bb51270 --- /dev/null +++ b/ui/fonts/DroidSans-Bold11x14.bdf @@ -0,0 +1,3302 @@ +STARTFONT 2.1 +COMMENT Font converted from OTF to BDF. +FONT -FreeType-Droid_Sans-Bold-R-Normal--11-80-96-96-P-63-ISO10646-1 +SIZE 8 96 96 +FONTBOUNDINGBOX 11 14 -1 -3 +STARTPROPERTIES 19 +POINT_SIZE 80 +PIXEL_SIZE 11 +RESOLUTION_X 96 +RESOLUTION_Y 96 +FONT_ASCENT 10 +FONT_DESCENT 2 +AVERAGE_WIDTH 63 +SPACING "P" +FOUNDRY "FreeType" +FAMILY_NAME "Droid_Sans" +CHARSET_REGISTRY "ISO10646" +CHARSET_ENCODING "1" +WEIGHT_NAME "Bold" +SLANT "R" +SETWIDTH_NAME "Normal" +COPYRIGHT "Digitized data copyright © 2007, Google Corporation." +_TTF_PSNAME "DroidSans-Bold" +_OTF_FONTFILE "DroidSans-Bold.ttf" +_GBDFED_INFO "Edited with gbdfed 1.6." +ENDPROPERTIES +CHARS 256 +STARTCHAR char0 +ENCODING 0 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char1 +ENCODING 1 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char2 +ENCODING 2 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char3 +ENCODING 3 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char4 +ENCODING 4 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char5 +ENCODING 5 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char6 +ENCODING 6 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char7 +ENCODING 7 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char8 +ENCODING 8 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char9 +ENCODING 9 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char10 +ENCODING 10 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char11 +ENCODING 11 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char12 +ENCODING 12 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char13 +ENCODING 13 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char14 +ENCODING 14 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char15 +ENCODING 15 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char16 +ENCODING 16 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char17 +ENCODING 17 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char18 +ENCODING 18 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char19 +ENCODING 19 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char20 +ENCODING 20 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char21 +ENCODING 21 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char22 +ENCODING 22 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char23 +ENCODING 23 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char24 +ENCODING 24 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char25 +ENCODING 25 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char26 +ENCODING 26 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char27 +ENCODING 27 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char28 +ENCODING 28 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char29 +ENCODING 29 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char30 +ENCODING 30 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char31 +ENCODING 31 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char32 +ENCODING 32 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char33 +ENCODING 33 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 2 8 1 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +00 +C0 +C0 +ENDCHAR +STARTCHAR char34 +ENCODING 34 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 3 3 1 5 +BITMAP +A0 +A0 +A0 +ENDCHAR +STARTCHAR char35 +ENCODING 35 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 8 0 0 +BITMAP +24 +24 +FE +2C +68 +FE +48 +48 +ENDCHAR +STARTCHAR char36 +ENCODING 36 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 -1 +BITMAP +20 +78 +A0 +E0 +70 +38 +A8 +F0 +20 +ENDCHAR +STARTCHAR char37 +ENCODING 37 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +6200 +9400 +9400 +6800 +0B00 +1480 +1480 +2300 +ENDCHAR +STARTCHAR char38 +ENCODING 38 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 7 8 0 0 +BITMAP +30 +48 +48 +30 +F6 +9C +DC +76 +ENDCHAR +STARTCHAR char39 +ENCODING 39 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 1 3 1 5 +BITMAP +80 +80 +80 +ENDCHAR +STARTCHAR char40 +ENCODING 40 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 3 10 1 -2 +BITMAP +60 +40 +C0 +80 +80 +80 +80 +C0 +40 +60 +ENDCHAR +STARTCHAR char41 +ENCODING 41 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 3 10 0 -2 +BITMAP +C0 +40 +60 +20 +20 +20 +20 +60 +40 +C0 +ENDCHAR +STARTCHAR char42 +ENCODING 42 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 5 0 3 +BITMAP +20 +A8 +F8 +50 +50 +ENDCHAR +STARTCHAR char43 +ENCODING 43 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 5 0 1 +BITMAP +20 +20 +F8 +20 +20 +ENDCHAR +STARTCHAR char44 +ENCODING 44 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 2 3 1 -1 +BITMAP +40 +C0 +80 +ENDCHAR +STARTCHAR char45 +ENCODING 45 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 3 1 0 3 +BITMAP +E0 +ENDCHAR +STARTCHAR char46 +ENCODING 46 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 2 2 1 0 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR char47 +ENCODING 47 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +08 +10 +10 +20 +20 +40 +40 +80 +ENDCHAR +STARTCHAR char48 +ENCODING 48 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +70 +D8 +D8 +D8 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char49 +ENCODING 49 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 4 8 0 0 +BITMAP +30 +70 +B0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char50 +ENCODING 50 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +70 +D8 +18 +18 +30 +60 +C0 +F8 +ENDCHAR +STARTCHAR char51 +ENCODING 51 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +F0 +18 +18 +60 +18 +18 +98 +F0 +ENDCHAR +STARTCHAR char52 +ENCODING 52 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 8 0 0 +BITMAP +18 +38 +38 +58 +D8 +FC +18 +18 +ENDCHAR +STARTCHAR char53 +ENCODING 53 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +F0 +C0 +C0 +F0 +18 +18 +98 +F0 +ENDCHAR +STARTCHAR char54 +ENCODING 54 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +70 +40 +C0 +B0 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char55 +ENCODING 55 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +F8 +18 +18 +30 +30 +30 +60 +60 +ENDCHAR +STARTCHAR char56 +ENCODING 56 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +70 +D8 +D8 +70 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char57 +ENCODING 57 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +70 +D8 +D8 +D8 +68 +18 +10 +70 +ENDCHAR +STARTCHAR char58 +ENCODING 58 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 2 6 1 0 +BITMAP +C0 +C0 +00 +00 +C0 +C0 +ENDCHAR +STARTCHAR char59 +ENCODING 59 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 2 7 1 -1 +BITMAP +C0 +C0 +00 +00 +40 +C0 +80 +ENDCHAR +STARTCHAR char60 +ENCODING 60 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 5 0 1 +BITMAP +08 +30 +C0 +70 +08 +ENDCHAR +STARTCHAR char61 +ENCODING 61 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 3 0 2 +BITMAP +F8 +00 +F8 +ENDCHAR +STARTCHAR char62 +ENCODING 62 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 5 0 1 +BITMAP +80 +60 +18 +70 +80 +ENDCHAR +STARTCHAR char63 +ENCODING 63 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +E0 +90 +10 +60 +40 +00 +60 +60 +ENDCHAR +STARTCHAR char64 +ENCODING 64 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 8 9 1 -1 +BITMAP +3C +62 +DD +B5 +A5 +A5 +9E +40 +3C +ENDCHAR +STARTCHAR char65 +ENCODING 65 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 8 0 0 +BITMAP +10 +28 +28 +6C +6C +7C +C6 +C6 +ENDCHAR +STARTCHAR char66 +ENCODING 66 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 5 8 1 0 +BITMAP +F0 +D8 +D8 +F0 +D8 +D8 +D8 +F0 +ENDCHAR +STARTCHAR char67 +ENCODING 67 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 5 8 1 0 +BITMAP +38 +68 +C0 +C0 +C0 +C0 +68 +78 +ENDCHAR +STARTCHAR char68 +ENCODING 68 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 8 1 0 +BITMAP +F0 +D8 +CC +CC +CC +CC +D8 +F0 +ENDCHAR +STARTCHAR char69 +ENCODING 69 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 4 8 1 0 +BITMAP +F0 +C0 +C0 +F0 +C0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char70 +ENCODING 70 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 4 8 1 0 +BITMAP +F0 +C0 +C0 +F0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char71 +ENCODING 71 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 8 1 0 +BITMAP +3C +64 +C0 +DC +DC +CC +6C +7C +ENDCHAR +STARTCHAR char72 +ENCODING 72 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 8 1 0 +BITMAP +CC +CC +CC +FC +CC +CC +CC +CC +ENDCHAR +STARTCHAR char73 +ENCODING 73 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 4 8 0 0 +BITMAP +F0 +60 +60 +60 +60 +60 +60 +F0 +ENDCHAR +STARTCHAR char74 +ENCODING 74 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 4 10 -1 -2 +BITMAP +30 +30 +30 +30 +30 +30 +30 +30 +30 +E0 +ENDCHAR +STARTCHAR char75 +ENCODING 75 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 8 1 0 +BITMAP +CC +D8 +D0 +F0 +F0 +D8 +D8 +CC +ENDCHAR +STARTCHAR char76 +ENCODING 76 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +F8 +ENDCHAR +STARTCHAR char77 +ENCODING 77 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 8 8 1 0 +BITMAP +C3 +C3 +E7 +A5 +A5 +99 +99 +99 +ENDCHAR +STARTCHAR char78 +ENCODING 78 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 8 1 0 +BITMAP +C4 +C4 +A4 +A4 +94 +94 +8C +8C +ENDCHAR +STARTCHAR char79 +ENCODING 79 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 8 1 0 +BITMAP +38 +6C +C6 +C6 +C6 +C6 +6C +38 +ENDCHAR +STARTCHAR char80 +ENCODING 80 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 5 8 1 0 +BITMAP +F0 +D8 +D8 +D8 +F0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char81 +ENCODING 81 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 10 1 -2 +BITMAP +38 +6C +C6 +C6 +C6 +C6 +6C +38 +0C +06 +ENDCHAR +STARTCHAR char82 +ENCODING 82 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 8 1 0 +BITMAP +F0 +D8 +D8 +D8 +F0 +D0 +D8 +CC +ENDCHAR +STARTCHAR char83 +ENCODING 83 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 4 8 1 0 +BITMAP +70 +D0 +C0 +E0 +70 +30 +B0 +E0 +ENDCHAR +STARTCHAR char84 +ENCODING 84 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 8 0 0 +BITMAP +FC +30 +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char85 +ENCODING 85 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 8 1 0 +BITMAP +CC +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char86 +ENCODING 86 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 8 0 0 +BITMAP +C6 +C6 +44 +6C +6C +28 +28 +38 +ENDCHAR +STARTCHAR char87 +ENCODING 87 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 10 8 0 0 +BITMAP +8C40 +CCC0 +CCC0 +5E80 +5280 +7380 +3300 +2100 +ENDCHAR +STARTCHAR char88 +ENCODING 88 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 8 0 0 +BITMAP +C6 +6C +28 +38 +38 +6C +4C +C6 +ENDCHAR +STARTCHAR char89 +ENCODING 89 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 8 0 0 +BITMAP +CC +C8 +58 +70 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char90 +ENCODING 90 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 8 0 0 +BITMAP +FC +0C +18 +30 +20 +60 +C0 +FC +ENDCHAR +STARTCHAR char91 +ENCODING 91 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 3 10 1 -2 +BITMAP +E0 +80 +80 +80 +80 +80 +80 +80 +80 +E0 +ENDCHAR +STARTCHAR char92 +ENCODING 92 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +80 +C0 +40 +60 +20 +30 +10 +18 +ENDCHAR +STARTCHAR char93 +ENCODING 93 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 3 10 0 -2 +BITMAP +E0 +20 +20 +20 +20 +20 +20 +20 +20 +E0 +ENDCHAR +STARTCHAR char94 +ENCODING 94 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 5 0 3 +BITMAP +30 +30 +68 +48 +CC +ENDCHAR +STARTCHAR char95 +ENCODING 95 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 5 1 0 -2 +BITMAP +F8 +ENDCHAR +STARTCHAR char96 +ENCODING 96 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 3 2 2 7 +BITMAP +C0 +60 +ENDCHAR +STARTCHAR char97 +ENCODING 97 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +70 +48 +78 +C8 +D8 +68 +ENDCHAR +STARTCHAR char98 +ENCODING 98 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 8 0 0 +BITMAP +80 +80 +B8 +CC +84 +84 +CC +B8 +ENDCHAR +STARTCHAR char99 +ENCODING 99 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +78 +C8 +80 +80 +C8 +78 +ENDCHAR +STARTCHAR char100 +ENCODING 100 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 8 0 0 +BITMAP +04 +04 +74 +CC +84 +84 +CC +74 +ENDCHAR +STARTCHAR char101 +ENCODING 101 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +70 +C8 +F8 +80 +C0 +78 +ENDCHAR +STARTCHAR char102 +ENCODING 102 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +38 +60 +F0 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char103 +ENCODING 103 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 9 0 -3 +BITMAP +7C +88 +88 +70 +80 +78 +CC +CC +78 +ENDCHAR +STARTCHAR char104 +ENCODING 104 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 8 0 0 +BITMAP +80 +80 +B8 +CC +84 +84 +84 +84 +ENDCHAR +STARTCHAR char105 +ENCODING 105 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 1 8 0 0 +BITMAP +80 +00 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char106 +ENCODING 106 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 3 11 -1 -3 +BITMAP +20 +00 +20 +20 +20 +20 +20 +20 +20 +60 +C0 +ENDCHAR +STARTCHAR char107 +ENCODING 107 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +80 +80 +98 +B0 +A0 +F0 +98 +98 +ENDCHAR +STARTCHAR char108 +ENCODING 108 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 1 8 0 0 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char109 +ENCODING 109 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 9 6 0 0 +BITMAP +B300 +DD80 +8880 +8880 +8880 +8880 +ENDCHAR +STARTCHAR char110 +ENCODING 110 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 6 0 0 +BITMAP +B8 +CC +84 +84 +84 +84 +ENDCHAR +STARTCHAR char111 +ENCODING 111 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 6 0 0 +BITMAP +78 +CC +84 +84 +CC +78 +ENDCHAR +STARTCHAR char112 +ENCODING 112 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 -3 +BITMAP +B8 +CC +84 +84 +CC +B8 +80 +80 +80 +ENDCHAR +STARTCHAR char113 +ENCODING 113 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 -3 +BITMAP +74 +CC +84 +84 +CC +74 +04 +04 +04 +ENDCHAR +STARTCHAR char114 +ENCODING 114 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +B0 +F0 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char115 +ENCODING 115 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +F0 +80 +E0 +30 +10 +E0 +ENDCHAR +STARTCHAR char116 +ENCODING 116 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +40 +F0 +40 +40 +40 +60 +30 +ENDCHAR +STARTCHAR char117 +ENCODING 117 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 6 0 0 +BITMAP +84 +84 +84 +84 +CC +74 +ENDCHAR +STARTCHAR char118 +ENCODING 118 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +88 +D8 +50 +50 +50 +70 +ENDCHAR +STARTCHAR char119 +ENCODING 119 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 8 6 0 0 +BITMAP +99 +DB +DB +66 +66 +66 +ENDCHAR +STARTCHAR char120 +ENCODING 120 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 6 0 0 +BITMAP +CC +78 +30 +30 +78 +CC +ENDCHAR +STARTCHAR char121 +ENCODING 121 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 -3 +BITMAP +88 +D8 +50 +50 +50 +20 +20 +60 +C0 +ENDCHAR +STARTCHAR char122 +ENCODING 122 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +F8 +18 +30 +60 +C0 +F8 +ENDCHAR +STARTCHAR char123 +ENCODING 123 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 3 10 1 -2 +BITMAP +20 +40 +40 +40 +C0 +40 +40 +40 +40 +20 +ENDCHAR +STARTCHAR char124 +ENCODING 124 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 1 11 2 -3 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char125 +ENCODING 125 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 3 10 1 -2 +BITMAP +80 +40 +40 +40 +60 +40 +40 +40 +40 +80 +ENDCHAR +STARTCHAR char126 +ENCODING 126 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 2 0 3 +BITMAP +E8 +30 +ENDCHAR +STARTCHAR char127 +ENCODING 127 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char128 +ENCODING 128 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char129 +ENCODING 129 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char130 +ENCODING 130 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char131 +ENCODING 131 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char132 +ENCODING 132 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char133 +ENCODING 133 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char134 +ENCODING 134 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char135 +ENCODING 135 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char136 +ENCODING 136 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char137 +ENCODING 137 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char138 +ENCODING 138 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char139 +ENCODING 139 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char140 +ENCODING 140 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char141 +ENCODING 141 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char142 +ENCODING 142 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char143 +ENCODING 143 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char144 +ENCODING 144 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char145 +ENCODING 145 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char146 +ENCODING 146 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char147 +ENCODING 147 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char148 +ENCODING 148 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char149 +ENCODING 149 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char150 +ENCODING 150 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char151 +ENCODING 151 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char152 +ENCODING 152 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char153 +ENCODING 153 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char154 +ENCODING 154 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char155 +ENCODING 155 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char156 +ENCODING 156 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char157 +ENCODING 157 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char158 +ENCODING 158 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char159 +ENCODING 159 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char160 +ENCODING 160 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char161 +ENCODING 161 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 2 8 1 -2 +BITMAP +C0 +C0 +00 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char162 +ENCODING 162 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +20 +78 +C0 +C0 +C0 +C0 +78 +20 +ENDCHAR +STARTCHAR char163 +ENCODING 163 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +38 +60 +60 +F0 +60 +60 +C0 +F8 +ENDCHAR +STARTCHAR char164 +ENCODING 164 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 4 4 1 2 +BITMAP +F0 +90 +90 +F0 +ENDCHAR +STARTCHAR char165 +ENCODING 165 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 8 0 0 +BITMAP +CC +C8 +78 +70 +78 +30 +78 +30 +ENDCHAR +STARTCHAR char166 +ENCODING 166 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 1 11 2 -3 +BITMAP +80 +80 +80 +80 +00 +00 +00 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char167 +ENCODING 167 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 4 8 1 0 +BITMAP +70 +80 +60 +90 +D0 +60 +10 +E0 +ENDCHAR +STARTCHAR char168 +ENCODING 168 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 2 1 7 +BITMAP +D8 +D8 +ENDCHAR +STARTCHAR char169 +ENCODING 169 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 8 1 0 +BITMAP +38 +44 +9A +A2 +A2 +9A +44 +38 +ENDCHAR +STARTCHAR char170 +ENCODING 170 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 5 0 3 +BITMAP +E0 +10 +70 +90 +70 +ENDCHAR +STARTCHAR char171 +ENCODING 171 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 4 0 1 +BITMAP +6C +D8 +D8 +6C +ENDCHAR +STARTCHAR char172 +ENCODING 172 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 3 0 1 +BITMAP +F8 +08 +08 +ENDCHAR +STARTCHAR char173 +ENCODING 173 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 3 1 0 3 +BITMAP +E0 +ENDCHAR +STARTCHAR char174 +ENCODING 174 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 8 1 0 +BITMAP +38 +44 +BA +AA +B2 +AA +44 +38 +ENDCHAR +STARTCHAR char175 +ENCODING 175 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 1 0 8 +BITMAP +FC +ENDCHAR +STARTCHAR char176 +ENCODING 176 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 4 0 4 +BITMAP +60 +90 +90 +60 +ENDCHAR +STARTCHAR char177 +ENCODING 177 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +20 +20 +F8 +20 +20 +00 +00 +F8 +ENDCHAR +STARTCHAR char178 +ENCODING 178 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 5 0 3 +BITMAP +E0 +10 +30 +40 +F0 +ENDCHAR +STARTCHAR char179 +ENCODING 179 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 5 0 3 +BITMAP +E0 +10 +60 +10 +E0 +ENDCHAR +STARTCHAR char180 +ENCODING 180 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 3 2 2 7 +BITMAP +60 +C0 +ENDCHAR +STARTCHAR char181 +ENCODING 181 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 -3 +BITMAP +84 +84 +84 +84 +CC +F4 +80 +80 +80 +ENDCHAR +STARTCHAR char182 +ENCODING 182 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 5 9 1 -1 +BITMAP +78 +E8 +E8 +E8 +E8 +28 +28 +28 +28 +ENDCHAR +STARTCHAR char183 +ENCODING 183 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 2 2 1 3 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR char184 +ENCODING 184 +SWIDTH 187 0 +DWIDTH 2 0 +BBX 2 3 0 -3 +BITMAP +C0 +40 +80 +ENDCHAR +STARTCHAR char185 +ENCODING 185 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 2 5 1 3 +BITMAP +40 +C0 +40 +40 +40 +ENDCHAR +STARTCHAR char186 +ENCODING 186 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 5 0 3 +BITMAP +60 +90 +90 +90 +60 +ENDCHAR +STARTCHAR char187 +ENCODING 187 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 4 0 1 +BITMAP +D8 +6C +6C +D8 +ENDCHAR +STARTCHAR char188 +ENCODING 188 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 8 8 1 0 +BITMAP +44 +C8 +48 +52 +56 +2A +2F +42 +ENDCHAR +STARTCHAR char189 +ENCODING 189 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 8 8 1 0 +BITMAP +44 +C8 +48 +5E +51 +23 +24 +4F +ENDCHAR +STARTCHAR char190 +ENCODING 190 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +E200 +1400 +6400 +1900 +EB00 +1500 +1780 +2100 +ENDCHAR +STARTCHAR char191 +ENCODING 191 +SWIDTH 468 0 +DWIDTH 5 0 +BBX 4 8 0 -2 +BITMAP +60 +60 +00 +20 +60 +80 +90 +70 +ENDCHAR +STARTCHAR char192 +ENCODING 192 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 11 0 0 +BITMAP +30 +18 +00 +10 +28 +28 +6C +6C +7C +C6 +C6 +ENDCHAR +STARTCHAR char193 +ENCODING 193 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 11 0 0 +BITMAP +0C +18 +00 +10 +28 +28 +6C +6C +7C +C6 +C6 +ENDCHAR +STARTCHAR char194 +ENCODING 194 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 11 0 0 +BITMAP +18 +24 +00 +10 +28 +28 +6C +6C +7C +C6 +C6 +ENDCHAR +STARTCHAR char195 +ENCODING 195 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 11 0 0 +BITMAP +34 +2C +00 +10 +28 +28 +6C +6C +7C +C6 +C6 +ENDCHAR +STARTCHAR char196 +ENCODING 196 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 11 0 0 +BITMAP +6C +6C +00 +10 +28 +28 +6C +6C +7C +C6 +C6 +ENDCHAR +STARTCHAR char197 +ENCODING 197 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 7 10 0 0 +BITMAP +10 +28 +10 +28 +28 +6C +6C +7C +C6 +C6 +ENDCHAR +STARTCHAR char198 +ENCODING 198 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +1F80 +1600 +3600 +3780 +2600 +7E00 +4600 +C780 +ENDCHAR +STARTCHAR char199 +ENCODING 199 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 5 11 1 -3 +BITMAP +38 +68 +C0 +C0 +C0 +C0 +68 +78 +30 +10 +20 +ENDCHAR +STARTCHAR char200 +ENCODING 200 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 4 11 1 0 +BITMAP +C0 +60 +00 +F0 +C0 +C0 +F0 +C0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char201 +ENCODING 201 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 4 11 1 0 +BITMAP +30 +60 +00 +F0 +C0 +C0 +F0 +C0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char202 +ENCODING 202 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 4 11 1 0 +BITMAP +60 +90 +00 +F0 +C0 +C0 +F0 +C0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char203 +ENCODING 203 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 11 1 0 +BITMAP +D8 +D8 +00 +F0 +C0 +C0 +F0 +C0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char204 +ENCODING 204 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 4 11 0 0 +BITMAP +C0 +60 +00 +F0 +60 +60 +60 +60 +60 +60 +F0 +ENDCHAR +STARTCHAR char205 +ENCODING 205 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 4 11 0 0 +BITMAP +30 +60 +00 +F0 +60 +60 +60 +60 +60 +60 +F0 +ENDCHAR +STARTCHAR char206 +ENCODING 206 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 4 11 0 0 +BITMAP +60 +90 +00 +F0 +60 +60 +60 +60 +60 +60 +F0 +ENDCHAR +STARTCHAR char207 +ENCODING 207 +SWIDTH 375 0 +DWIDTH 4 0 +BBX 5 11 0 0 +BITMAP +D8 +D8 +00 +F0 +60 +60 +60 +60 +60 +60 +F0 +ENDCHAR +STARTCHAR char208 +ENCODING 208 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 7 8 0 0 +BITMAP +78 +6C +66 +F6 +66 +66 +6C +78 +ENDCHAR +STARTCHAR char209 +ENCODING 209 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 11 1 0 +BITMAP +68 +58 +00 +C4 +C4 +A4 +A4 +94 +94 +8C +8C +ENDCHAR +STARTCHAR char210 +ENCODING 210 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 11 1 0 +BITMAP +30 +18 +00 +38 +6C +C6 +C6 +C6 +C6 +6C +38 +ENDCHAR +STARTCHAR char211 +ENCODING 211 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 11 1 0 +BITMAP +0C +18 +00 +38 +6C +C6 +C6 +C6 +C6 +6C +38 +ENDCHAR +STARTCHAR char212 +ENCODING 212 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 11 1 0 +BITMAP +18 +24 +00 +38 +6C +C6 +C6 +C6 +C6 +6C +38 +ENDCHAR +STARTCHAR char213 +ENCODING 213 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 11 1 0 +BITMAP +34 +2C +00 +38 +6C +C6 +C6 +C6 +C6 +6C +38 +ENDCHAR +STARTCHAR char214 +ENCODING 214 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 11 1 0 +BITMAP +6C +6C +00 +38 +6C +C6 +C6 +C6 +C6 +6C +38 +ENDCHAR +STARTCHAR char215 +ENCODING 215 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 5 1 1 +BITMAP +88 +50 +20 +50 +88 +ENDCHAR +STARTCHAR char216 +ENCODING 216 +SWIDTH 843 0 +DWIDTH 9 0 +BBX 7 8 1 0 +BITMAP +3C +6C +CE +D6 +D6 +E6 +6C +78 +ENDCHAR +STARTCHAR char217 +ENCODING 217 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 11 1 0 +BITMAP +60 +30 +00 +CC +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char218 +ENCODING 218 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 11 1 0 +BITMAP +18 +30 +00 +CC +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char219 +ENCODING 219 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 11 1 0 +BITMAP +30 +48 +00 +CC +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char220 +ENCODING 220 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 6 11 1 0 +BITMAP +6C +6C +00 +CC +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char221 +ENCODING 221 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 11 0 0 +BITMAP +18 +30 +00 +CC +C8 +58 +70 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char222 +ENCODING 222 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 5 8 1 0 +BITMAP +C0 +F0 +D8 +D8 +D8 +F0 +C0 +C0 +ENDCHAR +STARTCHAR char223 +ENCODING 223 +SWIDTH 750 0 +DWIDTH 8 0 +BBX 7 8 0 0 +BITMAP +78 +CC +8C +90 +98 +86 +82 +BC +ENDCHAR +STARTCHAR char224 +ENCODING 224 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +60 +30 +00 +70 +48 +78 +C8 +D8 +68 +ENDCHAR +STARTCHAR char225 +ENCODING 225 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +18 +30 +00 +70 +48 +78 +C8 +D8 +68 +ENDCHAR +STARTCHAR char226 +ENCODING 226 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +30 +48 +00 +70 +48 +78 +C8 +D8 +68 +ENDCHAR +STARTCHAR char227 +ENCODING 227 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +68 +58 +00 +70 +48 +78 +C8 +D8 +68 +ENDCHAR +STARTCHAR char228 +ENCODING 228 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +D8 +D8 +00 +70 +48 +78 +C8 +D8 +68 +ENDCHAR +STARTCHAR char229 +ENCODING 229 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +20 +50 +20 +00 +70 +48 +78 +C8 +D8 +68 +ENDCHAR +STARTCHAR char230 +ENCODING 230 +SWIDTH 937 0 +DWIDTH 10 0 +BBX 9 6 0 0 +BITMAP +7F00 +0C80 +7F80 +8800 +DC80 +7780 +ENDCHAR +STARTCHAR char231 +ENCODING 231 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 -3 +BITMAP +78 +C8 +80 +80 +C8 +78 +30 +10 +20 +ENDCHAR +STARTCHAR char232 +ENCODING 232 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +60 +30 +00 +70 +C8 +F8 +80 +C0 +78 +ENDCHAR +STARTCHAR char233 +ENCODING 233 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +18 +30 +00 +70 +C8 +F8 +80 +C0 +78 +ENDCHAR +STARTCHAR char234 +ENCODING 234 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +30 +48 +00 +70 +C8 +F8 +80 +C0 +78 +ENDCHAR +STARTCHAR char235 +ENCODING 235 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +D8 +D8 +00 +70 +C8 +F8 +80 +C0 +78 +ENDCHAR +STARTCHAR char236 +ENCODING 236 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 3 9 -1 0 +BITMAP +C0 +60 +00 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char237 +ENCODING 237 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 3 9 0 0 +BITMAP +60 +C0 +00 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char238 +ENCODING 238 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 4 9 -1 0 +BITMAP +60 +90 +00 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char239 +ENCODING 239 +SWIDTH 281 0 +DWIDTH 3 0 +BBX 5 9 -1 0 +BITMAP +D8 +D8 +00 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char240 +ENCODING 240 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +28 +30 +08 +7C +CC +84 +84 +CC +78 +ENDCHAR +STARTCHAR char241 +ENCODING 241 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +68 +58 +00 +B8 +CC +84 +84 +84 +84 +ENDCHAR +STARTCHAR char242 +ENCODING 242 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +60 +30 +00 +78 +CC +84 +84 +CC +78 +ENDCHAR +STARTCHAR char243 +ENCODING 243 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +18 +30 +00 +78 +CC +84 +84 +CC +78 +ENDCHAR +STARTCHAR char244 +ENCODING 244 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +30 +48 +00 +78 +CC +84 +84 +CC +78 +ENDCHAR +STARTCHAR char245 +ENCODING 245 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +68 +58 +00 +78 +CC +84 +84 +CC +78 +ENDCHAR +STARTCHAR char246 +ENCODING 246 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +6C +6C +00 +78 +CC +84 +84 +CC +78 +ENDCHAR +STARTCHAR char247 +ENCODING 247 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +30 +00 +00 +FC +00 +00 +30 +ENDCHAR +STARTCHAR char248 +ENCODING 248 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 6 0 0 +BITMAP +78 +CC +94 +A4 +CC +78 +ENDCHAR +STARTCHAR char249 +ENCODING 249 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +60 +30 +00 +84 +84 +84 +84 +CC +74 +ENDCHAR +STARTCHAR char250 +ENCODING 250 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +18 +30 +00 +84 +84 +84 +84 +CC +74 +ENDCHAR +STARTCHAR char251 +ENCODING 251 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +30 +48 +00 +84 +84 +84 +84 +CC +74 +ENDCHAR +STARTCHAR char252 +ENCODING 252 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +6C +6C +00 +84 +84 +84 +84 +CC +74 +ENDCHAR +STARTCHAR char253 +ENCODING 253 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 12 0 -3 +BITMAP +18 +30 +00 +88 +D8 +50 +50 +50 +20 +20 +60 +C0 +ENDCHAR +STARTCHAR char254 +ENCODING 254 +SWIDTH 656 0 +DWIDTH 7 0 +BBX 6 11 0 -3 +BITMAP +80 +80 +B8 +CC +84 +84 +CC +B8 +80 +80 +80 +ENDCHAR +STARTCHAR char255 +ENCODING 255 +SWIDTH 562 0 +DWIDTH 6 0 +BBX 5 12 0 -3 +BITMAP +D8 +D8 +00 +88 +D8 +50 +50 +50 +20 +20 +60 +C0 +ENDCHAR +ENDFONT diff --git a/ui/fonts/DroidSans-Bold11x14.h b/ui/fonts/DroidSans-Bold11x14.h new file mode 100644 index 0000000..0532405 --- /dev/null +++ b/ui/fonts/DroidSans-Bold11x14.h @@ -0,0 +1,261 @@ +/* -FreeType-Droid_Sans-Bold-R-Normal--11-80-96-96-P-63-ISO10646-1 */ +#define FONT_WIDTH_Droid_SansBold_11x14 11 +#define FONT_HEIGHT_Droid_SansBold_11x14 14 +const uint8_t FONT_DATA_Droid_SansBold_11x14[256][29] = { +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x14,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x48,0x00,0xfe,0x00,0x68,0x00,0x2c,0x00,0xfe,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x3c,0x00,0x0a,0x00,0x0e,0x00,0x1c,0x00,0x38,0x00,0x2a,0x00,0x1e,0x00,0x08,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x52,0x00,0x52,0x00,0x2c,0x00,0xa0,0x01,0x50,0x02,0x50,0x02,0x88,0x01,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0xde,0x00,0x72,0x00,0x76,0x00,0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x08,0x00,0x0c,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x0c,0x00,0x08,0x00,0x18,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x04,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x0c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x2a,0x00,0x3e,0x00,0x14,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x3e,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0c,0x00,0x04,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x08,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x1c,0x00,0x1a,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x0c,0x00,0x06,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x30,0x00,0x30,0x00,0x0c,0x00,0x30,0x00,0x30,0x00,0x32,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x38,0x00,0x34,0x00,0x36,0x00,0x7e,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,0x30,0x00,0x30,0x00,0x32,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x06,0x00,0x1a,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x2c,0x00,0x30,0x00,0x10,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0c,0x00,0x04,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x18,0x00,0x06,0x00,0x1c,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x0c,0x00,0x30,0x00,0x1c,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x12,0x00,0x10,0x00,0x0c,0x00,0x04,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x18,0x01,0xec,0x02,0xb4,0x02,0x94,0x02,0x94,0x02,0xe4,0x01,0x08,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x28,0x00,0x28,0x00,0x6c,0x00,0x6c,0x00,0x7c,0x00,0xc6,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x6c,0x00,0x6c,0x00,0x3c,0x00,0x6c,0x00,0x6c,0x00,0x6c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x58,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x58,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x6c,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0x6c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x98,0x00,0x0c,0x00,0xec,0x00,0xec,0x00,0xcc,0x00,0xd8,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xfc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x07,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x00,0x6c,0x00,0x2c,0x00,0x3c,0x00,0x3c,0x00,0x6c,0x00,0x6c,0x00,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x03,0x0c,0x03,0x9c,0x03,0x94,0x02,0x94,0x02,0x64,0x02,0x64,0x02,0x64,0x02,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x8c,0x00,0x94,0x00,0x94,0x00,0xa4,0x00,0xa4,0x00,0xc4,0x00,0xc4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xd8,0x00,0x8c,0x01,0x8c,0x01,0x8c,0x01,0x8c,0x01,0xd8,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x6c,0x00,0x6c,0x00,0x6c,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xd8,0x00,0x8c,0x01,0x8c,0x01,0x8c,0x01,0x8c,0x01,0xd8,0x00,0x70,0x00,0xc0,0x00,0x80,0x01,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x6c,0x00,0x6c,0x00,0x6c,0x00,0x3c,0x00,0x2c,0x00,0x6c,0x00,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x2c,0x00,0x0c,0x00,0x1c,0x00,0x38,0x00,0x30,0x00,0x34,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0x00,0xc6,0x00,0x44,0x00,0x6c,0x00,0x6c,0x00,0x28,0x00,0x28,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x04,0x66,0x06,0x66,0x06,0xf4,0x02,0x94,0x02,0x9c,0x03,0x98,0x01,0x08,0x01,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0x00,0x6c,0x00,0x28,0x00,0x38,0x00,0x38,0x00,0x6c,0x00,0x64,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x26,0x00,0x34,0x00,0x1c,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x08,0x00,0x0c,0x00,0x06,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x00,0x04,0x00,0x0c,0x00,0x08,0x00,0x18,0x00,0x10,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x2c,0x00,0x24,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x18,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x24,0x00,0x3c,0x00,0x26,0x00,0x36,0x00,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x3a,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x26,0x00,0x02,0x00,0x02,0x00,0x26,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x5c,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x26,0x00,0x3e,0x00,0x02,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x0c,0x00,0x1e,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x22,0x00,0x22,0x00,0x1c,0x00,0x02,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x3a,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x06,0x00,0x03,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x32,0x00,0x1a,0x00,0x0a,0x00,0x1e,0x00,0x32,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9a,0x01,0x76,0x03,0x22,0x02,0x22,0x02,0x22,0x02,0x22,0x02,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3a,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3a,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3a,0x00,0x02,0x00,0x02,0x00,0x02,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5c,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x5c,0x00,0x40,0x00,0x40,0x00,0x40,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x00,0x1e,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x02,0x00,0x0e,0x00,0x18,0x00,0x10,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x1e,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x00,0x36,0x00,0x14,0x00,0x14,0x00,0x14,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x01,0xb6,0x01,0xb6,0x01,0xcc,0x00,0xcc,0x00,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x3c,0x00,0x18,0x00,0x18,0x00,0x3c,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x00,0x36,0x00,0x14,0x00,0x14,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x0c,0x00,0x06,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x30,0x00,0x18,0x00,0x0c,0x00,0x06,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x18,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x04,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x3c,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x3c,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x06,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x24,0x00,0x24,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x26,0x00,0x3c,0x00,0x1c,0x00,0x3c,0x00,0x18,0x00,0x3c,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x04,0x00,0x18,0x00,0x24,0x00,0x2c,0x00,0x18,0x00,0x20,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x6c,0x00,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x88,0x00,0x64,0x01,0x14,0x01,0x14,0x01,0x64,0x01,0x88,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x10,0x00,0x1c,0x00,0x12,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x00,0x36,0x00,0x36,0x00,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x88,0x00,0x74,0x01,0x54,0x01,0x34,0x01,0x54,0x01,0x88,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x12,0x00,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x3e,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x10,0x00,0x18,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x10,0x00,0x0c,0x00,0x10,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x5e,0x00,0x02,0x00,0x02,0x00,0x02,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x5c,0x00,0x5c,0x00,0x5c,0x00,0x5c,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x04,0x00,0x02,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x12,0x00,0x12,0x00,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x6c,0x00,0x6c,0x00,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x4c,0x00,0x48,0x00,0x28,0x01,0xa8,0x01,0x50,0x01,0xd0,0x03,0x08,0x01,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x4c,0x00,0x48,0x00,0xe8,0x01,0x28,0x02,0x10,0x03,0x90,0x00,0xc8,0x03,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0x8e,0x00,0x50,0x00,0x4c,0x00,0x30,0x01,0xae,0x01,0x50,0x01,0xd0,0x03,0x08,0x01,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x0c,0x00,0x02,0x00,0x12,0x00,0x1c,0x00,0x00,0x00,}, +{/*w*/7,0x18,0x00,0x30,0x00,0x00,0x00,0x10,0x00,0x28,0x00,0x28,0x00,0x6c,0x00,0x6c,0x00,0x7c,0x00,0xc6,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x60,0x00,0x30,0x00,0x00,0x00,0x10,0x00,0x28,0x00,0x28,0x00,0x6c,0x00,0x6c,0x00,0x7c,0x00,0xc6,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x30,0x00,0x48,0x00,0x00,0x00,0x10,0x00,0x28,0x00,0x28,0x00,0x6c,0x00,0x6c,0x00,0x7c,0x00,0xc6,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x58,0x00,0x68,0x00,0x00,0x00,0x10,0x00,0x28,0x00,0x28,0x00,0x6c,0x00,0x6c,0x00,0x7c,0x00,0xc6,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x6c,0x00,0x6c,0x00,0x00,0x00,0x10,0x00,0x28,0x00,0x28,0x00,0x6c,0x00,0x6c,0x00,0x7c,0x00,0xc6,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x10,0x00,0x28,0x00,0x10,0x00,0x28,0x00,0x28,0x00,0x6c,0x00,0x6c,0x00,0x7c,0x00,0xc6,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x03,0xd0,0x00,0xd8,0x00,0xd8,0x03,0xc8,0x00,0xfc,0x00,0xc4,0x00,0xc6,0x03,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x58,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x58,0x00,0x78,0x00,0x30,0x00,0x20,0x00,0x10,0x00,}, +{/*w*/6,0x0c,0x00,0x18,0x00,0x00,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x30,0x00,0x18,0x00,0x00,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x18,0x00,0x24,0x00,0x00,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x6c,0x00,0x6c,0x00,0x00,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x06,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x18,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x0c,0x00,0x12,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x36,0x00,0x36,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x6c,0x00,0xcc,0x00,0xde,0x00,0xcc,0x00,0xcc,0x00,0x6c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x58,0x00,0x68,0x00,0x00,0x00,0x8c,0x00,0x8c,0x00,0x94,0x00,0x94,0x00,0xa4,0x00,0xa4,0x00,0xc4,0x00,0xc4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0x30,0x00,0x60,0x00,0x00,0x00,0x70,0x00,0xd8,0x00,0x8c,0x01,0x8c,0x01,0x8c,0x01,0x8c,0x01,0xd8,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0xc0,0x00,0x60,0x00,0x00,0x00,0x70,0x00,0xd8,0x00,0x8c,0x01,0x8c,0x01,0x8c,0x01,0x8c,0x01,0xd8,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0x60,0x00,0x90,0x00,0x00,0x00,0x70,0x00,0xd8,0x00,0x8c,0x01,0x8c,0x01,0x8c,0x01,0x8c,0x01,0xd8,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0xb0,0x00,0xd0,0x00,0x00,0x00,0x70,0x00,0xd8,0x00,0x8c,0x01,0x8c,0x01,0x8c,0x01,0x8c,0x01,0xd8,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0xd8,0x00,0xd8,0x00,0x00,0x00,0x70,0x00,0xd8,0x00,0x8c,0x01,0x8c,0x01,0x8c,0x01,0x8c,0x01,0xd8,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x00,0x28,0x00,0x10,0x00,0x28,0x00,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/9,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xd8,0x00,0xcc,0x01,0xac,0x01,0xac,0x01,0x9c,0x01,0xd8,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x18,0x00,0x30,0x00,0x00,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x60,0x00,0x30,0x00,0x00,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x30,0x00,0x48,0x00,0x00,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0xd8,0x00,0xd8,0x00,0x00,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x30,0x00,0x18,0x00,0x00,0x00,0x66,0x00,0x26,0x00,0x34,0x00,0x1c,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x3c,0x00,0x6c,0x00,0x6c,0x00,0x6c,0x00,0x3c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x62,0x00,0x12,0x00,0x32,0x00,0xc2,0x00,0x82,0x00,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x1c,0x00,0x24,0x00,0x3c,0x00,0x26,0x00,0x36,0x00,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x1c,0x00,0x24,0x00,0x3c,0x00,0x26,0x00,0x36,0x00,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x00,0x00,0x1c,0x00,0x24,0x00,0x3c,0x00,0x26,0x00,0x36,0x00,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x2c,0x00,0x34,0x00,0x00,0x00,0x1c,0x00,0x24,0x00,0x3c,0x00,0x26,0x00,0x36,0x00,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x00,0x00,0x1c,0x00,0x24,0x00,0x3c,0x00,0x26,0x00,0x36,0x00,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x08,0x00,0x14,0x00,0x08,0x00,0x00,0x00,0x1c,0x00,0x24,0x00,0x3c,0x00,0x26,0x00,0x36,0x00,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x01,0x60,0x02,0xfc,0x03,0x22,0x00,0x76,0x02,0xdc,0x03,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x26,0x00,0x02,0x00,0x02,0x00,0x26,0x00,0x3c,0x00,0x18,0x00,0x10,0x00,0x08,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x1c,0x00,0x26,0x00,0x3e,0x00,0x02,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x1c,0x00,0x26,0x00,0x3e,0x00,0x02,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x00,0x00,0x1c,0x00,0x26,0x00,0x3e,0x00,0x02,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x00,0x00,0x1c,0x00,0x26,0x00,0x3e,0x00,0x02,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x03,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x06,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x1b,0x00,0x1b,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x28,0x00,0x18,0x00,0x20,0x00,0x7c,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x2c,0x00,0x34,0x00,0x00,0x00,0x3a,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x2c,0x00,0x34,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x6c,0x00,0x6c,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x52,0x00,0x4a,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x00,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x6c,0x00,0x6c,0x00,0x00,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x22,0x00,0x36,0x00,0x14,0x00,0x14,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x0c,0x00,0x06,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x3a,0x00,0x66,0x00,0x42,0x00,0x42,0x00,0x66,0x00,0x3a,0x00,0x02,0x00,0x02,0x00,0x02,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x00,0x00,0x22,0x00,0x36,0x00,0x14,0x00,0x14,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x0c,0x00,0x06,0x00,}, +}; diff --git a/ui/fonts/DroidSans.h b/ui/fonts/DroidSans.h new file mode 100644 index 0000000..9f4601f --- /dev/null +++ b/ui/fonts/DroidSans.h @@ -0,0 +1,261 @@ +/* -FreeType-Droid Sans-Medium-R-Normal--8-60-96-96-P-44-ISO10646-1 */ +#define FONT_WIDTH_Droid SansMedium_13x14 13 +#define FONT_HEIGHT_Droid SansMedium_13x14 14 +const uint8_t FONT_DATA_Droid SansMedium_13x14[256][29] = { +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xc0,0x00,0xf0,0x01,0xf0,0x01,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x70,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x60,0x00,0x70,0x00,0x20,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x01,0xb0,0x00,0xb0,0x03,0x70,0x03,0x40,0x03,0x20,0x03,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x90,0x00,0x60,0x00,0x50,0x02,0x90,0x01,0xf0,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x08,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x70,0x00,0x20,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0xe0,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x30,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x60,0x00,0x60,0x00,0x50,0x00,0xf0,0x00,0x40,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x10,0x00,0x70,0x00,0x50,0x00,0x50,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x50,0x00,0x50,0x00,0x20,0x00,0x50,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x50,0x00,0x50,0x00,0x70,0x00,0x40,0x00,0x30,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x30,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x20,0x00,0x60,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x01,0x10,0x02,0xd0,0x02,0xd0,0x02,0xd0,0x03,0x10,0x00,0xe0,0x01,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0xa0,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x90,0x00,0xf0,0x00,0x90,0x00,0x90,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x01,0x10,0x00,0x10,0x00,0x90,0x01,0x10,0x01,0xe0,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x10,0x01,0xf0,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x08,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0x50,0x00,0x30,0x00,0x50,0x00,0x50,0x00,0x90,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x04,0x30,0x06,0x30,0x06,0x50,0x05,0x50,0x05,0x90,0x04,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x30,0x01,0x50,0x01,0x50,0x01,0x90,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x80,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x50,0x00,0x90,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x10,0x00,0x30,0x00,0x40,0x00,0x40,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x10,0x01,0xa0,0x00,0xa0,0x00,0xa0,0x00,0x40,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x04,0x50,0x05,0x50,0x05,0x50,0x05,0x20,0x03,0x20,0x02,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x50,0x00,0x90,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x50,0x00,0x50,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x60,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x10,0x00,0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0xe0,0x00,0x90,0x00,0x90,0x00,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x10,0x00,0x30,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x50,0x00,0x70,0x00,0xe0,0x00,0x90,0x00,0xf0,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0xf0,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x50,0x00,0x30,0x00,0x30,0x00,0x50,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x07,0x90,0x04,0x90,0x04,0x90,0x04,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x10,0x00,0x10,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x90,0x00,0x90,0x00,0xe0,0x00,0x80,0x00,0x80,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x40,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x30,0x00,0x10,0x00,0x10,0x00,0x30,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x01,0x50,0x01,0xb0,0x00,0xa0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x20,0x00,0x20,0x00,0x50,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x20,0x00,0x20,0x00,0x10,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x20,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x60,0x00,0x20,0x00,0x20,0x00,0x60,0x00,0x40,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x20,0x00,0x20,0x00,0x70,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x50,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x50,0x00,0x30,0x00,0x70,0x00,0x70,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x50,0x00,0x70,0x00,0x40,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x01,0xd0,0x02,0x50,0x02,0xd0,0x02,0x10,0x02,0xe0,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x00,0x50,0x00,0x50,0x00,0xa0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x01,0xd0,0x03,0xd0,0x02,0xd0,0x02,0x10,0x02,0xe0,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x50,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0xe0,0x00,0x40,0x00,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x20,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x40,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xf0,0x00,0x10,0x00,0x10,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xc0,0x00,0xc0,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x50,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0xa0,0x00,0xa0,0x00,0x50,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x00,0xa0,0x00,0x60,0x03,0xe0,0x02,0x20,0x03,0x20,0x02,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x00,0xa0,0x00,0xe0,0x03,0x60,0x02,0x20,0x01,0xa0,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x01,0x40,0x01,0xc0,0x03,0xf0,0x02,0x40,0x03,0x40,0x02,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x70,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0xa0,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0xa0,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0xa0,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x80,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0xa0,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0xa0,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xc0,0x00,0xa0,0x00,0xa0,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x03,0xc0,0x00,0xa0,0x03,0xa0,0x00,0xf0,0x00,0x90,0x03,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0xe0,0x00,0x80,0x00,0x80,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x00,0x00,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x90,0x00,0xb8,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x80,0x00,0x00,0x00,0x10,0x01,0x30,0x01,0x50,0x01,0x50,0x01,0x90,0x01,0x10,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0x00,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x80,0x00,0x00,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xe0,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x00,0x40,0x00,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x90,0x01,0x50,0x01,0x50,0x01,0x30,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0x00,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x88,0x00,0x50,0x00,0x50,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x70,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x90,0x00,0x50,0x00,0x50,0x00,0x90,0x00,0xd0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x40,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x03,0x80,0x03,0xf0,0x00,0x70,0x03,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x10,0x00,0x10,0x00,0x60,0x00,0x40,0x00,0x40,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x00,0x60,0x00,0xe0,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x80,0x00,0x00,0x00,0xf0,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x80,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xd0,0x00,0xb0,0x00,0x60,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xa0,0x00,0x00,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x20,0x00,0x20,0x00,0x10,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x10,0x00,0x10,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x20,0x00,0x20,0x00,0x10,0x00,}, +}; diff --git a/ui/fonts/DroidSans.ttf b/ui/fonts/DroidSans.ttf new file mode 100644 index 0000000..ad1efca Binary files /dev/null and b/ui/fonts/DroidSans.ttf differ diff --git a/ui/fonts/DroidSans8x11.bdf b/ui/fonts/DroidSans8x11.bdf new file mode 100644 index 0000000..d0deeb3 --- /dev/null +++ b/ui/fonts/DroidSans8x11.bdf @@ -0,0 +1,2927 @@ +STARTFONT 2.1 +COMMENT Font converted from OTF to BDF. +FONT -FreeType-Droid Sans-Medium-R-Normal--8-60-96-96-P-44-ISO10646-1 +SIZE 6 96 96 +FONTBOUNDINGBOX 8 10 -1 -2 +STARTPROPERTIES 19 +POINT_SIZE 60 +PIXEL_SIZE 8 +RESOLUTION_X 96 +RESOLUTION_Y 96 +FONT_ASCENT 7 +FONT_DESCENT 1 +AVERAGE_WIDTH 44 +SPACING "P" +FOUNDRY "FreeType" +FAMILY_NAME "Droid Sans" +CHARSET_REGISTRY "ISO10646" +CHARSET_ENCODING "1" +WEIGHT_NAME "Medium" +SLANT "R" +SETWIDTH_NAME "Normal" +COPYRIGHT "Digitized data copyright © 2007, Google Corporation." +_TTF_PSNAME "DroidSans" +_OTF_FONTFILE "DroidSans.ttf" +_GBDFED_INFO "Edited with gbdfed 1.6." +ENDPROPERTIES +CHARS 256 +STARTCHAR char0 +ENCODING 0 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char1 +ENCODING 1 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char2 +ENCODING 2 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char3 +ENCODING 3 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char4 +ENCODING 4 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char5 +ENCODING 5 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char6 +ENCODING 6 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char7 +ENCODING 7 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char8 +ENCODING 8 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char9 +ENCODING 9 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char10 +ENCODING 10 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char11 +ENCODING 11 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char12 +ENCODING 12 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char13 +ENCODING 13 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char14 +ENCODING 14 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char15 +ENCODING 15 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char16 +ENCODING 16 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char17 +ENCODING 17 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char18 +ENCODING 18 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char19 +ENCODING 19 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char20 +ENCODING 20 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char21 +ENCODING 21 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char22 +ENCODING 22 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char23 +ENCODING 23 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char24 +ENCODING 24 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char25 +ENCODING 25 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char26 +ENCODING 26 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char27 +ENCODING 27 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char28 +ENCODING 28 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char29 +ENCODING 29 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char30 +ENCODING 30 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char31 +ENCODING 31 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char32 +ENCODING 32 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char33 +ENCODING 33 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 6 0 0 +BITMAP +80 +80 +80 +80 +00 +80 +ENDCHAR +STARTCHAR char34 +ENCODING 34 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 2 2 1 4 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR char35 +ENCODING 35 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +30 +30 +F8 +F8 +60 +60 +ENDCHAR +STARTCHAR char36 +ENCODING 36 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 8 0 -1 +BITMAP +40 +E0 +C0 +C0 +60 +60 +E0 +40 +ENDCHAR +STARTCHAR char37 +ENCODING 37 +SWIDTH 78 0 +DWIDTH 7 0 +BBX 6 6 0 0 +BITMAP +C8 +D0 +DC +EC +2C +4C +ENDCHAR +STARTCHAR char38 +ENCODING 38 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +F0 +90 +60 +A4 +98 +F8 +ENDCHAR +STARTCHAR char39 +ENCODING 39 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 2 1 4 +BITMAP +80 +80 +ENDCHAR +STARTCHAR char40 +ENCODING 40 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 2 7 0 -1 +BITMAP +40 +80 +80 +80 +80 +80 +40 +ENDCHAR +STARTCHAR char41 +ENCODING 41 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 2 7 -1 -1 +BITMAP +80 +40 +40 +40 +40 +40 +80 +ENDCHAR +STARTCHAR char42 +ENCODING 42 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 2 +BITMAP +40 +E0 +40 +A0 +ENDCHAR +STARTCHAR char43 +ENCODING 43 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 1 1 +BITMAP +40 +40 +E0 +40 +ENDCHAR +STARTCHAR char44 +ENCODING 44 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 2 0 -1 +BITMAP +80 +80 +ENDCHAR +STARTCHAR char45 +ENCODING 45 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 2 1 0 1 +BITMAP +C0 +ENDCHAR +STARTCHAR char46 +ENCODING 46 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 1 0 0 +BITMAP +80 +ENDCHAR +STARTCHAR char47 +ENCODING 47 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 3 6 0 0 +BITMAP +20 +20 +40 +40 +80 +80 +ENDCHAR +STARTCHAR char48 +ENCODING 48 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +40 +A0 +A0 +A0 +A0 +40 +ENDCHAR +STARTCHAR char49 +ENCODING 49 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 2 6 0 0 +BITMAP +40 +C0 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char50 +ENCODING 50 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +20 +20 +40 +40 +E0 +ENDCHAR +STARTCHAR char51 +ENCODING 51 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +20 +40 +20 +20 +E0 +ENDCHAR +STARTCHAR char52 +ENCODING 52 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +20 +60 +60 +A0 +F0 +20 +ENDCHAR +STARTCHAR char53 +ENCODING 53 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +80 +E0 +20 +20 +C0 +ENDCHAR +STARTCHAR char54 +ENCODING 54 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +60 +80 +E0 +A0 +A0 +60 +ENDCHAR +STARTCHAR char55 +ENCODING 55 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +20 +20 +40 +40 +40 +ENDCHAR +STARTCHAR char56 +ENCODING 56 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +A0 +A0 +40 +A0 +E0 +ENDCHAR +STARTCHAR char57 +ENCODING 57 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +C0 +A0 +A0 +E0 +20 +C0 +ENDCHAR +STARTCHAR char58 +ENCODING 58 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 4 0 0 +BITMAP +80 +00 +00 +80 +ENDCHAR +STARTCHAR char59 +ENCODING 59 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 5 0 -1 +BITMAP +80 +00 +00 +80 +80 +ENDCHAR +STARTCHAR char60 +ENCODING 60 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 1 +BITMAP +20 +40 +C0 +20 +ENDCHAR +STARTCHAR char61 +ENCODING 61 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 3 0 1 +BITMAP +E0 +00 +E0 +ENDCHAR +STARTCHAR char62 +ENCODING 62 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 1 +BITMAP +80 +40 +60 +80 +ENDCHAR +STARTCHAR char63 +ENCODING 63 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +20 +20 +40 +00 +40 +ENDCHAR +STARTCHAR char64 +ENCODING 64 +SWIDTH 78 0 +DWIDTH 7 0 +BBX 6 7 0 -1 +BITMAP +78 +84 +B4 +B4 +BC +80 +78 +ENDCHAR +STARTCHAR char65 +ENCODING 65 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +20 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char66 +ENCODING 66 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +F0 +90 +F0 +90 +90 +F0 +ENDCHAR +STARTCHAR char67 +ENCODING 67 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +70 +80 +80 +80 +80 +70 +ENDCHAR +STARTCHAR char68 +ENCODING 68 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +E0 +90 +90 +90 +90 +E0 +ENDCHAR +STARTCHAR char69 +ENCODING 69 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +80 +E0 +80 +80 +E0 +ENDCHAR +STARTCHAR char70 +ENCODING 70 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +80 +E0 +80 +80 +80 +ENDCHAR +STARTCHAR char71 +ENCODING 71 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +78 +80 +80 +98 +88 +78 +ENDCHAR +STARTCHAR char72 +ENCODING 72 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +88 +88 +F8 +88 +88 +88 +ENDCHAR +STARTCHAR char73 +ENCODING 73 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 1 6 1 0 +BITMAP +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char74 +ENCODING 74 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 2 8 -1 -2 +BITMAP +40 +40 +40 +40 +40 +40 +40 +80 +ENDCHAR +STARTCHAR char75 +ENCODING 75 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +90 +A0 +C0 +A0 +A0 +90 +ENDCHAR +STARTCHAR char76 +ENCODING 76 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +80 +80 +80 +80 +80 +F0 +ENDCHAR +STARTCHAR char77 +ENCODING 77 +SWIDTH 1000 0 +DWIDTH 8 0 +BBX 7 6 0 0 +BITMAP +82 +C6 +C6 +AA +AA +92 +ENDCHAR +STARTCHAR char78 +ENCODING 78 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +88 +C8 +A8 +A8 +98 +88 +ENDCHAR +STARTCHAR char79 +ENCODING 79 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +70 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char80 +ENCODING 80 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +F0 +90 +90 +E0 +80 +80 +ENDCHAR +STARTCHAR char81 +ENCODING 81 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 7 0 -1 +BITMAP +70 +88 +88 +88 +88 +70 +10 +ENDCHAR +STARTCHAR char82 +ENCODING 82 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +F0 +90 +90 +E0 +A0 +90 +ENDCHAR +STARTCHAR char83 +ENCODING 83 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +80 +C0 +20 +20 +E0 +ENDCHAR +STARTCHAR char84 +ENCODING 84 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char85 +ENCODING 85 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char86 +ENCODING 86 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +88 +88 +50 +50 +50 +20 +ENDCHAR +STARTCHAR char87 +ENCODING 87 +SWIDTH 1000 0 +DWIDTH 8 0 +BBX 7 6 0 0 +BITMAP +92 +AA +AA +AA +4C +44 +ENDCHAR +STARTCHAR char88 +ENCODING 88 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +90 +60 +60 +60 +A0 +90 +ENDCHAR +STARTCHAR char89 +ENCODING 89 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 5 6 -1 0 +BITMAP +88 +50 +50 +20 +20 +20 +ENDCHAR +STARTCHAR char90 +ENCODING 90 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +F0 +20 +20 +40 +40 +F0 +ENDCHAR +STARTCHAR char91 +ENCODING 91 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 2 7 1 -1 +BITMAP +C0 +80 +80 +80 +80 +80 +C0 +ENDCHAR +STARTCHAR char92 +ENCODING 92 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 3 6 0 0 +BITMAP +80 +80 +40 +40 +20 +20 +ENDCHAR +STARTCHAR char93 +ENCODING 93 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 2 7 -1 -1 +BITMAP +C0 +40 +40 +40 +40 +40 +C0 +ENDCHAR +STARTCHAR char94 +ENCODING 94 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 4 4 0 2 +BITMAP +20 +60 +90 +90 +ENDCHAR +STARTCHAR char95 +ENCODING 95 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 3 1 0 -2 +BITMAP +E0 +ENDCHAR +STARTCHAR char96 +ENCODING 96 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 2 2 2 5 +BITMAP +80 +40 +ENDCHAR +STARTCHAR char97 +ENCODING 97 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 0 +BITMAP +E0 +20 +E0 +E0 +ENDCHAR +STARTCHAR char98 +ENCODING 98 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +80 +80 +E0 +90 +90 +E0 +ENDCHAR +STARTCHAR char99 +ENCODING 99 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 0 +BITMAP +60 +80 +80 +60 +ENDCHAR +STARTCHAR char100 +ENCODING 100 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +10 +10 +70 +90 +90 +70 +ENDCHAR +STARTCHAR char101 +ENCODING 101 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 0 +BITMAP +E0 +E0 +80 +E0 +ENDCHAR +STARTCHAR char102 +ENCODING 102 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 2 6 0 0 +BITMAP +C0 +80 +C0 +80 +80 +80 +ENDCHAR +STARTCHAR char103 +ENCODING 103 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 4 6 0 -2 +BITMAP +F0 +A0 +E0 +70 +90 +F0 +ENDCHAR +STARTCHAR char104 +ENCODING 104 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +80 +80 +F0 +90 +90 +90 +ENDCHAR +STARTCHAR char105 +ENCODING 105 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 6 0 0 +BITMAP +80 +00 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char106 +ENCODING 106 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 2 8 -1 -2 +BITMAP +40 +00 +40 +40 +40 +40 +40 +C0 +ENDCHAR +STARTCHAR char107 +ENCODING 107 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +80 +80 +A0 +C0 +C0 +A0 +ENDCHAR +STARTCHAR char108 +ENCODING 108 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 6 0 0 +BITMAP +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char109 +ENCODING 109 +SWIDTH 89 0 +DWIDTH 8 0 +BBX 7 4 0 0 +BITMAP +EE +92 +92 +92 +ENDCHAR +STARTCHAR char110 +ENCODING 110 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 4 0 0 +BITMAP +F0 +90 +90 +90 +ENDCHAR +STARTCHAR char111 +ENCODING 111 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 4 0 0 +BITMAP +60 +90 +90 +60 +ENDCHAR +STARTCHAR char112 +ENCODING 112 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 -2 +BITMAP +E0 +90 +90 +E0 +80 +80 +ENDCHAR +STARTCHAR char113 +ENCODING 113 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 -2 +BITMAP +70 +90 +90 +70 +10 +10 +ENDCHAR +STARTCHAR char114 +ENCODING 114 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 2 4 0 0 +BITMAP +C0 +80 +80 +80 +ENDCHAR +STARTCHAR char115 +ENCODING 115 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 0 +BITMAP +E0 +C0 +20 +E0 +ENDCHAR +STARTCHAR char116 +ENCODING 116 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 2 5 0 0 +BITMAP +80 +C0 +80 +80 +C0 +ENDCHAR +STARTCHAR char117 +ENCODING 117 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 4 0 0 +BITMAP +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char118 +ENCODING 118 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 0 +BITMAP +A0 +A0 +A0 +40 +ENDCHAR +STARTCHAR char119 +ENCODING 119 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 4 0 0 +BITMAP +A8 +A8 +D0 +50 +ENDCHAR +STARTCHAR char120 +ENCODING 120 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 0 +BITMAP +A0 +40 +40 +A0 +ENDCHAR +STARTCHAR char121 +ENCODING 121 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 -2 +BITMAP +A0 +A0 +A0 +40 +40 +80 +ENDCHAR +STARTCHAR char122 +ENCODING 122 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 0 +BITMAP +E0 +40 +40 +E0 +ENDCHAR +STARTCHAR char123 +ENCODING 123 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 2 7 0 -1 +BITMAP +40 +40 +40 +80 +40 +40 +40 +ENDCHAR +STARTCHAR char124 +ENCODING 124 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 1 8 1 -2 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char125 +ENCODING 125 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 2 7 1 -1 +BITMAP +80 +80 +80 +40 +80 +80 +80 +ENDCHAR +STARTCHAR char126 +ENCODING 126 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 2 0 1 +BITMAP +80 +60 +ENDCHAR +STARTCHAR char127 +ENCODING 127 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char128 +ENCODING 128 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char129 +ENCODING 129 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char130 +ENCODING 130 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char131 +ENCODING 131 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char132 +ENCODING 132 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char133 +ENCODING 133 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char134 +ENCODING 134 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char135 +ENCODING 135 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char136 +ENCODING 136 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char137 +ENCODING 137 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char138 +ENCODING 138 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char139 +ENCODING 139 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char140 +ENCODING 140 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char141 +ENCODING 141 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char142 +ENCODING 142 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char143 +ENCODING 143 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char144 +ENCODING 144 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char145 +ENCODING 145 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char146 +ENCODING 146 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char147 +ENCODING 147 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char148 +ENCODING 148 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char149 +ENCODING 149 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char150 +ENCODING 150 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char151 +ENCODING 151 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char152 +ENCODING 152 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char153 +ENCODING 153 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char154 +ENCODING 154 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char155 +ENCODING 155 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char156 +ENCODING 156 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char157 +ENCODING 157 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char158 +ENCODING 158 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char159 +ENCODING 159 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char160 +ENCODING 160 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char161 +ENCODING 161 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 6 0 -2 +BITMAP +80 +00 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char162 +ENCODING 162 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 2 6 1 0 +BITMAP +40 +C0 +80 +80 +C0 +40 +ENDCHAR +STARTCHAR char163 +ENCODING 163 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +60 +40 +40 +E0 +40 +E0 +ENDCHAR +STARTCHAR char164 +ENCODING 164 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 3 0 1 +BITMAP +E0 +A0 +E0 +ENDCHAR +STARTCHAR char165 +ENCODING 165 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 5 6 -1 0 +BITMAP +88 +50 +60 +70 +70 +20 +ENDCHAR +STARTCHAR char166 +ENCODING 166 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 1 8 1 -2 +BITMAP +80 +80 +80 +00 +00 +80 +80 +80 +ENDCHAR +STARTCHAR char167 +ENCODING 167 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +E0 +C0 +A0 +E0 +20 +E0 +ENDCHAR +STARTCHAR char168 +ENCODING 168 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 3 1 1 5 +BITMAP +A0 +ENDCHAR +STARTCHAR char169 +ENCODING 169 +SWIDTH 78 0 +DWIDTH 7 0 +BBX 6 6 0 0 +BITMAP +78 +B4 +A4 +B4 +84 +78 +ENDCHAR +STARTCHAR char170 +ENCODING 170 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 3 3 0 3 +BITMAP +E0 +E0 +E0 +ENDCHAR +STARTCHAR char171 +ENCODING 171 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 4 4 0 0 +BITMAP +50 +A0 +A0 +50 +ENDCHAR +STARTCHAR char172 +ENCODING 172 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 2 0 1 +BITMAP +E0 +20 +ENDCHAR +STARTCHAR char173 +ENCODING 173 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 2 1 0 1 +BITMAP +C0 +ENDCHAR +STARTCHAR char174 +ENCODING 174 +SWIDTH 78 0 +DWIDTH 7 0 +BBX 6 6 0 0 +BITMAP +78 +BC +B4 +B4 +84 +78 +ENDCHAR +STARTCHAR char175 +ENCODING 175 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 4 1 0 6 +BITMAP +F0 +ENDCHAR +STARTCHAR char176 +ENCODING 176 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 3 3 0 3 +BITMAP +E0 +A0 +E0 +ENDCHAR +STARTCHAR char177 +ENCODING 177 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 5 1 0 +BITMAP +40 +40 +E0 +40 +E0 +ENDCHAR +STARTCHAR char178 +ENCODING 178 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 2 +BITMAP +E0 +20 +40 +C0 +ENDCHAR +STARTCHAR char179 +ENCODING 179 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 4 0 2 +BITMAP +E0 +20 +20 +E0 +ENDCHAR +STARTCHAR char180 +ENCODING 180 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 2 2 2 5 +BITMAP +40 +80 +ENDCHAR +STARTCHAR char181 +ENCODING 181 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 -2 +BITMAP +90 +90 +90 +F0 +80 +80 +ENDCHAR +STARTCHAR char182 +ENCODING 182 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 -1 +BITMAP +F0 +D0 +D0 +D0 +30 +30 +ENDCHAR +STARTCHAR char183 +ENCODING 183 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 1 0 2 +BITMAP +80 +ENDCHAR +STARTCHAR char184 +ENCODING 184 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 1 2 1 -2 +BITMAP +80 +80 +ENDCHAR +STARTCHAR char185 +ENCODING 185 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 2 4 0 2 +BITMAP +C0 +40 +40 +40 +ENDCHAR +STARTCHAR char186 +ENCODING 186 +SWIDTH 33 0 +DWIDTH 3 0 +BBX 3 3 0 3 +BITMAP +E0 +A0 +E0 +ENDCHAR +STARTCHAR char187 +ENCODING 187 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 4 4 0 0 +BITMAP +A0 +50 +50 +A0 +ENDCHAR +STARTCHAR char188 +ENCODING 188 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +D0 +50 +6C +74 +4C +44 +ENDCHAR +STARTCHAR char189 +ENCODING 189 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +D0 +50 +7C +64 +48 +58 +ENDCHAR +STARTCHAR char190 +ENCODING 190 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +E8 +28 +3C +F4 +2C +24 +ENDCHAR +STARTCHAR char191 +ENCODING 191 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 -2 +BITMAP +40 +00 +40 +80 +80 +E0 +ENDCHAR +STARTCHAR char192 +ENCODING 192 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +40 +20 +00 +20 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char193 +ENCODING 193 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +10 +20 +00 +20 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char194 +ENCODING 194 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +20 +50 +00 +20 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char195 +ENCODING 195 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +60 +10 +00 +20 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char196 +ENCODING 196 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +50 +00 +20 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char197 +ENCODING 197 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +30 +30 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char198 +ENCODING 198 +SWIDTH 78 0 +DWIDTH 7 0 +BBX 6 6 0 0 +BITMAP +3C +30 +5C +50 +F0 +9C +ENDCHAR +STARTCHAR char199 +ENCODING 199 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 8 0 -2 +BITMAP +70 +80 +80 +80 +80 +70 +10 +10 +ENDCHAR +STARTCHAR char200 +ENCODING 200 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 9 0 0 +BITMAP +40 +20 +00 +E0 +80 +E0 +80 +80 +E0 +ENDCHAR +STARTCHAR char201 +ENCODING 201 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 9 0 0 +BITMAP +20 +40 +00 +E0 +80 +E0 +80 +80 +E0 +ENDCHAR +STARTCHAR char202 +ENCODING 202 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 9 0 0 +BITMAP +40 +A0 +00 +E0 +80 +E0 +80 +80 +E0 +ENDCHAR +STARTCHAR char203 +ENCODING 203 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 8 0 0 +BITMAP +A0 +00 +E0 +80 +E0 +80 +80 +E0 +ENDCHAR +STARTCHAR char204 +ENCODING 204 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 2 9 0 0 +BITMAP +80 +40 +00 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char205 +ENCODING 205 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 2 9 1 0 +BITMAP +40 +80 +00 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char206 +ENCODING 206 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 9 0 0 +BITMAP +40 +A0 +00 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char207 +ENCODING 207 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 8 0 0 +BITMAP +A0 +00 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char208 +ENCODING 208 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 5 6 -1 0 +BITMAP +70 +48 +E8 +48 +48 +70 +ENDCHAR +STARTCHAR char209 +ENCODING 209 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +60 +10 +00 +88 +C8 +A8 +A8 +98 +88 +ENDCHAR +STARTCHAR char210 +ENCODING 210 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +40 +20 +00 +70 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char211 +ENCODING 211 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +10 +20 +00 +70 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char212 +ENCODING 212 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +20 +50 +00 +70 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char213 +ENCODING 213 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +60 +10 +00 +70 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char214 +ENCODING 214 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +50 +00 +70 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char215 +ENCODING 215 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 3 1 1 +BITMAP +A0 +40 +A0 +ENDCHAR +STARTCHAR char216 +ENCODING 216 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 6 0 0 +BITMAP +70 +98 +A8 +A8 +C8 +70 +ENDCHAR +STARTCHAR char217 +ENCODING 217 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +40 +20 +00 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char218 +ENCODING 218 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +10 +20 +00 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char219 +ENCODING 219 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +20 +50 +00 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char220 +ENCODING 220 +SWIDTH 67 0 +DWIDTH 6 0 +BBX 5 8 0 0 +BITMAP +50 +00 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char221 +ENCODING 221 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 5 9 -1 0 +BITMAP +10 +20 +00 +88 +50 +50 +20 +20 +20 +ENDCHAR +STARTCHAR char222 +ENCODING 222 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +80 +E0 +90 +90 +E0 +80 +ENDCHAR +STARTCHAR char223 +ENCODING 223 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +F0 +90 +A0 +A0 +90 +B0 +ENDCHAR +STARTCHAR char224 +ENCODING 224 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +40 +20 +00 +E0 +20 +E0 +E0 +ENDCHAR +STARTCHAR char225 +ENCODING 225 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +20 +40 +00 +E0 +20 +E0 +E0 +ENDCHAR +STARTCHAR char226 +ENCODING 226 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +40 +A0 +00 +E0 +20 +E0 +E0 +ENDCHAR +STARTCHAR char227 +ENCODING 227 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +C0 +20 +00 +E0 +20 +E0 +E0 +ENDCHAR +STARTCHAR char228 +ENCODING 228 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +A0 +00 +E0 +20 +E0 +E0 +ENDCHAR +STARTCHAR char229 +ENCODING 229 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +60 +60 +00 +E0 +20 +E0 +E0 +ENDCHAR +STARTCHAR char230 +ENCODING 230 +SWIDTH 78 0 +DWIDTH 7 0 +BBX 6 4 0 0 +BITMAP +EC +1C +F0 +EC +ENDCHAR +STARTCHAR char231 +ENCODING 231 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 -2 +BITMAP +60 +80 +80 +60 +20 +20 +ENDCHAR +STARTCHAR char232 +ENCODING 232 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +40 +20 +00 +E0 +E0 +80 +E0 +ENDCHAR +STARTCHAR char233 +ENCODING 233 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +20 +40 +00 +E0 +E0 +80 +E0 +ENDCHAR +STARTCHAR char234 +ENCODING 234 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +40 +A0 +00 +E0 +E0 +80 +E0 +ENDCHAR +STARTCHAR char235 +ENCODING 235 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +A0 +00 +E0 +E0 +80 +E0 +ENDCHAR +STARTCHAR char236 +ENCODING 236 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 2 7 -1 0 +BITMAP +80 +40 +00 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char237 +ENCODING 237 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 2 7 0 0 +BITMAP +40 +80 +00 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char238 +ENCODING 238 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 3 7 -1 0 +BITMAP +40 +A0 +00 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char239 +ENCODING 239 +SWIDTH 22 0 +DWIDTH 2 0 +BBX 3 6 -1 0 +BITMAP +A0 +00 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char240 +ENCODING 240 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +50 +60 +70 +90 +90 +60 +ENDCHAR +STARTCHAR char241 +ENCODING 241 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +60 +10 +00 +F0 +90 +90 +90 +ENDCHAR +STARTCHAR char242 +ENCODING 242 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +40 +20 +00 +60 +90 +90 +60 +ENDCHAR +STARTCHAR char243 +ENCODING 243 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +10 +20 +00 +60 +90 +90 +60 +ENDCHAR +STARTCHAR char244 +ENCODING 244 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +20 +50 +00 +60 +90 +90 +60 +ENDCHAR +STARTCHAR char245 +ENCODING 245 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +60 +10 +00 +60 +90 +90 +60 +ENDCHAR +STARTCHAR char246 +ENCODING 246 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +50 +00 +60 +90 +90 +60 +ENDCHAR +STARTCHAR char247 +ENCODING 247 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 5 1 0 +BITMAP +40 +00 +E0 +00 +40 +ENDCHAR +STARTCHAR char248 +ENCODING 248 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 4 0 0 +BITMAP +60 +B0 +D0 +60 +ENDCHAR +STARTCHAR char249 +ENCODING 249 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +40 +20 +00 +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char250 +ENCODING 250 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +10 +20 +00 +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char251 +ENCODING 251 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +20 +50 +00 +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char252 +ENCODING 252 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +50 +00 +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char253 +ENCODING 253 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 9 0 -2 +BITMAP +20 +40 +00 +A0 +A0 +A0 +40 +40 +80 +ENDCHAR +STARTCHAR char254 +ENCODING 254 +SWIDTH 56 0 +DWIDTH 5 0 +BBX 4 8 0 -2 +BITMAP +80 +80 +E0 +90 +90 +E0 +80 +80 +ENDCHAR +STARTCHAR char255 +ENCODING 255 +SWIDTH 44 0 +DWIDTH 4 0 +BBX 3 8 0 -2 +BITMAP +A0 +00 +A0 +A0 +A0 +40 +40 +80 +ENDCHAR +ENDFONT diff --git a/ui/fonts/DroidSans8x11.h b/ui/fonts/DroidSans8x11.h new file mode 100644 index 0000000..7edc451 --- /dev/null +++ b/ui/fonts/DroidSans8x11.h @@ -0,0 +1,261 @@ +/* -FreeType-Droid Sans-Medium-R-Normal--8-60-96-96-P-44-ISO10646-1 */ +#define FONT_WIDTH_Droid_SansMedium_8x11 8 +#define FONT_HEIGHT_Droid_SansMedium_8x11 11 +const uint8_t FONT_DATA_Droid_SansMedium_8x11[256][12] = { +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x00,0x02,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x18,0x18,0x3e,0x3e,0x0c,0x0c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x04,0x0e,0x06,0x06,0x0c,0x0c,0x0e,0x04,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x26,0x16,0x76,0x6e,0x68,0x64,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x1e,0x12,0x0c,0x4a,0x32,0x3e,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x04,0x0e,0x04,0x0a,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x08,0x08,0x1c,0x08,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x08,0x08,0x04,0x04,0x02,0x02,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x04,0x0a,0x0a,0x0a,0x0a,0x04,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x04,0x06,0x04,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x08,0x08,0x04,0x04,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x08,0x04,0x08,0x08,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x08,0x0c,0x0c,0x0a,0x1e,0x08,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x02,0x0e,0x08,0x08,0x06,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0c,0x02,0x0e,0x0a,0x0a,0x0c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x08,0x08,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x0a,0x0a,0x04,0x0a,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x06,0x0a,0x0a,0x0e,0x08,0x06,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x02,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x08,0x04,0x06,0x08,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x02,0x04,0x0c,0x02,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x08,0x08,0x04,0x00,0x04,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x3c,0x42,0x5a,0x5a,0x7a,0x02,0x3c,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x08,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x12,0x1e,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x02,0x02,0x02,0x02,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x0e,0x12,0x12,0x12,0x12,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x02,0x0e,0x02,0x02,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x02,0x0e,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x3c,0x02,0x02,0x32,0x22,0x3c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x22,0x3e,0x22,0x22,0x22,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,}, +{/*w*/5,0x00,0x00,0x00,0x12,0x0a,0x06,0x0a,0x0a,0x12,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x1e,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x82,0xc6,0xc6,0xaa,0xaa,0x92,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x26,0x2a,0x2a,0x32,0x22,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x1c,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x12,0x12,0x0e,0x02,0x02,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x1c,0x22,0x22,0x22,0x22,0x1c,0x10,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x12,0x12,0x0e,0x0a,0x12,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x02,0x06,0x08,0x08,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x22,0x14,0x14,0x14,0x08,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x92,0xaa,0xaa,0xaa,0x64,0x44,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x12,0x0c,0x0c,0x0c,0x0a,0x12,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x11,0x0a,0x0a,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x08,0x08,0x04,0x04,0x1e,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x0c,0x04,0x04,0x04,0x04,0x04,0x0c,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x02,0x02,0x04,0x04,0x08,0x08,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x02,0x02,0x03,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x08,0x0c,0x12,0x12,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,}, +{/*w*/5,0x00,0x00,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0e,0x08,0x0e,0x0e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x02,0x02,0x0e,0x12,0x12,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0c,0x02,0x02,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x10,0x10,0x1c,0x12,0x12,0x1c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x02,0x0e,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x06,0x02,0x06,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x1e,0x0a,0x0e,0x1c,0x12,0x1e,}, +{/*w*/5,0x00,0x00,0x00,0x02,0x02,0x1e,0x12,0x12,0x12,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x03,}, +{/*w*/4,0x00,0x00,0x00,0x02,0x02,0x0a,0x06,0x06,0x0a,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0xee,0x92,0x92,0x92,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1e,0x12,0x12,0x12,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x0e,0x12,0x12,0x0e,0x02,0x02,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1c,0x12,0x12,0x1c,0x10,0x10,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x06,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x08,0x0e,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x02,0x06,0x02,0x02,0x06,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x0a,0x04,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x2a,0x2a,0x16,0x14,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0a,0x04,0x04,0x0a,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x0a,0x04,0x04,0x02,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0e,0x04,0x04,0x0e,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x04,0x04,0x04,0x02,0x04,0x04,0x04,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,}, +{/*w*/3,0x00,0x00,0x00,0x04,0x04,0x04,0x08,0x04,0x04,0x04,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0c,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,}, +{/*w*/4,0x00,0x00,0x00,0x08,0x0c,0x04,0x04,0x0c,0x08,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0c,0x04,0x04,0x0e,0x04,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0e,0x0a,0x0e,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x11,0x0a,0x06,0x0e,0x0e,0x04,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x04,0x04,0x04,0x00,0x00,0x04,0x04,0x04,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x06,0x0a,0x0e,0x08,0x0e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x3c,0x5a,0x4a,0x5a,0x42,0x3c,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x14,0x0a,0x0a,0x14,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x08,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x3c,0x7a,0x5a,0x5a,0x42,0x3c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x0e,0x0a,0x0e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x08,0x08,0x1c,0x08,0x1c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x08,0x04,0x06,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x08,0x08,0x0e,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x12,0x1e,0x02,0x02,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x1e,0x16,0x16,0x16,0x18,0x18,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,}, +{/*w*/4,0x00,0x00,0x00,0x06,0x04,0x04,0x04,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x0e,0x0a,0x0e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0a,0x14,0x14,0x0a,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x16,0x14,0x6c,0x5c,0x64,0x44,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x16,0x14,0x7c,0x4c,0x24,0x34,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x2e,0x28,0x78,0x5e,0x68,0x48,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x02,0x02,0x0e,}, +{/*w*/6,0x04,0x08,0x00,0x08,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x10,0x08,0x00,0x08,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x08,0x14,0x00,0x08,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x0c,0x10,0x00,0x08,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x00,0x14,0x00,0x08,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x18,0x18,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x78,0x18,0x74,0x14,0x1e,0x72,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x02,0x02,0x02,0x02,0x1c,0x10,0x10,}, +{/*w*/4,0x04,0x08,0x00,0x0e,0x02,0x0e,0x02,0x02,0x0e,0x00,0x00,}, +{/*w*/4,0x08,0x04,0x00,0x0e,0x02,0x0e,0x02,0x02,0x0e,0x00,0x00,}, +{/*w*/4,0x04,0x0a,0x00,0x0e,0x02,0x0e,0x02,0x02,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x0a,0x00,0x0e,0x02,0x0e,0x02,0x02,0x0e,0x00,0x00,}, +{/*w*/4,0x02,0x04,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/4,0x08,0x04,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/4,0x04,0x0a,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/4,0x00,0x0a,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x0e,0x12,0x17,0x12,0x12,0x0e,0x00,0x00,}, +{/*w*/6,0x0c,0x10,0x00,0x22,0x26,0x2a,0x2a,0x32,0x22,0x00,0x00,}, +{/*w*/6,0x04,0x08,0x00,0x1c,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x10,0x08,0x00,0x1c,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x08,0x14,0x00,0x1c,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x0c,0x10,0x00,0x1c,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x00,0x14,0x00,0x1c,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x14,0x08,0x14,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x1c,0x32,0x2a,0x2a,0x26,0x1c,0x00,0x00,}, +{/*w*/6,0x04,0x08,0x00,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x10,0x08,0x00,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x08,0x14,0x00,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x00,0x14,0x00,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/4,0x08,0x04,0x00,0x11,0x0a,0x0a,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x02,0x0e,0x12,0x12,0x0e,0x02,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x12,0x0a,0x0a,0x12,0x1a,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x04,0x08,0x00,0x0e,0x08,0x0e,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x08,0x04,0x00,0x0e,0x08,0x0e,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x04,0x0a,0x00,0x0e,0x08,0x0e,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x06,0x08,0x00,0x0e,0x08,0x0e,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0a,0x00,0x0e,0x08,0x0e,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x0c,0x0c,0x00,0x0e,0x08,0x0e,0x0e,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x6e,0x70,0x1e,0x6e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0c,0x02,0x02,0x0c,0x08,0x08,}, +{/*w*/4,0x00,0x00,0x04,0x08,0x00,0x0e,0x0e,0x02,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x08,0x04,0x00,0x0e,0x0e,0x02,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x04,0x0a,0x00,0x0e,0x0e,0x02,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0a,0x00,0x0e,0x0e,0x02,0x0e,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x01,0x02,0x00,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x04,0x02,0x00,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x02,0x05,0x00,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x05,0x00,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x0c,0x1c,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x0c,0x10,0x00,0x1e,0x12,0x12,0x12,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x04,0x08,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x10,0x08,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x08,0x14,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x0c,0x10,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x08,0x00,0x1c,0x00,0x08,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x0c,0x1a,0x16,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x04,0x08,0x00,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x10,0x08,0x00,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x08,0x14,0x00,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x00,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x08,0x04,0x00,0x0a,0x0a,0x0a,0x04,0x04,0x02,}, +{/*w*/5,0x00,0x00,0x00,0x02,0x02,0x0e,0x12,0x12,0x0e,0x02,0x02,}, +{/*w*/4,0x00,0x00,0x00,0x0a,0x00,0x0a,0x0a,0x0a,0x04,0x04,0x02,}, +}; diff --git a/ui/fonts/DroidSans8x12.bdf b/ui/fonts/DroidSans8x12.bdf new file mode 100644 index 0000000..d74bee4 --- /dev/null +++ b/ui/fonts/DroidSans8x12.bdf @@ -0,0 +1,3090 @@ +STARTFONT 2.1 +COMMENT Font converted from OTF to BDF. +FONT -FreeType-Droid_Sans-Medium-R-Normal--9-70-96-96-P-49-ISO10646-1 +SIZE 7 96 96 +FONTBOUNDINGBOX 8 12 -1 -2 +STARTPROPERTIES 19 +POINT_SIZE 70 +PIXEL_SIZE 9 +RESOLUTION_X 96 +RESOLUTION_Y 96 +FONT_ASCENT 8 +FONT_DESCENT 2 +AVERAGE_WIDTH 49 +SPACING "P" +FOUNDRY "FreeType" +FAMILY_NAME "Droid_Sans" +CHARSET_REGISTRY "ISO10646" +CHARSET_ENCODING "1" +WEIGHT_NAME "Medium" +SLANT "R" +SETWIDTH_NAME "Normal" +COPYRIGHT "Digitized data copyright © 2007, Google Corporation." +_TTF_PSNAME "DroidSans" +_OTF_FONTFILE "DroidSans.ttf" +_GBDFED_INFO "Edited with gbdfed 1.6." +ENDPROPERTIES +CHARS 256 +STARTCHAR char0 +ENCODING 0 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 1 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 2 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 3 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 4 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 5 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 6 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 7 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 8 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 9 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 10 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 11 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 12 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 13 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 14 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 15 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 16 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 17 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 18 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 19 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 20 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 21 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 22 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 23 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 24 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 25 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 26 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 27 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 28 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 29 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 30 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 31 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char32 +ENCODING 32 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char33 +ENCODING 33 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 7 0 0 +BITMAP +80 +80 +80 +80 +80 +00 +80 +ENDCHAR +STARTCHAR char34 +ENCODING 34 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 2 0 5 +BITMAP +A0 +A0 +ENDCHAR +STARTCHAR char35 +ENCODING 35 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +28 +28 +FC +48 +FC +50 +50 +ENDCHAR +STARTCHAR char36 +ENCODING 36 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 9 0 -1 +BITMAP +20 +70 +A0 +A0 +60 +50 +50 +E0 +40 +ENDCHAR +STARTCHAR char37 +ENCODING 37 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +E4 +A8 +A8 +FE +2A +2A +4E +ENDCHAR +STARTCHAR char38 +ENCODING 38 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +F0 +90 +A0 +40 +A4 +98 +78 +ENDCHAR +STARTCHAR char39 +ENCODING 39 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 2 0 5 +BITMAP +80 +80 +ENDCHAR +STARTCHAR char40 +ENCODING 40 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 2 8 0 -1 +BITMAP +40 +80 +80 +80 +80 +80 +80 +40 +ENDCHAR +STARTCHAR char41 +ENCODING 41 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 2 8 0 -1 +BITMAP +80 +40 +40 +40 +40 +40 +40 +80 +ENDCHAR +STARTCHAR char42 +ENCODING 42 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 4 0 3 +BITMAP +20 +F8 +20 +50 +ENDCHAR +STARTCHAR char43 +ENCODING 43 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 4 0 2 +BITMAP +20 +20 +F0 +20 +ENDCHAR +STARTCHAR char44 +ENCODING 44 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 2 0 -1 +BITMAP +80 +80 +ENDCHAR +STARTCHAR char45 +ENCODING 45 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 2 1 0 2 +BITMAP +C0 +ENDCHAR +STARTCHAR char46 +ENCODING 46 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 1 0 0 +BITMAP +80 +ENDCHAR +STARTCHAR char47 +ENCODING 47 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 7 0 0 +BITMAP +20 +20 +40 +40 +40 +80 +80 +ENDCHAR +STARTCHAR char48 +ENCODING 48 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +60 +90 +90 +90 +90 +90 +60 +ENDCHAR +STARTCHAR char49 +ENCODING 49 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 3 7 0 0 +BITMAP +60 +A0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char50 +ENCODING 50 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +E0 +10 +10 +20 +20 +40 +F0 +ENDCHAR +STARTCHAR char51 +ENCODING 51 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +10 +10 +60 +10 +10 +E0 +ENDCHAR +STARTCHAR char52 +ENCODING 52 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +10 +30 +50 +90 +F8 +10 +10 +ENDCHAR +STARTCHAR char53 +ENCODING 53 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +80 +80 +E0 +10 +10 +E0 +ENDCHAR +STARTCHAR char54 +ENCODING 54 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +70 +80 +80 +F0 +90 +90 +60 +ENDCHAR +STARTCHAR char55 +ENCODING 55 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +10 +20 +20 +20 +40 +40 +ENDCHAR +STARTCHAR char56 +ENCODING 56 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +90 +90 +60 +90 +90 +60 +ENDCHAR +STARTCHAR char57 +ENCODING 57 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +60 +90 +90 +F0 +10 +10 +E0 +ENDCHAR +STARTCHAR char58 +ENCODING 58 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 5 0 0 +BITMAP +80 +00 +00 +00 +80 +ENDCHAR +STARTCHAR char59 +ENCODING 59 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 6 0 -1 +BITMAP +80 +00 +00 +00 +80 +80 +ENDCHAR +STARTCHAR char60 +ENCODING 60 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 1 +BITMAP +10 +60 +80 +60 +10 +ENDCHAR +STARTCHAR char61 +ENCODING 61 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 3 0 2 +BITMAP +F0 +00 +F0 +ENDCHAR +STARTCHAR char62 +ENCODING 62 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 1 +BITMAP +80 +60 +10 +60 +80 +ENDCHAR +STARTCHAR char63 +ENCODING 63 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +E0 +20 +20 +40 +40 +00 +40 +ENDCHAR +STARTCHAR char64 +ENCODING 64 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 7 8 0 -1 +BITMAP +3C +42 +9A +AA +AA +B4 +80 +78 +ENDCHAR +STARTCHAR char65 +ENCODING 65 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +20 +50 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char66 +ENCODING 66 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +90 +90 +E0 +90 +90 +E0 +ENDCHAR +STARTCHAR char67 +ENCODING 67 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +70 +80 +80 +80 +80 +80 +70 +ENDCHAR +STARTCHAR char68 +ENCODING 68 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +F0 +88 +88 +88 +88 +98 +F0 +ENDCHAR +STARTCHAR char69 +ENCODING 69 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +80 +80 +F0 +80 +80 +F0 +ENDCHAR +STARTCHAR char70 +ENCODING 70 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +80 +80 +F0 +80 +80 +80 +ENDCHAR +STARTCHAR char71 +ENCODING 71 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +78 +80 +80 +98 +88 +88 +78 +ENDCHAR +STARTCHAR char72 +ENCODING 72 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +88 +88 +88 +F8 +88 +88 +88 +ENDCHAR +STARTCHAR char73 +ENCODING 73 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 2 7 0 0 +BITMAP +C0 +40 +40 +40 +40 +40 +C0 +ENDCHAR +STARTCHAR char74 +ENCODING 74 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 9 -1 -2 +BITMAP +20 +20 +20 +20 +20 +20 +20 +20 +C0 +ENDCHAR +STARTCHAR char75 +ENCODING 75 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +88 +90 +A0 +E0 +A0 +90 +88 +ENDCHAR +STARTCHAR char76 +ENCODING 76 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +80 +80 +80 +80 +80 +80 +F0 +ENDCHAR +STARTCHAR char77 +ENCODING 77 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +C2 +C6 +C6 +AA +AA +AA +92 +ENDCHAR +STARTCHAR char78 +ENCODING 78 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +88 +C8 +C8 +A8 +98 +98 +88 +ENDCHAR +STARTCHAR char79 +ENCODING 79 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 7 0 0 +BITMAP +78 +84 +84 +84 +84 +84 +78 +ENDCHAR +STARTCHAR char80 +ENCODING 80 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +90 +90 +E0 +80 +80 +80 +ENDCHAR +STARTCHAR char81 +ENCODING 81 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 9 0 -2 +BITMAP +78 +84 +84 +84 +84 +84 +78 +08 +08 +ENDCHAR +STARTCHAR char82 +ENCODING 82 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +90 +90 +E0 +A0 +90 +90 +ENDCHAR +STARTCHAR char83 +ENCODING 83 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +70 +80 +80 +60 +10 +10 +E0 +ENDCHAR +STARTCHAR char84 +ENCODING 84 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 5 7 -1 0 +BITMAP +F8 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char85 +ENCODING 85 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +88 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char86 +ENCODING 86 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +88 +88 +88 +50 +50 +50 +20 +ENDCHAR +STARTCHAR char87 +ENCODING 87 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +92 +B2 +AA +AA +AA +44 +44 +ENDCHAR +STARTCHAR char88 +ENCODING 88 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +88 +50 +50 +20 +50 +50 +88 +ENDCHAR +STARTCHAR char89 +ENCODING 89 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 7 0 0 +BITMAP +88 +90 +50 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char90 +ENCODING 90 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +10 +20 +40 +40 +80 +F0 +ENDCHAR +STARTCHAR char91 +ENCODING 91 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 2 8 0 -1 +BITMAP +C0 +80 +80 +80 +80 +80 +80 +C0 +ENDCHAR +STARTCHAR char92 +ENCODING 92 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 7 0 0 +BITMAP +80 +80 +40 +40 +40 +20 +20 +ENDCHAR +STARTCHAR char93 +ENCODING 93 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 2 8 0 -1 +BITMAP +C0 +40 +40 +40 +40 +40 +40 +C0 +ENDCHAR +STARTCHAR char94 +ENCODING 94 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 4 0 3 +BITMAP +20 +50 +50 +88 +ENDCHAR +STARTCHAR char95 +ENCODING 95 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 1 0 -2 +BITMAP +F0 +ENDCHAR +STARTCHAR char96 +ENCODING 96 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 2 2 2 6 +BITMAP +80 +40 +ENDCHAR +STARTCHAR char97 +ENCODING 97 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 0 +BITMAP +F0 +10 +F0 +90 +F0 +ENDCHAR +STARTCHAR char98 +ENCODING 98 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +80 +80 +E0 +90 +90 +90 +E0 +ENDCHAR +STARTCHAR char99 +ENCODING 99 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 5 0 0 +BITMAP +60 +80 +80 +80 +60 +ENDCHAR +STARTCHAR char100 +ENCODING 100 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +10 +10 +70 +90 +90 +90 +70 +ENDCHAR +STARTCHAR char101 +ENCODING 101 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 0 +BITMAP +60 +90 +F0 +80 +70 +ENDCHAR +STARTCHAR char102 +ENCODING 102 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +60 +40 +E0 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char103 +ENCODING 103 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 -2 +BITMAP +F0 +A0 +E0 +40 +70 +90 +F0 +ENDCHAR +STARTCHAR char104 +ENCODING 104 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +80 +80 +F0 +90 +90 +90 +90 +ENDCHAR +STARTCHAR char105 +ENCODING 105 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 7 0 0 +BITMAP +80 +00 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char106 +ENCODING 106 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 9 -1 -2 +BITMAP +40 +00 +40 +40 +40 +40 +40 +40 +C0 +ENDCHAR +STARTCHAR char107 +ENCODING 107 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +80 +80 +90 +A0 +C0 +A0 +90 +ENDCHAR +STARTCHAR char108 +ENCODING 108 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 7 0 0 +BITMAP +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char109 +ENCODING 109 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 7 5 0 0 +BITMAP +EE +92 +92 +92 +92 +ENDCHAR +STARTCHAR char110 +ENCODING 110 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 0 +BITMAP +F0 +90 +90 +90 +90 +ENDCHAR +STARTCHAR char111 +ENCODING 111 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 0 +BITMAP +60 +90 +90 +90 +60 +ENDCHAR +STARTCHAR char112 +ENCODING 112 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 -2 +BITMAP +E0 +90 +90 +90 +E0 +80 +80 +ENDCHAR +STARTCHAR char113 +ENCODING 113 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 -2 +BITMAP +70 +90 +90 +90 +70 +10 +10 +ENDCHAR +STARTCHAR char114 +ENCODING 114 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 5 0 0 +BITMAP +E0 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char115 +ENCODING 115 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 5 0 0 +BITMAP +E0 +80 +40 +20 +E0 +ENDCHAR +STARTCHAR char116 +ENCODING 116 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +40 +E0 +40 +40 +40 +60 +ENDCHAR +STARTCHAR char117 +ENCODING 117 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 0 +BITMAP +90 +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char118 +ENCODING 118 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 0 +BITMAP +90 +90 +60 +60 +60 +ENDCHAR +STARTCHAR char119 +ENCODING 119 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 5 0 0 +BITMAP +A8 +A8 +A8 +D0 +50 +ENDCHAR +STARTCHAR char120 +ENCODING 120 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 0 +BITMAP +90 +60 +40 +60 +90 +ENDCHAR +STARTCHAR char121 +ENCODING 121 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 -2 +BITMAP +90 +90 +60 +60 +60 +40 +C0 +ENDCHAR +STARTCHAR char122 +ENCODING 122 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 5 0 0 +BITMAP +E0 +20 +40 +80 +E0 +ENDCHAR +STARTCHAR char123 +ENCODING 123 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 8 0 -1 +BITMAP +60 +40 +40 +80 +40 +40 +40 +60 +ENDCHAR +STARTCHAR char124 +ENCODING 124 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 1 9 2 -2 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char125 +ENCODING 125 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 8 0 -1 +BITMAP +C0 +40 +40 +40 +20 +40 +40 +C0 +ENDCHAR +STARTCHAR char126 +ENCODING 126 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 2 0 3 +BITMAP +C0 +30 +ENDCHAR +STARTCHAR char0 +ENCODING 127 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 128 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 129 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 130 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 131 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 132 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 133 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 134 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 135 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 136 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 137 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 138 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 139 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 140 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 141 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 142 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 143 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 144 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 145 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 146 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 147 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 148 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 149 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 150 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 151 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 152 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 153 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 154 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 155 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 156 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 157 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 158 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 159 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char160 +ENCODING 160 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char161 +ENCODING 161 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 7 0 -2 +BITMAP +80 +00 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char162 +ENCODING 162 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +20 +70 +80 +80 +80 +70 +20 +ENDCHAR +STARTCHAR char163 +ENCODING 163 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +70 +40 +40 +E0 +40 +40 +F0 +ENDCHAR +STARTCHAR char164 +ENCODING 164 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 4 0 1 +BITMAP +F0 +90 +90 +F0 +ENDCHAR +STARTCHAR char165 +ENCODING 165 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +88 +50 +50 +70 +20 +70 +20 +ENDCHAR +STARTCHAR char166 +ENCODING 166 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 1 9 2 -2 +BITMAP +80 +80 +80 +00 +00 +00 +80 +80 +80 +ENDCHAR +STARTCHAR char167 +ENCODING 167 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +E0 +80 +E0 +A0 +60 +20 +E0 +ENDCHAR +STARTCHAR char168 +ENCODING 168 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 3 1 1 6 +BITMAP +A0 +ENDCHAR +STARTCHAR char169 +ENCODING 169 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 7 0 0 +BITMAP +78 +84 +B4 +A4 +B4 +84 +78 +ENDCHAR +STARTCHAR char170 +ENCODING 170 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 3 0 4 +BITMAP +E0 +E0 +E0 +ENDCHAR +STARTCHAR char171 +ENCODING 171 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 3 0 1 +BITMAP +50 +A0 +50 +ENDCHAR +STARTCHAR char172 +ENCODING 172 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 2 0 2 +BITMAP +F0 +10 +ENDCHAR +STARTCHAR char173 +ENCODING 173 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 2 1 0 2 +BITMAP +C0 +ENDCHAR +STARTCHAR char174 +ENCODING 174 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 7 0 0 +BITMAP +78 +84 +BC +B4 +B4 +84 +78 +ENDCHAR +STARTCHAR char175 +ENCODING 175 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 1 0 6 +BITMAP +F8 +ENDCHAR +STARTCHAR char176 +ENCODING 176 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 3 0 4 +BITMAP +E0 +A0 +E0 +ENDCHAR +STARTCHAR char177 +ENCODING 177 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 6 0 0 +BITMAP +20 +20 +F0 +20 +00 +F0 +ENDCHAR +STARTCHAR char178 +ENCODING 178 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 4 0 3 +BITMAP +E0 +20 +40 +E0 +ENDCHAR +STARTCHAR char179 +ENCODING 179 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 4 0 3 +BITMAP +E0 +20 +20 +E0 +ENDCHAR +STARTCHAR char180 +ENCODING 180 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 2 2 2 6 +BITMAP +40 +80 +ENDCHAR +STARTCHAR char181 +ENCODING 181 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 -2 +BITMAP +90 +90 +90 +90 +F0 +80 +80 +ENDCHAR +STARTCHAR char182 +ENCODING 182 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 8 0 -1 +BITMAP +78 +E8 +E8 +E8 +28 +28 +28 +28 +ENDCHAR +STARTCHAR char183 +ENCODING 183 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 1 0 3 +BITMAP +80 +ENDCHAR +STARTCHAR char184 +ENCODING 184 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 1 3 1 -2 +BITMAP +80 +80 +80 +ENDCHAR +STARTCHAR char185 +ENCODING 185 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 2 4 0 3 +BITMAP +C0 +40 +40 +40 +ENDCHAR +STARTCHAR char186 +ENCODING 186 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 3 0 4 +BITMAP +E0 +A0 +E0 +ENDCHAR +STARTCHAR char187 +ENCODING 187 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 3 0 1 +BITMAP +A0 +50 +A0 +ENDCHAR +STARTCHAR char188 +ENCODING 188 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 7 0 0 +BITMAP +C8 +50 +50 +6C +54 +5C +84 +ENDCHAR +STARTCHAR char189 +ENCODING 189 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 7 0 0 +BITMAP +C8 +50 +50 +7C +44 +48 +9C +ENDCHAR +STARTCHAR char190 +ENCODING 190 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +E4 +28 +28 +F6 +2A +2E +42 +ENDCHAR +STARTCHAR char191 +ENCODING 191 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 7 0 -2 +BITMAP +40 +00 +40 +40 +80 +80 +E0 +ENDCHAR +STARTCHAR char192 +ENCODING 192 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +40 +20 +00 +20 +50 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char193 +ENCODING 193 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +10 +20 +00 +20 +50 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char194 +ENCODING 194 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +20 +50 +00 +20 +50 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char195 +ENCODING 195 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +68 +58 +00 +20 +50 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char196 +ENCODING 196 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +50 +00 +20 +50 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char197 +ENCODING 197 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +70 +50 +70 +50 +50 +50 +70 +88 +88 +ENDCHAR +STARTCHAR char198 +ENCODING 198 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +3E +30 +50 +5E +70 +90 +9E +ENDCHAR +STARTCHAR char199 +ENCODING 199 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 9 0 -2 +BITMAP +70 +80 +80 +80 +80 +80 +70 +10 +10 +ENDCHAR +STARTCHAR char200 +ENCODING 200 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 10 0 0 +BITMAP +40 +20 +00 +F0 +80 +80 +F0 +80 +80 +F0 +ENDCHAR +STARTCHAR char201 +ENCODING 201 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 10 0 0 +BITMAP +10 +20 +00 +F0 +80 +80 +F0 +80 +80 +F0 +ENDCHAR +STARTCHAR char202 +ENCODING 202 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 10 0 0 +BITMAP +20 +50 +00 +F0 +80 +80 +F0 +80 +80 +F0 +ENDCHAR +STARTCHAR char203 +ENCODING 203 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 9 0 0 +BITMAP +50 +00 +F0 +80 +80 +F0 +80 +80 +F0 +ENDCHAR +STARTCHAR char204 +ENCODING 204 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 2 10 0 0 +BITMAP +80 +40 +00 +C0 +40 +40 +40 +40 +40 +C0 +ENDCHAR +STARTCHAR char205 +ENCODING 205 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 10 0 0 +BITMAP +20 +40 +00 +C0 +40 +40 +40 +40 +40 +C0 +ENDCHAR +STARTCHAR char206 +ENCODING 206 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 10 0 0 +BITMAP +40 +A0 +00 +C0 +40 +40 +40 +40 +40 +C0 +ENDCHAR +STARTCHAR char207 +ENCODING 207 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 9 0 0 +BITMAP +A0 +00 +C0 +40 +40 +40 +40 +40 +C0 +ENDCHAR +STARTCHAR char208 +ENCODING 208 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 -1 0 +BITMAP +78 +44 +44 +E4 +44 +4C +78 +ENDCHAR +STARTCHAR char209 +ENCODING 209 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +68 +58 +00 +88 +C8 +C8 +A8 +98 +98 +88 +ENDCHAR +STARTCHAR char210 +ENCODING 210 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 10 0 0 +BITMAP +20 +10 +00 +78 +84 +84 +84 +84 +84 +78 +ENDCHAR +STARTCHAR char211 +ENCODING 211 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 10 0 0 +BITMAP +08 +10 +00 +78 +84 +84 +84 +84 +84 +78 +ENDCHAR +STARTCHAR char212 +ENCODING 212 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 10 0 0 +BITMAP +10 +28 +00 +78 +84 +84 +84 +84 +84 +78 +ENDCHAR +STARTCHAR char213 +ENCODING 213 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 10 0 0 +BITMAP +68 +58 +00 +78 +84 +84 +84 +84 +84 +78 +ENDCHAR +STARTCHAR char214 +ENCODING 214 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 9 0 0 +BITMAP +28 +00 +78 +84 +84 +84 +84 +84 +78 +ENDCHAR +STARTCHAR char215 +ENCODING 215 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 3 3 1 2 +BITMAP +A0 +40 +A0 +ENDCHAR +STARTCHAR char216 +ENCODING 216 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 6 7 0 0 +BITMAP +78 +8C +94 +94 +A4 +C4 +78 +ENDCHAR +STARTCHAR char217 +ENCODING 217 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +40 +20 +00 +88 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char218 +ENCODING 218 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +10 +20 +00 +88 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char219 +ENCODING 219 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +20 +50 +00 +88 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char220 +ENCODING 220 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 9 0 0 +BITMAP +50 +00 +88 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR char221 +ENCODING 221 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +10 +20 +00 +88 +90 +50 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char222 +ENCODING 222 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +80 +E0 +90 +90 +E0 +80 +80 +ENDCHAR +STARTCHAR char223 +ENCODING 223 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +F0 +90 +A0 +A0 +90 +90 +B0 +ENDCHAR +STARTCHAR char224 +ENCODING 224 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +40 +20 +00 +F0 +10 +F0 +90 +F0 +ENDCHAR +STARTCHAR char225 +ENCODING 225 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +10 +20 +00 +F0 +10 +F0 +90 +F0 +ENDCHAR +STARTCHAR char226 +ENCODING 226 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +20 +50 +00 +F0 +10 +F0 +90 +F0 +ENDCHAR +STARTCHAR char227 +ENCODING 227 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +D0 +B0 +00 +F0 +10 +F0 +90 +F0 +ENDCHAR +STARTCHAR char228 +ENCODING 228 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +50 +00 +F0 +10 +F0 +90 +F0 +ENDCHAR +STARTCHAR char229 +ENCODING 229 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 9 0 0 +BITMAP +70 +50 +70 +00 +F0 +10 +F0 +90 +F0 +ENDCHAR +STARTCHAR char230 +ENCODING 230 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 7 5 0 0 +BITMAP +EC +12 +FE +90 +EE +ENDCHAR +STARTCHAR char231 +ENCODING 231 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 7 0 -2 +BITMAP +60 +80 +80 +80 +60 +20 +20 +ENDCHAR +STARTCHAR char232 +ENCODING 232 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +40 +20 +00 +60 +90 +F0 +80 +70 +ENDCHAR +STARTCHAR char233 +ENCODING 233 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +10 +20 +00 +60 +90 +F0 +80 +70 +ENDCHAR +STARTCHAR char234 +ENCODING 234 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +20 +50 +00 +60 +90 +F0 +80 +70 +ENDCHAR +STARTCHAR char235 +ENCODING 235 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +50 +00 +60 +90 +F0 +80 +70 +ENDCHAR +STARTCHAR char236 +ENCODING 236 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 8 -1 0 +BITMAP +80 +40 +00 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char237 +ENCODING 237 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 8 0 0 +BITMAP +40 +80 +00 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR char238 +ENCODING 238 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 3 8 -1 0 +BITMAP +40 +A0 +00 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char239 +ENCODING 239 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 3 7 -1 0 +BITMAP +A0 +00 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR char240 +ENCODING 240 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +50 +60 +10 +70 +90 +90 +60 +ENDCHAR +STARTCHAR char241 +ENCODING 241 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +D0 +B0 +00 +F0 +90 +90 +90 +90 +ENDCHAR +STARTCHAR char242 +ENCODING 242 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +40 +20 +00 +60 +90 +90 +90 +60 +ENDCHAR +STARTCHAR char243 +ENCODING 243 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +10 +20 +00 +60 +90 +90 +90 +60 +ENDCHAR +STARTCHAR char244 +ENCODING 244 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +20 +50 +00 +60 +90 +90 +90 +60 +ENDCHAR +STARTCHAR char245 +ENCODING 245 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +D0 +B0 +00 +60 +90 +90 +90 +60 +ENDCHAR +STARTCHAR char246 +ENCODING 246 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +50 +00 +60 +90 +90 +90 +60 +ENDCHAR +STARTCHAR char247 +ENCODING 247 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 1 +BITMAP +20 +00 +F8 +00 +20 +ENDCHAR +STARTCHAR char248 +ENCODING 248 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 5 0 0 +BITMAP +70 +B0 +B0 +D0 +E0 +ENDCHAR +STARTCHAR char249 +ENCODING 249 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +40 +20 +00 +90 +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char250 +ENCODING 250 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +10 +20 +00 +90 +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char251 +ENCODING 251 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 8 0 0 +BITMAP +20 +50 +00 +90 +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char252 +ENCODING 252 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +50 +00 +90 +90 +90 +90 +F0 +ENDCHAR +STARTCHAR char253 +ENCODING 253 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 10 0 -2 +BITMAP +10 +20 +00 +90 +90 +60 +60 +60 +40 +C0 +ENDCHAR +STARTCHAR char254 +ENCODING 254 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 9 0 -2 +BITMAP +80 +80 +E0 +90 +90 +90 +E0 +80 +80 +ENDCHAR +STARTCHAR char255 +ENCODING 255 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 9 0 -2 +BITMAP +50 +00 +90 +90 +60 +60 +60 +40 +C0 +ENDCHAR +ENDFONT diff --git a/ui/fonts/DroidSans8x12.h b/ui/fonts/DroidSans8x12.h new file mode 100644 index 0000000..32ee8cb --- /dev/null +++ b/ui/fonts/DroidSans8x12.h @@ -0,0 +1,261 @@ +/* -FreeType-Droid_Sans-Medium-R-Normal--9-70-96-96-P-49-ISO10646-1 */ +#define FONT_WIDTH_Droid_SansMedium_8x12 8 +#define FONT_HEIGHT_Droid_SansMedium_8x12 12 +const uint8_t FONT_DATA_Droid_SansMedium_8x12[256][13] = { +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x28,0x28,0x7e,0x24,0x7e,0x14,0x14,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x08,0x1c,0x0a,0x0a,0x0c,0x14,0x14,0x0e,0x04,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x4e,0x2a,0x2a,0xfe,0xa8,0xa8,0xe4,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x1e,0x12,0x0a,0x04,0x4a,0x32,0x3c,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x04,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x08,0x3e,0x08,0x14,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x08,0x08,0x1e,0x08,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x08,0x08,0x04,0x04,0x04,0x02,0x02,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x0c,0x12,0x12,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x0c,0x0a,0x08,0x08,0x08,0x08,0x08,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x0e,0x10,0x10,0x08,0x08,0x04,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x10,0x10,0x0c,0x10,0x10,0x0e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x10,0x18,0x14,0x12,0x3e,0x10,0x10,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x02,0x02,0x0e,0x10,0x10,0x0e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x02,0x02,0x1e,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x10,0x08,0x08,0x08,0x04,0x04,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x12,0x12,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x0c,0x12,0x12,0x1e,0x10,0x10,0x0e,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x02,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x10,0x0c,0x02,0x0c,0x10,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x02,0x0c,0x10,0x0c,0x02,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x08,0x08,0x04,0x04,0x00,0x04,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x78,0x84,0xb2,0xaa,0xaa,0x5a,0x02,0x3c,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x08,0x14,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x12,0x12,0x0e,0x12,0x12,0x0e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x02,0x02,0x02,0x02,0x02,0x1c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x1e,0x22,0x22,0x22,0x22,0x32,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x02,0x02,0x1e,0x02,0x02,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x02,0x02,0x1e,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x3c,0x02,0x02,0x32,0x22,0x22,0x3c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x22,0x22,0x3e,0x22,0x22,0x22,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x06,0x04,0x04,0x04,0x04,0x04,0x06,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,}, +{/*w*/5,0x00,0x00,0x00,0x22,0x12,0x0a,0x0e,0x0a,0x12,0x22,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x1e,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x86,0xc6,0xc6,0xaa,0xaa,0xaa,0x92,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x26,0x26,0x2a,0x32,0x32,0x22,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x12,0x12,0x0e,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x20,0x20,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x12,0x12,0x0e,0x0a,0x12,0x12,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x02,0x02,0x0c,0x10,0x10,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x1f,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x22,0x22,0x14,0x14,0x14,0x08,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x92,0x9a,0xaa,0xaa,0xaa,0x44,0x44,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x14,0x14,0x08,0x14,0x14,0x22,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x22,0x12,0x14,0x08,0x08,0x08,0x08,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x10,0x08,0x04,0x04,0x02,0x1e,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x06,0x02,0x02,0x02,0x02,0x02,0x02,0x06,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x02,0x02,0x04,0x04,0x04,0x08,0x08,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x08,0x14,0x14,0x22,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,}, +{/*w*/5,0x00,0x00,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1e,0x10,0x1e,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x02,0x02,0x0e,0x12,0x12,0x12,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0c,0x02,0x02,0x02,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x10,0x10,0x1c,0x12,0x12,0x12,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x0c,0x12,0x1e,0x02,0x1c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0c,0x04,0x0e,0x04,0x04,0x04,0x04,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1e,0x0a,0x0e,0x04,0x1c,0x12,0x1e,}, +{/*w*/5,0x00,0x00,0x00,0x02,0x02,0x1e,0x12,0x12,0x12,0x12,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x03,}, +{/*w*/5,0x00,0x00,0x00,0x02,0x02,0x12,0x0a,0x06,0x0a,0x12,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0xee,0x92,0x92,0x92,0x92,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1e,0x12,0x12,0x12,0x12,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x0e,0x12,0x12,0x12,0x0e,0x02,0x02,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1c,0x12,0x12,0x12,0x1c,0x10,0x10,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0e,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0e,0x02,0x04,0x08,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x04,0x0e,0x04,0x04,0x04,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x0c,0x0c,0x0c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x2a,0x2a,0x2a,0x16,0x14,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x12,0x0c,0x04,0x0c,0x12,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x0c,0x0c,0x0c,0x04,0x06,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0e,0x08,0x04,0x02,0x0e,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x0c,0x04,0x04,0x02,0x04,0x04,0x04,0x0c,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,}, +{/*w*/3,0x00,0x00,0x00,0x06,0x04,0x04,0x04,0x08,0x04,0x04,0x06,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x06,0x18,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,0x02,}, +{/*w*/5,0x00,0x00,0x00,0x08,0x1c,0x02,0x02,0x02,0x1c,0x08,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x04,0x04,0x0e,0x04,0x04,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1e,0x12,0x12,0x1e,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x22,0x14,0x14,0x1c,0x08,0x1c,0x08,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x08,0x08,0x08,0x00,0x00,0x00,0x08,0x08,0x08,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x02,0x0e,0x0a,0x0c,0x08,0x0e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x3c,0x42,0x5a,0x4a,0x5a,0x42,0x3c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x0a,0x14,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x10,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x3c,0x42,0x7a,0x5a,0x5a,0x42,0x3c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x0a,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x08,0x08,0x1e,0x08,0x00,0x1e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x08,0x04,0x0e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x08,0x08,0x0e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x12,0x12,0x1e,0x02,0x02,}, +{/*w*/6,0x00,0x00,0x00,0x3c,0x2e,0x2e,0x2e,0x28,0x28,0x28,0x28,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,}, +{/*w*/4,0x00,0x00,0x00,0x06,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x0a,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x14,0x0a,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x26,0x14,0x14,0x6c,0x54,0x74,0x42,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x26,0x14,0x14,0x7c,0x44,0x24,0x72,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x4e,0x28,0x28,0xde,0xa8,0xe8,0x84,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x04,0x02,0x02,0x0e,}, +{/*w*/6,0x04,0x08,0x00,0x08,0x14,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x10,0x08,0x00,0x08,0x14,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x08,0x14,0x00,0x08,0x14,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x2c,0x34,0x00,0x08,0x14,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x00,0x14,0x00,0x08,0x14,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/6,0x00,0x1c,0x14,0x1c,0x14,0x14,0x14,0x1c,0x22,0x22,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0xf8,0x18,0x14,0xf4,0x1c,0x12,0xf2,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x02,0x02,0x02,0x02,0x02,0x1c,0x10,0x10,}, +{/*w*/5,0x04,0x08,0x00,0x1e,0x02,0x02,0x1e,0x02,0x02,0x1e,0x00,0x00,}, +{/*w*/5,0x10,0x08,0x00,0x1e,0x02,0x02,0x1e,0x02,0x02,0x1e,0x00,0x00,}, +{/*w*/5,0x08,0x14,0x00,0x1e,0x02,0x02,0x1e,0x02,0x02,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x14,0x00,0x1e,0x02,0x02,0x1e,0x02,0x02,0x1e,0x00,0x00,}, +{/*w*/4,0x02,0x04,0x00,0x06,0x04,0x04,0x04,0x04,0x04,0x06,0x00,0x00,}, +{/*w*/4,0x08,0x04,0x00,0x06,0x04,0x04,0x04,0x04,0x04,0x06,0x00,0x00,}, +{/*w*/4,0x04,0x0a,0x00,0x06,0x04,0x04,0x04,0x04,0x04,0x06,0x00,0x00,}, +{/*w*/4,0x00,0x0a,0x00,0x06,0x04,0x04,0x04,0x04,0x04,0x06,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x1e,0x22,0x22,0x27,0x22,0x32,0x1e,0x00,0x00,}, +{/*w*/6,0x2c,0x34,0x00,0x22,0x26,0x26,0x2a,0x32,0x32,0x22,0x00,0x00,}, +{/*w*/7,0x08,0x10,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,}, +{/*w*/7,0x20,0x10,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,}, +{/*w*/7,0x10,0x28,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,}, +{/*w*/7,0x2c,0x34,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,}, +{/*w*/7,0x00,0x28,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x14,0x08,0x14,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x3c,0x62,0x52,0x52,0x4a,0x46,0x3c,0x00,0x00,}, +{/*w*/6,0x04,0x08,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x10,0x08,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x08,0x14,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x00,0x14,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x1c,0x00,0x00,}, +{/*w*/6,0x10,0x08,0x00,0x22,0x12,0x14,0x08,0x08,0x08,0x08,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x02,0x0e,0x12,0x12,0x0e,0x02,0x02,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x12,0x0a,0x0a,0x12,0x12,0x1a,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x04,0x08,0x00,0x1e,0x10,0x1e,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x10,0x08,0x00,0x1e,0x10,0x1e,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x08,0x14,0x00,0x1e,0x10,0x1e,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x16,0x1a,0x00,0x1e,0x10,0x1e,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x00,0x1e,0x10,0x1e,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x1c,0x14,0x1c,0x00,0x1e,0x10,0x1e,0x12,0x1e,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x6e,0x90,0xfe,0x12,0xee,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0c,0x02,0x02,0x02,0x0c,0x08,0x08,}, +{/*w*/5,0x00,0x00,0x04,0x08,0x00,0x0c,0x12,0x1e,0x02,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x10,0x08,0x00,0x0c,0x12,0x1e,0x02,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x08,0x14,0x00,0x0c,0x12,0x1e,0x02,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x00,0x0c,0x12,0x1e,0x02,0x1c,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x01,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x04,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x02,0x05,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x05,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x0c,0x10,0x1c,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x16,0x1a,0x00,0x1e,0x12,0x12,0x12,0x12,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x04,0x08,0x00,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x10,0x08,0x00,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x08,0x14,0x00,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x16,0x1a,0x00,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x00,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x08,0x00,0x3e,0x00,0x08,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1c,0x1a,0x1a,0x16,0x0e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x04,0x08,0x00,0x12,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x10,0x08,0x00,0x12,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x08,0x14,0x00,0x12,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x00,0x12,0x12,0x12,0x12,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x10,0x08,0x00,0x12,0x12,0x0c,0x0c,0x0c,0x04,0x06,}, +{/*w*/5,0x00,0x00,0x00,0x02,0x02,0x0e,0x12,0x12,0x12,0x0e,0x02,0x02,}, +{/*w*/5,0x00,0x00,0x00,0x14,0x00,0x12,0x12,0x0c,0x0c,0x0c,0x04,0x06,}, +}; diff --git a/ui/fonts/DroidSansBold8x12.bdf b/ui/fonts/DroidSansBold8x12.bdf new file mode 100644 index 0000000..d32ecdf --- /dev/null +++ b/ui/fonts/DroidSansBold8x12.bdf @@ -0,0 +1,3090 @@ +STARTFONT 2.1 +COMMENT Font converted from OTF to BDF. +FONT -FreeType-Droid_Sans-Bold-R-Normal--9-70-96-96-P-49-ISO10646-1 +SIZE 7 96 96 +FONTBOUNDINGBOX 8 12 -1 -2 +STARTPROPERTIES 19 +POINT_SIZE 70 +PIXEL_SIZE 9 +RESOLUTION_X 96 +RESOLUTION_Y 96 +FONT_ASCENT 8 +FONT_DESCENT 2 +AVERAGE_WIDTH 49 +SPACING "P" +FOUNDRY "FreeType" +FAMILY_NAME "Droid_Sans" +CHARSET_REGISTRY "ISO10646" +CHARSET_ENCODING "1" +WEIGHT_NAME "Bold" +SLANT "R" +SETWIDTH_NAME "Normal" +COPYRIGHT "Digitized data copyright © 2007, Google Corporation." +_TTF_PSNAME "DroidSans" +_OTF_FONTFILE "DroidSans.ttf" +_GBDFED_INFO "Edited with gbdfed 1.6." +ENDPROPERTIES +CHARS 256 +STARTCHAR char0 +ENCODING 0 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 1 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 2 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 3 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 4 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 5 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 6 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 7 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 8 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 9 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 10 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 11 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 12 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 13 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 14 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 15 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 16 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 17 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 18 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 19 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 20 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 21 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 22 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 23 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 24 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 25 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 26 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 27 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 28 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 29 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 30 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 31 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char32 +ENCODING 32 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char33 +ENCODING 33 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 7 0 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +00 +C0 +ENDCHAR +STARTCHAR char34 +ENCODING 34 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 2 0 5 +BITMAP +F0 +F0 +ENDCHAR +STARTCHAR char35 +ENCODING 35 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 7 7 0 0 +BITMAP +3C +3C +FE +6C +FE +78 +78 +ENDCHAR +STARTCHAR char36 +ENCODING 36 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 9 0 -1 +BITMAP +30 +78 +F0 +F0 +70 +78 +78 +F0 +60 +ENDCHAR +STARTCHAR char37 +ENCODING 37 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 8 7 0 0 +BITMAP +F6 +FC +FC +FF +3F +3F +6F +ENDCHAR +STARTCHAR char38 +ENCODING 38 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 7 7 0 0 +BITMAP +F8 +D8 +F0 +60 +F6 +DC +7C +ENDCHAR +STARTCHAR char39 +ENCODING 39 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 2 0 5 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR char40 +ENCODING 40 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 8 0 -1 +BITMAP +60 +C0 +C0 +C0 +C0 +C0 +C0 +60 +ENDCHAR +STARTCHAR char41 +ENCODING 41 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 8 0 -1 +BITMAP +C0 +60 +60 +60 +60 +60 +60 +C0 +ENDCHAR +STARTCHAR char42 +ENCODING 42 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 4 0 3 +BITMAP +30 +FC +30 +78 +ENDCHAR +STARTCHAR char43 +ENCODING 43 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 4 0 2 +BITMAP +30 +30 +F8 +30 +ENDCHAR +STARTCHAR char44 +ENCODING 44 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 2 0 -1 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR char45 +ENCODING 45 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 1 0 2 +BITMAP +E0 +ENDCHAR +STARTCHAR char46 +ENCODING 46 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 1 0 0 +BITMAP +C0 +ENDCHAR +STARTCHAR char47 +ENCODING 47 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 4 7 0 0 +BITMAP +30 +30 +60 +60 +60 +C0 +C0 +ENDCHAR +STARTCHAR char48 +ENCODING 48 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +70 +D8 +D8 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char49 +ENCODING 49 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 7 0 0 +BITMAP +70 +F0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char50 +ENCODING 50 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F0 +18 +18 +30 +30 +60 +F8 +ENDCHAR +STARTCHAR char51 +ENCODING 51 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +18 +18 +70 +18 +18 +F0 +ENDCHAR +STARTCHAR char52 +ENCODING 52 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 6 7 0 0 +BITMAP +18 +38 +78 +D8 +FC +18 +18 +ENDCHAR +STARTCHAR char53 +ENCODING 53 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +C0 +C0 +F0 +18 +18 +F0 +ENDCHAR +STARTCHAR char54 +ENCODING 54 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +78 +C0 +C0 +F8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char55 +ENCODING 55 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +18 +30 +30 +30 +60 +60 +ENDCHAR +STARTCHAR char56 +ENCODING 56 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +D8 +D8 +70 +D8 +D8 +70 +ENDCHAR +STARTCHAR char57 +ENCODING 57 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +70 +D8 +D8 +F8 +18 +18 +F0 +ENDCHAR +STARTCHAR char58 +ENCODING 58 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 5 0 0 +BITMAP +C0 +00 +00 +00 +C0 +ENDCHAR +STARTCHAR char59 +ENCODING 59 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 6 0 -1 +BITMAP +C0 +00 +00 +00 +C0 +C0 +ENDCHAR +STARTCHAR char60 +ENCODING 60 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 1 +BITMAP +18 +70 +C0 +70 +18 +ENDCHAR +STARTCHAR char61 +ENCODING 61 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 3 0 2 +BITMAP +F8 +00 +F8 +ENDCHAR +STARTCHAR char62 +ENCODING 62 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 1 +BITMAP +C0 +70 +18 +70 +C0 +ENDCHAR +STARTCHAR char63 +ENCODING 63 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +F0 +30 +30 +60 +60 +00 +60 +ENDCHAR +STARTCHAR char64 +ENCODING 64 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 8 8 0 -1 +BITMAP +3E +63 +DF +FF +FF +FE +C0 +7C +ENDCHAR +STARTCHAR char65 +ENCODING 65 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +30 +78 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char66 +ENCODING 66 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +D8 +D8 +F0 +D8 +D8 +F0 +ENDCHAR +STARTCHAR char67 +ENCODING 67 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +78 +C0 +C0 +C0 +C0 +C0 +78 +ENDCHAR +STARTCHAR char68 +ENCODING 68 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +F8 +CC +CC +CC +CC +DC +F8 +ENDCHAR +STARTCHAR char69 +ENCODING 69 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +C0 +C0 +F8 +C0 +C0 +F8 +ENDCHAR +STARTCHAR char70 +ENCODING 70 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +C0 +C0 +F8 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char71 +ENCODING 71 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +7C +C0 +C0 +DC +CC +CC +7C +ENDCHAR +STARTCHAR char72 +ENCODING 72 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +CC +CC +CC +FC +CC +CC +CC +ENDCHAR +STARTCHAR char73 +ENCODING 73 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 7 0 0 +BITMAP +E0 +60 +60 +60 +60 +60 +E0 +ENDCHAR +STARTCHAR char74 +ENCODING 74 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 4 9 -1 -2 +BITMAP +30 +30 +30 +30 +30 +30 +30 +30 +E0 +ENDCHAR +STARTCHAR char75 +ENCODING 75 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 6 7 0 0 +BITMAP +CC +D8 +F0 +F0 +F0 +D8 +CC +ENDCHAR +STARTCHAR char76 +ENCODING 76 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 5 7 0 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +F8 +ENDCHAR +STARTCHAR char77 +ENCODING 77 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 8 7 0 0 +BITMAP +E3 +E7 +E7 +FF +FF +FF +DB +ENDCHAR +STARTCHAR char78 +ENCODING 78 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +CC +EC +EC +FC +DC +DC +CC +ENDCHAR +STARTCHAR char79 +ENCODING 79 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 7 0 0 +BITMAP +7C +C6 +C6 +C6 +C6 +C6 +7C +ENDCHAR +STARTCHAR char80 +ENCODING 80 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +D8 +D8 +F0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char81 +ENCODING 81 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 9 0 -2 +BITMAP +7C +C6 +C6 +C6 +C6 +C6 +7C +0C +0C +ENDCHAR +STARTCHAR char82 +ENCODING 82 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +D8 +D8 +F0 +F0 +D8 +D8 +ENDCHAR +STARTCHAR char83 +ENCODING 83 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +78 +C0 +C0 +70 +18 +18 +F0 +ENDCHAR +STARTCHAR char84 +ENCODING 84 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 6 7 -1 0 +BITMAP +FC +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char85 +ENCODING 85 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char86 +ENCODING 86 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +CC +CC +CC +78 +78 +78 +30 +ENDCHAR +STARTCHAR char87 +ENCODING 87 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 8 7 0 0 +BITMAP +DB +FB +FF +FF +FF +66 +66 +ENDCHAR +STARTCHAR char88 +ENCODING 88 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +CC +78 +78 +30 +78 +78 +CC +ENDCHAR +STARTCHAR char89 +ENCODING 89 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +CC +D8 +78 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char90 +ENCODING 90 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +18 +30 +60 +60 +C0 +F8 +ENDCHAR +STARTCHAR char91 +ENCODING 91 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 8 0 -1 +BITMAP +E0 +C0 +C0 +C0 +C0 +C0 +C0 +E0 +ENDCHAR +STARTCHAR char92 +ENCODING 92 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 4 7 0 0 +BITMAP +C0 +C0 +60 +60 +60 +30 +30 +ENDCHAR +STARTCHAR char93 +ENCODING 93 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 8 0 -1 +BITMAP +E0 +60 +60 +60 +60 +60 +60 +E0 +ENDCHAR +STARTCHAR char94 +ENCODING 94 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 6 4 0 3 +BITMAP +30 +78 +78 +CC +ENDCHAR +STARTCHAR char95 +ENCODING 95 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 5 1 0 -2 +BITMAP +F8 +ENDCHAR +STARTCHAR char96 +ENCODING 96 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 3 2 2 6 +BITMAP +C0 +60 +ENDCHAR +STARTCHAR char97 +ENCODING 97 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 0 +BITMAP +F8 +18 +F8 +D8 +F8 +ENDCHAR +STARTCHAR char98 +ENCODING 98 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +C0 +C0 +F0 +D8 +D8 +D8 +F0 +ENDCHAR +STARTCHAR char99 +ENCODING 99 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 5 0 0 +BITMAP +70 +C0 +C0 +C0 +70 +ENDCHAR +STARTCHAR char100 +ENCODING 100 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +18 +18 +78 +D8 +D8 +D8 +78 +ENDCHAR +STARTCHAR char101 +ENCODING 101 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 0 +BITMAP +70 +D8 +F8 +C0 +78 +ENDCHAR +STARTCHAR char102 +ENCODING 102 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +70 +60 +F0 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char103 +ENCODING 103 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 -2 +BITMAP +F8 +F0 +F0 +60 +78 +D8 +F8 +ENDCHAR +STARTCHAR char104 +ENCODING 104 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +C0 +C0 +F8 +D8 +D8 +D8 +D8 +ENDCHAR +STARTCHAR char105 +ENCODING 105 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 7 0 0 +BITMAP +C0 +00 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char106 +ENCODING 106 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 3 9 -1 -2 +BITMAP +60 +00 +60 +60 +60 +60 +60 +60 +E0 +ENDCHAR +STARTCHAR char107 +ENCODING 107 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +C0 +C0 +D8 +F0 +E0 +F0 +D8 +ENDCHAR +STARTCHAR char108 +ENCODING 108 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 7 0 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char109 +ENCODING 109 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 8 5 0 0 +BITMAP +FF +DB +DB +DB +DB +ENDCHAR +STARTCHAR char110 +ENCODING 110 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 0 +BITMAP +F8 +D8 +D8 +D8 +D8 +ENDCHAR +STARTCHAR char111 +ENCODING 111 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 0 +BITMAP +70 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char112 +ENCODING 112 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 -2 +BITMAP +F0 +D8 +D8 +D8 +F0 +C0 +C0 +ENDCHAR +STARTCHAR char113 +ENCODING 113 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 -2 +BITMAP +78 +D8 +D8 +D8 +78 +18 +18 +ENDCHAR +STARTCHAR char114 +ENCODING 114 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 5 0 0 +BITMAP +F0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char115 +ENCODING 115 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 5 0 0 +BITMAP +F0 +C0 +60 +30 +F0 +ENDCHAR +STARTCHAR char116 +ENCODING 116 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +60 +F0 +60 +60 +60 +70 +ENDCHAR +STARTCHAR char117 +ENCODING 117 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 0 +BITMAP +D8 +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char118 +ENCODING 118 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 0 +BITMAP +D8 +D8 +70 +70 +70 +ENDCHAR +STARTCHAR char119 +ENCODING 119 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 5 0 0 +BITMAP +FC +FC +FC +F8 +78 +ENDCHAR +STARTCHAR char120 +ENCODING 120 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 0 +BITMAP +D8 +70 +60 +70 +D8 +ENDCHAR +STARTCHAR char121 +ENCODING 121 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 -2 +BITMAP +D8 +D8 +70 +70 +70 +60 +E0 +ENDCHAR +STARTCHAR char122 +ENCODING 122 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 5 0 0 +BITMAP +F0 +30 +60 +C0 +F0 +ENDCHAR +STARTCHAR char123 +ENCODING 123 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 4 8 0 -1 +BITMAP +70 +60 +60 +C0 +60 +60 +60 +70 +ENDCHAR +STARTCHAR char124 +ENCODING 124 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 2 9 2 -2 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char125 +ENCODING 125 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 4 8 0 -1 +BITMAP +E0 +60 +60 +60 +30 +60 +60 +E0 +ENDCHAR +STARTCHAR char126 +ENCODING 126 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 2 0 3 +BITMAP +E0 +38 +ENDCHAR +STARTCHAR char0 +ENCODING 127 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 128 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 129 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 130 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 131 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 132 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 133 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 134 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 135 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 136 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 137 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 138 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 139 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 140 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 141 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 142 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 143 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 144 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 145 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 146 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 147 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 148 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 149 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 150 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 151 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 152 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 153 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 154 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 155 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 156 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 157 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 158 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char0 +ENCODING 159 +SWIDTH 0 0 +DWIDTH 0 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char160 +ENCODING 160 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char161 +ENCODING 161 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 7 0 -2 +BITMAP +C0 +00 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char162 +ENCODING 162 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +30 +78 +C0 +C0 +C0 +78 +30 +ENDCHAR +STARTCHAR char163 +ENCODING 163 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +78 +60 +60 +F0 +60 +60 +F8 +ENDCHAR +STARTCHAR char164 +ENCODING 164 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 4 0 1 +BITMAP +F8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char165 +ENCODING 165 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 6 7 0 0 +BITMAP +CC +78 +78 +78 +30 +78 +30 +ENDCHAR +STARTCHAR char166 +ENCODING 166 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 2 9 2 -2 +BITMAP +C0 +C0 +C0 +00 +00 +00 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char167 +ENCODING 167 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +F0 +C0 +F0 +F0 +70 +30 +F0 +ENDCHAR +STARTCHAR char168 +ENCODING 168 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 1 1 6 +BITMAP +F0 +ENDCHAR +STARTCHAR char169 +ENCODING 169 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 7 0 0 +BITMAP +7C +C6 +FE +F6 +FE +C6 +7C +ENDCHAR +STARTCHAR char170 +ENCODING 170 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 3 0 4 +BITMAP +F0 +F0 +F0 +ENDCHAR +STARTCHAR char171 +ENCODING 171 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 3 0 1 +BITMAP +78 +F0 +78 +ENDCHAR +STARTCHAR char172 +ENCODING 172 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 2 0 2 +BITMAP +F8 +18 +ENDCHAR +STARTCHAR char173 +ENCODING 173 +SWIDTH 321 0 +DWIDTH 3 0 +BBX 3 1 0 2 +BITMAP +E0 +ENDCHAR +STARTCHAR char174 +ENCODING 174 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 7 0 0 +BITMAP +7C +C6 +FE +FE +FE +C6 +7C +ENDCHAR +STARTCHAR char175 +ENCODING 175 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 6 1 0 6 +BITMAP +FC +ENDCHAR +STARTCHAR char176 +ENCODING 176 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 3 0 4 +BITMAP +F0 +F0 +F0 +ENDCHAR +STARTCHAR char177 +ENCODING 177 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +30 +30 +F8 +30 +00 +F8 +ENDCHAR +STARTCHAR char178 +ENCODING 178 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 4 0 3 +BITMAP +F0 +30 +60 +F0 +ENDCHAR +STARTCHAR char179 +ENCODING 179 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 4 0 3 +BITMAP +F0 +30 +30 +F0 +ENDCHAR +STARTCHAR char180 +ENCODING 180 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 3 2 2 6 +BITMAP +60 +C0 +ENDCHAR +STARTCHAR char181 +ENCODING 181 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 -2 +BITMAP +D8 +D8 +D8 +D8 +F8 +C0 +C0 +ENDCHAR +STARTCHAR char182 +ENCODING 182 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 8 0 -1 +BITMAP +7C +FC +FC +FC +3C +3C +3C +3C +ENDCHAR +STARTCHAR char183 +ENCODING 183 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 1 0 3 +BITMAP +C0 +ENDCHAR +STARTCHAR char184 +ENCODING 184 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 2 3 1 -2 +BITMAP +C0 +C0 +C0 +ENDCHAR +STARTCHAR char185 +ENCODING 185 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 4 0 3 +BITMAP +E0 +60 +60 +60 +ENDCHAR +STARTCHAR char186 +ENCODING 186 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 3 0 4 +BITMAP +F0 +F0 +F0 +ENDCHAR +STARTCHAR char187 +ENCODING 187 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 3 0 1 +BITMAP +F0 +78 +F0 +ENDCHAR +STARTCHAR char188 +ENCODING 188 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 7 0 0 +BITMAP +EC +78 +78 +7E +7E +7E +C6 +ENDCHAR +STARTCHAR char189 +ENCODING 189 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 7 0 0 +BITMAP +EC +78 +78 +7E +66 +6C +DE +ENDCHAR +STARTCHAR char190 +ENCODING 190 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 8 7 0 0 +BITMAP +F6 +3C +3C +FF +3F +3F +63 +ENDCHAR +STARTCHAR char191 +ENCODING 191 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 7 0 -2 +BITMAP +60 +00 +60 +60 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char192 +ENCODING 192 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 10 0 0 +BITMAP +60 +30 +00 +30 +78 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char193 +ENCODING 193 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 10 0 0 +BITMAP +18 +30 +00 +30 +78 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char194 +ENCODING 194 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 10 0 0 +BITMAP +30 +78 +00 +30 +78 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char195 +ENCODING 195 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 10 0 0 +BITMAP +7C +7C +00 +30 +78 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char196 +ENCODING 196 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +78 +00 +30 +78 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char197 +ENCODING 197 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +78 +78 +78 +78 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char198 +ENCODING 198 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 8 7 0 0 +BITMAP +3F +38 +78 +7F +78 +D8 +DF +ENDCHAR +STARTCHAR char199 +ENCODING 199 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 9 0 -2 +BITMAP +78 +C0 +C0 +C0 +C0 +C0 +78 +18 +18 +ENDCHAR +STARTCHAR char200 +ENCODING 200 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 10 0 0 +BITMAP +60 +30 +00 +F8 +C0 +C0 +F8 +C0 +C0 +F8 +ENDCHAR +STARTCHAR char201 +ENCODING 201 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 10 0 0 +BITMAP +18 +30 +00 +F8 +C0 +C0 +F8 +C0 +C0 +F8 +ENDCHAR +STARTCHAR char202 +ENCODING 202 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 10 0 0 +BITMAP +30 +78 +00 +F8 +C0 +C0 +F8 +C0 +C0 +F8 +ENDCHAR +STARTCHAR char203 +ENCODING 203 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 9 0 0 +BITMAP +78 +00 +F8 +C0 +C0 +F8 +C0 +C0 +F8 +ENDCHAR +STARTCHAR char204 +ENCODING 204 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 3 10 0 0 +BITMAP +C0 +60 +00 +E0 +60 +60 +60 +60 +60 +E0 +ENDCHAR +STARTCHAR char205 +ENCODING 205 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 10 0 0 +BITMAP +30 +60 +00 +E0 +60 +60 +60 +60 +60 +E0 +ENDCHAR +STARTCHAR char206 +ENCODING 206 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 10 0 0 +BITMAP +60 +F0 +00 +E0 +60 +60 +60 +60 +60 +E0 +ENDCHAR +STARTCHAR char207 +ENCODING 207 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 9 0 0 +BITMAP +F0 +00 +E0 +60 +60 +60 +60 +60 +E0 +ENDCHAR +STARTCHAR char208 +ENCODING 208 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 7 7 -1 0 +BITMAP +7C +66 +66 +F6 +66 +6E +7C +ENDCHAR +STARTCHAR char209 +ENCODING 209 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 10 0 0 +BITMAP +7C +7C +00 +CC +EC +EC +FC +DC +DC +CC +ENDCHAR +STARTCHAR char210 +ENCODING 210 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 10 0 0 +BITMAP +30 +18 +00 +7C +C6 +C6 +C6 +C6 +C6 +7C +ENDCHAR +STARTCHAR char211 +ENCODING 211 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 10 0 0 +BITMAP +0C +18 +00 +7C +C6 +C6 +C6 +C6 +C6 +7C +ENDCHAR +STARTCHAR char212 +ENCODING 212 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 10 0 0 +BITMAP +18 +3C +00 +7C +C6 +C6 +C6 +C6 +C6 +7C +ENDCHAR +STARTCHAR char213 +ENCODING 213 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 10 0 0 +BITMAP +7C +7C +00 +7C +C6 +C6 +C6 +C6 +C6 +7C +ENDCHAR +STARTCHAR char214 +ENCODING 214 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 9 0 0 +BITMAP +3C +00 +7C +C6 +C6 +C6 +C6 +C6 +7C +ENDCHAR +STARTCHAR char215 +ENCODING 215 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 4 3 1 2 +BITMAP +F0 +60 +F0 +ENDCHAR +STARTCHAR char216 +ENCODING 216 +SWIDTH 750 0 +DWIDTH 7 0 +BBX 7 7 0 0 +BITMAP +7C +CE +DE +DE +F6 +E6 +7C +ENDCHAR +STARTCHAR char217 +ENCODING 217 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 10 0 0 +BITMAP +60 +30 +00 +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char218 +ENCODING 218 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 10 0 0 +BITMAP +18 +30 +00 +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char219 +ENCODING 219 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 10 0 0 +BITMAP +30 +78 +00 +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char220 +ENCODING 220 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +78 +00 +CC +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char221 +ENCODING 221 +SWIDTH 642 0 +DWIDTH 6 0 +BBX 6 10 0 0 +BITMAP +18 +30 +00 +CC +D8 +78 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char222 +ENCODING 222 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +C0 +F0 +D8 +D8 +F0 +C0 +C0 +ENDCHAR +STARTCHAR char223 +ENCODING 223 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +F8 +D8 +F0 +F0 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char224 +ENCODING 224 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +60 +30 +00 +F8 +18 +F8 +D8 +F8 +ENDCHAR +STARTCHAR char225 +ENCODING 225 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +18 +30 +00 +F8 +18 +F8 +D8 +F8 +ENDCHAR +STARTCHAR char226 +ENCODING 226 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +30 +78 +00 +F8 +18 +F8 +D8 +F8 +ENDCHAR +STARTCHAR char227 +ENCODING 227 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +F8 +F8 +00 +F8 +18 +F8 +D8 +F8 +ENDCHAR +STARTCHAR char228 +ENCODING 228 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +78 +00 +F8 +18 +F8 +D8 +F8 +ENDCHAR +STARTCHAR char229 +ENCODING 229 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 9 0 0 +BITMAP +78 +78 +78 +00 +F8 +18 +F8 +D8 +F8 +ENDCHAR +STARTCHAR char230 +ENCODING 230 +SWIDTH 857 0 +DWIDTH 8 0 +BBX 8 5 0 0 +BITMAP +FE +1B +FF +D8 +FF +ENDCHAR +STARTCHAR char231 +ENCODING 231 +SWIDTH 428 0 +DWIDTH 4 0 +BBX 4 7 0 -2 +BITMAP +70 +C0 +C0 +C0 +70 +30 +30 +ENDCHAR +STARTCHAR char232 +ENCODING 232 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +60 +30 +00 +70 +D8 +F8 +C0 +78 +ENDCHAR +STARTCHAR char233 +ENCODING 233 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +18 +30 +00 +70 +D8 +F8 +C0 +78 +ENDCHAR +STARTCHAR char234 +ENCODING 234 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +30 +78 +00 +70 +D8 +F8 +C0 +78 +ENDCHAR +STARTCHAR char235 +ENCODING 235 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +78 +00 +70 +D8 +F8 +C0 +78 +ENDCHAR +STARTCHAR char236 +ENCODING 236 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 3 8 -1 0 +BITMAP +C0 +60 +00 +60 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char237 +ENCODING 237 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 3 8 0 0 +BITMAP +60 +C0 +00 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char238 +ENCODING 238 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 4 8 -1 0 +BITMAP +60 +F0 +00 +60 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char239 +ENCODING 239 +SWIDTH 214 0 +DWIDTH 2 0 +BBX 4 7 -1 0 +BITMAP +F0 +00 +60 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char240 +ENCODING 240 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +78 +70 +18 +78 +D8 +D8 +70 +ENDCHAR +STARTCHAR char241 +ENCODING 241 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +F8 +F8 +00 +F8 +D8 +D8 +D8 +D8 +ENDCHAR +STARTCHAR char242 +ENCODING 242 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +60 +30 +00 +70 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char243 +ENCODING 243 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +18 +30 +00 +70 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char244 +ENCODING 244 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +30 +78 +00 +70 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char245 +ENCODING 245 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +F8 +F8 +00 +70 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char246 +ENCODING 246 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +78 +00 +70 +D8 +D8 +D8 +70 +ENDCHAR +STARTCHAR char247 +ENCODING 247 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 6 5 0 1 +BITMAP +30 +00 +FC +00 +30 +ENDCHAR +STARTCHAR char248 +ENCODING 248 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 5 0 0 +BITMAP +78 +F8 +F8 +F8 +F0 +ENDCHAR +STARTCHAR char249 +ENCODING 249 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +60 +30 +00 +D8 +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char250 +ENCODING 250 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +18 +30 +00 +D8 +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char251 +ENCODING 251 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 8 0 0 +BITMAP +30 +78 +00 +D8 +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char252 +ENCODING 252 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +78 +00 +D8 +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char253 +ENCODING 253 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 10 0 -2 +BITMAP +18 +30 +00 +D8 +D8 +70 +70 +70 +60 +E0 +ENDCHAR +STARTCHAR char254 +ENCODING 254 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 9 0 -2 +BITMAP +C0 +C0 +F0 +D8 +D8 +D8 +F0 +C0 +C0 +ENDCHAR +STARTCHAR char255 +ENCODING 255 +SWIDTH 535 0 +DWIDTH 5 0 +BBX 5 9 0 -2 +BITMAP +78 +00 +D8 +D8 +70 +70 +70 +60 +E0 +ENDCHAR +ENDFONT diff --git a/ui/fonts/DroidSansBold8x12.h b/ui/fonts/DroidSansBold8x12.h new file mode 100644 index 0000000..1586362 --- /dev/null +++ b/ui/fonts/DroidSansBold8x12.h @@ -0,0 +1,261 @@ +/* -FreeType-Droid_Sans-Bold-R-Normal--9-70-96-96-P-49-ISO10646-1 */ +#define FONT_WIDTH_Droid_SansBold_8x12 8 +#define FONT_HEIGHT_Droid_SansBold_8x12 12 +const uint8_t FONT_DATA_Droid_SansBold_8x12[256][13] = { +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x00,0x06,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x1e,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x78,0x78,0xfe,0x6c,0xfe,0x3c,0x3c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x18,0x3c,0x1e,0x1e,0x1c,0x3c,0x3c,0x1e,0x0c,0x00,}, +{/*w*/8,0x00,0x00,0x00,0xde,0x7e,0x7e,0xfe,0xf9,0xf9,0xed,0x01,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x3e,0x36,0x1e,0x0c,0xde,0x76,0x7c,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x0c,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x06,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x06,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x18,0x7e,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x18,0x18,0x3e,0x18,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x18,0x18,0x0c,0x0c,0x0c,0x06,0x06,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x36,0x36,0x36,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x1e,0x18,0x18,0x18,0x18,0x18,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1e,0x30,0x30,0x18,0x18,0x0c,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x30,0x30,0x1c,0x30,0x30,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x30,0x38,0x3c,0x36,0x7e,0x30,0x30,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x06,0x06,0x1e,0x30,0x30,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x06,0x06,0x3e,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x30,0x18,0x18,0x18,0x0c,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x36,0x36,0x1c,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x1c,0x36,0x36,0x3e,0x30,0x30,0x1e,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x06,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x30,0x1c,0x06,0x1c,0x30,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x3e,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x06,0x1c,0x30,0x1c,0x06,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x1e,0x18,0x18,0x0c,0x0c,0x00,0x0c,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0xf8,0x8c,0xf7,0xff,0xff,0xff,0x06,0x7c,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x18,0x3c,0x3c,0x3c,0x3c,0x66,0x66,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x36,0x36,0x1e,0x36,0x36,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x06,0x06,0x06,0x06,0x06,0x3c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x3e,0x66,0x66,0x66,0x66,0x76,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x06,0x06,0x3e,0x06,0x06,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x06,0x06,0x3e,0x06,0x06,0x06,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x7c,0x06,0x06,0x76,0x66,0x66,0x7c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x66,0x66,0x66,0x7e,0x66,0x66,0x66,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x07,}, +{/*w*/5,0x00,0x00,0x00,0x66,0x36,0x1e,0x1e,0x1e,0x36,0x66,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x3e,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x8e,0xcf,0xcf,0xff,0xff,0xff,0xb7,0x01,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x66,0x6e,0x6e,0x7e,0x76,0x76,0x66,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x36,0x36,0x1e,0x06,0x06,0x06,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x60,0x60,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x36,0x36,0x1e,0x1e,0x36,0x36,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x06,0x06,0x1c,0x30,0x30,0x1e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x3f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x66,0x66,0x66,0x3c,0x3c,0x3c,0x18,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0xb6,0xbf,0xff,0xff,0xff,0xcd,0xcc,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x66,0x3c,0x3c,0x18,0x3c,0x3c,0x66,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x66,0x36,0x3c,0x18,0x18,0x18,0x18,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x30,0x18,0x0c,0x0c,0x06,0x3e,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x0e,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x06,0x06,0x0c,0x0c,0x0c,0x18,0x18,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x18,0x3c,0x3c,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,}, +{/*w*/5,0x00,0x00,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x3e,0x30,0x3e,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x06,0x06,0x1e,0x36,0x36,0x36,0x1e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x1c,0x06,0x06,0x06,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x30,0x30,0x3c,0x36,0x36,0x36,0x3c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1c,0x36,0x3e,0x06,0x3c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x1c,0x0c,0x1e,0x0c,0x0c,0x0c,0x0c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x3e,0x1e,0x1e,0x0c,0x3c,0x36,0x3e,}, +{/*w*/5,0x00,0x00,0x00,0x06,0x06,0x3e,0x36,0x36,0x36,0x36,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x06,0x00,0x06,0x06,0x06,0x06,0x06,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x06,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x07,}, +{/*w*/5,0x00,0x00,0x00,0x06,0x06,0x36,0x1e,0x0e,0x1e,0x36,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0xfe,0xb7,0xb7,0xb7,0xb7,0x01,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x3e,0x36,0x36,0x36,0x36,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1c,0x36,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x1e,0x36,0x36,0x36,0x1e,0x06,0x06,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x3c,0x36,0x36,0x36,0x3c,0x30,0x30,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x1e,0x06,0x06,0x06,0x06,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x1e,0x06,0x0c,0x18,0x1e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x0c,0x1e,0x0c,0x0c,0x0c,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x36,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x1c,0x1c,0x1c,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x7e,0x7e,0x7e,0x3e,0x3c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x36,0x1c,0x0c,0x1c,0x36,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x1c,0x1c,0x1c,0x0c,0x0e,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x1e,0x18,0x0c,0x06,0x1e,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x1c,0x0c,0x0c,0x06,0x0c,0x0c,0x0c,0x1c,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,}, +{/*w*/3,0x00,0x00,0x00,0x0e,0x0c,0x0c,0x0c,0x18,0x0c,0x0c,0x0e,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x0e,0x38,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x06,0x06,0x06,0x06,}, +{/*w*/5,0x00,0x00,0x00,0x18,0x3c,0x06,0x06,0x06,0x3c,0x18,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x0c,0x0c,0x1e,0x0c,0x0c,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x3e,0x36,0x36,0x3e,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x66,0x3c,0x3c,0x3c,0x18,0x3c,0x18,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x18,}, +{/*w*/4,0x00,0x00,0x00,0x1e,0x06,0x1e,0x1e,0x1c,0x18,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x7c,0xc6,0xfe,0xde,0xfe,0xc6,0x7c,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x1e,0x1e,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x1e,0x3c,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x30,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x7c,0xc6,0xfe,0xfe,0xfe,0xc6,0x7c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x1e,0x1e,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x18,0x18,0x3e,0x18,0x00,0x3e,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x1e,0x18,0x0c,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x1e,0x18,0x18,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x36,0x36,0x3e,0x06,0x06,}, +{/*w*/6,0x00,0x00,0x00,0x7c,0x7e,0x7e,0x7e,0x78,0x78,0x78,0x78,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0c,}, +{/*w*/4,0x00,0x00,0x00,0x0e,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x1e,0x1e,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x3c,0x1e,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x6e,0x3c,0x3c,0xfc,0xfc,0xfc,0xc6,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x6e,0x3c,0x3c,0xfc,0xcc,0x6c,0xf6,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0xde,0x78,0x78,0xfe,0xf9,0xf9,0x8d,0x01,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x0c,0x06,0x06,0x1e,}, +{/*w*/6,0x0c,0x18,0x00,0x18,0x3c,0x3c,0x3c,0x3c,0x66,0x66,0x00,0x00,}, +{/*w*/6,0x30,0x18,0x00,0x18,0x3c,0x3c,0x3c,0x3c,0x66,0x66,0x00,0x00,}, +{/*w*/6,0x18,0x3c,0x00,0x18,0x3c,0x3c,0x3c,0x3c,0x66,0x66,0x00,0x00,}, +{/*w*/6,0x7c,0x7c,0x00,0x18,0x3c,0x3c,0x3c,0x3c,0x66,0x66,0x00,0x00,}, +{/*w*/6,0x00,0x3c,0x00,0x18,0x3c,0x3c,0x3c,0x3c,0x66,0x66,0x00,0x00,}, +{/*w*/6,0x00,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x66,0x66,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0xf8,0x39,0x3c,0xfc,0x3d,0x36,0xf6,0x01,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x06,0x06,0x06,0x06,0x06,0x3c,0x30,0x30,}, +{/*w*/5,0x0c,0x18,0x00,0x3e,0x06,0x06,0x3e,0x06,0x06,0x3e,0x00,0x00,}, +{/*w*/5,0x30,0x18,0x00,0x3e,0x06,0x06,0x3e,0x06,0x06,0x3e,0x00,0x00,}, +{/*w*/5,0x18,0x3c,0x00,0x3e,0x06,0x06,0x3e,0x06,0x06,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x3c,0x00,0x3e,0x06,0x06,0x3e,0x06,0x06,0x3e,0x00,0x00,}, +{/*w*/4,0x06,0x0c,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x00,0x00,}, +{/*w*/4,0x18,0x0c,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x00,0x00,}, +{/*w*/4,0x0c,0x1e,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x00,0x00,}, +{/*w*/4,0x00,0x1e,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x3e,0x66,0x66,0x6f,0x66,0x76,0x3e,0x00,0x00,}, +{/*w*/6,0x7c,0x7c,0x00,0x66,0x6e,0x6e,0x7e,0x76,0x76,0x66,0x00,0x00,}, +{/*w*/7,0x18,0x30,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,}, +{/*w*/7,0x60,0x30,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,}, +{/*w*/7,0x30,0x78,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,}, +{/*w*/7,0x7c,0x7c,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,}, +{/*w*/7,0x00,0x78,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x3c,0x18,0x3c,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x7c,0xe6,0xf6,0xf6,0xde,0xce,0x7c,0x00,0x00,}, +{/*w*/6,0x0c,0x18,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3c,0x00,0x00,}, +{/*w*/6,0x30,0x18,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3c,0x00,0x00,}, +{/*w*/6,0x18,0x3c,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3c,0x00,0x00,}, +{/*w*/6,0x00,0x3c,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3c,0x00,0x00,}, +{/*w*/6,0x30,0x18,0x00,0x66,0x36,0x3c,0x18,0x18,0x18,0x18,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x06,0x1e,0x36,0x36,0x1e,0x06,0x06,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3e,0x36,0x1e,0x1e,0x36,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x0c,0x18,0x00,0x3e,0x30,0x3e,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x30,0x18,0x00,0x3e,0x30,0x3e,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x18,0x3c,0x00,0x3e,0x30,0x3e,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x3e,0x3e,0x00,0x3e,0x30,0x3e,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x00,0x3e,0x30,0x3e,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x3c,0x3c,0x3c,0x00,0x3e,0x30,0x3e,0x36,0x3e,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0xfe,0xb0,0xff,0x37,0xfe,0x01,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x1c,0x06,0x06,0x06,0x1c,0x18,0x18,}, +{/*w*/5,0x00,0x00,0x0c,0x18,0x00,0x1c,0x36,0x3e,0x06,0x3c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x30,0x18,0x00,0x1c,0x36,0x3e,0x06,0x3c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x18,0x3c,0x00,0x1c,0x36,0x3e,0x06,0x3c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x00,0x1c,0x36,0x3e,0x06,0x3c,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x03,0x06,0x00,0x06,0x06,0x06,0x06,0x06,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x0c,0x06,0x00,0x06,0x06,0x06,0x06,0x06,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x06,0x0f,0x00,0x06,0x06,0x06,0x06,0x06,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x0f,0x00,0x06,0x06,0x06,0x06,0x06,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x1c,0x30,0x3c,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x3e,0x3e,0x00,0x3e,0x36,0x36,0x36,0x36,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x0c,0x18,0x00,0x1c,0x36,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x30,0x18,0x00,0x1c,0x36,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x18,0x3c,0x00,0x1c,0x36,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x3e,0x3e,0x00,0x1c,0x36,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x00,0x1c,0x36,0x36,0x36,0x1c,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x18,0x00,0x7e,0x00,0x18,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x3c,0x3e,0x3e,0x3e,0x1e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x0c,0x18,0x00,0x36,0x36,0x36,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x30,0x18,0x00,0x36,0x36,0x36,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x18,0x3c,0x00,0x36,0x36,0x36,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x00,0x36,0x36,0x36,0x36,0x3e,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x30,0x18,0x00,0x36,0x36,0x1c,0x1c,0x1c,0x0c,0x0e,}, +{/*w*/5,0x00,0x00,0x00,0x06,0x06,0x1e,0x36,0x36,0x36,0x1e,0x06,0x06,}, +{/*w*/5,0x00,0x00,0x00,0x3c,0x00,0x36,0x36,0x1c,0x1c,0x1c,0x0c,0x0e,}, +}; diff --git a/ui/fonts/DroidSansBold9x11.bdf b/ui/fonts/DroidSansBold9x11.bdf new file mode 100644 index 0000000..e3675b0 --- /dev/null +++ b/ui/fonts/DroidSansBold9x11.bdf @@ -0,0 +1,2927 @@ +STARTFONT 2.1 +COMMENT Font converted from OTF to BDF. +FONT -FreeType-Droid Sans-Bold-R-Normal--8-60-96-96-P-44-ISO10646-1 +SIZE 6 96 96 +FONTBOUNDINGBOX 8 11 -1 -2 +STARTPROPERTIES 19 +POINT_SIZE 60 +PIXEL_SIZE 8 +RESOLUTION_X 96 +RESOLUTION_Y 96 +FONT_ASCENT 7 +FONT_DESCENT 1 +AVERAGE_WIDTH 44 +SPACING "P" +FOUNDRY "FreeType" +FAMILY_NAME "Droid Sans" +CHARSET_REGISTRY "ISO10646" +CHARSET_ENCODING "1" +WEIGHT_NAME "Bold" +SLANT "R" +SETWIDTH_NAME "Normal" +COPYRIGHT "Digitized data copyright © 2007, Google Corporation." +_TTF_PSNAME "DroidSans" +_OTF_FONTFILE "DroidSans.ttf" +_GBDFED_INFO "Edited with gbdfed 1.6." +ENDPROPERTIES +CHARS 256 +STARTCHAR char0 +ENCODING 0 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char1 +ENCODING 1 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char2 +ENCODING 2 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char3 +ENCODING 3 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char4 +ENCODING 4 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char5 +ENCODING 5 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char6 +ENCODING 6 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char7 +ENCODING 7 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char8 +ENCODING 8 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char9 +ENCODING 9 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char10 +ENCODING 10 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char11 +ENCODING 11 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char12 +ENCODING 12 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char13 +ENCODING 13 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char14 +ENCODING 14 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char15 +ENCODING 15 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char16 +ENCODING 16 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char17 +ENCODING 17 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char18 +ENCODING 18 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char19 +ENCODING 19 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char20 +ENCODING 20 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char21 +ENCODING 21 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char22 +ENCODING 22 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char23 +ENCODING 23 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char24 +ENCODING 24 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char25 +ENCODING 25 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char26 +ENCODING 26 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char27 +ENCODING 27 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char28 +ENCODING 28 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char29 +ENCODING 29 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char30 +ENCODING 30 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char31 +ENCODING 31 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char32 +ENCODING 32 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char33 +ENCODING 33 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 6 0 0 +BITMAP +C0 +C0 +C0 +C0 +00 +C0 +ENDCHAR +STARTCHAR char34 +ENCODING 34 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 3 2 1 4 +BITMAP +E0 +E0 +ENDCHAR +STARTCHAR char35 +ENCODING 35 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 6 6 0 0 +BITMAP +38 +38 +FC +FC +70 +70 +ENDCHAR +STARTCHAR char36 +ENCODING 36 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 8 0 -1 +BITMAP +60 +F0 +E0 +E0 +70 +70 +F0 +60 +ENDCHAR +STARTCHAR char37 +ENCODING 37 +SWIDTH 875 0 +DWIDTH 7 0 +BBX 7 6 0 0 +BITMAP +EC +F8 +FE +FE +3E +6E +ENDCHAR +STARTCHAR char38 +ENCODING 38 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 7 6 0 0 +BITMAP +F8 +D8 +70 +F6 +DC +FC +ENDCHAR +STARTCHAR char39 +ENCODING 39 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 2 1 4 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR char40 +ENCODING 40 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 3 7 0 -1 +BITMAP +60 +C0 +C0 +C0 +C0 +C0 +60 +ENDCHAR +STARTCHAR char41 +ENCODING 41 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 3 7 -1 -1 +BITMAP +C0 +60 +60 +60 +60 +60 +C0 +ENDCHAR +STARTCHAR char42 +ENCODING 42 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 2 +BITMAP +60 +F0 +60 +F0 +ENDCHAR +STARTCHAR char43 +ENCODING 43 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 1 1 +BITMAP +60 +60 +F0 +60 +ENDCHAR +STARTCHAR char44 +ENCODING 44 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 2 0 -1 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR char45 +ENCODING 45 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 3 1 0 1 +BITMAP +E0 +ENDCHAR +STARTCHAR char46 +ENCODING 46 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 1 0 0 +BITMAP +C0 +ENDCHAR +STARTCHAR char47 +ENCODING 47 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 4 6 0 0 +BITMAP +30 +30 +60 +60 +C0 +C0 +ENDCHAR +STARTCHAR char48 +ENCODING 48 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +60 +F0 +F0 +F0 +F0 +60 +ENDCHAR +STARTCHAR char49 +ENCODING 49 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 3 6 0 0 +BITMAP +60 +E0 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char50 +ENCODING 50 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +30 +30 +60 +60 +F0 +ENDCHAR +STARTCHAR char51 +ENCODING 51 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +30 +60 +30 +30 +F0 +ENDCHAR +STARTCHAR char52 +ENCODING 52 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 5 6 0 0 +BITMAP +30 +70 +70 +F0 +F8 +30 +ENDCHAR +STARTCHAR char53 +ENCODING 53 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +C0 +F0 +30 +30 +E0 +ENDCHAR +STARTCHAR char54 +ENCODING 54 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +70 +C0 +F0 +F0 +F0 +70 +ENDCHAR +STARTCHAR char55 +ENCODING 55 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +30 +30 +60 +60 +60 +ENDCHAR +STARTCHAR char56 +ENCODING 56 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +F0 +F0 +60 +F0 +F0 +ENDCHAR +STARTCHAR char57 +ENCODING 57 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +E0 +F0 +F0 +F0 +30 +E0 +ENDCHAR +STARTCHAR char58 +ENCODING 58 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 4 0 0 +BITMAP +C0 +00 +00 +C0 +ENDCHAR +STARTCHAR char59 +ENCODING 59 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 5 0 -1 +BITMAP +C0 +00 +00 +C0 +C0 +ENDCHAR +STARTCHAR char60 +ENCODING 60 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 1 +BITMAP +30 +60 +E0 +30 +ENDCHAR +STARTCHAR char61 +ENCODING 61 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 3 0 1 +BITMAP +F0 +00 +F0 +ENDCHAR +STARTCHAR char62 +ENCODING 62 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 1 +BITMAP +C0 +60 +70 +C0 +ENDCHAR +STARTCHAR char63 +ENCODING 63 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +30 +30 +60 +00 +60 +ENDCHAR +STARTCHAR char64 +ENCODING 64 +SWIDTH 875 0 +DWIDTH 7 0 +BBX 7 7 0 -1 +BITMAP +7C +C6 +FE +FE +FE +C0 +7C +ENDCHAR +STARTCHAR char65 +ENCODING 65 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +30 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char66 +ENCODING 66 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +F8 +D8 +F8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char67 +ENCODING 67 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +78 +C0 +C0 +C0 +C0 +78 +ENDCHAR +STARTCHAR char68 +ENCODING 68 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +F0 +D8 +D8 +D8 +D8 +F0 +ENDCHAR +STARTCHAR char69 +ENCODING 69 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +C0 +F0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char70 +ENCODING 70 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +C0 +F0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char71 +ENCODING 71 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +7C +C0 +C0 +DC +CC +7C +ENDCHAR +STARTCHAR char72 +ENCODING 72 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +CC +CC +FC +CC +CC +CC +ENDCHAR +STARTCHAR char73 +ENCODING 73 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 2 6 1 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char74 +ENCODING 74 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 3 8 -1 -2 +BITMAP +60 +60 +60 +60 +60 +60 +60 +C0 +ENDCHAR +STARTCHAR char75 +ENCODING 75 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +D8 +F0 +E0 +F0 +F0 +D8 +ENDCHAR +STARTCHAR char76 +ENCODING 76 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 5 6 0 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +F8 +ENDCHAR +STARTCHAR char77 +ENCODING 77 +SWIDTH 1000 0 +DWIDTH 8 0 +BBX 8 6 0 0 +BITMAP +C3 +E7 +E7 +FF +FF +DB +ENDCHAR +STARTCHAR char78 +ENCODING 78 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +CC +EC +FC +FC +DC +CC +ENDCHAR +STARTCHAR char79 +ENCODING 79 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +78 +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char80 +ENCODING 80 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +F8 +D8 +D8 +F0 +C0 +C0 +ENDCHAR +STARTCHAR char81 +ENCODING 81 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 7 0 -1 +BITMAP +78 +CC +CC +CC +CC +78 +18 +ENDCHAR +STARTCHAR char82 +ENCODING 82 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +F8 +D8 +D8 +F0 +F0 +D8 +ENDCHAR +STARTCHAR char83 +ENCODING 83 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +C0 +E0 +30 +30 +F0 +ENDCHAR +STARTCHAR char84 +ENCODING 84 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +60 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char85 +ENCODING 85 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char86 +ENCODING 86 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +CC +CC +78 +78 +78 +30 +ENDCHAR +STARTCHAR char87 +ENCODING 87 +SWIDTH 1000 0 +DWIDTH 8 0 +BBX 8 6 0 0 +BITMAP +DB +FF +FF +FF +6E +66 +ENDCHAR +STARTCHAR char88 +ENCODING 88 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +D8 +70 +70 +70 +F0 +D8 +ENDCHAR +STARTCHAR char89 +ENCODING 89 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 6 6 -1 0 +BITMAP +CC +78 +78 +30 +30 +30 +ENDCHAR +STARTCHAR char90 +ENCODING 90 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +F8 +30 +30 +60 +60 +F8 +ENDCHAR +STARTCHAR char91 +ENCODING 91 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 3 7 1 -1 +BITMAP +E0 +C0 +C0 +C0 +C0 +C0 +E0 +ENDCHAR +STARTCHAR char92 +ENCODING 92 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 4 6 0 0 +BITMAP +C0 +C0 +60 +60 +30 +30 +ENDCHAR +STARTCHAR char93 +ENCODING 93 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 3 7 -1 -1 +BITMAP +E0 +60 +60 +60 +60 +60 +E0 +ENDCHAR +STARTCHAR char94 +ENCODING 94 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 5 4 0 2 +BITMAP +30 +70 +D8 +D8 +ENDCHAR +STARTCHAR char95 +ENCODING 95 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 4 1 0 -2 +BITMAP +F0 +ENDCHAR +STARTCHAR char96 +ENCODING 96 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 3 2 2 5 +BITMAP +C0 +60 +ENDCHAR +STARTCHAR char97 +ENCODING 97 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 0 +BITMAP +F0 +30 +F0 +F0 +ENDCHAR +STARTCHAR char98 +ENCODING 98 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +C0 +C0 +F0 +D8 +D8 +F0 +ENDCHAR +STARTCHAR char99 +ENCODING 99 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 0 +BITMAP +70 +C0 +C0 +70 +ENDCHAR +STARTCHAR char100 +ENCODING 100 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +18 +18 +78 +D8 +D8 +78 +ENDCHAR +STARTCHAR char101 +ENCODING 101 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 0 +BITMAP +F0 +F0 +C0 +F0 +ENDCHAR +STARTCHAR char102 +ENCODING 102 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 3 6 0 0 +BITMAP +E0 +C0 +E0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char103 +ENCODING 103 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 5 6 0 -2 +BITMAP +F8 +F0 +F0 +78 +D8 +F8 +ENDCHAR +STARTCHAR char104 +ENCODING 104 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +C0 +C0 +F8 +D8 +D8 +D8 +ENDCHAR +STARTCHAR char105 +ENCODING 105 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 6 0 0 +BITMAP +C0 +00 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char106 +ENCODING 106 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 3 8 -1 -2 +BITMAP +60 +00 +60 +60 +60 +60 +60 +E0 +ENDCHAR +STARTCHAR char107 +ENCODING 107 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +C0 +C0 +F0 +E0 +E0 +F0 +ENDCHAR +STARTCHAR char108 +ENCODING 108 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 6 0 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char109 +ENCODING 109 +SWIDTH 1000 0 +DWIDTH 8 0 +BBX 8 4 0 0 +BITMAP +FF +DB +DB +DB +ENDCHAR +STARTCHAR char110 +ENCODING 110 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 4 0 0 +BITMAP +F8 +D8 +D8 +D8 +ENDCHAR +STARTCHAR char111 +ENCODING 111 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 4 0 0 +BITMAP +70 +D8 +D8 +70 +ENDCHAR +STARTCHAR char112 +ENCODING 112 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 -2 +BITMAP +F0 +D8 +D8 +F0 +C0 +C0 +ENDCHAR +STARTCHAR char113 +ENCODING 113 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 -2 +BITMAP +78 +D8 +D8 +78 +18 +18 +ENDCHAR +STARTCHAR char114 +ENCODING 114 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 3 4 0 0 +BITMAP +E0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char115 +ENCODING 115 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 0 +BITMAP +F0 +E0 +30 +F0 +ENDCHAR +STARTCHAR char116 +ENCODING 116 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 3 5 0 0 +BITMAP +C0 +E0 +C0 +C0 +E0 +ENDCHAR +STARTCHAR char117 +ENCODING 117 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 4 0 0 +BITMAP +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char118 +ENCODING 118 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 0 +BITMAP +F0 +F0 +F0 +60 +ENDCHAR +STARTCHAR char119 +ENCODING 119 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 4 0 0 +BITMAP +FC +FC +F8 +78 +ENDCHAR +STARTCHAR char120 +ENCODING 120 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 0 +BITMAP +F0 +60 +60 +F0 +ENDCHAR +STARTCHAR char121 +ENCODING 121 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 -2 +BITMAP +F0 +F0 +F0 +60 +60 +C0 +ENDCHAR +STARTCHAR char122 +ENCODING 122 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 0 +BITMAP +F0 +60 +60 +F0 +ENDCHAR +STARTCHAR char123 +ENCODING 123 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 3 7 0 -1 +BITMAP +60 +60 +60 +C0 +60 +60 +60 +ENDCHAR +STARTCHAR char124 +ENCODING 124 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 2 8 1 -2 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char125 +ENCODING 125 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 3 7 1 -1 +BITMAP +C0 +C0 +C0 +60 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char126 +ENCODING 126 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 2 0 1 +BITMAP +C0 +70 +ENDCHAR +STARTCHAR char127 +ENCODING 127 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char128 +ENCODING 128 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char129 +ENCODING 129 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char130 +ENCODING 130 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char131 +ENCODING 131 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char132 +ENCODING 132 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char133 +ENCODING 133 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char134 +ENCODING 134 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char135 +ENCODING 135 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char136 +ENCODING 136 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char137 +ENCODING 137 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char138 +ENCODING 138 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char139 +ENCODING 139 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char140 +ENCODING 140 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char141 +ENCODING 141 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char142 +ENCODING 142 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char143 +ENCODING 143 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char144 +ENCODING 144 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char145 +ENCODING 145 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char146 +ENCODING 146 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char147 +ENCODING 147 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char148 +ENCODING 148 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char149 +ENCODING 149 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char150 +ENCODING 150 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char151 +ENCODING 151 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char152 +ENCODING 152 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char153 +ENCODING 153 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char154 +ENCODING 154 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char155 +ENCODING 155 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char156 +ENCODING 156 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char157 +ENCODING 157 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char158 +ENCODING 158 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char159 +ENCODING 159 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char160 +ENCODING 160 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR char161 +ENCODING 161 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 6 0 -2 +BITMAP +C0 +00 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char162 +ENCODING 162 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 3 6 1 0 +BITMAP +60 +E0 +C0 +C0 +E0 +60 +ENDCHAR +STARTCHAR char163 +ENCODING 163 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +70 +60 +60 +F0 +60 +F0 +ENDCHAR +STARTCHAR char164 +ENCODING 164 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 3 0 1 +BITMAP +F0 +F0 +F0 +ENDCHAR +STARTCHAR char165 +ENCODING 165 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 6 6 -1 0 +BITMAP +CC +78 +70 +78 +78 +30 +ENDCHAR +STARTCHAR char166 +ENCODING 166 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 2 8 1 -2 +BITMAP +C0 +C0 +C0 +00 +00 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char167 +ENCODING 167 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +E0 +F0 +F0 +30 +F0 +ENDCHAR +STARTCHAR char168 +ENCODING 168 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 4 1 1 5 +BITMAP +F0 +ENDCHAR +STARTCHAR char169 +ENCODING 169 +SWIDTH 875 0 +DWIDTH 7 0 +BBX 7 6 0 0 +BITMAP +7C +FE +F6 +FE +C6 +7C +ENDCHAR +STARTCHAR char170 +ENCODING 170 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 4 3 0 3 +BITMAP +F0 +F0 +F0 +ENDCHAR +STARTCHAR char171 +ENCODING 171 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 5 4 0 0 +BITMAP +78 +F0 +F0 +78 +ENDCHAR +STARTCHAR char172 +ENCODING 172 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 2 0 1 +BITMAP +F0 +30 +ENDCHAR +STARTCHAR char173 +ENCODING 173 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 3 1 0 1 +BITMAP +E0 +ENDCHAR +STARTCHAR char174 +ENCODING 174 +SWIDTH 875 0 +DWIDTH 7 0 +BBX 7 6 0 0 +BITMAP +7C +FE +FE +FE +C6 +7C +ENDCHAR +STARTCHAR char175 +ENCODING 175 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 5 1 0 6 +BITMAP +F8 +ENDCHAR +STARTCHAR char176 +ENCODING 176 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 4 3 0 3 +BITMAP +F0 +F0 +F0 +ENDCHAR +STARTCHAR char177 +ENCODING 177 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 5 1 0 +BITMAP +60 +60 +F0 +60 +F0 +ENDCHAR +STARTCHAR char178 +ENCODING 178 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 2 +BITMAP +F0 +30 +60 +E0 +ENDCHAR +STARTCHAR char179 +ENCODING 179 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 4 0 2 +BITMAP +F0 +30 +30 +F0 +ENDCHAR +STARTCHAR char180 +ENCODING 180 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 3 2 2 5 +BITMAP +60 +C0 +ENDCHAR +STARTCHAR char181 +ENCODING 181 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 -2 +BITMAP +D8 +D8 +D8 +F8 +C0 +C0 +ENDCHAR +STARTCHAR char182 +ENCODING 182 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 -1 +BITMAP +F8 +F8 +F8 +F8 +38 +38 +ENDCHAR +STARTCHAR char183 +ENCODING 183 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 1 0 2 +BITMAP +C0 +ENDCHAR +STARTCHAR char184 +ENCODING 184 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 2 2 1 -2 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR char185 +ENCODING 185 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 3 4 0 2 +BITMAP +E0 +60 +60 +60 +ENDCHAR +STARTCHAR char186 +ENCODING 186 +SWIDTH 375 0 +DWIDTH 3 0 +BBX 4 3 0 3 +BITMAP +F0 +F0 +F0 +ENDCHAR +STARTCHAR char187 +ENCODING 187 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 5 4 0 0 +BITMAP +F0 +78 +78 +F0 +ENDCHAR +STARTCHAR char188 +ENCODING 188 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 7 6 0 0 +BITMAP +F8 +78 +7E +7E +6E +66 +ENDCHAR +STARTCHAR char189 +ENCODING 189 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 7 6 0 0 +BITMAP +F8 +78 +7E +76 +6C +7C +ENDCHAR +STARTCHAR char190 +ENCODING 190 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 7 6 0 0 +BITMAP +FC +3C +3E +FE +3E +36 +ENDCHAR +STARTCHAR char191 +ENCODING 191 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 -2 +BITMAP +60 +00 +60 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char192 +ENCODING 192 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +60 +30 +00 +30 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char193 +ENCODING 193 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +18 +30 +00 +30 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char194 +ENCODING 194 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +30 +78 +00 +30 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char195 +ENCODING 195 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +70 +18 +00 +30 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char196 +ENCODING 196 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 8 0 0 +BITMAP +78 +00 +30 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char197 +ENCODING 197 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 7 0 0 +BITMAP +38 +38 +78 +78 +78 +CC +CC +ENDCHAR +STARTCHAR char198 +ENCODING 198 +SWIDTH 875 0 +DWIDTH 7 0 +BBX 7 6 0 0 +BITMAP +3E +38 +7E +78 +F8 +DE +ENDCHAR +STARTCHAR char199 +ENCODING 199 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 8 0 -2 +BITMAP +78 +C0 +C0 +C0 +C0 +78 +18 +18 +ENDCHAR +STARTCHAR char200 +ENCODING 200 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 9 0 0 +BITMAP +60 +30 +00 +F0 +C0 +F0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char201 +ENCODING 201 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 9 0 0 +BITMAP +30 +60 +00 +F0 +C0 +F0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char202 +ENCODING 202 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 9 0 0 +BITMAP +60 +F0 +00 +F0 +C0 +F0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char203 +ENCODING 203 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 8 0 0 +BITMAP +F0 +00 +F0 +C0 +F0 +C0 +C0 +F0 +ENDCHAR +STARTCHAR char204 +ENCODING 204 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 3 9 0 0 +BITMAP +C0 +60 +00 +60 +60 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char205 +ENCODING 205 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 3 9 1 0 +BITMAP +60 +C0 +00 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char206 +ENCODING 206 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 9 0 0 +BITMAP +60 +F0 +00 +60 +60 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char207 +ENCODING 207 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 8 0 0 +BITMAP +F0 +00 +60 +60 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char208 +ENCODING 208 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 6 6 -1 0 +BITMAP +78 +6C +FC +6C +6C +78 +ENDCHAR +STARTCHAR char209 +ENCODING 209 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +70 +18 +00 +CC +EC +FC +FC +DC +CC +ENDCHAR +STARTCHAR char210 +ENCODING 210 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +60 +30 +00 +78 +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char211 +ENCODING 211 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +18 +30 +00 +78 +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char212 +ENCODING 212 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +30 +78 +00 +78 +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char213 +ENCODING 213 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +70 +18 +00 +78 +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char214 +ENCODING 214 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 8 0 0 +BITMAP +78 +00 +78 +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char215 +ENCODING 215 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 3 1 1 +BITMAP +F0 +60 +F0 +ENDCHAR +STARTCHAR char216 +ENCODING 216 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +78 +DC +FC +FC +EC +78 +ENDCHAR +STARTCHAR char217 +ENCODING 217 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +60 +30 +00 +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char218 +ENCODING 218 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +18 +30 +00 +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char219 +ENCODING 219 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 9 0 0 +BITMAP +30 +78 +00 +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char220 +ENCODING 220 +SWIDTH 750 0 +DWIDTH 6 0 +BBX 6 8 0 0 +BITMAP +78 +00 +CC +CC +CC +CC +CC +78 +ENDCHAR +STARTCHAR char221 +ENCODING 221 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 6 9 -1 0 +BITMAP +18 +30 +00 +CC +78 +78 +30 +30 +30 +ENDCHAR +STARTCHAR char222 +ENCODING 222 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +C0 +F0 +D8 +D8 +F0 +C0 +ENDCHAR +STARTCHAR char223 +ENCODING 223 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +F8 +D8 +F0 +F0 +D8 +F8 +ENDCHAR +STARTCHAR char224 +ENCODING 224 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +60 +30 +00 +F0 +30 +F0 +F0 +ENDCHAR +STARTCHAR char225 +ENCODING 225 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +30 +60 +00 +F0 +30 +F0 +F0 +ENDCHAR +STARTCHAR char226 +ENCODING 226 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +60 +F0 +00 +F0 +30 +F0 +F0 +ENDCHAR +STARTCHAR char227 +ENCODING 227 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +E0 +30 +00 +F0 +30 +F0 +F0 +ENDCHAR +STARTCHAR char228 +ENCODING 228 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +00 +F0 +30 +F0 +F0 +ENDCHAR +STARTCHAR char229 +ENCODING 229 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +70 +70 +00 +F0 +30 +F0 +F0 +ENDCHAR +STARTCHAR char230 +ENCODING 230 +SWIDTH 875 0 +DWIDTH 7 0 +BBX 7 4 0 0 +BITMAP +FE +1E +F8 +FE +ENDCHAR +STARTCHAR char231 +ENCODING 231 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 -2 +BITMAP +70 +C0 +C0 +70 +30 +30 +ENDCHAR +STARTCHAR char232 +ENCODING 232 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +60 +30 +00 +F0 +F0 +C0 +F0 +ENDCHAR +STARTCHAR char233 +ENCODING 233 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +30 +60 +00 +F0 +F0 +C0 +F0 +ENDCHAR +STARTCHAR char234 +ENCODING 234 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 7 0 0 +BITMAP +60 +F0 +00 +F0 +F0 +C0 +F0 +ENDCHAR +STARTCHAR char235 +ENCODING 235 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 6 0 0 +BITMAP +F0 +00 +F0 +F0 +C0 +F0 +ENDCHAR +STARTCHAR char236 +ENCODING 236 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 3 7 -1 0 +BITMAP +C0 +60 +00 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char237 +ENCODING 237 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 3 7 0 0 +BITMAP +60 +C0 +00 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char238 +ENCODING 238 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 4 7 -1 0 +BITMAP +60 +F0 +00 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char239 +ENCODING 239 +SWIDTH 250 0 +DWIDTH 2 0 +BBX 4 6 -1 0 +BITMAP +F0 +00 +60 +60 +60 +60 +ENDCHAR +STARTCHAR char240 +ENCODING 240 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +78 +70 +78 +D8 +D8 +70 +ENDCHAR +STARTCHAR char241 +ENCODING 241 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +70 +18 +00 +F8 +D8 +D8 +D8 +ENDCHAR +STARTCHAR char242 +ENCODING 242 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +60 +30 +00 +70 +D8 +D8 +70 +ENDCHAR +STARTCHAR char243 +ENCODING 243 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +18 +30 +00 +70 +D8 +D8 +70 +ENDCHAR +STARTCHAR char244 +ENCODING 244 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +30 +78 +00 +70 +D8 +D8 +70 +ENDCHAR +STARTCHAR char245 +ENCODING 245 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +70 +18 +00 +70 +D8 +D8 +70 +ENDCHAR +STARTCHAR char246 +ENCODING 246 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +78 +00 +70 +D8 +D8 +70 +ENDCHAR +STARTCHAR char247 +ENCODING 247 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 5 1 0 +BITMAP +60 +00 +F0 +00 +60 +ENDCHAR +STARTCHAR char248 +ENCODING 248 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 4 0 0 +BITMAP +70 +F8 +F8 +70 +ENDCHAR +STARTCHAR char249 +ENCODING 249 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +60 +30 +00 +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char250 +ENCODING 250 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +18 +30 +00 +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char251 +ENCODING 251 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 7 0 0 +BITMAP +30 +78 +00 +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char252 +ENCODING 252 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 6 0 0 +BITMAP +78 +00 +D8 +D8 +D8 +F8 +ENDCHAR +STARTCHAR char253 +ENCODING 253 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 9 0 -2 +BITMAP +30 +60 +00 +F0 +F0 +F0 +60 +60 +C0 +ENDCHAR +STARTCHAR char254 +ENCODING 254 +SWIDTH 625 0 +DWIDTH 5 0 +BBX 5 8 0 -2 +BITMAP +C0 +C0 +F0 +D8 +D8 +F0 +C0 +C0 +ENDCHAR +STARTCHAR char255 +ENCODING 255 +SWIDTH 500 0 +DWIDTH 4 0 +BBX 4 8 0 -2 +BITMAP +F0 +00 +F0 +F0 +F0 +60 +60 +C0 +ENDCHAR +ENDFONT diff --git a/ui/fonts/DroidSansBold9x11.h b/ui/fonts/DroidSansBold9x11.h new file mode 100644 index 0000000..056eb22 --- /dev/null +++ b/ui/fonts/DroidSansBold9x11.h @@ -0,0 +1,261 @@ +/* -FreeType-Droid Sans-Bold-R-Normal--8-60-96-96-P-44-ISO10646-1 */ +#define FONT_WIDTH_Droid SansBold_9x11 9 +#define FONT_HEIGHT_Droid SansBold_9x11 11 +const uint8_t FONT_DATA_Droid SansBold_9x11[256][23] = { +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x7e,0x00,0x7e,0x00,0x1c,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x0c,0x00,0x1e,0x00,0x0e,0x00,0x0e,0x00,0x1c,0x00,0x1c,0x00,0x1e,0x00,0x0c,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x00,0x3e,0x00,0xfe,0x00,0xfe,0x00,0xf8,0x00,0xec,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x36,0x00,0x1c,0x00,0xde,0x00,0x76,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x0c,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x1e,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x3c,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x0c,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x18,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x0c,0x00,0x18,0x00,0x18,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x1c,0x00,0x1c,0x00,0x1e,0x00,0x3e,0x00,0x18,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x18,0x00,0x18,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x06,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x18,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x0c,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x18,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x0c,0x00,0x0e,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0c,0x00,0x1c,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x18,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0xc6,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0x06,0x00,0x7c,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x36,0x00,0x3e,0x00,0x36,0x00,0x36,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x06,0x00,0x06,0x00,0x76,0x00,0x66,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x7e,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x03,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x1e,0x00,0x0e,0x00,0x1e,0x00,0x1e,0x00,0x36,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x01,0xce,0x01,0xce,0x01,0xfe,0x01,0xfe,0x01,0xb6,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x6e,0x00,0x7e,0x00,0x7e,0x00,0x76,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x36,0x00,0x36,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x30,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x36,0x00,0x36,0x00,0x1e,0x00,0x1e,0x00,0x36,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x0e,0x00,0x18,0x00,0x18,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x18,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0xb6,0x01,0xfe,0x01,0xfe,0x01,0xfe,0x01,0xec,0x00,0xcc,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1e,0x00,0x36,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x1e,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x18,0x00,0x18,0x00,0x0c,0x00,0x0c,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x0c,0x00,0x0c,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x07,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x18,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,0x36,0x00,0x36,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x06,0x00,0x06,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x3c,0x00,0x36,0x00,0x36,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x06,0x00,0x0e,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x1e,0x00,0x1e,0x00,0x3c,0x00,0x36,0x00,0x3e,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x3e,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x07,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,0x0e,0x00,0x0e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x01,0xb6,0x01,0xb6,0x01,0xb6,0x01,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x36,0x00,0x36,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x36,0x00,0x36,0x00,0x3c,0x00,0x30,0x00,0x30,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x0e,0x00,0x18,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0e,0x00,0x06,0x00,0x06,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x7e,0x00,0x3e,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x06,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x06,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x18,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x1c,0x00,0x0c,0x00,0x0c,0x00,0x1c,0x00,0x18,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x0c,0x00,0x0c,0x00,0x1e,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x1e,0x00,0x0e,0x00,0x1e,0x00,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x0e,0x00,0x1e,0x00,0x1e,0x00,0x18,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0xfe,0x00,0xde,0x00,0xfe,0x00,0xc6,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x1e,0x00,0x1e,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xc6,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x3c,0x00,0x18,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x0c,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x18,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x3e,0x00,0x06,0x00,0x06,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x3e,0x00,0x3e,0x00,0x3e,0x00,0x38,0x00,0x38,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/3,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x3c,0x00,0x3c,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x3c,0x00,0xfc,0x00,0xfc,0x00,0xec,0x00,0xcc,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x3c,0x00,0xfc,0x00,0xdc,0x00,0x6c,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x78,0x00,0xf8,0x00,0xfe,0x00,0xf8,0x00,0xd8,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,}, +{/*w*/6,0x0c,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x30,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x18,0x00,0x3c,0x00,0x00,0x00,0x18,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x1c,0x00,0x30,0x00,0x00,0x00,0x18,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x3c,0x00,0x00,0x00,0x18,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x38,0x00,0xfc,0x00,0x3c,0x00,0x3e,0x00,0xf6,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x3c,0x00,0x30,0x00,0x30,0x00,}, +{/*w*/4,0x0c,0x00,0x18,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x18,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x0c,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x06,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x18,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x0c,0x00,0x1e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x1e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x36,0x00,0x3f,0x00,0x36,0x00,0x36,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x1c,0x00,0x30,0x00,0x00,0x00,0x66,0x00,0x6e,0x00,0x7e,0x00,0x7e,0x00,0x76,0x00,0x66,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x0c,0x00,0x18,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x30,0x00,0x18,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x18,0x00,0x3c,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x1c,0x00,0x30,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x3c,0x00,0x00,0x00,0x3c,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x18,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x76,0x00,0x7e,0x00,0x7e,0x00,0x6e,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x0c,0x00,0x18,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x30,0x00,0x18,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x18,0x00,0x3c,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/6,0x00,0x00,0x3c,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x18,0x00,0x0c,0x00,0x00,0x00,0x33,0x00,0x1e,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x1e,0x00,0x36,0x00,0x36,0x00,0x1e,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x36,0x00,0x1e,0x00,0x1e,0x00,0x36,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x18,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x0e,0x00,0x18,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x1c,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x18,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0xf0,0x00,0x3e,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x06,0x00,0x06,0x00,0x1c,0x00,0x18,0x00,0x18,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x18,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x0c,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x03,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/2,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x1c,0x00,0x3c,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x1c,0x00,0x30,0x00,0x00,0x00,0x3e,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x18,0x00,0x3c,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x1c,0x00,0x30,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x1c,0x00,0x36,0x00,0x36,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x3e,0x00,0x3e,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x18,0x00,0x3c,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x18,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x06,0x00,}, +{/*w*/5,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x1e,0x00,0x36,0x00,0x36,0x00,0x1e,0x00,0x06,0x00,0x06,0x00,}, +{/*w*/4,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x06,0x00,}, +}; diff --git a/ui/fonts/README.txt b/ui/fonts/README.txt new file mode 100644 index 0000000..1dc5dc2 --- /dev/null +++ b/ui/fonts/README.txt @@ -0,0 +1,17 @@ +The fonts contained here are partially taken from third parties and +partially "home made". The fonts were edited and converted to C style header +files using "gbdfed" by Mark Leisher which was extended +with the C style header export functions by Nicole Faerber. + +lcd + Font made specifically for Oswald, old style 7-segment LCD look, + monospaced, especially useful for watch display + +fixed + Converted from the public domain "fixed" fonts from the X11 graphics + server dustribution + +DroidSans + Converted from the Android Sans TrueType font, licensed under + the Apache 2.0 license, font originally created by by Steve Matteson + of Ascender Corporation diff --git a/ui/fonts/fixed5x7.bdf b/ui/fonts/fixed5x7.bdf new file mode 100644 index 0000000..1ccbc02 --- /dev/null +++ b/ui/fonts/fixed5x7.bdf @@ -0,0 +1,3618 @@ +STARTFONT 2.1 +COMMENT Font grabbed from the X server. +FONT -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO8859-9 +SIZE 7 75 75 +FONTBOUNDINGBOX 5 7 0 -1 +STARTPROPERTIES 25 +FONTNAME_REGISTRY "" +FOUNDRY "Misc" +FAMILY_NAME "Fixed" +WEIGHT_NAME "Medium" +SLANT "R" +SETWIDTH_NAME "Normal" +ADD_STYLE_NAME "" +PIXEL_SIZE 7 +POINT_SIZE 70 +RESOLUTION_X 75 +RESOLUTION_Y 75 +SPACING "C" +AVERAGE_WIDTH 50 +CHARSET_REGISTRY "ISO8859" +CHARSET_ENCODING "9" +DESTINATION 1 +COPYRIGHT "Public domain font. Share and enjoy." +CAP_HEIGHT 6 +X_HEIGHT 4 +WEIGHT 10 +RESOLUTION 103 +QUAD_WIDTH 5 +FONT_ASCENT 6 +FONT_DESCENT 1 +_GBDFED_INFO "Edited with gbdfed 1.6." +ENDPROPERTIES +CHARS 256 +STARTCHAR char0 +ENCODING 0 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +A8 +00 +88 +00 +A8 +00 +ENDCHAR +STARTCHAR char1 +ENCODING 1 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +20 +70 +F8 +70 +20 +00 +ENDCHAR +STARTCHAR char2 +ENCODING 2 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +A8 +50 +A8 +50 +A8 +50 +A8 +ENDCHAR +STARTCHAR char3 +ENCODING 3 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +A0 +E0 +A0 +70 +20 +20 +00 +ENDCHAR +STARTCHAR char4 +ENCODING 4 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +E0 +80 +F8 +A0 +30 +20 +00 +ENDCHAR +STARTCHAR char5 +ENCODING 5 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +80 +E0 +50 +60 +50 +00 +ENDCHAR +STARTCHAR char6 +ENCODING 6 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +80 +80 +F0 +20 +30 +20 +00 +ENDCHAR +STARTCHAR char7 +ENCODING 7 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +50 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char8 +ENCODING 8 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +F8 +20 +20 +F8 +00 +ENDCHAR +STARTCHAR char9 +ENCODING 9 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +C0 +A0 +A0 +A0 +20 +38 +00 +ENDCHAR +STARTCHAR char10 +ENCODING 10 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +A0 +A0 +78 +50 +10 +10 +00 +ENDCHAR +STARTCHAR char11 +ENCODING 11 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +E0 +00 +00 +00 +ENDCHAR +STARTCHAR char12 +ENCODING 12 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +E0 +20 +20 +20 +ENDCHAR +STARTCHAR char13 +ENCODING 13 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +38 +20 +20 +20 +ENDCHAR +STARTCHAR char14 +ENCODING 14 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +38 +00 +00 +00 +ENDCHAR +STARTCHAR char15 +ENCODING 15 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +F8 +20 +20 +20 +ENDCHAR +STARTCHAR char16 +ENCODING 16 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F8 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char17 +ENCODING 17 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +F8 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char18 +ENCODING 18 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +F8 +00 +00 +00 +ENDCHAR +STARTCHAR char19 +ENCODING 19 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +F8 +00 +ENDCHAR +STARTCHAR char20 +ENCODING 20 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +F8 +ENDCHAR +STARTCHAR char21 +ENCODING 21 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +38 +20 +20 +20 +ENDCHAR +STARTCHAR char22 +ENCODING 22 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +E0 +20 +20 +20 +ENDCHAR +STARTCHAR char23 +ENCODING 23 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +F8 +00 +00 +00 +ENDCHAR +STARTCHAR char24 +ENCODING 24 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +F8 +20 +20 +20 +ENDCHAR +STARTCHAR char25 +ENCODING 25 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char26 +ENCODING 26 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +10 +20 +40 +20 +10 +70 +00 +ENDCHAR +STARTCHAR char27 +ENCODING 27 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +20 +10 +20 +40 +70 +00 +ENDCHAR +STARTCHAR char28 +ENCODING 28 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +70 +50 +50 +50 +00 +ENDCHAR +STARTCHAR char29 +ENCODING 29 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +10 +F0 +20 +F0 +40 +00 +ENDCHAR +STARTCHAR char30 +ENCODING 30 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +30 +40 +E0 +40 +B0 +00 +ENDCHAR +STARTCHAR char31 +ENCODING 31 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +60 +60 +00 +00 +00 +ENDCHAR +STARTCHAR char32 +ENCODING 32 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char33 +ENCODING 33 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +20 +00 +20 +00 +ENDCHAR +STARTCHAR char34 +ENCODING 34 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +50 +50 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char35 +ENCODING 35 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +50 +F8 +50 +F8 +50 +00 +ENDCHAR +STARTCHAR char36 +ENCODING 36 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +70 +A0 +70 +28 +70 +00 +ENDCHAR +STARTCHAR char37 +ENCODING 37 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +80 +90 +20 +40 +90 +10 +00 +ENDCHAR +STARTCHAR char38 +ENCODING 38 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +40 +A0 +40 +A0 +50 +00 +ENDCHAR +STARTCHAR char39 +ENCODING 39 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char40 +ENCODING 40 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +40 +40 +40 +40 +20 +00 +ENDCHAR +STARTCHAR char41 +ENCODING 41 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +20 +20 +20 +20 +40 +00 +ENDCHAR +STARTCHAR char42 +ENCODING 42 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +50 +20 +70 +20 +50 +00 +ENDCHAR +STARTCHAR char43 +ENCODING 43 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +20 +20 +F8 +20 +20 +00 +ENDCHAR +STARTCHAR char44 +ENCODING 44 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +30 +20 +40 +ENDCHAR +STARTCHAR char45 +ENCODING 45 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +F0 +00 +00 +00 +ENDCHAR +STARTCHAR char46 +ENCODING 46 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +60 +60 +00 +ENDCHAR +STARTCHAR char47 +ENCODING 47 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +10 +20 +40 +80 +00 +00 +ENDCHAR +STARTCHAR char48 +ENCODING 48 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +50 +50 +50 +50 +20 +00 +ENDCHAR +STARTCHAR char49 +ENCODING 49 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +60 +20 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char50 +ENCODING 50 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +10 +20 +40 +F0 +00 +ENDCHAR +STARTCHAR char51 +ENCODING 51 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +10 +60 +10 +90 +60 +00 +ENDCHAR +STARTCHAR char52 +ENCODING 52 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +60 +A0 +F0 +20 +20 +00 +ENDCHAR +STARTCHAR char53 +ENCODING 53 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +80 +E0 +10 +90 +60 +00 +ENDCHAR +STARTCHAR char54 +ENCODING 54 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +80 +E0 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char55 +ENCODING 55 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +10 +20 +20 +40 +40 +00 +ENDCHAR +STARTCHAR char56 +ENCODING 56 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +60 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char57 +ENCODING 57 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +70 +10 +60 +00 +ENDCHAR +STARTCHAR char58 +ENCODING 58 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +60 +60 +00 +60 +60 +00 +ENDCHAR +STARTCHAR char59 +ENCODING 59 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +60 +60 +00 +60 +40 +80 +ENDCHAR +STARTCHAR char60 +ENCODING 60 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +10 +20 +40 +20 +10 +00 +ENDCHAR +STARTCHAR char61 +ENCODING 61 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +F0 +00 +F0 +00 +00 +ENDCHAR +STARTCHAR char62 +ENCODING 62 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +40 +20 +10 +20 +40 +00 +ENDCHAR +STARTCHAR char63 +ENCODING 63 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +50 +10 +20 +00 +20 +00 +ENDCHAR +STARTCHAR char64 +ENCODING 64 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +B0 +B0 +80 +60 +00 +ENDCHAR +STARTCHAR char65 +ENCODING 65 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +F0 +90 +90 +00 +ENDCHAR +STARTCHAR char66 +ENCODING 66 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +E0 +90 +E0 +90 +90 +E0 +00 +ENDCHAR +STARTCHAR char67 +ENCODING 67 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +80 +80 +90 +60 +00 +ENDCHAR +STARTCHAR char68 +ENCODING 68 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +E0 +90 +90 +90 +90 +E0 +00 +ENDCHAR +STARTCHAR char69 +ENCODING 69 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +80 +E0 +80 +80 +F0 +00 +ENDCHAR +STARTCHAR char70 +ENCODING 70 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +80 +E0 +80 +80 +80 +00 +ENDCHAR +STARTCHAR char71 +ENCODING 71 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +80 +B0 +90 +70 +00 +ENDCHAR +STARTCHAR char72 +ENCODING 72 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +90 +F0 +90 +90 +90 +00 +ENDCHAR +STARTCHAR char73 +ENCODING 73 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +20 +20 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char74 +ENCODING 74 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +10 +10 +10 +10 +90 +60 +00 +ENDCHAR +STARTCHAR char75 +ENCODING 75 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +A0 +C0 +C0 +A0 +90 +00 +ENDCHAR +STARTCHAR char76 +ENCODING 76 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +80 +80 +80 +80 +80 +F0 +00 +ENDCHAR +STARTCHAR char77 +ENCODING 77 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +F0 +F0 +90 +90 +90 +00 +ENDCHAR +STARTCHAR char78 +ENCODING 78 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +D0 +D0 +B0 +B0 +90 +00 +ENDCHAR +STARTCHAR char79 +ENCODING 79 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char80 +ENCODING 80 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +E0 +90 +90 +E0 +80 +80 +00 +ENDCHAR +STARTCHAR char81 +ENCODING 81 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +90 +D0 +60 +10 +ENDCHAR +STARTCHAR char82 +ENCODING 82 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +E0 +90 +90 +E0 +A0 +90 +00 +ENDCHAR +STARTCHAR char83 +ENCODING 83 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +40 +20 +90 +60 +00 +ENDCHAR +STARTCHAR char84 +ENCODING 84 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +20 +20 +20 +20 +20 +00 +ENDCHAR +STARTCHAR char85 +ENCODING 85 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +90 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char86 +ENCODING 86 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +90 +90 +90 +60 +60 +00 +ENDCHAR +STARTCHAR char87 +ENCODING 87 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +90 +90 +F0 +F0 +90 +00 +ENDCHAR +STARTCHAR char88 +ENCODING 88 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +90 +60 +60 +90 +90 +00 +ENDCHAR +STARTCHAR char89 +ENCODING 89 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +50 +50 +20 +20 +20 +00 +ENDCHAR +STARTCHAR char90 +ENCODING 90 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +10 +20 +40 +80 +F0 +00 +ENDCHAR +STARTCHAR char91 +ENCODING 91 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +40 +40 +40 +40 +70 +00 +ENDCHAR +STARTCHAR char92 +ENCODING 92 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +80 +40 +20 +10 +00 +00 +ENDCHAR +STARTCHAR char93 +ENCODING 93 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +10 +10 +10 +10 +70 +00 +ENDCHAR +STARTCHAR char94 +ENCODING 94 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +50 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char95 +ENCODING 95 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +F0 +00 +ENDCHAR +STARTCHAR char96 +ENCODING 96 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +20 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char97 +ENCODING 97 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +70 +90 +B0 +50 +00 +ENDCHAR +STARTCHAR char98 +ENCODING 98 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +80 +80 +E0 +90 +90 +E0 +00 +ENDCHAR +STARTCHAR char99 +ENCODING 99 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +60 +80 +80 +60 +00 +ENDCHAR +STARTCHAR char100 +ENCODING 100 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +10 +10 +70 +90 +90 +70 +00 +ENDCHAR +STARTCHAR char101 +ENCODING 101 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +60 +B0 +C0 +60 +00 +ENDCHAR +STARTCHAR char102 +ENCODING 102 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +50 +40 +E0 +40 +40 +00 +ENDCHAR +STARTCHAR char103 +ENCODING 103 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +70 +90 +60 +80 +70 +ENDCHAR +STARTCHAR char104 +ENCODING 104 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +80 +80 +E0 +90 +90 +90 +00 +ENDCHAR +STARTCHAR char105 +ENCODING 105 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +00 +60 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char106 +ENCODING 106 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +10 +00 +10 +10 +10 +50 +20 +ENDCHAR +STARTCHAR char107 +ENCODING 107 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +80 +80 +A0 +C0 +A0 +90 +00 +ENDCHAR +STARTCHAR char108 +ENCODING 108 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +20 +20 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char109 +ENCODING 109 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +A0 +F0 +90 +90 +00 +ENDCHAR +STARTCHAR char110 +ENCODING 110 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +E0 +90 +90 +90 +00 +ENDCHAR +STARTCHAR char111 +ENCODING 111 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +60 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char112 +ENCODING 112 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +E0 +90 +90 +E0 +80 +ENDCHAR +STARTCHAR char113 +ENCODING 113 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +70 +90 +90 +70 +10 +ENDCHAR +STARTCHAR char114 +ENCODING 114 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +E0 +90 +80 +80 +00 +ENDCHAR +STARTCHAR char115 +ENCODING 115 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +70 +C0 +30 +E0 +00 +ENDCHAR +STARTCHAR char116 +ENCODING 116 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +40 +E0 +40 +40 +30 +00 +ENDCHAR +STARTCHAR char117 +ENCODING 117 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +90 +90 +90 +70 +00 +ENDCHAR +STARTCHAR char118 +ENCODING 118 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +50 +50 +50 +20 +00 +ENDCHAR +STARTCHAR char119 +ENCODING 119 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +90 +90 +F0 +F0 +00 +ENDCHAR +STARTCHAR char120 +ENCODING 120 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +90 +60 +60 +90 +00 +ENDCHAR +STARTCHAR char121 +ENCODING 121 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +90 +90 +50 +20 +40 +ENDCHAR +STARTCHAR char122 +ENCODING 122 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +F0 +20 +40 +F0 +00 +ENDCHAR +STARTCHAR char123 +ENCODING 123 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +10 +20 +60 +20 +20 +10 +00 +ENDCHAR +STARTCHAR char124 +ENCODING 124 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +20 +20 +20 +20 +00 +ENDCHAR +STARTCHAR char125 +ENCODING 125 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +20 +30 +20 +20 +40 +00 +ENDCHAR +STARTCHAR char126 +ENCODING 126 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +A0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 127 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 128 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 129 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 130 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 131 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 132 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 133 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 134 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 135 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 136 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 137 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 138 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 139 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 140 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 141 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 142 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 143 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 144 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 145 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 146 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 147 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 148 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 149 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 150 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 151 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 152 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 153 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 154 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 155 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 156 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 157 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 158 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 159 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char160 +ENCODING 160 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char161 +ENCODING 161 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +00 +20 +20 +20 +20 +00 +ENDCHAR +STARTCHAR char162 +ENCODING 162 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +20 +70 +A0 +A0 +70 +20 +ENDCHAR +STARTCHAR char163 +ENCODING 163 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +30 +40 +E0 +40 +B0 +00 +ENDCHAR +STARTCHAR char164 +ENCODING 164 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +88 +70 +50 +70 +88 +00 +ENDCHAR +STARTCHAR char165 +ENCODING 165 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +50 +20 +70 +20 +20 +00 +ENDCHAR +STARTCHAR char166 +ENCODING 166 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +20 +20 +00 +20 +20 +00 +ENDCHAR +STARTCHAR char167 +ENCODING 167 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +30 +40 +60 +50 +30 +10 +60 +ENDCHAR +STARTCHAR char168 +ENCODING 168 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char169 +ENCODING 169 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +88 +A8 +C8 +A8 +88 +70 +ENDCHAR +STARTCHAR char170 +ENCODING 170 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +A0 +60 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char171 +ENCODING 171 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +48 +90 +48 +00 +00 +ENDCHAR +STARTCHAR char172 +ENCODING 172 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +F0 +10 +00 +00 +ENDCHAR +STARTCHAR char173 +ENCODING 173 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +70 +00 +00 +00 +ENDCHAR +STARTCHAR char174 +ENCODING 174 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +88 +E8 +C8 +C8 +88 +70 +ENDCHAR +STARTCHAR char175 +ENCODING 175 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char176 +ENCODING 176 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +50 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char177 +ENCODING 177 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +20 +F8 +20 +20 +F8 +00 +ENDCHAR +STARTCHAR char178 +ENCODING 178 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +20 +40 +60 +00 +00 +00 +ENDCHAR +STARTCHAR char179 +ENCODING 179 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +60 +20 +60 +00 +00 +00 +ENDCHAR +STARTCHAR char180 +ENCODING 180 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +40 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char181 +ENCODING 181 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +90 +90 +90 +E0 +80 +ENDCHAR +STARTCHAR char182 +ENCODING 182 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +D0 +D0 +50 +50 +50 +00 +ENDCHAR +STARTCHAR char183 +ENCODING 183 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +60 +60 +00 +00 +00 +ENDCHAR +STARTCHAR char184 +ENCODING 184 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +00 +00 +00 +20 +40 +ENDCHAR +STARTCHAR char185 +ENCODING 185 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +60 +20 +70 +00 +00 +00 +ENDCHAR +STARTCHAR char186 +ENCODING 186 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +A0 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char187 +ENCODING 187 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +90 +48 +90 +00 +00 +ENDCHAR +STARTCHAR char188 +ENCODING 188 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +80 +80 +80 +90 +30 +70 +10 +ENDCHAR +STARTCHAR char189 +ENCODING 189 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +80 +80 +80 +B0 +10 +20 +30 +ENDCHAR +STARTCHAR char190 +ENCODING 190 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +C0 +C0 +40 +D0 +30 +70 +10 +ENDCHAR +STARTCHAR char191 +ENCODING 191 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +00 +20 +40 +50 +20 +00 +ENDCHAR +STARTCHAR char192 +ENCODING 192 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +F0 +90 +90 +00 +ENDCHAR +STARTCHAR char193 +ENCODING 193 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +F0 +90 +90 +00 +ENDCHAR +STARTCHAR char194 +ENCODING 194 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +F0 +90 +90 +00 +ENDCHAR +STARTCHAR char195 +ENCODING 195 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +F0 +90 +90 +00 +ENDCHAR +STARTCHAR char196 +ENCODING 196 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +60 +90 +F0 +90 +90 +00 +ENDCHAR +STARTCHAR char197 +ENCODING 197 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +60 +90 +F0 +90 +90 +00 +ENDCHAR +STARTCHAR char198 +ENCODING 198 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +A0 +B0 +E0 +A0 +B0 +00 +ENDCHAR +STARTCHAR char199 +ENCODING 199 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +80 +80 +90 +60 +40 +ENDCHAR +STARTCHAR char200 +ENCODING 200 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +80 +E0 +80 +80 +F0 +00 +ENDCHAR +STARTCHAR char201 +ENCODING 201 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +80 +E0 +80 +80 +F0 +00 +ENDCHAR +STARTCHAR char202 +ENCODING 202 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +80 +E0 +80 +80 +F0 +00 +ENDCHAR +STARTCHAR char203 +ENCODING 203 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +F0 +80 +E0 +80 +80 +F0 +00 +ENDCHAR +STARTCHAR char204 +ENCODING 204 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +20 +20 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char205 +ENCODING 205 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +20 +20 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char206 +ENCODING 206 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +20 +20 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char207 +ENCODING 207 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +20 +20 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char208 +ENCODING 208 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +80 +B0 +90 +70 +00 +ENDCHAR +STARTCHAR char209 +ENCODING 209 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +B0 +90 +D0 +B0 +B0 +90 +00 +ENDCHAR +STARTCHAR char210 +ENCODING 210 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char211 +ENCODING 211 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char212 +ENCODING 212 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char213 +ENCODING 213 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char214 +ENCODING 214 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +60 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char215 +ENCODING 215 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +90 +60 +60 +90 +00 +ENDCHAR +STARTCHAR char216 +ENCODING 216 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +B0 +B0 +D0 +D0 +E0 +00 +ENDCHAR +STARTCHAR char217 +ENCODING 217 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +90 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char218 +ENCODING 218 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +90 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char219 +ENCODING 219 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +90 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char220 +ENCODING 220 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +90 +00 +90 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char221 +ENCODING 221 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +70 +20 +20 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char222 +ENCODING 222 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +40 +20 +90 +60 +40 +ENDCHAR +STARTCHAR char223 +ENCODING 223 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +90 +A0 +90 +90 +A0 +00 +ENDCHAR +STARTCHAR char224 +ENCODING 224 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +20 +70 +90 +B0 +50 +00 +ENDCHAR +STARTCHAR char225 +ENCODING 225 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +40 +70 +90 +B0 +50 +00 +ENDCHAR +STARTCHAR char226 +ENCODING 226 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +50 +70 +90 +B0 +50 +00 +ENDCHAR +STARTCHAR char227 +ENCODING 227 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +A0 +70 +90 +B0 +50 +00 +ENDCHAR +STARTCHAR char228 +ENCODING 228 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +00 +70 +90 +B0 +50 +00 +ENDCHAR +STARTCHAR char229 +ENCODING 229 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +60 +70 +90 +B0 +50 +00 +ENDCHAR +STARTCHAR char230 +ENCODING 230 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +70 +B0 +A0 +70 +00 +ENDCHAR +STARTCHAR char231 +ENCODING 231 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +30 +40 +40 +30 +20 +ENDCHAR +STARTCHAR char232 +ENCODING 232 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +20 +60 +B0 +C0 +60 +00 +ENDCHAR +STARTCHAR char233 +ENCODING 233 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +40 +60 +B0 +C0 +60 +00 +ENDCHAR +STARTCHAR char234 +ENCODING 234 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +A0 +60 +B0 +C0 +60 +00 +ENDCHAR +STARTCHAR char235 +ENCODING 235 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +A0 +00 +60 +B0 +C0 +60 +00 +ENDCHAR +STARTCHAR char236 +ENCODING 236 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +20 +60 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char237 +ENCODING 237 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +40 +60 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char238 +ENCODING 238 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +50 +60 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char239 +ENCODING 239 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +00 +60 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char240 +ENCODING 240 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +20 +70 +90 +60 +80 +70 +ENDCHAR +STARTCHAR char241 +ENCODING 241 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +A0 +E0 +90 +90 +90 +00 +ENDCHAR +STARTCHAR char242 +ENCODING 242 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +20 +60 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char243 +ENCODING 243 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +40 +60 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char244 +ENCODING 244 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +00 +60 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char245 +ENCODING 245 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +A0 +60 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char246 +ENCODING 246 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +00 +60 +90 +90 +60 +00 +ENDCHAR +STARTCHAR char247 +ENCODING 247 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +60 +00 +F0 +00 +60 +00 +ENDCHAR +STARTCHAR char248 +ENCODING 248 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +70 +B0 +D0 +E0 +00 +ENDCHAR +STARTCHAR char249 +ENCODING 249 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +40 +20 +90 +90 +90 +70 +00 +ENDCHAR +STARTCHAR char250 +ENCODING 250 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +20 +40 +90 +90 +90 +70 +00 +ENDCHAR +STARTCHAR char251 +ENCODING 251 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +60 +00 +90 +90 +90 +70 +00 +ENDCHAR +STARTCHAR char252 +ENCODING 252 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +00 +90 +90 +90 +70 +00 +ENDCHAR +STARTCHAR char253 +ENCODING 253 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +60 +20 +20 +70 +00 +ENDCHAR +STARTCHAR char254 +ENCODING 254 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +00 +00 +70 +C0 +30 +E0 +40 +ENDCHAR +STARTCHAR char255 +ENCODING 255 +SWIDTH 685 0 +DWIDTH 5 0 +BBX 5 7 0 -1 +BITMAP +50 +00 +90 +90 +50 +20 +40 +ENDCHAR +ENDFONT diff --git a/ui/fonts/fixed5x7.h b/ui/fonts/fixed5x7.h new file mode 100644 index 0000000..7363dc0 --- /dev/null +++ b/ui/fonts/fixed5x7.h @@ -0,0 +1,261 @@ +/* -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO8859-9 */ +#define FONT_WIDTH_Fixed_5x7 5 +#define FONT_HEIGHT_Fixed_5x7 7 +const uint8_t FONT_DATA_Fixed_5x7[256][7] = { +{0x00,0x15,0x00,0x11,0x00,0x15,0x00,}, +{0x00,0x04,0x0e,0x1f,0x0e,0x04,0x00,}, +{0x15,0x0a,0x15,0x0a,0x15,0x0a,0x15,}, +{0x05,0x07,0x05,0x0e,0x04,0x04,0x00,}, +{0x07,0x01,0x1f,0x05,0x0c,0x04,0x00,}, +{0x06,0x01,0x07,0x0a,0x06,0x0a,0x00,}, +{0x01,0x01,0x0f,0x04,0x0c,0x04,0x00,}, +{0x04,0x0a,0x04,0x00,0x00,0x00,0x00,}, +{0x04,0x04,0x1f,0x04,0x04,0x1f,0x00,}, +{0x03,0x05,0x05,0x05,0x04,0x1c,0x00,}, +{0x05,0x05,0x1e,0x0a,0x08,0x08,0x00,}, +{0x04,0x04,0x04,0x07,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x07,0x04,0x04,0x04,}, +{0x00,0x00,0x00,0x1c,0x04,0x04,0x04,}, +{0x04,0x04,0x04,0x1c,0x00,0x00,0x00,}, +{0x04,0x04,0x04,0x1f,0x04,0x04,0x04,}, +{0x1f,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x1f,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x1f,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1f,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x1f,}, +{0x04,0x04,0x04,0x1c,0x04,0x04,0x04,}, +{0x04,0x04,0x04,0x07,0x04,0x04,0x04,}, +{0x04,0x04,0x04,0x1f,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x1f,0x04,0x04,0x04,}, +{0x04,0x04,0x04,0x04,0x04,0x04,0x04,}, +{0x08,0x04,0x02,0x04,0x08,0x0e,0x00,}, +{0x02,0x04,0x08,0x04,0x02,0x0e,0x00,}, +{0x00,0x00,0x0e,0x0a,0x0a,0x0a,0x00,}, +{0x00,0x08,0x0f,0x04,0x0f,0x02,0x00,}, +{0x00,0x0c,0x02,0x07,0x02,0x0d,0x00,}, +{0x00,0x00,0x06,0x06,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x04,0x04,0x04,0x04,0x00,0x04,0x00,}, +{0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,}, +{0x00,0x0a,0x1f,0x0a,0x1f,0x0a,0x00,}, +{0x00,0x0e,0x05,0x0e,0x14,0x0e,0x00,}, +{0x01,0x09,0x04,0x02,0x09,0x08,0x00,}, +{0x00,0x02,0x05,0x02,0x05,0x0a,0x00,}, +{0x04,0x04,0x04,0x00,0x00,0x00,0x00,}, +{0x04,0x02,0x02,0x02,0x02,0x04,0x00,}, +{0x02,0x04,0x04,0x04,0x04,0x02,0x00,}, +{0x00,0x0a,0x04,0x0e,0x04,0x0a,0x00,}, +{0x00,0x04,0x04,0x1f,0x04,0x04,0x00,}, +{0x00,0x00,0x00,0x00,0x0c,0x04,0x02,}, +{0x00,0x00,0x00,0x0f,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x06,0x06,0x00,}, +{0x00,0x08,0x04,0x02,0x01,0x00,0x00,}, +{0x04,0x0a,0x0a,0x0a,0x0a,0x04,0x00,}, +{0x04,0x06,0x04,0x04,0x04,0x0e,0x00,}, +{0x06,0x09,0x08,0x04,0x02,0x0f,0x00,}, +{0x0f,0x08,0x06,0x08,0x09,0x06,0x00,}, +{0x04,0x06,0x05,0x0f,0x04,0x04,0x00,}, +{0x0f,0x01,0x07,0x08,0x09,0x06,0x00,}, +{0x06,0x01,0x07,0x09,0x09,0x06,0x00,}, +{0x0f,0x08,0x04,0x04,0x02,0x02,0x00,}, +{0x06,0x09,0x06,0x09,0x09,0x06,0x00,}, +{0x06,0x09,0x09,0x0e,0x08,0x06,0x00,}, +{0x00,0x06,0x06,0x00,0x06,0x06,0x00,}, +{0x00,0x06,0x06,0x00,0x06,0x02,0x01,}, +{0x00,0x08,0x04,0x02,0x04,0x08,0x00,}, +{0x00,0x00,0x0f,0x00,0x0f,0x00,0x00,}, +{0x00,0x02,0x04,0x08,0x04,0x02,0x00,}, +{0x04,0x0a,0x08,0x04,0x00,0x04,0x00,}, +{0x06,0x09,0x0d,0x0d,0x01,0x06,0x00,}, +{0x06,0x09,0x09,0x0f,0x09,0x09,0x00,}, +{0x07,0x09,0x07,0x09,0x09,0x07,0x00,}, +{0x06,0x09,0x01,0x01,0x09,0x06,0x00,}, +{0x07,0x09,0x09,0x09,0x09,0x07,0x00,}, +{0x0f,0x01,0x07,0x01,0x01,0x0f,0x00,}, +{0x0f,0x01,0x07,0x01,0x01,0x01,0x00,}, +{0x06,0x09,0x01,0x0d,0x09,0x0e,0x00,}, +{0x09,0x09,0x0f,0x09,0x09,0x09,0x00,}, +{0x0e,0x04,0x04,0x04,0x04,0x0e,0x00,}, +{0x08,0x08,0x08,0x08,0x09,0x06,0x00,}, +{0x09,0x05,0x03,0x03,0x05,0x09,0x00,}, +{0x01,0x01,0x01,0x01,0x01,0x0f,0x00,}, +{0x09,0x0f,0x0f,0x09,0x09,0x09,0x00,}, +{0x09,0x0b,0x0b,0x0d,0x0d,0x09,0x00,}, +{0x06,0x09,0x09,0x09,0x09,0x06,0x00,}, +{0x07,0x09,0x09,0x07,0x01,0x01,0x00,}, +{0x06,0x09,0x09,0x09,0x0b,0x06,0x08,}, +{0x07,0x09,0x09,0x07,0x05,0x09,0x00,}, +{0x06,0x09,0x02,0x04,0x09,0x06,0x00,}, +{0x0e,0x04,0x04,0x04,0x04,0x04,0x00,}, +{0x09,0x09,0x09,0x09,0x09,0x06,0x00,}, +{0x09,0x09,0x09,0x09,0x06,0x06,0x00,}, +{0x09,0x09,0x09,0x0f,0x0f,0x09,0x00,}, +{0x09,0x09,0x06,0x06,0x09,0x09,0x00,}, +{0x0a,0x0a,0x0a,0x04,0x04,0x04,0x00,}, +{0x0f,0x08,0x04,0x02,0x01,0x0f,0x00,}, +{0x0e,0x02,0x02,0x02,0x02,0x0e,0x00,}, +{0x00,0x01,0x02,0x04,0x08,0x00,0x00,}, +{0x0e,0x08,0x08,0x08,0x08,0x0e,0x00,}, +{0x04,0x0a,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0f,0x00,}, +{0x02,0x04,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x0e,0x09,0x0d,0x0a,0x00,}, +{0x01,0x01,0x07,0x09,0x09,0x07,0x00,}, +{0x00,0x00,0x06,0x01,0x01,0x06,0x00,}, +{0x08,0x08,0x0e,0x09,0x09,0x0e,0x00,}, +{0x00,0x00,0x06,0x0d,0x03,0x06,0x00,}, +{0x04,0x0a,0x02,0x07,0x02,0x02,0x00,}, +{0x00,0x00,0x0e,0x09,0x06,0x01,0x0e,}, +{0x01,0x01,0x07,0x09,0x09,0x09,0x00,}, +{0x04,0x00,0x06,0x04,0x04,0x0e,0x00,}, +{0x08,0x00,0x08,0x08,0x08,0x0a,0x04,}, +{0x01,0x01,0x05,0x03,0x05,0x09,0x00,}, +{0x06,0x04,0x04,0x04,0x04,0x0e,0x00,}, +{0x00,0x00,0x05,0x0f,0x09,0x09,0x00,}, +{0x00,0x00,0x07,0x09,0x09,0x09,0x00,}, +{0x00,0x00,0x06,0x09,0x09,0x06,0x00,}, +{0x00,0x00,0x07,0x09,0x09,0x07,0x01,}, +{0x00,0x00,0x0e,0x09,0x09,0x0e,0x08,}, +{0x00,0x00,0x07,0x09,0x01,0x01,0x00,}, +{0x00,0x00,0x0e,0x03,0x0c,0x07,0x00,}, +{0x02,0x02,0x07,0x02,0x02,0x0c,0x00,}, +{0x00,0x00,0x09,0x09,0x09,0x0e,0x00,}, +{0x00,0x00,0x0a,0x0a,0x0a,0x04,0x00,}, +{0x00,0x00,0x09,0x09,0x0f,0x0f,0x00,}, +{0x00,0x00,0x09,0x06,0x06,0x09,0x00,}, +{0x00,0x00,0x09,0x09,0x0a,0x04,0x02,}, +{0x00,0x00,0x0f,0x04,0x02,0x0f,0x00,}, +{0x08,0x04,0x06,0x04,0x04,0x08,0x00,}, +{0x04,0x04,0x04,0x04,0x04,0x04,0x00,}, +{0x02,0x04,0x0c,0x04,0x04,0x02,0x00,}, +{0x0a,0x05,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x04,0x00,0x04,0x04,0x04,0x04,0x00,}, +{0x00,0x04,0x0e,0x05,0x05,0x0e,0x04,}, +{0x00,0x0c,0x02,0x07,0x02,0x0d,0x00,}, +{0x00,0x11,0x0e,0x0a,0x0e,0x11,0x00,}, +{0x0a,0x0a,0x04,0x0e,0x04,0x04,0x00,}, +{0x00,0x04,0x04,0x00,0x04,0x04,0x00,}, +{0x0c,0x02,0x06,0x0a,0x0c,0x08,0x06,}, +{0x0a,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x0e,0x11,0x15,0x13,0x15,0x11,0x0e,}, +{0x06,0x05,0x06,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x12,0x09,0x12,0x00,0x00,}, +{0x00,0x00,0x00,0x0f,0x08,0x00,0x00,}, +{0x00,0x00,0x00,0x0e,0x00,0x00,0x00,}, +{0x0e,0x11,0x17,0x13,0x13,0x11,0x0e,}, +{0x0f,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x04,0x0a,0x04,0x00,0x00,0x00,0x00,}, +{0x04,0x04,0x1f,0x04,0x04,0x1f,0x00,}, +{0x06,0x04,0x02,0x06,0x00,0x00,0x00,}, +{0x06,0x06,0x04,0x06,0x00,0x00,0x00,}, +{0x04,0x02,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x09,0x09,0x09,0x07,0x01,}, +{0x0e,0x0b,0x0b,0x0a,0x0a,0x0a,0x00,}, +{0x00,0x00,0x06,0x06,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x04,0x02,}, +{0x04,0x06,0x04,0x0e,0x00,0x00,0x00,}, +{0x02,0x05,0x02,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x09,0x12,0x09,0x00,0x00,}, +{0x01,0x01,0x01,0x09,0x0c,0x0e,0x08,}, +{0x01,0x01,0x01,0x0d,0x08,0x04,0x0c,}, +{0x03,0x03,0x02,0x0b,0x0c,0x0e,0x08,}, +{0x04,0x00,0x04,0x02,0x0a,0x04,0x00,}, +{0x06,0x09,0x09,0x0f,0x09,0x09,0x00,}, +{0x06,0x09,0x09,0x0f,0x09,0x09,0x00,}, +{0x06,0x09,0x09,0x0f,0x09,0x09,0x00,}, +{0x06,0x09,0x09,0x0f,0x09,0x09,0x00,}, +{0x09,0x06,0x09,0x0f,0x09,0x09,0x00,}, +{0x06,0x06,0x09,0x0f,0x09,0x09,0x00,}, +{0x0e,0x05,0x0d,0x07,0x05,0x0d,0x00,}, +{0x06,0x09,0x01,0x01,0x09,0x06,0x02,}, +{0x0f,0x01,0x07,0x01,0x01,0x0f,0x00,}, +{0x0f,0x01,0x07,0x01,0x01,0x0f,0x00,}, +{0x0f,0x01,0x07,0x01,0x01,0x0f,0x00,}, +{0x0f,0x01,0x07,0x01,0x01,0x0f,0x00,}, +{0x0e,0x04,0x04,0x04,0x04,0x0e,0x00,}, +{0x0e,0x04,0x04,0x04,0x04,0x0e,0x00,}, +{0x0e,0x04,0x04,0x04,0x04,0x0e,0x00,}, +{0x0e,0x04,0x04,0x04,0x04,0x0e,0x00,}, +{0x06,0x09,0x01,0x0d,0x09,0x0e,0x00,}, +{0x0d,0x09,0x0b,0x0d,0x0d,0x09,0x00,}, +{0x06,0x09,0x09,0x09,0x09,0x06,0x00,}, +{0x06,0x09,0x09,0x09,0x09,0x06,0x00,}, +{0x06,0x09,0x09,0x09,0x09,0x06,0x00,}, +{0x06,0x09,0x09,0x09,0x09,0x06,0x00,}, +{0x09,0x06,0x09,0x09,0x09,0x06,0x00,}, +{0x00,0x00,0x09,0x06,0x06,0x09,0x00,}, +{0x0e,0x0d,0x0d,0x0b,0x0b,0x07,0x00,}, +{0x09,0x09,0x09,0x09,0x09,0x06,0x00,}, +{0x09,0x09,0x09,0x09,0x09,0x06,0x00,}, +{0x09,0x09,0x09,0x09,0x09,0x06,0x00,}, +{0x09,0x00,0x09,0x09,0x09,0x06,0x00,}, +{0x0e,0x04,0x04,0x04,0x04,0x0e,0x00,}, +{0x06,0x09,0x02,0x04,0x09,0x06,0x02,}, +{0x06,0x09,0x05,0x09,0x09,0x05,0x00,}, +{0x02,0x04,0x0e,0x09,0x0d,0x0a,0x00,}, +{0x04,0x02,0x0e,0x09,0x0d,0x0a,0x00,}, +{0x04,0x0a,0x0e,0x09,0x0d,0x0a,0x00,}, +{0x0a,0x05,0x0e,0x09,0x0d,0x0a,0x00,}, +{0x0a,0x00,0x0e,0x09,0x0d,0x0a,0x00,}, +{0x06,0x06,0x0e,0x09,0x0d,0x0a,0x00,}, +{0x00,0x00,0x0e,0x0d,0x05,0x0e,0x00,}, +{0x00,0x00,0x0c,0x02,0x02,0x0c,0x04,}, +{0x02,0x04,0x06,0x0d,0x03,0x06,0x00,}, +{0x04,0x02,0x06,0x0d,0x03,0x06,0x00,}, +{0x02,0x05,0x06,0x0d,0x03,0x06,0x00,}, +{0x05,0x00,0x06,0x0d,0x03,0x06,0x00,}, +{0x02,0x04,0x06,0x04,0x04,0x0e,0x00,}, +{0x04,0x02,0x06,0x04,0x04,0x0e,0x00,}, +{0x04,0x0a,0x06,0x04,0x04,0x0e,0x00,}, +{0x0a,0x00,0x06,0x04,0x04,0x0e,0x00,}, +{0x0a,0x04,0x0e,0x09,0x06,0x01,0x0e,}, +{0x0a,0x05,0x07,0x09,0x09,0x09,0x00,}, +{0x02,0x04,0x06,0x09,0x09,0x06,0x00,}, +{0x04,0x02,0x06,0x09,0x09,0x06,0x00,}, +{0x06,0x00,0x06,0x09,0x09,0x06,0x00,}, +{0x0a,0x05,0x06,0x09,0x09,0x06,0x00,}, +{0x0a,0x00,0x06,0x09,0x09,0x06,0x00,}, +{0x00,0x06,0x00,0x0f,0x00,0x06,0x00,}, +{0x00,0x00,0x0e,0x0d,0x0b,0x07,0x00,}, +{0x02,0x04,0x09,0x09,0x09,0x0e,0x00,}, +{0x04,0x02,0x09,0x09,0x09,0x0e,0x00,}, +{0x06,0x00,0x09,0x09,0x09,0x0e,0x00,}, +{0x0a,0x00,0x09,0x09,0x09,0x0e,0x00,}, +{0x00,0x00,0x06,0x04,0x04,0x0e,0x00,}, +{0x00,0x00,0x0e,0x03,0x0c,0x07,0x02,}, +{0x0a,0x00,0x09,0x09,0x0a,0x04,0x02,}, +}; diff --git a/ui/fonts/fixed6x13.bdf b/ui/fonts/fixed6x13.bdf new file mode 100644 index 0000000..5c6b762 --- /dev/null +++ b/ui/fonts/fixed6x13.bdf @@ -0,0 +1,5153 @@ +STARTFONT 2.1 +COMMENT Font grabbed from the X server. +FONT -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO8859-15 +SIZE 12 75 75 +FONTBOUNDINGBOX 6 13 0 -2 +STARTPROPERTIES 24 +FONTNAME_REGISTRY "" +FOUNDRY "Misc" +FAMILY_NAME "Fixed" +WEIGHT_NAME "Medium" +SLANT "R" +SETWIDTH_NAME "SemiCondensed" +ADD_STYLE_NAME "" +PIXEL_SIZE 13 +POINT_SIZE 120 +RESOLUTION_X 75 +RESOLUTION_Y 75 +SPACING "C" +AVERAGE_WIDTH 60 +CHARSET_REGISTRY "ISO8859" +CHARSET_ENCODING "15" +COPYRIGHT "Public domain font. Share and enjoy." +CAP_HEIGHT 9 +X_HEIGHT 6 +_GBDFED_INFO "Edited with gbdfed 1.6." +WEIGHT 10 +RESOLUTION 103 +QUAD_WIDTH 6 +FONT_ASCENT 11 +FONT_DESCENT 2 +ENDPROPERTIES +CHARS 256 +STARTCHAR char0 +ENCODING 0 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +A8 +00 +88 +00 +88 +00 +88 +00 +A8 +00 +00 +ENDCHAR +STARTCHAR char1 +ENCODING 1 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +20 +70 +F8 +70 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char2 +ENCODING 2 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +A8 +54 +A8 +54 +A8 +54 +A8 +54 +A8 +54 +A8 +54 +A8 +ENDCHAR +STARTCHAR char3 +ENCODING 3 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +A0 +A0 +E0 +A0 +A0 +38 +10 +10 +10 +00 +00 +ENDCHAR +STARTCHAR char4 +ENCODING 4 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +E0 +80 +C0 +80 +B8 +20 +30 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char5 +ENCODING 5 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +60 +80 +80 +60 +30 +28 +30 +28 +28 +00 +00 +ENDCHAR +STARTCHAR char6 +ENCODING 6 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +80 +80 +80 +E0 +38 +20 +30 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char7 +ENCODING 7 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +48 +30 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char8 +ENCODING 8 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +20 +20 +F8 +20 +20 +00 +F8 +00 +00 +00 +ENDCHAR +STARTCHAR char9 +ENCODING 9 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +90 +D0 +B0 +90 +20 +20 +20 +20 +38 +00 +00 +ENDCHAR +STARTCHAR char10 +ENCODING 10 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +A0 +A0 +A0 +40 +40 +38 +10 +10 +10 +00 +00 +ENDCHAR +STARTCHAR char11 +ENCODING 11 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +E0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char12 +ENCODING 12 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +E0 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char13 +ENCODING 13 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +3C +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char14 +ENCODING 14 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +3C +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char15 +ENCODING 15 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +FC +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char16 +ENCODING 16 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +FC +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char17 +ENCODING 17 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +FC +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char18 +ENCODING 18 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char19 +ENCODING 19 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +FC +00 +00 +00 +ENDCHAR +STARTCHAR char20 +ENCODING 20 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +FC +ENDCHAR +STARTCHAR char21 +ENCODING 21 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +3C +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char22 +ENCODING 22 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +E0 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char23 +ENCODING 23 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char24 +ENCODING 24 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +FC +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char25 +ENCODING 25 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR char26 +ENCODING 26 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +18 +60 +80 +60 +18 +00 +F8 +00 +00 +00 +ENDCHAR +STARTCHAR char27 +ENCODING 27 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +C0 +30 +08 +30 +C0 +00 +F8 +00 +00 +00 +ENDCHAR +STARTCHAR char28 +ENCODING 28 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +F8 +50 +50 +50 +50 +50 +00 +00 +ENDCHAR +STARTCHAR char29 +ENCODING 29 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +08 +F8 +20 +F8 +80 +00 +00 +00 +ENDCHAR +STARTCHAR char30 +ENCODING 30 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +40 +40 +E0 +40 +40 +48 +B0 +00 +00 +ENDCHAR +STARTCHAR char31 +ENCODING 31 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char32 +ENCODING 32 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char33 +ENCODING 33 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +20 +20 +20 +20 +20 +20 +00 +20 +00 +00 +ENDCHAR +STARTCHAR char34 +ENCODING 34 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +50 +50 +50 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char35 +ENCODING 35 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +50 +50 +F8 +50 +F8 +50 +50 +00 +00 +00 +ENDCHAR +STARTCHAR char36 +ENCODING 36 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +78 +A0 +A0 +70 +28 +28 +F0 +20 +00 +00 +ENDCHAR +STARTCHAR char37 +ENCODING 37 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +48 +A8 +50 +10 +20 +40 +50 +A8 +90 +00 +00 +ENDCHAR +STARTCHAR char38 +ENCODING 38 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +40 +A0 +A0 +40 +A0 +98 +90 +68 +00 +00 +ENDCHAR +STARTCHAR char39 +ENCODING 39 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +20 +20 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char40 +ENCODING 40 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +10 +20 +20 +40 +40 +40 +40 +40 +20 +20 +10 +00 +ENDCHAR +STARTCHAR char41 +ENCODING 41 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +40 +20 +20 +10 +10 +10 +10 +10 +20 +20 +40 +00 +ENDCHAR +STARTCHAR char42 +ENCODING 42 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +A8 +70 +A8 +20 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char43 +ENCODING 43 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +20 +20 +F8 +20 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char44 +ENCODING 44 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +30 +20 +40 +00 +ENDCHAR +STARTCHAR char45 +ENCODING 45 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +F8 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char46 +ENCODING 46 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +20 +70 +20 +00 +ENDCHAR +STARTCHAR char47 +ENCODING 47 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +08 +08 +10 +10 +20 +40 +40 +80 +80 +00 +00 +ENDCHAR +STARTCHAR char48 +ENCODING 48 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +50 +88 +88 +88 +88 +88 +50 +20 +00 +00 +ENDCHAR +STARTCHAR char49 +ENCODING 49 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +60 +A0 +20 +20 +20 +20 +20 +F8 +00 +00 +ENDCHAR +STARTCHAR char50 +ENCODING 50 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +88 +08 +10 +20 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char51 +ENCODING 51 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +08 +10 +20 +70 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char52 +ENCODING 52 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +10 +10 +30 +50 +50 +90 +F8 +10 +10 +00 +00 +ENDCHAR +STARTCHAR char53 +ENCODING 53 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +80 +80 +B0 +C8 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char54 +ENCODING 54 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +F0 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char55 +ENCODING 55 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +08 +10 +10 +20 +20 +40 +40 +40 +00 +00 +ENDCHAR +STARTCHAR char56 +ENCODING 56 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +70 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char57 +ENCODING 57 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +78 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char58 +ENCODING 58 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +20 +70 +20 +00 +00 +20 +70 +20 +00 +ENDCHAR +STARTCHAR char59 +ENCODING 59 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +20 +70 +20 +00 +00 +30 +20 +40 +00 +ENDCHAR +STARTCHAR char60 +ENCODING 60 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +08 +10 +20 +40 +80 +40 +20 +10 +08 +00 +00 +ENDCHAR +STARTCHAR char61 +ENCODING 61 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +F8 +00 +00 +F8 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char62 +ENCODING 62 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +80 +40 +20 +10 +08 +10 +20 +40 +80 +00 +00 +ENDCHAR +STARTCHAR char63 +ENCODING 63 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +88 +08 +10 +20 +20 +00 +20 +00 +00 +ENDCHAR +STARTCHAR char64 +ENCODING 64 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +88 +98 +A8 +A8 +B0 +80 +78 +00 +00 +ENDCHAR +STARTCHAR char65 +ENCODING 65 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +50 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char66 +ENCODING 66 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F0 +48 +48 +48 +70 +48 +48 +48 +F0 +00 +00 +ENDCHAR +STARTCHAR char67 +ENCODING 67 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +80 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char68 +ENCODING 68 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F0 +48 +48 +48 +48 +48 +48 +48 +F0 +00 +00 +ENDCHAR +STARTCHAR char69 +ENCODING 69 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +80 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char70 +ENCODING 70 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +80 +80 +80 +F0 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR char71 +ENCODING 71 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +80 +98 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char72 +ENCODING 72 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +F8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char73 +ENCODING 73 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +20 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char74 +ENCODING 74 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +10 +10 +10 +10 +10 +10 +90 +60 +00 +00 +ENDCHAR +STARTCHAR char75 +ENCODING 75 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +88 +90 +A0 +C0 +A0 +90 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char76 +ENCODING 76 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +80 +80 +80 +80 +80 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char77 +ENCODING 77 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +88 +D8 +A8 +A8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char78 +ENCODING 78 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +C8 +C8 +A8 +A8 +98 +98 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char79 +ENCODING 79 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char80 +ENCODING 80 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F0 +88 +88 +88 +F0 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR char81 +ENCODING 81 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +88 +A8 +70 +08 +00 +ENDCHAR +STARTCHAR char82 +ENCODING 82 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F0 +88 +88 +88 +F0 +A0 +90 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char83 +ENCODING 83 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +70 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char84 +ENCODING 84 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +20 +20 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char85 +ENCODING 85 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char86 +ENCODING 86 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +50 +50 +50 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char87 +ENCODING 87 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +A8 +A8 +A8 +A8 +50 +00 +00 +ENDCHAR +STARTCHAR char88 +ENCODING 88 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +88 +50 +50 +20 +50 +50 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char89 +ENCODING 89 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +88 +50 +50 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char90 +ENCODING 90 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +08 +10 +10 +20 +40 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char91 +ENCODING 91 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +70 +40 +40 +40 +40 +40 +40 +40 +40 +40 +70 +00 +ENDCHAR +STARTCHAR char92 +ENCODING 92 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +80 +80 +40 +40 +20 +10 +10 +08 +08 +00 +00 +ENDCHAR +STARTCHAR char93 +ENCODING 93 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +70 +10 +10 +10 +10 +10 +10 +10 +10 +10 +70 +00 +ENDCHAR +STARTCHAR char94 +ENCODING 94 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +50 +88 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char95 +ENCODING 95 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +F8 +00 +ENDCHAR +STARTCHAR char96 +ENCODING 96 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +20 +10 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char97 +ENCODING 97 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +08 +78 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char98 +ENCODING 98 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +80 +80 +80 +F0 +88 +88 +88 +88 +F0 +00 +00 +ENDCHAR +STARTCHAR char99 +ENCODING 99 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +88 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char100 +ENCODING 100 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +08 +08 +08 +78 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR char101 +ENCODING 101 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +88 +F8 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char102 +ENCODING 102 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +40 +40 +F0 +40 +40 +40 +40 +00 +00 +ENDCHAR +STARTCHAR char103 +ENCODING 103 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +88 +88 +88 +78 +08 +88 +70 +ENDCHAR +STARTCHAR char104 +ENCODING 104 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +80 +80 +80 +B0 +C8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char105 +ENCODING 105 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +20 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char106 +ENCODING 106 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +10 +00 +30 +10 +10 +10 +10 +90 +90 +60 +ENDCHAR +STARTCHAR char107 +ENCODING 107 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +80 +80 +80 +90 +A0 +C0 +A0 +90 +88 +00 +00 +ENDCHAR +STARTCHAR char108 +ENCODING 108 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +60 +20 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char109 +ENCODING 109 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +D0 +A8 +A8 +A8 +A8 +88 +00 +00 +ENDCHAR +STARTCHAR char110 +ENCODING 110 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +B0 +C8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char111 +ENCODING 111 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char112 +ENCODING 112 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +F0 +88 +88 +88 +F0 +80 +80 +80 +ENDCHAR +STARTCHAR char113 +ENCODING 113 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +88 +88 +88 +78 +08 +08 +08 +ENDCHAR +STARTCHAR char114 +ENCODING 114 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +B0 +C8 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR char115 +ENCODING 115 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +88 +60 +10 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char116 +ENCODING 116 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +40 +40 +F0 +40 +40 +40 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char117 +ENCODING 117 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +88 +88 +88 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char118 +ENCODING 118 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +88 +88 +88 +50 +50 +20 +00 +00 +ENDCHAR +STARTCHAR char119 +ENCODING 119 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +88 +88 +A8 +A8 +A8 +50 +00 +00 +ENDCHAR +STARTCHAR char120 +ENCODING 120 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +88 +50 +20 +20 +50 +88 +00 +00 +ENDCHAR +STARTCHAR char121 +ENCODING 121 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +88 +88 +88 +98 +68 +08 +88 +70 +ENDCHAR +STARTCHAR char122 +ENCODING 122 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +F8 +10 +20 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char123 +ENCODING 123 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +18 +20 +20 +20 +20 +C0 +20 +20 +20 +20 +18 +00 +ENDCHAR +STARTCHAR char124 +ENCODING 124 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +20 +20 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char125 +ENCODING 125 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +C0 +20 +20 +20 +20 +18 +20 +20 +20 +20 +C0 +00 +ENDCHAR +STARTCHAR char126 +ENCODING 126 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +48 +A8 +90 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 127 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 128 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 129 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 130 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 131 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 132 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 133 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 134 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 135 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 136 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 137 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 138 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 139 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 140 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 141 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 142 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 143 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 144 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 145 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 146 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 147 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 148 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 149 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 150 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 151 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 152 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 153 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 154 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 155 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 156 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 157 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 158 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 159 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char160 +ENCODING 160 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char161 +ENCODING 161 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +00 +20 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char162 +ENCODING 162 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +70 +A8 +A0 +A0 +A8 +70 +20 +00 +00 +00 +ENDCHAR +STARTCHAR char163 +ENCODING 163 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +40 +40 +E0 +40 +40 +48 +B0 +00 +00 +ENDCHAR +STARTCHAR char164 +ENCODING 164 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +40 +40 +F0 +40 +F0 +40 +40 +38 +00 +00 +ENDCHAR +STARTCHAR char165 +ENCODING 165 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +88 +88 +50 +50 +F8 +20 +F8 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char166 +ENCODING 166 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +48 +30 +00 +70 +88 +80 +70 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char167 +ENCODING 167 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +48 +40 +30 +48 +48 +30 +08 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char168 +ENCODING 168 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +90 +60 +00 +70 +88 +60 +10 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char169 +ENCODING 169 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +70 +88 +A8 +D8 +C8 +D8 +A8 +88 +70 +00 +00 +00 +ENDCHAR +STARTCHAR char170 +ENCODING 170 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +08 +78 +88 +78 +00 +F8 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char171 +ENCODING 171 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +28 +50 +A0 +A0 +50 +28 +00 +00 +00 +ENDCHAR +STARTCHAR char172 +ENCODING 172 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +F8 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char173 +ENCODING 173 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +70 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char174 +ENCODING 174 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +70 +88 +E8 +D8 +D8 +E8 +D8 +88 +70 +00 +00 +00 +ENDCHAR +STARTCHAR char175 +ENCODING 175 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char176 +ENCODING 176 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +48 +30 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char177 +ENCODING 177 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +20 +20 +F8 +20 +20 +00 +F8 +00 +00 +00 +ENDCHAR +STARTCHAR char178 +ENCODING 178 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +40 +A0 +20 +40 +E0 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char179 +ENCODING 179 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +40 +A0 +40 +20 +C0 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char180 +ENCODING 180 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +48 +30 +00 +F8 +08 +10 +20 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char181 +ENCODING 181 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +88 +88 +88 +88 +98 +E8 +80 +80 +ENDCHAR +STARTCHAR char182 +ENCODING 182 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +E8 +E8 +E8 +E8 +68 +28 +28 +28 +00 +00 +ENDCHAR +STARTCHAR char183 +ENCODING 183 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char184 +ENCODING 184 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +48 +30 +00 +F8 +10 +20 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char185 +ENCODING 185 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +40 +C0 +40 +40 +E0 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char186 +ENCODING 186 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +70 +00 +F8 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char187 +ENCODING 187 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +A0 +50 +28 +28 +50 +A0 +00 +00 +00 +ENDCHAR +STARTCHAR char188 +ENCODING 188 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +A0 +A0 +A0 +B0 +A0 +A0 +A0 +78 +00 +00 +ENDCHAR +STARTCHAR char189 +ENCODING 189 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +50 +A8 +B8 +A0 +A8 +50 +00 +00 +ENDCHAR +STARTCHAR char190 +ENCODING 190 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +50 +50 +00 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char191 +ENCODING 191 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +20 +00 +20 +20 +40 +80 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char192 +ENCODING 192 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +40 +20 +00 +20 +50 +88 +88 +F8 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char193 +ENCODING 193 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +10 +20 +00 +20 +50 +88 +88 +F8 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char194 +ENCODING 194 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +48 +00 +20 +50 +88 +88 +F8 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char195 +ENCODING 195 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +28 +50 +00 +20 +50 +88 +88 +F8 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char196 +ENCODING 196 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +50 +50 +00 +20 +50 +88 +88 +F8 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char197 +ENCODING 197 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +20 +50 +20 +20 +50 +88 +88 +F8 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char198 +ENCODING 198 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +58 +A0 +A0 +A0 +B0 +E0 +A0 +A0 +B8 +00 +00 +ENDCHAR +STARTCHAR char199 +ENCODING 199 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +80 +80 +80 +88 +70 +20 +40 +ENDCHAR +STARTCHAR char200 +ENCODING 200 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +40 +20 +00 +F8 +80 +80 +F0 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char201 +ENCODING 201 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +10 +20 +00 +F8 +80 +80 +F0 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char202 +ENCODING 202 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +48 +00 +F8 +80 +80 +F0 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char203 +ENCODING 203 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +50 +50 +00 +F8 +80 +80 +F0 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR char204 +ENCODING 204 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +40 +20 +00 +70 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char205 +ENCODING 205 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +10 +20 +00 +70 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char206 +ENCODING 206 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +48 +00 +70 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char207 +ENCODING 207 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +50 +50 +00 +70 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char208 +ENCODING 208 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F0 +48 +48 +48 +E8 +48 +48 +48 +F0 +00 +00 +ENDCHAR +STARTCHAR char209 +ENCODING 209 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +28 +50 +00 +88 +88 +C8 +A8 +98 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char210 +ENCODING 210 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +40 +20 +00 +70 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char211 +ENCODING 211 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +10 +20 +00 +70 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char212 +ENCODING 212 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +48 +00 +70 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char213 +ENCODING 213 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +28 +50 +00 +70 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char214 +ENCODING 214 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +50 +50 +00 +70 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char215 +ENCODING 215 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +88 +50 +20 +50 +88 +00 +00 +00 +ENDCHAR +STARTCHAR char216 +ENCODING 216 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +08 +70 +98 +98 +A8 +A8 +A8 +C8 +C8 +70 +80 +00 +ENDCHAR +STARTCHAR char217 +ENCODING 217 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +40 +20 +00 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char218 +ENCODING 218 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +10 +20 +00 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char219 +ENCODING 219 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +48 +00 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char220 +ENCODING 220 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +50 +50 +00 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char221 +ENCODING 221 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +10 +20 +00 +88 +88 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char222 +ENCODING 222 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +80 +F0 +88 +88 +88 +F0 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR char223 +ENCODING 223 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +60 +90 +90 +A0 +A0 +90 +88 +88 +B0 +00 +00 +ENDCHAR +STARTCHAR char224 +ENCODING 224 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +40 +20 +00 +70 +08 +78 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char225 +ENCODING 225 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +10 +20 +00 +70 +08 +78 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char226 +ENCODING 226 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +00 +70 +08 +78 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char227 +ENCODING 227 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +28 +50 +00 +70 +08 +78 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char228 +ENCODING 228 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +50 +50 +00 +70 +08 +78 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char229 +ENCODING 229 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +48 +30 +00 +70 +08 +78 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char230 +ENCODING 230 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +28 +70 +A0 +A8 +50 +00 +00 +ENDCHAR +STARTCHAR char231 +ENCODING 231 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +88 +80 +80 +88 +70 +20 +40 +ENDCHAR +STARTCHAR char232 +ENCODING 232 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +40 +20 +00 +70 +88 +F8 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char233 +ENCODING 233 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +10 +20 +00 +70 +88 +F8 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char234 +ENCODING 234 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +00 +70 +88 +F8 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char235 +ENCODING 235 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +50 +50 +00 +70 +88 +F8 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char236 +ENCODING 236 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +40 +20 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char237 +ENCODING 237 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +10 +20 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char238 +ENCODING 238 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char239 +ENCODING 239 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +50 +50 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char240 +ENCODING 240 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +50 +20 +60 +10 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char241 +ENCODING 241 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +28 +50 +00 +B0 +C8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char242 +ENCODING 242 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +40 +20 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char243 +ENCODING 243 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +10 +20 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char244 +ENCODING 244 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char245 +ENCODING 245 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +28 +50 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char246 +ENCODING 246 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +50 +50 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char247 +ENCODING 247 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +20 +20 +00 +F8 +00 +20 +20 +00 +00 +00 +ENDCHAR +STARTCHAR char248 +ENCODING 248 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +08 +70 +98 +A8 +A8 +C8 +70 +80 +00 +ENDCHAR +STARTCHAR char249 +ENCODING 249 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +40 +20 +00 +88 +88 +88 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char250 +ENCODING 250 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +10 +20 +00 +88 +88 +88 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char251 +ENCODING 251 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +48 +00 +88 +88 +88 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char252 +ENCODING 252 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +50 +50 +00 +88 +88 +88 +88 +98 +68 +00 +00 +ENDCHAR +STARTCHAR char253 +ENCODING 253 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +10 +20 +00 +88 +88 +88 +98 +68 +08 +88 +70 +ENDCHAR +STARTCHAR char254 +ENCODING 254 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +80 +80 +B0 +C8 +88 +88 +C8 +B0 +80 +80 +ENDCHAR +STARTCHAR char255 +ENCODING 255 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +50 +50 +00 +88 +88 +88 +98 +68 +08 +88 +70 +ENDCHAR +ENDFONT diff --git a/ui/fonts/fixed6x13.h b/ui/fonts/fixed6x13.h new file mode 100644 index 0000000..a6333df --- /dev/null +++ b/ui/fonts/fixed6x13.h @@ -0,0 +1,261 @@ +/* -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO8859-15 */ +#define FONT_WIDTH_FixedMedium_6x13 6 +#define FONT_HEIGHT_FixedMedium_6x13 13 +const uint8_t FONT_DATA_FixedMedium_6x13[256][13] = { +{0x00,0x00,0x15,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x15,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x04,0x0e,0x1f,0x0e,0x04,0x00,0x00,0x00,0x00,}, +{0x15,0x2a,0x15,0x2a,0x15,0x2a,0x15,0x2a,0x15,0x2a,0x15,0x2a,0x15,}, +{0x00,0x00,0x05,0x05,0x07,0x05,0x05,0x1c,0x08,0x08,0x08,0x00,0x00,}, +{0x00,0x00,0x07,0x01,0x03,0x01,0x1d,0x04,0x0c,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x06,0x01,0x01,0x06,0x0c,0x14,0x0c,0x14,0x14,0x00,0x00,}, +{0x00,0x00,0x01,0x01,0x01,0x07,0x1c,0x04,0x0c,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x04,0x04,0x1f,0x04,0x04,0x00,0x1f,0x00,0x00,0x00,}, +{0x00,0x00,0x09,0x0b,0x0d,0x09,0x04,0x04,0x04,0x04,0x1c,0x00,0x00,}, +{0x00,0x00,0x05,0x05,0x05,0x02,0x02,0x1c,0x08,0x08,0x08,0x00,0x00,}, +{0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x04,0x04,0x04,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x04,0x04,0x04,0x04,0x04,0x04,}, +{0x04,0x04,0x04,0x04,0x04,0x04,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x04,0x04,0x04,0x04,0x04,0x04,0x3f,0x04,0x04,0x04,0x04,0x04,0x04,}, +{0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,}, +{0x04,0x04,0x04,0x04,0x04,0x04,0x3c,0x04,0x04,0x04,0x04,0x04,0x04,}, +{0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0x04,0x04,}, +{0x04,0x04,0x04,0x04,0x04,0x04,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x04,0x04,0x04,0x04,0x04,0x04,}, +{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,}, +{0x00,0x00,0x00,0x18,0x06,0x01,0x06,0x18,0x00,0x1f,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x03,0x0c,0x10,0x0c,0x03,0x00,0x1f,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1f,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x10,0x1f,0x04,0x1f,0x01,0x00,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x02,0x02,0x07,0x02,0x02,0x12,0x0d,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x04,0x00,0x00,}, +{0x00,0x00,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x0a,0x0a,0x1f,0x0a,0x1f,0x0a,0x0a,0x00,0x00,0x00,}, +{0x00,0x00,0x04,0x1e,0x05,0x05,0x0e,0x14,0x14,0x0f,0x04,0x00,0x00,}, +{0x00,0x00,0x12,0x15,0x0a,0x08,0x04,0x02,0x0a,0x15,0x09,0x00,0x00,}, +{0x00,0x00,0x00,0x02,0x05,0x05,0x02,0x05,0x19,0x09,0x16,0x00,0x00,}, +{0x00,0x00,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x08,0x04,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0x04,0x08,0x00,}, +{0x00,0x02,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x02,0x00,}, +{0x00,0x00,0x04,0x15,0x0e,0x15,0x04,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x04,0x04,0x1f,0x04,0x04,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x04,0x02,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0e,0x04,0x00,}, +{0x00,0x00,0x10,0x10,0x08,0x08,0x04,0x02,0x02,0x01,0x01,0x00,0x00,}, +{0x00,0x00,0x04,0x0a,0x11,0x11,0x11,0x11,0x11,0x0a,0x04,0x00,0x00,}, +{0x00,0x00,0x04,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x1f,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x11,0x10,0x08,0x04,0x02,0x01,0x1f,0x00,0x00,}, +{0x00,0x00,0x1f,0x10,0x08,0x04,0x0e,0x10,0x10,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x08,0x08,0x0c,0x0a,0x0a,0x09,0x1f,0x08,0x08,0x00,0x00,}, +{0x00,0x00,0x1f,0x01,0x01,0x0d,0x13,0x10,0x10,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x01,0x01,0x0f,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x1f,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x02,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x11,0x11,0x0e,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x11,0x11,0x1e,0x10,0x10,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x04,0x0e,0x04,0x00,0x00,0x04,0x0e,0x04,0x00,}, +{0x00,0x00,0x00,0x00,0x04,0x0e,0x04,0x00,0x00,0x0c,0x04,0x02,0x00,}, +{0x00,0x00,0x10,0x08,0x04,0x02,0x01,0x02,0x04,0x08,0x10,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1f,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x08,0x04,0x02,0x01,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x11,0x10,0x08,0x04,0x04,0x00,0x04,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x11,0x19,0x15,0x15,0x0d,0x01,0x1e,0x00,0x00,}, +{0x00,0x00,0x04,0x0a,0x11,0x11,0x11,0x1f,0x11,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x0f,0x12,0x12,0x12,0x0e,0x12,0x12,0x12,0x0f,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x01,0x01,0x01,0x01,0x01,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x00,0x00,}, +{0x00,0x00,0x1f,0x01,0x01,0x01,0x0f,0x01,0x01,0x01,0x1f,0x00,0x00,}, +{0x00,0x00,0x1f,0x01,0x01,0x01,0x0f,0x01,0x01,0x01,0x01,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x01,0x01,0x01,0x19,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x11,0x11,0x11,0x11,0x1f,0x11,0x11,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x0e,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x00,0x1c,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x06,0x00,0x00,}, +{0x00,0x00,0x11,0x11,0x09,0x05,0x03,0x05,0x09,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1f,0x00,0x00,}, +{0x00,0x00,0x11,0x11,0x1b,0x15,0x15,0x11,0x11,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x11,0x13,0x13,0x15,0x15,0x19,0x19,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x0f,0x11,0x11,0x11,0x0f,0x01,0x01,0x01,0x01,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x15,0x0e,0x10,0x00,}, +{0x00,0x00,0x0f,0x11,0x11,0x11,0x0f,0x05,0x09,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x01,0x01,0x0e,0x10,0x10,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x1f,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x11,0x11,0x11,0x11,0x0a,0x0a,0x0a,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x11,0x11,0x11,0x11,0x15,0x15,0x15,0x15,0x0a,0x00,0x00,}, +{0x00,0x00,0x11,0x11,0x0a,0x0a,0x04,0x0a,0x0a,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x11,0x11,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x1f,0x10,0x08,0x08,0x04,0x02,0x02,0x01,0x1f,0x00,0x00,}, +{0x00,0x0e,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x0e,0x00,}, +{0x00,0x00,0x01,0x01,0x02,0x02,0x04,0x08,0x08,0x10,0x10,0x00,0x00,}, +{0x00,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0e,0x00,}, +{0x00,0x00,0x04,0x0a,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,}, +{0x00,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0e,0x10,0x1e,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x01,0x01,0x01,0x0f,0x11,0x11,0x11,0x11,0x0f,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0e,0x11,0x01,0x01,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x10,0x10,0x10,0x1e,0x11,0x11,0x11,0x11,0x1e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0e,0x11,0x1f,0x01,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x02,0x02,0x0f,0x02,0x02,0x02,0x02,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0e,0x11,0x11,0x11,0x1e,0x10,0x11,0x0e,}, +{0x00,0x00,0x01,0x01,0x01,0x0d,0x13,0x11,0x11,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x00,0x04,0x00,0x06,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x08,0x00,0x0c,0x08,0x08,0x08,0x08,0x09,0x09,0x06,}, +{0x00,0x00,0x01,0x01,0x01,0x09,0x05,0x03,0x05,0x09,0x11,0x00,0x00,}, +{0x00,0x00,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0b,0x15,0x15,0x15,0x15,0x11,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0d,0x13,0x11,0x11,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0e,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0f,0x11,0x11,0x11,0x0f,0x01,0x01,0x01,}, +{0x00,0x00,0x00,0x00,0x00,0x1e,0x11,0x11,0x11,0x1e,0x10,0x10,0x10,}, +{0x00,0x00,0x00,0x00,0x00,0x0d,0x13,0x01,0x01,0x01,0x01,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0e,0x11,0x06,0x08,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x02,0x02,0x0f,0x02,0x02,0x02,0x12,0x0c,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x0a,0x0a,0x04,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x15,0x15,0x15,0x0a,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x11,0x0a,0x04,0x04,0x0a,0x11,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x19,0x16,0x10,0x11,0x0e,}, +{0x00,0x00,0x00,0x00,0x00,0x1f,0x08,0x04,0x02,0x01,0x1f,0x00,0x00,}, +{0x00,0x18,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x18,0x00,}, +{0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{0x00,0x03,0x04,0x04,0x04,0x04,0x18,0x04,0x04,0x04,0x04,0x03,0x00,}, +{0x00,0x00,0x12,0x15,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x04,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x04,0x0e,0x15,0x05,0x05,0x15,0x0e,0x04,0x00,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x02,0x02,0x07,0x02,0x02,0x12,0x0d,0x00,0x00,}, +{0x00,0x00,0x1c,0x02,0x02,0x0f,0x02,0x0f,0x02,0x02,0x1c,0x00,0x00,}, +{0x00,0x00,0x11,0x11,0x0a,0x0a,0x1f,0x04,0x1f,0x04,0x04,0x00,0x00,}, +{0x00,0x12,0x0c,0x00,0x0e,0x11,0x01,0x0e,0x10,0x11,0x0e,0x00,0x00,}, +{0x00,0x0c,0x12,0x02,0x0c,0x12,0x12,0x0c,0x10,0x12,0x0c,0x00,0x00,}, +{0x00,0x00,0x09,0x06,0x00,0x0e,0x11,0x06,0x08,0x11,0x0e,0x00,0x00,}, +{0x00,0x0e,0x11,0x15,0x1b,0x13,0x1b,0x15,0x11,0x0e,0x00,0x00,0x00,}, +{0x00,0x00,0x0e,0x10,0x1e,0x11,0x1e,0x00,0x1f,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x14,0x0a,0x05,0x05,0x0a,0x14,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x10,0x10,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x0e,0x11,0x17,0x1b,0x1b,0x17,0x1b,0x11,0x0e,0x00,0x00,0x00,}, +{0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x04,0x04,0x1f,0x04,0x04,0x00,0x1f,0x00,0x00,0x00,}, +{0x00,0x02,0x05,0x04,0x02,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x02,0x05,0x02,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x12,0x0c,0x00,0x1f,0x10,0x08,0x04,0x02,0x01,0x1f,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x19,0x17,0x01,0x01,}, +{0x00,0x00,0x1e,0x17,0x17,0x17,0x17,0x16,0x14,0x14,0x14,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x12,0x0c,0x00,0x1f,0x08,0x04,0x02,0x01,0x1f,0x00,0x00,}, +{0x00,0x02,0x03,0x02,0x02,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x11,0x11,0x0e,0x00,0x1f,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x05,0x0a,0x14,0x14,0x0a,0x05,0x00,0x00,0x00,}, +{0x00,0x00,0x1e,0x05,0x05,0x05,0x0d,0x05,0x05,0x05,0x1e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0a,0x15,0x1d,0x05,0x15,0x0a,0x00,0x00,}, +{0x00,0x0a,0x0a,0x00,0x11,0x0a,0x0a,0x04,0x04,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x04,0x00,0x04,0x04,0x02,0x01,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x02,0x04,0x00,0x04,0x0a,0x11,0x11,0x1f,0x11,0x11,0x00,0x00,}, +{0x00,0x08,0x04,0x00,0x04,0x0a,0x11,0x11,0x1f,0x11,0x11,0x00,0x00,}, +{0x00,0x0c,0x12,0x00,0x04,0x0a,0x11,0x11,0x1f,0x11,0x11,0x00,0x00,}, +{0x00,0x14,0x0a,0x00,0x04,0x0a,0x11,0x11,0x1f,0x11,0x11,0x00,0x00,}, +{0x00,0x0a,0x0a,0x00,0x04,0x0a,0x11,0x11,0x1f,0x11,0x11,0x00,0x00,}, +{0x00,0x04,0x0a,0x04,0x04,0x0a,0x11,0x11,0x1f,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x1a,0x05,0x05,0x05,0x0d,0x07,0x05,0x05,0x1d,0x00,0x00,}, +{0x00,0x00,0x0e,0x11,0x01,0x01,0x01,0x01,0x01,0x11,0x0e,0x04,0x02,}, +{0x00,0x02,0x04,0x00,0x1f,0x01,0x01,0x0f,0x01,0x01,0x1f,0x00,0x00,}, +{0x00,0x08,0x04,0x00,0x1f,0x01,0x01,0x0f,0x01,0x01,0x1f,0x00,0x00,}, +{0x00,0x0c,0x12,0x00,0x1f,0x01,0x01,0x0f,0x01,0x01,0x1f,0x00,0x00,}, +{0x00,0x0a,0x0a,0x00,0x1f,0x01,0x01,0x0f,0x01,0x01,0x1f,0x00,0x00,}, +{0x00,0x02,0x04,0x00,0x0e,0x04,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x08,0x04,0x00,0x0e,0x04,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x0c,0x12,0x00,0x0e,0x04,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x0a,0x0a,0x00,0x0e,0x04,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x00,0x0f,0x12,0x12,0x12,0x17,0x12,0x12,0x12,0x0f,0x00,0x00,}, +{0x00,0x14,0x0a,0x00,0x11,0x11,0x13,0x15,0x19,0x11,0x11,0x00,0x00,}, +{0x00,0x02,0x04,0x00,0x0e,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x08,0x04,0x00,0x0e,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x0c,0x12,0x00,0x0e,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x14,0x0a,0x00,0x0e,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x0a,0x0a,0x00,0x0e,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x11,0x0a,0x04,0x0a,0x11,0x00,0x00,0x00,}, +{0x00,0x10,0x0e,0x19,0x19,0x15,0x15,0x15,0x13,0x13,0x0e,0x01,0x00,}, +{0x00,0x02,0x04,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x08,0x04,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x0c,0x12,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x0a,0x0a,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x08,0x04,0x00,0x11,0x11,0x0a,0x04,0x04,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x01,0x0f,0x11,0x11,0x11,0x0f,0x01,0x01,0x01,0x00,0x00,}, +{0x00,0x00,0x06,0x09,0x09,0x05,0x05,0x09,0x11,0x11,0x0d,0x00,0x00,}, +{0x00,0x00,0x02,0x04,0x00,0x0e,0x10,0x1e,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x08,0x04,0x00,0x0e,0x10,0x1e,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x00,0x0e,0x10,0x1e,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x14,0x0a,0x00,0x0e,0x10,0x1e,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x0a,0x0a,0x00,0x0e,0x10,0x1e,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x0c,0x12,0x0c,0x00,0x0e,0x10,0x1e,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0e,0x14,0x0e,0x05,0x15,0x0a,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0e,0x11,0x01,0x01,0x11,0x0e,0x04,0x02,}, +{0x00,0x00,0x02,0x04,0x00,0x0e,0x11,0x1f,0x01,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x08,0x04,0x00,0x0e,0x11,0x1f,0x01,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x00,0x0e,0x11,0x1f,0x01,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x0a,0x0a,0x00,0x0e,0x11,0x1f,0x01,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x02,0x04,0x00,0x06,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x00,0x08,0x04,0x00,0x06,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x00,0x06,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x00,0x0a,0x0a,0x00,0x06,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x0a,0x04,0x06,0x08,0x0e,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x14,0x0a,0x00,0x0d,0x13,0x11,0x11,0x11,0x11,0x00,0x00,}, +{0x00,0x00,0x02,0x04,0x00,0x0e,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x08,0x04,0x00,0x0e,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x00,0x0e,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x14,0x0a,0x00,0x0e,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x0a,0x0a,0x00,0x0e,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x04,0x04,0x00,0x1f,0x00,0x04,0x04,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x10,0x0e,0x19,0x15,0x15,0x13,0x0e,0x01,0x00,}, +{0x00,0x00,0x02,0x04,0x00,0x11,0x11,0x11,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x08,0x04,0x00,0x11,0x11,0x11,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x00,0x11,0x11,0x11,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x0a,0x0a,0x00,0x11,0x11,0x11,0x11,0x19,0x16,0x00,0x00,}, +{0x00,0x00,0x08,0x04,0x00,0x11,0x11,0x11,0x19,0x16,0x10,0x11,0x0e,}, +{0x00,0x00,0x00,0x01,0x01,0x0d,0x13,0x11,0x11,0x13,0x0d,0x01,0x01,}, +{0x00,0x00,0x0a,0x0a,0x00,0x11,0x11,0x11,0x19,0x16,0x10,0x11,0x0e,}, +}; diff --git a/ui/fonts/fixed6x13b.bdf b/ui/fonts/fixed6x13b.bdf new file mode 100644 index 0000000..0480407 --- /dev/null +++ b/ui/fonts/fixed6x13b.bdf @@ -0,0 +1,5153 @@ +STARTFONT 2.1 +COMMENT Font grabbed from the X server. +FONT -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO8859-15 +SIZE 12 75 75 +FONTBOUNDINGBOX 6 13 0 -2 +STARTPROPERTIES 24 +FONTNAME_REGISTRY "" +FOUNDRY "Misc" +FAMILY_NAME "Fixed" +WEIGHT_NAME "Bold" +SLANT "R" +SETWIDTH_NAME "SemiCondensed" +ADD_STYLE_NAME "" +PIXEL_SIZE 13 +POINT_SIZE 120 +RESOLUTION_X 75 +RESOLUTION_Y 75 +SPACING "C" +AVERAGE_WIDTH 60 +CHARSET_REGISTRY "ISO8859" +CHARSET_ENCODING "15" +COPYRIGHT "Public domain font. Share and enjoy." +CAP_HEIGHT 9 +X_HEIGHT 6 +WEIGHT 10 +RESOLUTION 107 +QUAD_WIDTH 6 +FONT_ASCENT 11 +FONT_DESCENT 2 +_GBDFED_INFO "Edited with gbdfed 1.6." +ENDPROPERTIES +CHARS 256 +STARTCHAR char0 +ENCODING 0 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +A8 +A8 +00 +88 +88 +00 +88 +88 +00 +A8 +A8 +00 +ENDCHAR +STARTCHAR char1 +ENCODING 1 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +30 +78 +FC +78 +30 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char2 +ENCODING 2 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +A8 +54 +A8 +54 +A8 +54 +A8 +54 +A8 +54 +A8 +54 +A8 +ENDCHAR +STARTCHAR char3 +ENCODING 3 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +D8 +D8 +F8 +D8 +D8 +3C +18 +18 +18 +18 +00 +00 +ENDCHAR +STARTCHAR char4 +ENCODING 4 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +F0 +C0 +E0 +C0 +C0 +3C +30 +38 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char5 +ENCODING 5 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +78 +C8 +C0 +C8 +78 +78 +6C +78 +68 +6C +00 +00 +ENDCHAR +STARTCHAR char6 +ENCODING 6 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +C0 +C0 +C0 +C0 +F0 +3C +30 +38 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char7 +ENCODING 7 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +CC +78 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char8 +ENCODING 8 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +30 +FC +FC +30 +30 +00 +FC +FC +00 +00 +ENDCHAR +STARTCHAR char9 +ENCODING 9 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +D8 +F8 +F8 +D8 +D8 +30 +30 +30 +30 +3C +ENDCHAR +STARTCHAR char10 +ENCODING 10 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +D8 +D8 +D8 +70 +20 +3C +18 +18 +18 +18 +00 +00 +ENDCHAR +STARTCHAR char11 +ENCODING 11 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +F0 +F0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char12 +ENCODING 12 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char13 +ENCODING 13 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +3C +3C +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char14 +ENCODING 14 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +3C +3C +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char15 +ENCODING 15 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +FC +FC +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char16 +ENCODING 16 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +FC +FC +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char17 +ENCODING 17 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +FC +FC +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char18 +ENCODING 18 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +FC +FC +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char19 +ENCODING 19 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +FC +FC +00 +00 +00 +ENDCHAR +STARTCHAR char20 +ENCODING 20 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +FC +FC +ENDCHAR +STARTCHAR char21 +ENCODING 21 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +3C +3C +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char22 +ENCODING 22 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +F0 +F0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char23 +ENCODING 23 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +FC +FC +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char24 +ENCODING 24 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +FC +FC +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char25 +ENCODING 25 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR char26 +ENCODING 26 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +1C +70 +C0 +70 +1C +00 +FC +00 +00 +00 +ENDCHAR +STARTCHAR char27 +ENCODING 27 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +E0 +38 +0C +38 +E0 +00 +FC +00 +00 +00 +ENDCHAR +STARTCHAR char28 +ENCODING 28 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +CC +CC +CC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char29 +ENCODING 29 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +0C +FC +30 +FC +C0 +00 +00 +00 +ENDCHAR +STARTCHAR char30 +ENCODING 30 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +6C +60 +60 +F8 +60 +60 +64 +F8 +00 +00 +ENDCHAR +STARTCHAR char31 +ENCODING 31 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char32 +ENCODING 32 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char33 +ENCODING 33 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +30 +30 +30 +30 +30 +30 +00 +30 +00 +00 +ENDCHAR +STARTCHAR char34 +ENCODING 34 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +D8 +D8 +D8 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char35 +ENCODING 35 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +78 +78 +FC +78 +FC +78 +78 +00 +00 +00 +ENDCHAR +STARTCHAR char36 +ENCODING 36 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +30 +78 +F0 +78 +3C +78 +30 +00 +00 +00 +ENDCHAR +STARTCHAR char37 +ENCODING 37 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +6C +FC +78 +18 +30 +60 +78 +FC +D8 +00 +00 +ENDCHAR +STARTCHAR char38 +ENCODING 38 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +60 +F0 +F0 +60 +FC +D8 +7C +00 +00 +ENDCHAR +STARTCHAR char39 +ENCODING 39 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +30 +30 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char40 +ENCODING 40 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +18 +30 +30 +60 +60 +60 +60 +60 +30 +30 +18 +00 +ENDCHAR +STARTCHAR char41 +ENCODING 41 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +60 +30 +30 +18 +18 +18 +18 +18 +30 +30 +60 +00 +ENDCHAR +STARTCHAR char42 +ENCODING 42 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +CC +78 +FC +78 +CC +00 +00 +00 +00 +ENDCHAR +STARTCHAR char43 +ENCODING 43 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +30 +30 +FC +30 +30 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char44 +ENCODING 44 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +38 +30 +60 +00 +ENDCHAR +STARTCHAR char45 +ENCODING 45 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char46 +ENCODING 46 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +30 +78 +30 +00 +ENDCHAR +STARTCHAR char47 +ENCODING 47 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +0C +0C +18 +18 +30 +60 +60 +C0 +C0 +00 +00 +ENDCHAR +STARTCHAR char48 +ENCODING 48 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +78 +CC +CC +CC +CC +CC +78 +30 +00 +00 +ENDCHAR +STARTCHAR char49 +ENCODING 49 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +70 +F0 +30 +30 +30 +30 +30 +FC +00 +00 +ENDCHAR +STARTCHAR char50 +ENCODING 50 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +CC +0C +18 +30 +60 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char51 +ENCODING 51 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +FC +0C +18 +30 +78 +0C +0C +CC +78 +00 +00 +ENDCHAR +STARTCHAR char52 +ENCODING 52 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +18 +18 +38 +78 +58 +D8 +FC +18 +18 +00 +00 +ENDCHAR +STARTCHAR char53 +ENCODING 53 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +FC +C0 +C0 +F8 +EC +0C +0C +CC +78 +00 +00 +ENDCHAR +STARTCHAR char54 +ENCODING 54 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +60 +C0 +C0 +F8 +EC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char55 +ENCODING 55 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +FC +0C +18 +18 +30 +30 +60 +60 +60 +00 +00 +ENDCHAR +STARTCHAR char56 +ENCODING 56 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +CC +CC +78 +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char57 +ENCODING 57 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +CC +DC +7C +0C +0C +18 +70 +00 +00 +ENDCHAR +STARTCHAR char58 +ENCODING 58 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +30 +78 +30 +00 +00 +30 +78 +30 +00 +00 +ENDCHAR +STARTCHAR char59 +ENCODING 59 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +30 +78 +30 +00 +00 +38 +30 +60 +00 +ENDCHAR +STARTCHAR char60 +ENCODING 60 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +0C +18 +30 +60 +C0 +60 +30 +18 +0C +00 +00 +ENDCHAR +STARTCHAR char61 +ENCODING 61 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +00 +00 +FC +00 +00 +00 +00 +ENDCHAR +STARTCHAR char62 +ENCODING 62 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +C0 +60 +30 +18 +0C +18 +30 +60 +C0 +00 +00 +ENDCHAR +STARTCHAR char63 +ENCODING 63 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +CC +0C +18 +30 +30 +00 +30 +00 +00 +ENDCHAR +STARTCHAR char64 +ENCODING 64 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +CC +DC +FC +FC +F8 +C0 +7C +00 +00 +ENDCHAR +STARTCHAR char65 +ENCODING 65 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +78 +CC +CC +CC +FC +CC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char66 +ENCODING 66 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +6C +6C +6C +78 +6C +6C +6C +F8 +00 +00 +ENDCHAR +STARTCHAR char67 +ENCODING 67 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +C0 +C0 +C0 +C0 +C0 +CC +78 +00 +00 +ENDCHAR +STARTCHAR char68 +ENCODING 68 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +6C +6C +6C +6C +6C +6C +6C +F8 +00 +00 +ENDCHAR +STARTCHAR char69 +ENCODING 69 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +FC +C0 +C0 +C0 +F8 +C0 +C0 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char70 +ENCODING 70 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +FC +C0 +C0 +C0 +F8 +C0 +C0 +C0 +C0 +00 +00 +ENDCHAR +STARTCHAR char71 +ENCODING 71 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +C0 +C0 +C0 +DC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char72 +ENCODING 72 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +CC +CC +FC +CC +CC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char73 +ENCODING 73 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +30 +30 +30 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char74 +ENCODING 74 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +3C +0C +0C +0C +0C +0C +0C +CC +78 +00 +00 +ENDCHAR +STARTCHAR char75 +ENCODING 75 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +D8 +F0 +E0 +F0 +D8 +CC +CC +00 +00 +ENDCHAR +STARTCHAR char76 +ENCODING 76 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char77 +ENCODING 77 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +FC +FC +FC +CC +CC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char78 +ENCODING 78 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +EC +EC +FC +FC +DC +DC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char79 +ENCODING 79 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +CC +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char80 +ENCODING 80 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +CC +CC +CC +F8 +C0 +C0 +C0 +C0 +00 +00 +ENDCHAR +STARTCHAR char81 +ENCODING 81 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +CC +CC +CC +CC +CC +FC +78 +0C +00 +ENDCHAR +STARTCHAR char82 +ENCODING 82 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +CC +CC +CC +F8 +F0 +D8 +CC +CC +00 +00 +ENDCHAR +STARTCHAR char83 +ENCODING 83 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +C0 +C0 +78 +0C +0C +CC +78 +00 +00 +ENDCHAR +STARTCHAR char84 +ENCODING 84 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +FC +30 +30 +30 +30 +30 +30 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char85 +ENCODING 85 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +CC +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char86 +ENCODING 86 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +CC +CC +78 +78 +78 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char87 +ENCODING 87 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +CC +CC +FC +FC +FC +FC +CC +00 +00 +ENDCHAR +STARTCHAR char88 +ENCODING 88 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +78 +78 +30 +78 +78 +CC +CC +00 +00 +ENDCHAR +STARTCHAR char89 +ENCODING 89 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +78 +78 +30 +30 +30 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char90 +ENCODING 90 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +FC +0C +18 +18 +30 +60 +60 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char91 +ENCODING 91 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +78 +60 +60 +60 +60 +60 +60 +60 +60 +60 +78 +00 +ENDCHAR +STARTCHAR char92 +ENCODING 92 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +C0 +C0 +60 +60 +30 +18 +18 +0C +0C +00 +00 +ENDCHAR +STARTCHAR char93 +ENCODING 93 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +78 +18 +18 +18 +18 +18 +18 +18 +18 +18 +78 +00 +ENDCHAR +STARTCHAR char94 +ENCODING 94 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +78 +CC +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char95 +ENCODING 95 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +FC +00 +ENDCHAR +STARTCHAR char96 +ENCODING 96 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +60 +30 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char97 +ENCODING 97 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +0C +7C +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char98 +ENCODING 98 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +C0 +C0 +C0 +D8 +EC +CC +CC +EC +D8 +00 +00 +ENDCHAR +STARTCHAR char99 +ENCODING 99 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +CC +C0 +C0 +CC +78 +00 +00 +ENDCHAR +STARTCHAR char100 +ENCODING 100 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +0C +0C +0C +6C +DC +CC +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char101 +ENCODING 101 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +CC +FC +C0 +C0 +78 +00 +00 +ENDCHAR +STARTCHAR char102 +ENCODING 102 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +6C +60 +60 +F8 +60 +60 +60 +60 +00 +00 +ENDCHAR +STARTCHAR char103 +ENCODING 103 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +7C +D8 +D8 +70 +C0 +78 +CC +78 +ENDCHAR +STARTCHAR char104 +ENCODING 104 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +C0 +C0 +C0 +D8 +EC +CC +CC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char105 +ENCODING 105 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +30 +00 +70 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char106 +ENCODING 106 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +18 +18 +00 +38 +18 +18 +18 +18 +D8 +D8 +70 +ENDCHAR +STARTCHAR char107 +ENCODING 107 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +C0 +C0 +C0 +D8 +F0 +E0 +F0 +D8 +CC +00 +00 +ENDCHAR +STARTCHAR char108 +ENCODING 108 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +30 +30 +30 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char109 +ENCODING 109 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +F8 +FC +FC +FC +FC +CC +00 +00 +ENDCHAR +STARTCHAR char110 +ENCODING 110 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +D8 +EC +CC +CC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char111 +ENCODING 111 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char112 +ENCODING 112 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +D8 +EC +CC +EC +D8 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char113 +ENCODING 113 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +6C +DC +CC +DC +6C +0C +0C +0C +ENDCHAR +STARTCHAR char114 +ENCODING 114 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +D8 +EC +C0 +C0 +C0 +C0 +00 +00 +ENDCHAR +STARTCHAR char115 +ENCODING 115 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +CC +70 +18 +CC +78 +00 +00 +ENDCHAR +STARTCHAR char116 +ENCODING 116 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +60 +60 +F8 +60 +60 +60 +6C +38 +00 +00 +ENDCHAR +STARTCHAR char117 +ENCODING 117 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +CC +CC +CC +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char118 +ENCODING 118 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +CC +CC +CC +78 +78 +30 +00 +00 +ENDCHAR +STARTCHAR char119 +ENCODING 119 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +CC +CC +FC +FC +FC +48 +00 +00 +ENDCHAR +STARTCHAR char120 +ENCODING 120 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +CC +78 +30 +30 +78 +CC +00 +00 +ENDCHAR +STARTCHAR char121 +ENCODING 121 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +CC +CC +CC +DC +6C +0C +CC +78 +ENDCHAR +STARTCHAR char122 +ENCODING 122 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +18 +30 +60 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char123 +ENCODING 123 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +38 +60 +60 +60 +30 +E0 +30 +60 +60 +60 +38 +00 +ENDCHAR +STARTCHAR char124 +ENCODING 124 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +30 +30 +30 +30 +30 +30 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char125 +ENCODING 125 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +E0 +30 +30 +30 +60 +38 +60 +30 +30 +30 +E0 +00 +ENDCHAR +STARTCHAR char126 +ENCODING 126 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +68 +F8 +90 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 127 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 128 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 129 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 130 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 131 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 132 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 133 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 134 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 135 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 136 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 137 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 138 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 139 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 140 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 141 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 142 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 143 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 144 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 145 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 146 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 147 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 148 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 149 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 150 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 151 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 152 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 153 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 154 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 155 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 156 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 157 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 158 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 159 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char160 +ENCODING 160 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char161 +ENCODING 161 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +30 +00 +30 +30 +30 +30 +30 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char162 +ENCODING 162 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +10 +78 +D4 +D0 +D0 +D4 +78 +10 +00 +00 +00 +ENDCHAR +STARTCHAR char163 +ENCODING 163 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +6C +60 +60 +F8 +60 +60 +64 +F8 +00 +00 +ENDCHAR +STARTCHAR char164 +ENCODING 164 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +7C +60 +F0 +60 +F0 +60 +7C +38 +00 +00 +ENDCHAR +STARTCHAR char165 +ENCODING 165 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +78 +78 +FC +30 +FC +30 +30 +00 +00 +ENDCHAR +STARTCHAR char166 +ENCODING 166 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +6C +38 +00 +78 +CC +C0 +78 +0C +CC +78 +00 +00 +ENDCHAR +STARTCHAR char167 +ENCODING 167 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +78 +CC +C0 +78 +CC +CC +78 +0C +CC +78 +00 +00 +ENDCHAR +STARTCHAR char168 +ENCODING 168 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +6C +38 +00 +78 +CC +70 +18 +CC +78 +00 +00 +ENDCHAR +STARTCHAR char169 +ENCODING 169 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +B4 +EC +E4 +EC +B4 +CC +78 +00 +00 +ENDCHAR +STARTCHAR char170 +ENCODING 170 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +0C +FC +8C +FC +00 +FC +00 +00 +00 +00 +ENDCHAR +STARTCHAR char171 +ENCODING 171 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +34 +68 +D0 +A0 +D0 +68 +34 +00 +00 +00 +ENDCHAR +STARTCHAR char172 +ENCODING 172 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +FC +04 +04 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char173 +ENCODING 173 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +78 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char174 +ENCODING 174 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +BC +AC +BC +B4 +AC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char175 +ENCODING 175 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +F8 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char176 +ENCODING 176 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +CC +78 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char177 +ENCODING 177 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +30 +30 +FC +FC +30 +30 +00 +FC +FC +00 +00 +ENDCHAR +STARTCHAR char178 +ENCODING 178 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +E0 +B0 +30 +60 +C0 +F0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char179 +ENCODING 179 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +E0 +B0 +60 +30 +B0 +E0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char180 +ENCODING 180 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +6C +38 +00 +FC +0C +18 +30 +60 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char181 +ENCODING 181 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +CC +CC +CC +CC +CC +FC +80 +80 +ENDCHAR +STARTCHAR char182 +ENCODING 182 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +7C +FC +F4 +F4 +F4 +74 +34 +34 +34 +00 +00 +ENDCHAR +STARTCHAR char183 +ENCODING 183 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char184 +ENCODING 184 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +6C +38 +00 +FC +18 +30 +60 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char185 +ENCODING 185 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +60 +E0 +60 +60 +60 +F0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char186 +ENCODING 186 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +70 +F8 +88 +F8 +70 +00 +F8 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char187 +ENCODING 187 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +B0 +58 +2C +14 +2C +58 +B0 +00 +00 +00 +ENDCHAR +STARTCHAR char188 +ENCODING 188 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +7C +D8 +D8 +D8 +DC +D8 +D8 +D8 +7C +00 +00 +ENDCHAR +STARTCHAR char189 +ENCODING 189 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +D4 +D8 +D0 +D4 +78 +00 +00 +ENDCHAR +STARTCHAR char190 +ENCODING 190 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +CC +CC +00 +CC +CC +78 +78 +30 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char191 +ENCODING 191 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +30 +00 +30 +30 +60 +C0 +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char192 +ENCODING 192 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +60 +30 +00 +30 +78 +CC +CC +FC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char193 +ENCODING 193 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +18 +30 +00 +30 +78 +CC +CC +FC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char194 +ENCODING 194 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +38 +6C +00 +30 +78 +CC +CC +FC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char195 +ENCODING 195 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +34 +58 +00 +30 +78 +CC +CC +FC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char196 +ENCODING 196 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +CC +CC +00 +30 +78 +CC +CC +FC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char197 +ENCODING 197 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +30 +48 +78 +30 +78 +CC +CC +FC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char198 +ENCODING 198 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +7C +B0 +B0 +B0 +B8 +F0 +F0 +B0 +BC +00 +00 +ENDCHAR +STARTCHAR char199 +ENCODING 199 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +78 +CC +C0 +C0 +C0 +C0 +C0 +CC +78 +30 +60 +ENDCHAR +STARTCHAR char200 +ENCODING 200 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +60 +30 +00 +FC +C0 +C0 +F8 +C0 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char201 +ENCODING 201 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +18 +30 +00 +FC +C0 +C0 +F8 +C0 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char202 +ENCODING 202 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +38 +6C +00 +FC +C0 +C0 +F8 +C0 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char203 +ENCODING 203 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +CC +CC +00 +FC +C0 +C0 +F8 +C0 +C0 +FC +00 +00 +ENDCHAR +STARTCHAR char204 +ENCODING 204 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +60 +30 +00 +78 +30 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char205 +ENCODING 205 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +18 +30 +00 +78 +30 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char206 +ENCODING 206 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +70 +D8 +00 +78 +30 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char207 +ENCODING 207 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +CC +CC +00 +78 +30 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char208 +ENCODING 208 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +F8 +6C +6C +6C +EC +6C +6C +6C +F8 +00 +00 +ENDCHAR +STARTCHAR char209 +ENCODING 209 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +34 +58 +00 +CC +EC +EC +FC +DC +DC +CC +00 +00 +ENDCHAR +STARTCHAR char210 +ENCODING 210 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +60 +30 +00 +78 +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char211 +ENCODING 211 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +18 +30 +00 +78 +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char212 +ENCODING 212 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +38 +6C +00 +78 +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char213 +ENCODING 213 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +34 +58 +00 +78 +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char214 +ENCODING 214 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +CC +CC +00 +78 +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char215 +ENCODING 215 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +CC +78 +30 +78 +CC +00 +00 +00 +ENDCHAR +STARTCHAR char216 +ENCODING 216 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +04 +78 +DC +DC +CC +EC +EC +78 +80 +00 +ENDCHAR +STARTCHAR char217 +ENCODING 217 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +60 +30 +00 +CC +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char218 +ENCODING 218 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +18 +30 +00 +CC +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char219 +ENCODING 219 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +38 +6C +00 +CC +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char220 +ENCODING 220 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +6C +6C +00 +CC +CC +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char221 +ENCODING 221 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +18 +30 +00 +CC +48 +78 +30 +30 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char222 +ENCODING 222 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +C0 +F8 +CC +CC +CC +F8 +C0 +C0 +C0 +00 +00 +ENDCHAR +STARTCHAR char223 +ENCODING 223 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +78 +CC +CC +F8 +CC +CC +CC +F8 +80 +00 +ENDCHAR +STARTCHAR char224 +ENCODING 224 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +60 +30 +00 +78 +0C +7C +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char225 +ENCODING 225 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +18 +30 +00 +78 +0C +7C +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char226 +ENCODING 226 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +6C +00 +78 +0C +7C +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char227 +ENCODING 227 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +34 +58 +00 +78 +0C +7C +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char228 +ENCODING 228 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +6C +6C +00 +78 +0C +7C +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char229 +ENCODING 229 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +38 +28 +38 +00 +78 +0C +7C +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char230 +ENCODING 230 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +34 +78 +B0 +B4 +68 +00 +00 +ENDCHAR +STARTCHAR char231 +ENCODING 231 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +CC +C0 +C0 +CC +78 +30 +60 +ENDCHAR +STARTCHAR char232 +ENCODING 232 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +60 +30 +00 +78 +CC +FC +C0 +C0 +78 +00 +00 +ENDCHAR +STARTCHAR char233 +ENCODING 233 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +18 +30 +00 +78 +CC +FC +C0 +C0 +78 +00 +00 +ENDCHAR +STARTCHAR char234 +ENCODING 234 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +6C +00 +78 +CC +FC +C0 +C0 +78 +00 +00 +ENDCHAR +STARTCHAR char235 +ENCODING 235 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +6C +6C +00 +78 +CC +FC +C0 +C0 +78 +00 +00 +ENDCHAR +STARTCHAR char236 +ENCODING 236 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +60 +30 +00 +70 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char237 +ENCODING 237 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +18 +30 +00 +70 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char238 +ENCODING 238 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +70 +D8 +00 +70 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char239 +ENCODING 239 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +D8 +D8 +00 +70 +30 +30 +30 +30 +78 +00 +00 +ENDCHAR +STARTCHAR char240 +ENCODING 240 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +D8 +70 +F0 +98 +78 +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char241 +ENCODING 241 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +34 +58 +00 +D8 +EC +CC +CC +CC +CC +00 +00 +ENDCHAR +STARTCHAR char242 +ENCODING 242 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +60 +30 +00 +78 +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char243 +ENCODING 243 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +18 +30 +00 +78 +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char244 +ENCODING 244 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +6C +00 +78 +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char245 +ENCODING 245 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +34 +58 +00 +78 +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char246 +ENCODING 246 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +00 +78 +CC +CC +CC +CC +78 +00 +00 +ENDCHAR +STARTCHAR char247 +ENCODING 247 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +30 +30 +00 +FC +00 +30 +30 +00 +00 +00 +ENDCHAR +STARTCHAR char248 +ENCODING 248 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +04 +78 +CC +DC +CC +EC +CC +78 +80 +00 +ENDCHAR +STARTCHAR char249 +ENCODING 249 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +60 +30 +00 +CC +CC +CC +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char250 +ENCODING 250 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +18 +30 +00 +CC +CC +CC +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char251 +ENCODING 251 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +38 +6C +00 +CC +CC +CC +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char252 +ENCODING 252 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +00 +CC +CC +CC +CC +DC +6C +00 +00 +ENDCHAR +STARTCHAR char253 +ENCODING 253 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +18 +30 +00 +CC +CC +CC +DC +6C +0C +CC +78 +ENDCHAR +STARTCHAR char254 +ENCODING 254 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +00 +C0 +C0 +D8 +EC +CC +EC +D8 +C0 +C0 +C0 +ENDCHAR +STARTCHAR char255 +ENCODING 255 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +CC +CC +00 +CC +CC +CC +DC +6C +0C +CC +78 +ENDCHAR +ENDFONT diff --git a/ui/fonts/fixed6x13b.h b/ui/fonts/fixed6x13b.h new file mode 100644 index 0000000..36f9cb1 --- /dev/null +++ b/ui/fonts/fixed6x13b.h @@ -0,0 +1,261 @@ +/* -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO8859-15 */ +#define FONT_WIDTH_FixedBold_6x13 6 +#define FONT_HEIGHT_FixedBold_6x13 13 +const uint8_t FONT_DATA_FixedBold_6x13[256][13] = { +{0x00,0x15,0x15,0x00,0x11,0x11,0x00,0x11,0x11,0x00,0x15,0x15,0x00,}, +{0x00,0x00,0x00,0x00,0x0c,0x1e,0x3f,0x1e,0x0c,0x00,0x00,0x00,0x00,}, +{0x15,0x2a,0x15,0x2a,0x15,0x2a,0x15,0x2a,0x15,0x2a,0x15,0x2a,0x15,}, +{0x00,0x1b,0x1b,0x1f,0x1b,0x1b,0x3c,0x18,0x18,0x18,0x18,0x00,0x00,}, +{0x00,0x0f,0x03,0x07,0x03,0x03,0x3c,0x0c,0x1c,0x0c,0x0c,0x00,0x00,}, +{0x00,0x1e,0x13,0x03,0x13,0x1e,0x1e,0x36,0x1e,0x16,0x36,0x00,0x00,}, +{0x00,0x03,0x03,0x03,0x03,0x0f,0x3c,0x0c,0x1c,0x0c,0x0c,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x33,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x0c,0x0c,0x3f,0x3f,0x0c,0x0c,0x00,0x3f,0x3f,0x00,0x00,}, +{0x00,0x00,0x00,0x1b,0x1f,0x1f,0x1b,0x1b,0x0c,0x0c,0x0c,0x0c,0x3c,}, +{0x00,0x1b,0x1b,0x1b,0x0e,0x04,0x3c,0x18,0x18,0x18,0x18,0x00,0x00,}, +{0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x3c,0x0c,0x0c,0x0c,0x0c,0x0c,}, +{0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3c,0x3c,0x00,0x00,0x00,0x00,0x00,}, +{0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3f,0x3f,0x0c,0x0c,0x0c,0x0c,0x0c,}, +{0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,}, +{0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3c,0x3c,0x0c,0x0c,0x0c,0x0c,0x0c,}, +{0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,}, +{0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x0c,0x0c,0x0c,0x0c,0x0c,}, +{0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,}, +{0x00,0x00,0x00,0x38,0x0e,0x03,0x0e,0x38,0x00,0x3f,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x07,0x1c,0x30,0x1c,0x07,0x00,0x3f,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x3f,0x33,0x33,0x33,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x30,0x3f,0x0c,0x3f,0x03,0x00,0x00,0x00,}, +{0x00,0x00,0x1c,0x36,0x06,0x06,0x1f,0x06,0x06,0x26,0x1f,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x0c,0x00,0x00,}, +{0x00,0x00,0x1b,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x1e,0x1e,0x3f,0x1e,0x3f,0x1e,0x1e,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x0c,0x1e,0x0f,0x1e,0x3c,0x1e,0x0c,0x00,0x00,0x00,}, +{0x00,0x00,0x36,0x3f,0x1e,0x18,0x0c,0x06,0x1e,0x3f,0x1b,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x06,0x0f,0x0f,0x06,0x3f,0x1b,0x3e,0x00,0x00,}, +{0x00,0x00,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x18,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x0c,0x0c,0x18,0x00,}, +{0x00,0x06,0x0c,0x0c,0x18,0x18,0x18,0x18,0x18,0x0c,0x0c,0x06,0x00,}, +{0x00,0x00,0x00,0x00,0x33,0x1e,0x3f,0x1e,0x33,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x0c,0x0c,0x3f,0x0c,0x0c,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x0c,0x06,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1e,0x0c,0x00,}, +{0x00,0x00,0x30,0x30,0x18,0x18,0x0c,0x06,0x06,0x03,0x03,0x00,0x00,}, +{0x00,0x00,0x0c,0x1e,0x33,0x33,0x33,0x33,0x33,0x1e,0x0c,0x00,0x00,}, +{0x00,0x00,0x0c,0x0e,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x3f,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x33,0x30,0x18,0x0c,0x06,0x03,0x3f,0x00,0x00,}, +{0x00,0x00,0x3f,0x30,0x18,0x0c,0x1e,0x30,0x30,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x18,0x18,0x1c,0x1e,0x1a,0x1b,0x3f,0x18,0x18,0x00,0x00,}, +{0x00,0x00,0x3f,0x03,0x03,0x1f,0x37,0x30,0x30,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x1c,0x06,0x03,0x03,0x1f,0x37,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x3f,0x30,0x18,0x18,0x0c,0x0c,0x06,0x06,0x06,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x33,0x33,0x1e,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x33,0x3b,0x3e,0x30,0x30,0x18,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x0c,0x1e,0x0c,0x00,0x00,0x0c,0x1e,0x0c,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x0c,0x1e,0x0c,0x00,0x00,0x1c,0x0c,0x06,0x00,}, +{0x00,0x00,0x30,0x18,0x0c,0x06,0x03,0x06,0x0c,0x18,0x30,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x03,0x06,0x0c,0x18,0x30,0x18,0x0c,0x06,0x03,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x33,0x30,0x18,0x0c,0x0c,0x00,0x0c,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x33,0x3b,0x3f,0x3f,0x1f,0x03,0x3e,0x00,0x00,}, +{0x00,0x00,0x0c,0x1e,0x33,0x33,0x33,0x3f,0x33,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x1f,0x36,0x36,0x36,0x1e,0x36,0x36,0x36,0x1f,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x03,0x03,0x03,0x03,0x03,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x1f,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x1f,0x00,0x00,}, +{0x00,0x00,0x3f,0x03,0x03,0x03,0x1f,0x03,0x03,0x03,0x3f,0x00,0x00,}, +{0x00,0x00,0x3f,0x03,0x03,0x03,0x1f,0x03,0x03,0x03,0x03,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x03,0x03,0x03,0x3b,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x33,0x33,0x3f,0x33,0x33,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x00,0x3c,0x30,0x30,0x30,0x30,0x30,0x30,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x1b,0x0f,0x07,0x0f,0x1b,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x3f,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x3f,0x3f,0x3f,0x33,0x33,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x33,0x37,0x37,0x3f,0x3f,0x3b,0x3b,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x1f,0x33,0x33,0x33,0x1f,0x03,0x03,0x03,0x03,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x33,0x33,0x33,0x33,0x33,0x3f,0x1e,0x30,0x00,}, +{0x00,0x00,0x1f,0x33,0x33,0x33,0x1f,0x0f,0x1b,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x03,0x03,0x1e,0x30,0x30,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x3f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x33,0x33,0x1e,0x1e,0x1e,0x0c,0x0c,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x33,0x33,0x3f,0x3f,0x3f,0x3f,0x33,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x1e,0x1e,0x0c,0x1e,0x1e,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x1e,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,}, +{0x00,0x00,0x3f,0x30,0x18,0x18,0x0c,0x06,0x06,0x03,0x3f,0x00,0x00,}, +{0x00,0x1e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x1e,0x00,}, +{0x00,0x00,0x03,0x03,0x06,0x06,0x0c,0x18,0x18,0x30,0x30,0x00,0x00,}, +{0x00,0x1e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1e,0x00,}, +{0x00,0x00,0x0c,0x1e,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,}, +{0x00,0x06,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1e,0x30,0x3e,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x03,0x03,0x03,0x1b,0x37,0x33,0x33,0x37,0x1b,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1e,0x33,0x03,0x03,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x30,0x30,0x30,0x36,0x3b,0x33,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1e,0x33,0x3f,0x03,0x03,0x1e,0x00,0x00,}, +{0x00,0x00,0x1c,0x36,0x06,0x06,0x1f,0x06,0x06,0x06,0x06,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x3e,0x1b,0x1b,0x0e,0x03,0x1e,0x33,0x1e,}, +{0x00,0x00,0x03,0x03,0x03,0x1b,0x37,0x33,0x33,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x0c,0x0c,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x00,0x18,0x18,0x00,0x1c,0x18,0x18,0x18,0x18,0x1b,0x1b,0x0e,}, +{0x00,0x00,0x03,0x03,0x03,0x1b,0x0f,0x07,0x0f,0x1b,0x33,0x00,0x00,}, +{0x00,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1f,0x3f,0x3f,0x3f,0x3f,0x33,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1b,0x37,0x33,0x33,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1e,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1b,0x37,0x33,0x37,0x1b,0x03,0x03,0x03,}, +{0x00,0x00,0x00,0x00,0x00,0x36,0x3b,0x33,0x3b,0x36,0x30,0x30,0x30,}, +{0x00,0x00,0x00,0x00,0x00,0x1b,0x37,0x03,0x03,0x03,0x03,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1e,0x33,0x0e,0x18,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x00,0x06,0x06,0x1f,0x06,0x06,0x06,0x36,0x1c,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x1e,0x1e,0x0c,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x3f,0x3f,0x3f,0x12,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x33,0x1e,0x0c,0x0c,0x1e,0x33,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x3b,0x36,0x30,0x33,0x1e,}, +{0x00,0x00,0x00,0x00,0x00,0x3f,0x18,0x0c,0x06,0x03,0x3f,0x00,0x00,}, +{0x00,0x1c,0x06,0x06,0x06,0x0c,0x07,0x0c,0x06,0x06,0x06,0x1c,0x00,}, +{0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,}, +{0x00,0x07,0x0c,0x0c,0x0c,0x06,0x1c,0x06,0x0c,0x0c,0x0c,0x07,0x00,}, +{0x00,0x00,0x16,0x1f,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x0c,0x0c,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,}, +{0x00,0x00,0x08,0x1e,0x2b,0x0b,0x0b,0x2b,0x1e,0x08,0x00,0x00,0x00,}, +{0x00,0x00,0x1c,0x36,0x06,0x06,0x1f,0x06,0x06,0x26,0x1f,0x00,0x00,}, +{0x00,0x00,0x1c,0x3e,0x06,0x0f,0x06,0x0f,0x06,0x3e,0x1c,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x1e,0x1e,0x3f,0x0c,0x3f,0x0c,0x0c,0x00,0x00,}, +{0x00,0x36,0x1c,0x00,0x1e,0x33,0x03,0x1e,0x30,0x33,0x1e,0x00,0x00,}, +{0x00,0x1e,0x33,0x03,0x1e,0x33,0x33,0x1e,0x30,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x36,0x1c,0x00,0x1e,0x33,0x0e,0x18,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x2d,0x37,0x27,0x37,0x2d,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x1f,0x30,0x3f,0x31,0x3f,0x00,0x3f,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x2c,0x16,0x0b,0x05,0x0b,0x16,0x2c,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x20,0x20,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x3d,0x35,0x3d,0x2d,0x35,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x1f,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x33,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x0c,0x0c,0x3f,0x3f,0x0c,0x0c,0x00,0x3f,0x3f,0x00,0x00,}, +{0x00,0x07,0x0d,0x0c,0x06,0x03,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x07,0x0d,0x06,0x0c,0x0d,0x07,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x36,0x1c,0x00,0x3f,0x30,0x18,0x0c,0x06,0x03,0x3f,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x3f,0x01,0x01,}, +{0x00,0x00,0x3e,0x3f,0x2f,0x2f,0x2f,0x2e,0x2c,0x2c,0x2c,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x36,0x1c,0x00,0x3f,0x18,0x0c,0x06,0x03,0x3f,0x00,0x00,}, +{0x00,0x06,0x07,0x06,0x06,0x06,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x0e,0x1f,0x11,0x1f,0x0e,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x0d,0x1a,0x34,0x28,0x34,0x1a,0x0d,0x00,0x00,0x00,}, +{0x00,0x00,0x3e,0x1b,0x1b,0x1b,0x3b,0x1b,0x1b,0x1b,0x3e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1e,0x2b,0x1b,0x0b,0x2b,0x1e,0x00,0x00,}, +{0x00,0x33,0x33,0x00,0x33,0x33,0x1e,0x1e,0x0c,0x0c,0x0c,0x00,0x00,}, +{0x00,0x0c,0x0c,0x00,0x0c,0x0c,0x06,0x03,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x06,0x0c,0x00,0x0c,0x1e,0x33,0x33,0x3f,0x33,0x33,0x00,0x00,}, +{0x00,0x18,0x0c,0x00,0x0c,0x1e,0x33,0x33,0x3f,0x33,0x33,0x00,0x00,}, +{0x00,0x1c,0x36,0x00,0x0c,0x1e,0x33,0x33,0x3f,0x33,0x33,0x00,0x00,}, +{0x00,0x2c,0x1a,0x00,0x0c,0x1e,0x33,0x33,0x3f,0x33,0x33,0x00,0x00,}, +{0x00,0x33,0x33,0x00,0x0c,0x1e,0x33,0x33,0x3f,0x33,0x33,0x00,0x00,}, +{0x00,0x0c,0x12,0x1e,0x0c,0x1e,0x33,0x33,0x3f,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x3e,0x0d,0x0d,0x0d,0x1d,0x0f,0x0f,0x0d,0x3d,0x00,0x00,}, +{0x00,0x00,0x1e,0x33,0x03,0x03,0x03,0x03,0x03,0x33,0x1e,0x0c,0x06,}, +{0x00,0x06,0x0c,0x00,0x3f,0x03,0x03,0x1f,0x03,0x03,0x3f,0x00,0x00,}, +{0x00,0x18,0x0c,0x00,0x3f,0x03,0x03,0x1f,0x03,0x03,0x3f,0x00,0x00,}, +{0x00,0x1c,0x36,0x00,0x3f,0x03,0x03,0x1f,0x03,0x03,0x3f,0x00,0x00,}, +{0x00,0x33,0x33,0x00,0x3f,0x03,0x03,0x1f,0x03,0x03,0x3f,0x00,0x00,}, +{0x00,0x06,0x0c,0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x18,0x0c,0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x0e,0x1b,0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x33,0x33,0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x00,0x1f,0x36,0x36,0x36,0x37,0x36,0x36,0x36,0x1f,0x00,0x00,}, +{0x00,0x2c,0x1a,0x00,0x33,0x37,0x37,0x3f,0x3b,0x3b,0x33,0x00,0x00,}, +{0x00,0x06,0x0c,0x00,0x1e,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x18,0x0c,0x00,0x1e,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x1c,0x36,0x00,0x1e,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x2c,0x1a,0x00,0x1e,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x33,0x33,0x00,0x1e,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x33,0x1e,0x0c,0x1e,0x33,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x20,0x1e,0x3b,0x3b,0x33,0x37,0x37,0x1e,0x01,0x00,}, +{0x00,0x06,0x0c,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x18,0x0c,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x1c,0x36,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x36,0x36,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x18,0x0c,0x00,0x33,0x12,0x1e,0x0c,0x0c,0x0c,0x0c,0x00,0x00,}, +{0x00,0x00,0x03,0x1f,0x33,0x33,0x33,0x1f,0x03,0x03,0x03,0x00,0x00,}, +{0x00,0x00,0x00,0x1e,0x33,0x33,0x1f,0x33,0x33,0x33,0x1f,0x01,0x00,}, +{0x00,0x00,0x06,0x0c,0x00,0x1e,0x30,0x3e,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x18,0x0c,0x00,0x1e,0x30,0x3e,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x1c,0x36,0x00,0x1e,0x30,0x3e,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x2c,0x1a,0x00,0x1e,0x30,0x3e,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x36,0x36,0x00,0x1e,0x30,0x3e,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x1c,0x14,0x1c,0x00,0x1e,0x30,0x3e,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1e,0x2c,0x1e,0x0d,0x2d,0x16,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x1e,0x33,0x03,0x03,0x33,0x1e,0x0c,0x06,}, +{0x00,0x00,0x06,0x0c,0x00,0x1e,0x33,0x3f,0x03,0x03,0x1e,0x00,0x00,}, +{0x00,0x00,0x18,0x0c,0x00,0x1e,0x33,0x3f,0x03,0x03,0x1e,0x00,0x00,}, +{0x00,0x00,0x1c,0x36,0x00,0x1e,0x33,0x3f,0x03,0x03,0x1e,0x00,0x00,}, +{0x00,0x00,0x36,0x36,0x00,0x1e,0x33,0x3f,0x03,0x03,0x1e,0x00,0x00,}, +{0x00,0x00,0x06,0x0c,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x00,0x18,0x0c,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x00,0x0e,0x1b,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x00,0x1b,0x1b,0x00,0x0e,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,}, +{0x00,0x1b,0x0e,0x0f,0x19,0x1e,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x2c,0x1a,0x00,0x1b,0x37,0x33,0x33,0x33,0x33,0x00,0x00,}, +{0x00,0x00,0x06,0x0c,0x00,0x1e,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x18,0x0c,0x00,0x1e,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x1c,0x36,0x00,0x1e,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x2c,0x1a,0x00,0x1e,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x00,0x1e,0x33,0x33,0x33,0x33,0x1e,0x00,0x00,}, +{0x00,0x00,0x00,0x0c,0x0c,0x00,0x3f,0x00,0x0c,0x0c,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x20,0x1e,0x33,0x3b,0x33,0x37,0x33,0x1e,0x01,0x00,}, +{0x00,0x00,0x06,0x0c,0x00,0x33,0x33,0x33,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x18,0x0c,0x00,0x33,0x33,0x33,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x1c,0x36,0x00,0x33,0x33,0x33,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x33,0x33,0x00,0x33,0x33,0x33,0x33,0x3b,0x36,0x00,0x00,}, +{0x00,0x00,0x18,0x0c,0x00,0x33,0x33,0x33,0x3b,0x36,0x30,0x33,0x1e,}, +{0x00,0x00,0x00,0x03,0x03,0x1b,0x37,0x33,0x37,0x1b,0x03,0x03,0x03,}, +{0x00,0x00,0x33,0x33,0x00,0x33,0x33,0x33,0x3b,0x36,0x30,0x33,0x1e,}, +}; diff --git a/ui/fonts/fixed6x9.bdf b/ui/fonts/fixed6x9.bdf new file mode 100644 index 0000000..8616baf --- /dev/null +++ b/ui/fonts/fixed6x9.bdf @@ -0,0 +1,4129 @@ +STARTFONT 2.1 +COMMENT Font grabbed from the X server. +FONT -Misc-Fixed-Medium-R-Normal--9-90-75-75-C-60-ISO8859-9 +SIZE 9 75 75 +FONTBOUNDINGBOX 6 9 0 -2 +STARTPROPERTIES 24 +FONTNAME_REGISTRY "" +FOUNDRY "Misc" +FAMILY_NAME "Fixed" +WEIGHT_NAME "Medium" +SLANT "R" +SETWIDTH_NAME "Normal" +ADD_STYLE_NAME "" +PIXEL_SIZE 9 +POINT_SIZE 90 +RESOLUTION_X 75 +RESOLUTION_Y 75 +SPACING "C" +AVERAGE_WIDTH 60 +CHARSET_REGISTRY "ISO8859" +CHARSET_ENCODING "9" +COPYRIGHT "Public domain font. Share and enjoy." +CAP_HEIGHT 6 +X_HEIGHT 4 +WEIGHT 10 +RESOLUTION 103 +QUAD_WIDTH 6 +FONT_ASCENT 7 +FONT_DESCENT 2 +_GBDFED_INFO "Edited with gbdfed 1.6." +ENDPROPERTIES +CHARS 256 +STARTCHAR char0 +ENCODING 0 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +28 +40 +08 +40 +08 +50 +00 +00 +ENDCHAR +STARTCHAR char1 +ENCODING 1 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +30 +78 +FC +78 +30 +00 +00 +ENDCHAR +STARTCHAR char2 +ENCODING 2 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +54 +A8 +54 +A8 +54 +A8 +54 +A8 +54 +ENDCHAR +STARTCHAR char3 +ENCODING 3 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +A0 +E0 +A0 +00 +38 +10 +10 +00 +ENDCHAR +STARTCHAR char4 +ENCODING 4 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +E0 +80 +C0 +80 +38 +20 +30 +20 +ENDCHAR +STARTCHAR char5 +ENCODING 5 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +60 +80 +60 +00 +30 +28 +30 +28 +ENDCHAR +STARTCHAR char6 +ENCODING 6 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +80 +80 +80 +C0 +38 +20 +30 +20 +ENDCHAR +STARTCHAR char7 +ENCODING 7 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +30 +48 +30 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char8 +ENCODING 8 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +20 +F8 +20 +20 +00 +F8 +00 +ENDCHAR +STARTCHAR char9 +ENCODING 9 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +90 +D0 +B0 +90 +20 +20 +20 +38 +ENDCHAR +STARTCHAR char10 +ENCODING 10 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +A0 +A0 +40 +40 +38 +10 +10 +10 +ENDCHAR +STARTCHAR char11 +ENCODING 11 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +10 +10 +10 +F0 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char12 +ENCODING 12 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +F0 +10 +10 +10 +10 +ENDCHAR +STARTCHAR char13 +ENCODING 13 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +1C +10 +10 +10 +10 +ENDCHAR +STARTCHAR char14 +ENCODING 14 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +10 +10 +10 +1C +00 +00 +00 +00 +ENDCHAR +STARTCHAR char15 +ENCODING 15 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +10 +10 +10 +FC +10 +10 +10 +10 +ENDCHAR +STARTCHAR char16 +ENCODING 16 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +FC +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char17 +ENCODING 17 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char18 +ENCODING 18 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +FC +00 +00 +00 +00 +ENDCHAR +STARTCHAR char19 +ENCODING 19 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +FC +00 +00 +ENDCHAR +STARTCHAR char20 +ENCODING 20 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +FC +ENDCHAR +STARTCHAR char21 +ENCODING 21 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +10 +10 +10 +1C +10 +10 +10 +10 +ENDCHAR +STARTCHAR char22 +ENCODING 22 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +10 +10 +10 +F0 +10 +10 +10 +10 +ENDCHAR +STARTCHAR char23 +ENCODING 23 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +10 +10 +10 +FC +00 +00 +00 +00 +ENDCHAR +STARTCHAR char24 +ENCODING 24 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +FC +10 +10 +10 +10 +ENDCHAR +STARTCHAR char25 +ENCODING 25 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +10 +10 +10 +10 +10 +10 +10 +10 +ENDCHAR +STARTCHAR char26 +ENCODING 26 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +18 +60 +80 +60 +98 +60 +18 +00 +ENDCHAR +STARTCHAR char27 +ENCODING 27 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +C0 +30 +08 +30 +C8 +30 +C0 +00 +ENDCHAR +STARTCHAR char28 +ENCODING 28 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +F8 +50 +50 +50 +00 +00 +ENDCHAR +STARTCHAR char29 +ENCODING 29 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +10 +F8 +20 +F8 +40 +00 +00 +ENDCHAR +STARTCHAR char30 +ENCODING 30 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +40 +F0 +40 +40 +F8 +00 +ENDCHAR +STARTCHAR char31 +ENCODING 31 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char32 +ENCODING 32 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char33 +ENCODING 33 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +20 +20 +20 +00 +20 +00 +00 +ENDCHAR +STARTCHAR char34 +ENCODING 34 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +50 +50 +50 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char35 +ENCODING 35 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +50 +50 +F8 +50 +F8 +50 +50 +00 +ENDCHAR +STARTCHAR char36 +ENCODING 36 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +70 +A8 +A0 +70 +28 +A8 +70 +20 +ENDCHAR +STARTCHAR char37 +ENCODING 37 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +40 +A8 +48 +10 +20 +48 +54 +08 +00 +ENDCHAR +STARTCHAR char38 +ENCODING 38 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +60 +90 +90 +60 +98 +90 +68 +00 +ENDCHAR +STARTCHAR char39 +ENCODING 39 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +20 +20 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char40 +ENCODING 40 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +10 +20 +20 +20 +20 +20 +10 +00 +ENDCHAR +STARTCHAR char41 +ENCODING 41 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +10 +10 +10 +10 +10 +20 +00 +ENDCHAR +STARTCHAR char42 +ENCODING 42 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +88 +50 +F8 +50 +88 +00 +00 +ENDCHAR +STARTCHAR char43 +ENCODING 43 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +20 +20 +F8 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char44 +ENCODING 44 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +10 +10 +20 +ENDCHAR +STARTCHAR char45 +ENCODING 45 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +F8 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char46 +ENCODING 46 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char47 +ENCODING 47 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +08 +08 +10 +20 +40 +40 +00 +00 +ENDCHAR +STARTCHAR char48 +ENCODING 48 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char49 +ENCODING 49 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +60 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char50 +ENCODING 50 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +08 +10 +20 +78 +00 +00 +ENDCHAR +STARTCHAR char51 +ENCODING 51 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +78 +10 +30 +08 +08 +70 +00 +00 +ENDCHAR +STARTCHAR char52 +ENCODING 52 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +10 +30 +50 +90 +F8 +10 +00 +00 +ENDCHAR +STARTCHAR char53 +ENCODING 53 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +78 +40 +70 +08 +08 +70 +00 +00 +ENDCHAR +STARTCHAR char54 +ENCODING 54 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +40 +70 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char55 +ENCODING 55 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +78 +08 +08 +10 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char56 +ENCODING 56 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +30 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char57 +ENCODING 57 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +48 +38 +08 +30 +00 +00 +ENDCHAR +STARTCHAR char58 +ENCODING 58 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +30 +30 +00 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char59 +ENCODING 59 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +30 +30 +00 +30 +10 +10 +20 +ENDCHAR +STARTCHAR char60 +ENCODING 60 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +18 +60 +80 +60 +18 +00 +00 +ENDCHAR +STARTCHAR char61 +ENCODING 61 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +F8 +00 +F8 +00 +00 +00 +ENDCHAR +STARTCHAR char62 +ENCODING 62 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +C0 +30 +08 +30 +C0 +00 +00 +ENDCHAR +STARTCHAR char63 +ENCODING 63 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +30 +48 +08 +30 +20 +00 +20 +00 +00 +ENDCHAR +STARTCHAR char64 +ENCODING 64 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +70 +90 +A8 +B0 +80 +70 +00 +00 +ENDCHAR +STARTCHAR char65 +ENCODING 65 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +50 +88 +F8 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char66 +ENCODING 66 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +F0 +88 +F0 +88 +88 +F0 +00 +00 +ENDCHAR +STARTCHAR char67 +ENCODING 67 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +40 +40 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char68 +ENCODING 68 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +70 +48 +48 +48 +48 +70 +00 +00 +ENDCHAR +STARTCHAR char69 +ENCODING 69 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +78 +40 +70 +40 +40 +78 +00 +00 +ENDCHAR +STARTCHAR char70 +ENCODING 70 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +78 +40 +70 +40 +40 +40 +00 +00 +ENDCHAR +STARTCHAR char71 +ENCODING 71 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +40 +58 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char72 +ENCODING 72 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +48 +48 +78 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR char73 +ENCODING 73 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +70 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char74 +ENCODING 74 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +38 +10 +10 +10 +90 +60 +00 +00 +ENDCHAR +STARTCHAR char75 +ENCODING 75 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +48 +50 +60 +50 +48 +48 +00 +00 +ENDCHAR +STARTCHAR char76 +ENCODING 76 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +40 +40 +40 +40 +40 +78 +00 +00 +ENDCHAR +STARTCHAR char77 +ENCODING 77 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +88 +D8 +A8 +A8 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char78 +ENCODING 78 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +48 +68 +58 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR char79 +ENCODING 79 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR char80 +ENCODING 80 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +70 +48 +48 +70 +40 +40 +00 +00 +ENDCHAR +STARTCHAR char81 +ENCODING 81 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +48 +68 +58 +30 +08 +00 +ENDCHAR +STARTCHAR char82 +ENCODING 82 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +70 +48 +48 +70 +48 +48 +00 +00 +ENDCHAR +STARTCHAR char83 +ENCODING 83 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +20 +10 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char84 +ENCODING 84 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +F8 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char85 +ENCODING 85 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +48 +48 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char86 +ENCODING 86 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +48 +48 +48 +78 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char87 +ENCODING 87 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +88 +88 +A8 +A8 +D8 +88 +00 +00 +ENDCHAR +STARTCHAR char88 +ENCODING 88 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +88 +50 +20 +20 +50 +88 +00 +00 +ENDCHAR +STARTCHAR char89 +ENCODING 89 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +88 +88 +50 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char90 +ENCODING 90 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +78 +08 +10 +20 +40 +78 +00 +00 +ENDCHAR +STARTCHAR char91 +ENCODING 91 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +70 +40 +40 +40 +40 +70 +00 +00 +ENDCHAR +STARTCHAR char92 +ENCODING 92 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +40 +40 +20 +10 +08 +08 +00 +00 +ENDCHAR +STARTCHAR char93 +ENCODING 93 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +70 +10 +10 +10 +10 +70 +00 +00 +ENDCHAR +STARTCHAR char94 +ENCODING 94 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +50 +88 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char95 +ENCODING 95 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +F8 +ENDCHAR +STARTCHAR char96 +ENCODING 96 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +10 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char97 +ENCODING 97 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +38 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char98 +ENCODING 98 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +40 +40 +70 +48 +48 +70 +00 +00 +ENDCHAR +STARTCHAR char99 +ENCODING 99 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +38 +40 +40 +38 +00 +00 +ENDCHAR +STARTCHAR char100 +ENCODING 100 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +08 +08 +38 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char101 +ENCODING 101 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +30 +58 +60 +38 +00 +00 +ENDCHAR +STARTCHAR char102 +ENCODING 102 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +10 +28 +20 +70 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char103 +ENCODING 103 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +30 +48 +48 +38 +08 +30 +ENDCHAR +STARTCHAR char104 +ENCODING 104 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +40 +40 +70 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR char105 +ENCODING 105 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +00 +60 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char106 +ENCODING 106 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +10 +00 +30 +10 +10 +10 +50 +20 +ENDCHAR +STARTCHAR char107 +ENCODING 107 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +40 +40 +50 +60 +50 +48 +00 +00 +ENDCHAR +STARTCHAR char108 +ENCODING 108 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char109 +ENCODING 109 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +D0 +A8 +A8 +88 +00 +00 +ENDCHAR +STARTCHAR char110 +ENCODING 110 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +70 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR char111 +ENCODING 111 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +30 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char112 +ENCODING 112 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +70 +48 +48 +70 +40 +40 +ENDCHAR +STARTCHAR char113 +ENCODING 113 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +38 +48 +48 +38 +08 +08 +ENDCHAR +STARTCHAR char114 +ENCODING 114 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +50 +68 +40 +40 +00 +00 +ENDCHAR +STARTCHAR char115 +ENCODING 115 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +38 +60 +18 +70 +00 +00 +ENDCHAR +STARTCHAR char116 +ENCODING 116 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +20 +70 +20 +28 +10 +00 +00 +ENDCHAR +STARTCHAR char117 +ENCODING 117 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +48 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char118 +ENCODING 118 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +48 +48 +30 +30 +00 +00 +ENDCHAR +STARTCHAR char119 +ENCODING 119 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +88 +A8 +A8 +50 +00 +00 +ENDCHAR +STARTCHAR char120 +ENCODING 120 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +48 +30 +30 +48 +00 +00 +ENDCHAR +STARTCHAR char121 +ENCODING 121 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +48 +48 +48 +38 +48 +30 +ENDCHAR +STARTCHAR char122 +ENCODING 122 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +78 +10 +20 +78 +00 +00 +ENDCHAR +STARTCHAR char123 +ENCODING 123 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +20 +40 +20 +20 +10 +00 +00 +ENDCHAR +STARTCHAR char124 +ENCODING 124 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +20 +20 +20 +20 +20 +20 +00 +ENDCHAR +STARTCHAR char125 +ENCODING 125 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +40 +20 +20 +10 +20 +20 +40 +00 +00 +ENDCHAR +STARTCHAR char126 +ENCODING 126 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +28 +50 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 127 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 128 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 129 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 130 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 131 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 132 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 133 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 134 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 135 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 136 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 137 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 138 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 139 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 140 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 141 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 142 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 143 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 144 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 145 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 146 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 147 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 148 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 149 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 150 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 151 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 152 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 153 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 154 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 155 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 156 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 157 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 158 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char127 +ENCODING 159 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char160 +ENCODING 160 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char161 +ENCODING 161 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +00 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR char162 +ENCODING 162 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +10 +38 +50 +50 +38 +10 +00 +ENDCHAR +STARTCHAR char163 +ENCODING 163 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +40 +F0 +40 +40 +F8 +00 +ENDCHAR +STARTCHAR char164 +ENCODING 164 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +A8 +50 +88 +50 +A8 +00 +00 +ENDCHAR +STARTCHAR char165 +ENCODING 165 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +88 +50 +F8 +20 +F8 +20 +00 +00 +ENDCHAR +STARTCHAR char166 +ENCODING 166 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +20 +20 +00 +20 +20 +20 +00 +ENDCHAR +STARTCHAR char167 +ENCODING 167 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +38 +40 +30 +48 +30 +08 +70 +00 +ENDCHAR +STARTCHAR char168 +ENCODING 168 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +50 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char169 +ENCODING 169 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +78 +84 +94 +A4 +94 +84 +78 +00 +00 +ENDCHAR +STARTCHAR char170 +ENCODING 170 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +50 +30 +00 +70 +00 +00 +00 +ENDCHAR +STARTCHAR char171 +ENCODING 171 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +28 +50 +A0 +50 +28 +00 +00 +ENDCHAR +STARTCHAR char172 +ENCODING 172 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +78 +08 +08 +00 +00 +ENDCHAR +STARTCHAR char173 +ENCODING 173 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +78 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char174 +ENCODING 174 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +78 +84 +B4 +A4 +A4 +84 +78 +00 +00 +ENDCHAR +STARTCHAR char175 +ENCODING 175 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +78 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char176 +ENCODING 176 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +30 +48 +30 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char177 +ENCODING 177 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +20 +F8 +20 +20 +00 +F8 +00 +ENDCHAR +STARTCHAR char178 +ENCODING 178 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +50 +10 +20 +70 +00 +00 +00 +ENDCHAR +STARTCHAR char179 +ENCODING 179 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +60 +10 +20 +10 +60 +00 +00 +00 +ENDCHAR +STARTCHAR char180 +ENCODING 180 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +10 +20 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char181 +ENCODING 181 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +48 +48 +58 +68 +40 +00 +ENDCHAR +STARTCHAR char182 +ENCODING 182 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +78 +E8 +E8 +68 +28 +28 +00 +00 +ENDCHAR +STARTCHAR char183 +ENCODING 183 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR char184 +ENCODING 184 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +10 +20 +ENDCHAR +STARTCHAR char185 +ENCODING 185 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +60 +20 +20 +70 +00 +00 +00 +ENDCHAR +STARTCHAR char186 +ENCODING 186 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +20 +50 +20 +00 +70 +00 +00 +00 +ENDCHAR +STARTCHAR char187 +ENCODING 187 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +A0 +50 +28 +50 +A0 +00 +00 +ENDCHAR +STARTCHAR char188 +ENCODING 188 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +40 +C0 +40 +50 +70 +30 +78 +10 +00 +ENDCHAR +STARTCHAR char189 +ENCODING 189 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +40 +C0 +40 +50 +68 +08 +10 +38 +00 +ENDCHAR +STARTCHAR char190 +ENCODING 190 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +C0 +20 +40 +30 +F0 +30 +78 +10 +00 +ENDCHAR +STARTCHAR char191 +ENCODING 191 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +00 +10 +30 +40 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char192 +ENCODING 192 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +40 +20 +20 +50 +70 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char193 +ENCODING 193 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +20 +50 +70 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char194 +ENCODING 194 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +50 +20 +50 +70 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char195 +ENCODING 195 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +28 +50 +20 +50 +70 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char196 +ENCODING 196 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +50 +00 +20 +50 +70 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char197 +ENCODING 197 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +50 +20 +50 +70 +88 +88 +00 +00 +ENDCHAR +STARTCHAR char198 +ENCODING 198 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +78 +A0 +F0 +A0 +A0 +B8 +00 +00 +ENDCHAR +STARTCHAR char199 +ENCODING 199 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +40 +40 +48 +30 +10 +20 +ENDCHAR +STARTCHAR char200 +ENCODING 200 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +10 +78 +40 +70 +40 +78 +00 +00 +ENDCHAR +STARTCHAR char201 +ENCODING 201 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +78 +40 +70 +40 +78 +00 +00 +ENDCHAR +STARTCHAR char202 +ENCODING 202 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +28 +78 +40 +70 +40 +78 +00 +00 +ENDCHAR +STARTCHAR char203 +ENCODING 203 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +28 +00 +78 +40 +70 +40 +78 +00 +00 +ENDCHAR +STARTCHAR char204 +ENCODING 204 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +40 +20 +70 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char205 +ENCODING 205 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +70 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char206 +ENCODING 206 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +50 +70 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char207 +ENCODING 207 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +50 +00 +70 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char208 +ENCODING 208 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +48 +30 +38 +40 +58 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char209 +ENCODING 209 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +28 +50 +48 +68 +58 +48 +48 +00 +00 +ENDCHAR +STARTCHAR char210 +ENCODING 210 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +10 +30 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char211 +ENCODING 211 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +30 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char212 +ENCODING 212 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +28 +30 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char213 +ENCODING 213 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +28 +50 +30 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char214 +ENCODING 214 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +28 +00 +30 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char215 +ENCODING 215 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +88 +50 +20 +50 +88 +00 +00 +ENDCHAR +STARTCHAR char216 +ENCODING 216 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +08 +38 +58 +58 +68 +68 +70 +40 +00 +ENDCHAR +STARTCHAR char217 +ENCODING 217 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +10 +48 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char218 +ENCODING 218 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +48 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char219 +ENCODING 219 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +28 +48 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char220 +ENCODING 220 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +28 +00 +48 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char221 +ENCODING 221 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +00 +70 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char222 +ENCODING 222 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +20 +10 +48 +30 +10 +20 +ENDCHAR +STARTCHAR char223 +ENCODING 223 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +30 +48 +50 +50 +48 +50 +00 +00 +ENDCHAR +STARTCHAR char224 +ENCODING 224 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +10 +00 +38 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char225 +ENCODING 225 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +00 +38 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char226 +ENCODING 226 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +28 +00 +38 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char227 +ENCODING 227 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +28 +50 +00 +38 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char228 +ENCODING 228 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +28 +00 +38 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char229 +ENCODING 229 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +28 +10 +38 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char230 +ENCODING 230 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +70 +A8 +B0 +78 +00 +00 +ENDCHAR +STARTCHAR char231 +ENCODING 231 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +38 +40 +40 +38 +10 +20 +ENDCHAR +STARTCHAR char232 +ENCODING 232 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +10 +00 +30 +58 +60 +38 +00 +00 +ENDCHAR +STARTCHAR char233 +ENCODING 233 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +00 +30 +58 +60 +38 +00 +00 +ENDCHAR +STARTCHAR char234 +ENCODING 234 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +28 +00 +30 +58 +60 +38 +00 +00 +ENDCHAR +STARTCHAR char235 +ENCODING 235 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +28 +00 +30 +58 +60 +38 +00 +00 +ENDCHAR +STARTCHAR char236 +ENCODING 236 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +40 +20 +00 +60 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char237 +ENCODING 237 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +00 +60 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char238 +ENCODING 238 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +50 +00 +60 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char239 +ENCODING 239 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +50 +00 +60 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char240 +ENCODING 240 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +48 +30 +00 +30 +48 +48 +38 +08 +30 +ENDCHAR +STARTCHAR char241 +ENCODING 241 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +28 +50 +00 +70 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR char242 +ENCODING 242 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +10 +00 +30 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char243 +ENCODING 243 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +00 +30 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char244 +ENCODING 244 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +28 +00 +30 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char245 +ENCODING 245 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +28 +50 +00 +30 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char246 +ENCODING 246 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +28 +00 +30 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR char247 +ENCODING 247 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +20 +00 +F8 +00 +20 +00 +00 +ENDCHAR +STARTCHAR char248 +ENCODING 248 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +38 +58 +68 +70 +00 +00 +ENDCHAR +STARTCHAR char249 +ENCODING 249 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +20 +10 +00 +48 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char250 +ENCODING 250 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +20 +00 +48 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char251 +ENCODING 251 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +10 +28 +00 +48 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char252 +ENCODING 252 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +28 +00 +48 +48 +48 +38 +00 +00 +ENDCHAR +STARTCHAR char253 +ENCODING 253 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +60 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR char254 +ENCODING 254 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +00 +00 +38 +60 +18 +70 +10 +20 +ENDCHAR +STARTCHAR char255 +ENCODING 255 +SWIDTH 640 0 +DWIDTH 6 0 +BBX 6 9 0 -2 +BITMAP +00 +28 +00 +48 +48 +48 +38 +48 +30 +ENDCHAR +ENDFONT diff --git a/ui/fonts/fixed6x9.h b/ui/fonts/fixed6x9.h new file mode 100644 index 0000000..e959c6c --- /dev/null +++ b/ui/fonts/fixed6x9.h @@ -0,0 +1,261 @@ +/* -Misc-Fixed-Medium-R-Normal--9-90-75-75-C-60-ISO8859-9 */ +#define FONT_WIDTH_Fixed_6x9 6 +#define FONT_HEIGHT_Fixed_6x9 9 +const uint8_t FONT_DATA_Fixed_6x9[256][9] = { +{0x00,0x14,0x02,0x10,0x02,0x10,0x0a,0x00,0x00,}, +{0x00,0x00,0x0c,0x1e,0x3f,0x1e,0x0c,0x00,0x00,}, +{0x2a,0x15,0x2a,0x15,0x2a,0x15,0x2a,0x15,0x2a,}, +{0x00,0x05,0x07,0x05,0x00,0x1c,0x08,0x08,0x00,}, +{0x00,0x07,0x01,0x03,0x01,0x1c,0x04,0x0c,0x04,}, +{0x00,0x06,0x01,0x06,0x00,0x0c,0x14,0x0c,0x14,}, +{0x00,0x01,0x01,0x01,0x03,0x1c,0x04,0x0c,0x04,}, +{0x00,0x00,0x0c,0x12,0x0c,0x00,0x00,0x00,0x00,}, +{0x00,0x04,0x04,0x1f,0x04,0x04,0x00,0x1f,0x00,}, +{0x00,0x09,0x0b,0x0d,0x09,0x04,0x04,0x04,0x1c,}, +{0x00,0x05,0x05,0x02,0x02,0x1c,0x08,0x08,0x08,}, +{0x08,0x08,0x08,0x08,0x0f,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x0f,0x08,0x08,0x08,0x08,}, +{0x00,0x00,0x00,0x00,0x38,0x08,0x08,0x08,0x08,}, +{0x08,0x08,0x08,0x08,0x38,0x00,0x00,0x00,0x00,}, +{0x08,0x08,0x08,0x08,0x3f,0x08,0x08,0x08,0x08,}, +{0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,}, +{0x08,0x08,0x08,0x08,0x38,0x08,0x08,0x08,0x08,}, +{0x08,0x08,0x08,0x08,0x0f,0x08,0x08,0x08,0x08,}, +{0x08,0x08,0x08,0x08,0x3f,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x3f,0x08,0x08,0x08,0x08,}, +{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,}, +{0x00,0x18,0x06,0x01,0x06,0x19,0x06,0x18,0x00,}, +{0x00,0x03,0x0c,0x10,0x0c,0x13,0x0c,0x03,0x00,}, +{0x00,0x00,0x00,0x1f,0x0a,0x0a,0x0a,0x00,0x00,}, +{0x00,0x00,0x08,0x1f,0x04,0x1f,0x02,0x00,0x00,}, +{0x00,0x0c,0x12,0x02,0x0f,0x02,0x02,0x1f,0x00,}, +{0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x04,0x04,0x04,0x04,0x00,0x04,0x00,0x00,}, +{0x00,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x0a,0x0a,0x1f,0x0a,0x1f,0x0a,0x0a,0x00,}, +{0x04,0x0e,0x15,0x05,0x0e,0x14,0x15,0x0e,0x04,}, +{0x02,0x15,0x12,0x08,0x04,0x12,0x2a,0x10,0x00,}, +{0x00,0x06,0x09,0x09,0x06,0x19,0x09,0x16,0x00,}, +{0x00,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x08,0x04,0x04,0x04,0x04,0x04,0x08,0x00,}, +{0x00,0x04,0x08,0x08,0x08,0x08,0x08,0x04,0x00,}, +{0x00,0x00,0x11,0x0a,0x1f,0x0a,0x11,0x00,0x00,}, +{0x00,0x00,0x04,0x04,0x1f,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0c,0x08,0x08,0x04,}, +{0x00,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,}, +{0x00,0x10,0x10,0x08,0x04,0x02,0x02,0x00,0x00,}, +{0x00,0x0c,0x12,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x00,0x04,0x06,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x0c,0x12,0x10,0x08,0x04,0x1e,0x00,0x00,}, +{0x00,0x1e,0x08,0x0c,0x10,0x10,0x0e,0x00,0x00,}, +{0x00,0x08,0x0c,0x0a,0x09,0x1f,0x08,0x00,0x00,}, +{0x00,0x1e,0x02,0x0e,0x10,0x10,0x0e,0x00,0x00,}, +{0x00,0x0c,0x02,0x0e,0x12,0x12,0x0c,0x00,0x00,}, +{0x00,0x1e,0x10,0x10,0x08,0x04,0x04,0x00,0x00,}, +{0x00,0x0c,0x12,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{0x00,0x0c,0x12,0x12,0x1c,0x10,0x0c,0x00,0x00,}, +{0x00,0x00,0x0c,0x0c,0x00,0x0c,0x0c,0x00,0x00,}, +{0x00,0x00,0x0c,0x0c,0x00,0x0c,0x08,0x08,0x04,}, +{0x00,0x00,0x18,0x06,0x01,0x06,0x18,0x00,0x00,}, +{0x00,0x00,0x00,0x1f,0x00,0x1f,0x00,0x00,0x00,}, +{0x00,0x00,0x03,0x0c,0x10,0x0c,0x03,0x00,0x00,}, +{0x0c,0x12,0x10,0x0c,0x04,0x00,0x04,0x00,0x00,}, +{0x00,0x0e,0x09,0x15,0x0d,0x01,0x0e,0x00,0x00,}, +{0x00,0x04,0x0a,0x11,0x1f,0x11,0x11,0x00,0x00,}, +{0x00,0x0f,0x11,0x0f,0x11,0x11,0x0f,0x00,0x00,}, +{0x00,0x0c,0x12,0x02,0x02,0x12,0x0c,0x00,0x00,}, +{0x00,0x0e,0x12,0x12,0x12,0x12,0x0e,0x00,0x00,}, +{0x00,0x1e,0x02,0x0e,0x02,0x02,0x1e,0x00,0x00,}, +{0x00,0x1e,0x02,0x0e,0x02,0x02,0x02,0x00,0x00,}, +{0x00,0x0c,0x12,0x02,0x1a,0x12,0x0c,0x00,0x00,}, +{0x00,0x12,0x12,0x1e,0x12,0x12,0x12,0x00,0x00,}, +{0x00,0x0e,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x1c,0x08,0x08,0x08,0x09,0x06,0x00,0x00,}, +{0x00,0x12,0x0a,0x06,0x0a,0x12,0x12,0x00,0x00,}, +{0x00,0x02,0x02,0x02,0x02,0x02,0x1e,0x00,0x00,}, +{0x00,0x11,0x1b,0x15,0x15,0x11,0x11,0x00,0x00,}, +{0x00,0x12,0x16,0x1a,0x12,0x12,0x12,0x00,0x00,}, +{0x00,0x0e,0x11,0x11,0x11,0x11,0x0e,0x00,0x00,}, +{0x00,0x0e,0x12,0x12,0x0e,0x02,0x02,0x00,0x00,}, +{0x00,0x0c,0x12,0x12,0x16,0x1a,0x0c,0x10,0x00,}, +{0x00,0x0e,0x12,0x12,0x0e,0x12,0x12,0x00,0x00,}, +{0x00,0x0c,0x12,0x04,0x08,0x12,0x0c,0x00,0x00,}, +{0x00,0x1f,0x04,0x04,0x04,0x04,0x04,0x00,0x00,}, +{0x00,0x12,0x12,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x00,0x12,0x12,0x12,0x1e,0x0c,0x0c,0x00,0x00,}, +{0x00,0x11,0x11,0x15,0x15,0x1b,0x11,0x00,0x00,}, +{0x00,0x11,0x0a,0x04,0x04,0x0a,0x11,0x00,0x00,}, +{0x00,0x11,0x11,0x0a,0x04,0x04,0x04,0x00,0x00,}, +{0x00,0x1e,0x10,0x08,0x04,0x02,0x1e,0x00,0x00,}, +{0x00,0x0e,0x02,0x02,0x02,0x02,0x0e,0x00,0x00,}, +{0x00,0x02,0x02,0x04,0x08,0x10,0x10,0x00,0x00,}, +{0x00,0x0e,0x08,0x08,0x08,0x08,0x0e,0x00,0x00,}, +{0x00,0x04,0x0a,0x11,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,}, +{0x00,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x1c,0x12,0x12,0x1c,0x00,0x00,}, +{0x00,0x02,0x02,0x0e,0x12,0x12,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x1c,0x02,0x02,0x1c,0x00,0x00,}, +{0x00,0x10,0x10,0x1c,0x12,0x12,0x1c,0x00,0x00,}, +{0x00,0x00,0x00,0x0c,0x1a,0x06,0x1c,0x00,0x00,}, +{0x00,0x08,0x14,0x04,0x0e,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x00,0x0c,0x12,0x12,0x1c,0x10,0x0c,}, +{0x00,0x02,0x02,0x0e,0x12,0x12,0x12,0x00,0x00,}, +{0x00,0x04,0x00,0x06,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x08,0x00,0x0c,0x08,0x08,0x08,0x0a,0x04,}, +{0x00,0x02,0x02,0x0a,0x06,0x0a,0x12,0x00,0x00,}, +{0x00,0x06,0x04,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x0b,0x15,0x15,0x11,0x00,0x00,}, +{0x00,0x00,0x00,0x0e,0x12,0x12,0x12,0x00,0x00,}, +{0x00,0x00,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{0x00,0x00,0x00,0x0e,0x12,0x12,0x0e,0x02,0x02,}, +{0x00,0x00,0x00,0x1c,0x12,0x12,0x1c,0x10,0x10,}, +{0x00,0x00,0x00,0x0a,0x16,0x02,0x02,0x00,0x00,}, +{0x00,0x00,0x00,0x1c,0x06,0x18,0x0e,0x00,0x00,}, +{0x00,0x04,0x04,0x0e,0x04,0x14,0x08,0x00,0x00,}, +{0x00,0x00,0x00,0x12,0x12,0x12,0x1c,0x00,0x00,}, +{0x00,0x00,0x00,0x12,0x12,0x0c,0x0c,0x00,0x00,}, +{0x00,0x00,0x00,0x11,0x15,0x15,0x0a,0x00,0x00,}, +{0x00,0x00,0x00,0x12,0x0c,0x0c,0x12,0x00,0x00,}, +{0x00,0x00,0x00,0x12,0x12,0x12,0x1c,0x12,0x0c,}, +{0x00,0x00,0x00,0x1e,0x08,0x04,0x1e,0x00,0x00,}, +{0x08,0x04,0x04,0x02,0x04,0x04,0x08,0x00,0x00,}, +{0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,}, +{0x02,0x04,0x04,0x08,0x04,0x04,0x02,0x00,0x00,}, +{0x00,0x00,0x14,0x0a,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x04,0x00,0x04,0x04,0x04,0x04,0x00,0x00,}, +{0x00,0x00,0x08,0x1c,0x0a,0x0a,0x1c,0x08,0x00,}, +{0x00,0x0c,0x12,0x02,0x0f,0x02,0x02,0x1f,0x00,}, +{0x00,0x00,0x15,0x0a,0x11,0x0a,0x15,0x00,0x00,}, +{0x00,0x11,0x0a,0x1f,0x04,0x1f,0x04,0x00,0x00,}, +{0x00,0x04,0x04,0x04,0x00,0x04,0x04,0x04,0x00,}, +{0x00,0x1c,0x02,0x0c,0x12,0x0c,0x10,0x0e,0x00,}, +{0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x1e,0x21,0x29,0x25,0x29,0x21,0x1e,0x00,0x00,}, +{0x00,0x0c,0x0a,0x0c,0x00,0x0e,0x00,0x00,0x00,}, +{0x00,0x00,0x14,0x0a,0x05,0x0a,0x14,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x1e,0x10,0x10,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,}, +{0x1e,0x21,0x2d,0x25,0x25,0x21,0x1e,0x00,0x00,}, +{0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x0c,0x12,0x0c,0x00,0x00,0x00,0x00,}, +{0x00,0x04,0x04,0x1f,0x04,0x04,0x00,0x1f,0x00,}, +{0x00,0x04,0x0a,0x08,0x04,0x0e,0x00,0x00,0x00,}, +{0x00,0x06,0x08,0x04,0x08,0x06,0x00,0x00,0x00,}, +{0x00,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x12,0x12,0x1a,0x16,0x02,0x00,}, +{0x00,0x1e,0x17,0x17,0x16,0x14,0x14,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x04,}, +{0x00,0x04,0x06,0x04,0x04,0x0e,0x00,0x00,0x00,}, +{0x00,0x04,0x0a,0x04,0x00,0x0e,0x00,0x00,0x00,}, +{0x00,0x00,0x05,0x0a,0x14,0x0a,0x05,0x00,0x00,}, +{0x02,0x03,0x02,0x0a,0x0e,0x0c,0x1e,0x08,0x00,}, +{0x02,0x03,0x02,0x0a,0x16,0x10,0x08,0x1c,0x00,}, +{0x03,0x04,0x02,0x0c,0x0f,0x0c,0x1e,0x08,0x00,}, +{0x08,0x00,0x08,0x0c,0x02,0x12,0x0c,0x00,0x00,}, +{0x02,0x04,0x04,0x0a,0x0e,0x11,0x11,0x00,0x00,}, +{0x08,0x04,0x04,0x0a,0x0e,0x11,0x11,0x00,0x00,}, +{0x04,0x0a,0x04,0x0a,0x0e,0x11,0x11,0x00,0x00,}, +{0x14,0x0a,0x04,0x0a,0x0e,0x11,0x11,0x00,0x00,}, +{0x0a,0x00,0x04,0x0a,0x0e,0x11,0x11,0x00,0x00,}, +{0x04,0x0a,0x04,0x0a,0x0e,0x11,0x11,0x00,0x00,}, +{0x00,0x1e,0x05,0x0f,0x05,0x05,0x1d,0x00,0x00,}, +{0x00,0x0c,0x12,0x02,0x02,0x12,0x0c,0x08,0x04,}, +{0x04,0x08,0x1e,0x02,0x0e,0x02,0x1e,0x00,0x00,}, +{0x08,0x04,0x1e,0x02,0x0e,0x02,0x1e,0x00,0x00,}, +{0x08,0x14,0x1e,0x02,0x0e,0x02,0x1e,0x00,0x00,}, +{0x14,0x00,0x1e,0x02,0x0e,0x02,0x1e,0x00,0x00,}, +{0x02,0x04,0x0e,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x08,0x04,0x0e,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x04,0x0a,0x0e,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x0a,0x00,0x0e,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x12,0x0c,0x1c,0x02,0x1a,0x12,0x0c,0x00,0x00,}, +{0x14,0x0a,0x12,0x16,0x1a,0x12,0x12,0x00,0x00,}, +{0x04,0x08,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x08,0x04,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x08,0x14,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x14,0x0a,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x14,0x00,0x0c,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x00,0x00,0x11,0x0a,0x04,0x0a,0x11,0x00,0x00,}, +{0x10,0x1c,0x1a,0x1a,0x16,0x16,0x0e,0x02,0x00,}, +{0x04,0x08,0x12,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x08,0x04,0x12,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x08,0x14,0x12,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x14,0x00,0x12,0x12,0x12,0x12,0x0c,0x00,0x00,}, +{0x04,0x00,0x0e,0x04,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x0c,0x12,0x04,0x08,0x12,0x0c,0x08,0x04,}, +{0x00,0x0c,0x12,0x0a,0x0a,0x12,0x0a,0x00,0x00,}, +{0x04,0x08,0x00,0x1c,0x12,0x12,0x1c,0x00,0x00,}, +{0x08,0x04,0x00,0x1c,0x12,0x12,0x1c,0x00,0x00,}, +{0x08,0x14,0x00,0x1c,0x12,0x12,0x1c,0x00,0x00,}, +{0x14,0x0a,0x00,0x1c,0x12,0x12,0x1c,0x00,0x00,}, +{0x00,0x14,0x00,0x1c,0x12,0x12,0x1c,0x00,0x00,}, +{0x08,0x14,0x08,0x1c,0x12,0x12,0x1c,0x00,0x00,}, +{0x00,0x00,0x00,0x0e,0x15,0x0d,0x1e,0x00,0x00,}, +{0x00,0x00,0x00,0x1c,0x02,0x02,0x1c,0x08,0x04,}, +{0x04,0x08,0x00,0x0c,0x1a,0x06,0x1c,0x00,0x00,}, +{0x08,0x04,0x00,0x0c,0x1a,0x06,0x1c,0x00,0x00,}, +{0x08,0x14,0x00,0x0c,0x1a,0x06,0x1c,0x00,0x00,}, +{0x00,0x14,0x00,0x0c,0x1a,0x06,0x1c,0x00,0x00,}, +{0x02,0x04,0x00,0x06,0x04,0x04,0x0e,0x00,0x00,}, +{0x08,0x04,0x00,0x06,0x04,0x04,0x0e,0x00,0x00,}, +{0x04,0x0a,0x00,0x06,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x0a,0x00,0x06,0x04,0x04,0x0e,0x00,0x00,}, +{0x12,0x0c,0x00,0x0c,0x12,0x12,0x1c,0x10,0x0c,}, +{0x14,0x0a,0x00,0x0e,0x12,0x12,0x12,0x00,0x00,}, +{0x04,0x08,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{0x08,0x04,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{0x08,0x14,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{0x14,0x0a,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{0x00,0x14,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,}, +{0x00,0x00,0x04,0x00,0x1f,0x00,0x04,0x00,0x00,}, +{0x00,0x00,0x00,0x1c,0x1a,0x16,0x0e,0x00,0x00,}, +{0x04,0x08,0x00,0x12,0x12,0x12,0x1c,0x00,0x00,}, +{0x08,0x04,0x00,0x12,0x12,0x12,0x1c,0x00,0x00,}, +{0x08,0x14,0x00,0x12,0x12,0x12,0x1c,0x00,0x00,}, +{0x00,0x14,0x00,0x12,0x12,0x12,0x1c,0x00,0x00,}, +{0x00,0x00,0x00,0x06,0x04,0x04,0x0e,0x00,0x00,}, +{0x00,0x00,0x00,0x1c,0x06,0x18,0x0e,0x08,0x04,}, +{0x00,0x14,0x00,0x12,0x12,0x12,0x1c,0x12,0x0c,}, +}; diff --git a/ui/fonts/lcd13x21.bdf b/ui/fonts/lcd13x21.bdf new file mode 100644 index 0000000..f0240c8 --- /dev/null +++ b/ui/fonts/lcd13x21.bdf @@ -0,0 +1,316 @@ +STARTFONT 2.1 +COMMENT Nicole Watch font +FONT -gbdfed-LCD-Medium-R-Normal--16-120-96-96-M-100-FontSpecific-0 +SIZE 13 96 96 +FONTBOUNDINGBOX 13 21 0 0 +STARTPROPERTIES 6 +PIXEL_SIZE 16 +SPACING "M" +FAMILY_NAME "LCD" +_GBDFED_INFO "Edited with gbdfed 1.6." +FONT_ASCENT 16 +FONT_DESCENT 0 +ENDPROPERTIES +CHARS 12 +STARTCHAR char0 +ENCODING 0 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 12 21 0 0 +BITMAP +7FE0 +BFD0 +DFB0 +E070 +E070 +E070 +E070 +E070 +C030 +8010 +0000 +8010 +C030 +E070 +E070 +E070 +E070 +E070 +DFB0 +BFD0 +7FE0 +ENDCHAR +STARTCHAR char0 +ENCODING 1 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 3 19 9 1 +BITMAP +20 +60 +E0 +E0 +E0 +E0 +E0 +60 +20 +00 +20 +60 +E0 +E0 +E0 +E0 +E0 +60 +20 +ENDCHAR +STARTCHAR char0 +ENCODING 2 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 12 21 0 0 +BITMAP +7FE0 +3FD0 +1FB0 +0070 +0070 +0070 +0070 +0070 +0030 +1F90 +3FC0 +9F80 +C000 +E000 +E000 +E000 +E000 +E000 +DF80 +BFC0 +7FE0 +ENDCHAR +STARTCHAR char0 +ENCODING 3 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 11 21 1 0 +BITMAP +FFC0 +7FA0 +3F60 +00E0 +00E0 +00E0 +00E0 +00E0 +0060 +3F20 +7F80 +3F20 +0060 +00E0 +00E0 +00E0 +00E0 +00E0 +3F60 +7FA0 +FFC0 +ENDCHAR +STARTCHAR char0 +ENCODING 4 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 12 19 0 1 +BITMAP +8010 +C030 +E070 +E070 +E070 +E070 +E070 +C030 +9F90 +3FC0 +1F90 +0030 +0070 +0070 +0070 +0070 +0070 +0030 +0010 +ENDCHAR +STARTCHAR char0 +ENCODING 5 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 12 21 0 0 +BITMAP +7FE0 +BFC0 +DF80 +E000 +E000 +E000 +E000 +E000 +C000 +9F80 +3FC0 +1F90 +0030 +0070 +0070 +0070 +0070 +0070 +1FB0 +3FD0 +7FE0 +ENDCHAR +STARTCHAR char0 +ENCODING 6 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 12 21 0 0 +BITMAP +7FE0 +BFC0 +DF80 +E000 +E000 +E000 +E000 +E000 +C000 +9F80 +3FC0 +9F90 +C030 +E070 +E070 +E070 +E070 +E070 +DFB0 +BFD0 +7FE0 +ENDCHAR +STARTCHAR char0 +ENCODING 7 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 11 20 1 1 +BITMAP +FFC0 +7FA0 +3F60 +00E0 +00E0 +00E0 +00E0 +00E0 +0060 +0020 +0000 +0020 +0060 +00E0 +00E0 +00E0 +00E0 +00E0 +0060 +0020 +ENDCHAR +STARTCHAR char0 +ENCODING 8 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 12 21 0 0 +BITMAP +7FE0 +BFD0 +DFB0 +E070 +E070 +E070 +E070 +E070 +C030 +9F90 +3FC0 +9F90 +C030 +E070 +E070 +E070 +E070 +E070 +DFB0 +BFD0 +7FE0 +ENDCHAR +STARTCHAR char0 +ENCODING 9 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 12 21 0 0 +BITMAP +7FE0 +BFD0 +DFB0 +E070 +E070 +E070 +E070 +E070 +C030 +9F90 +3FC0 +1F90 +0030 +0070 +0070 +0070 +0070 +0070 +1FB0 +3FD0 +7FE0 +ENDCHAR +STARTCHAR char0 +ENCODING 10 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 4 11 4 5 +BITMAP +60 +F0 +60 +00 +00 +00 +00 +00 +60 +F0 +60 +ENDCHAR +STARTCHAR char11 +ENCODING 11 +SWIDTH 750 0 +DWIDTH 13 0 +BBX 13 1 0 0 +BITMAP +FFF8 +ENDCHAR +ENDFONT diff --git a/ui/fonts/lcd13x21.h b/ui/fonts/lcd13x21.h new file mode 100644 index 0000000..b89aac8 --- /dev/null +++ b/ui/fonts/lcd13x21.h @@ -0,0 +1,17 @@ +/* -gbdfed-LCD-Medium-R-Normal--16-120-96-96-M-100-FontSpecific-0 */ +#define FONT_WIDTH_LCDnone_13x21 13 +#define FONT_HEIGHT_LCDnone_13x21 21 +const uint8_t FONT_DATA_LCDnone_13x21[12][42] = { +{0xfe,0x07,0xfd,0x0b,0xfb,0x0d,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x03,0x0c,0x01,0x08,0x00,0x00,0x01,0x08,0x03,0x0c,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0xfb,0x0d,0xfd,0x0b,0xfe,0x07,}, +{0x00,0x00,0x00,0x08,0x00,0x0c,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0c,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x0c,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0c,0x00,0x08,0x00,0x00,}, +{0xfe,0x07,0xfc,0x0b,0xf8,0x0d,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0c,0xf8,0x09,0xfc,0x03,0xf9,0x01,0x03,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0xfb,0x01,0xfd,0x03,0xfe,0x07,}, +{0xfe,0x07,0xfc,0x0b,0xf8,0x0d,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0c,0xf8,0x09,0xfc,0x03,0xf8,0x09,0x00,0x0c,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0xf8,0x0d,0xfc,0x0b,0xfe,0x07,}, +{0x00,0x00,0x01,0x08,0x03,0x0c,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x03,0x0c,0xf9,0x09,0xfc,0x03,0xf8,0x09,0x00,0x0c,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0c,0x00,0x08,0x00,0x00,}, +{0xfe,0x07,0xfd,0x03,0xfb,0x01,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x03,0x00,0xf9,0x01,0xfc,0x03,0xf8,0x09,0x00,0x0c,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0xf8,0x0d,0xfc,0x0b,0xfe,0x07,}, +{0xfe,0x07,0xfd,0x03,0xfb,0x01,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x03,0x00,0xf9,0x01,0xfc,0x03,0xf9,0x09,0x03,0x0c,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0xfb,0x0d,0xfd,0x0b,0xfe,0x07,}, +{0xfe,0x07,0xfc,0x0b,0xf8,0x0d,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0c,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x0c,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0c,0x00,0x08,0x00,0x00,}, +{0xfe,0x07,0xfd,0x0b,0xfb,0x0d,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x03,0x0c,0xf9,0x09,0xfc,0x03,0xf9,0x09,0x03,0x0c,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0xfb,0x0d,0xfd,0x0b,0xfe,0x07,}, +{0xfe,0x07,0xfd,0x0b,0xfb,0x0d,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x03,0x0c,0xf9,0x09,0xfc,0x03,0xf8,0x09,0x00,0x0c,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x0e,0xf8,0x0d,0xfc,0x0b,0xfe,0x07,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xf0,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xf0,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x1f,}, +}; diff --git a/ui/fonts/lcd8x13.bdf b/ui/fonts/lcd8x13.bdf new file mode 100644 index 0000000..e19ecf4 --- /dev/null +++ b/ui/fonts/lcd8x13.bdf @@ -0,0 +1,229 @@ +STARTFONT 2.1 +FONT -gbdfed-LCD-Medium-R-Normal--13-120-96-96-M-100-FontSpecific-0 +SIZE 12 96 96 +FONTBOUNDINGBOX 8 13 0 0 +STARTPROPERTIES 6 +PIXEL_SIZE 13 +FONT_ASCENT 13 +FONT_DESCENT 0 +SPACING "M" +_GBDFED_INFO "Edited with gbdfed 1.6." +FAMILY_NAME "LCD" +ENDPROPERTIES +CHARS 12 +STARTCHAR char16 +ENCODING 0 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 7 13 0 0 +BITMAP +7C +BA +C6 +C6 +C6 +82 +00 +82 +C6 +C6 +C6 +BA +7C +ENDCHAR +STARTCHAR char16 +ENCODING 1 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 2 11 5 1 +BITMAP +40 +C0 +C0 +C0 +40 +00 +40 +C0 +C0 +C0 +40 +ENDCHAR +STARTCHAR char16 +ENCODING 2 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 7 13 0 0 +BITMAP +7C +3A +06 +06 +06 +3A +7C +B8 +C0 +C0 +C0 +B8 +7C +ENDCHAR +STARTCHAR char16 +ENCODING 3 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 6 13 1 0 +BITMAP +F8 +74 +0C +0C +0C +74 +F8 +74 +0C +0C +0C +74 +F8 +ENDCHAR +STARTCHAR char16 +ENCODING 4 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 7 11 0 1 +BITMAP +82 +C6 +C6 +C6 +BA +7C +3A +06 +06 +06 +02 +ENDCHAR +STARTCHAR char16 +ENCODING 5 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 7 13 0 0 +BITMAP +7C +B8 +C0 +C0 +C0 +B8 +7C +3A +06 +06 +06 +3A +7C +ENDCHAR +STARTCHAR char16 +ENCODING 6 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 7 13 0 0 +BITMAP +7C +B8 +C0 +C0 +C0 +B8 +7C +BA +C6 +C6 +C6 +BA +7C +ENDCHAR +STARTCHAR char16 +ENCODING 7 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 6 12 1 1 +BITMAP +F8 +74 +0C +0C +0C +04 +00 +04 +0C +0C +0C +04 +ENDCHAR +STARTCHAR char16 +ENCODING 8 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 7 13 0 0 +BITMAP +7C +BA +C6 +C6 +C6 +BA +7C +BA +C6 +C6 +C6 +BA +7C +ENDCHAR +STARTCHAR char16 +ENCODING 9 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 7 13 0 0 +BITMAP +7C +BA +C6 +C6 +C6 +BA +7C +3A +06 +06 +06 +3A +7C +ENDCHAR +STARTCHAR char16 +ENCODING 10 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 2 5 3 4 +BITMAP +C0 +C0 +00 +C0 +C0 +ENDCHAR +STARTCHAR char16 +ENCODING 11 +SWIDTH 500 0 +DWIDTH 8 0 +BBX 8 1 0 0 +BITMAP +FF +ENDCHAR +ENDFONT diff --git a/ui/fonts/lcd8x13.h b/ui/fonts/lcd8x13.h new file mode 100644 index 0000000..efb6705 --- /dev/null +++ b/ui/fonts/lcd8x13.h @@ -0,0 +1,17 @@ +/* -gbdfed-LCD-Medium-R-Normal--13-120-96-96-M-100-FontSpecific-0 */ +#define FONT_WIDTH_LCDnone_8x13 8 +#define FONT_HEIGHT_LCDnone_8x13 13 +const uint8_t FONT_DATA_LCDnone_8x13[12][13] = { +{0x3e,0x5d,0x63,0x63,0x63,0x41,0x00,0x41,0x63,0x63,0x63,0x5d,0x3e,}, +{0x00,0x40,0x60,0x60,0x60,0x40,0x00,0x40,0x60,0x60,0x60,0x40,0x00,}, +{0x3e,0x5c,0x60,0x60,0x60,0x5c,0x3e,0x1d,0x03,0x03,0x03,0x1d,0x3e,}, +{0x3e,0x5c,0x60,0x60,0x60,0x5c,0x3e,0x5c,0x60,0x60,0x60,0x5c,0x3e,}, +{0x00,0x41,0x63,0x63,0x63,0x5d,0x3e,0x5c,0x60,0x60,0x60,0x40,0x00,}, +{0x3e,0x1d,0x03,0x03,0x03,0x1d,0x3e,0x5c,0x60,0x60,0x60,0x5c,0x3e,}, +{0x3e,0x1d,0x03,0x03,0x03,0x1d,0x3e,0x5d,0x63,0x63,0x63,0x5d,0x3e,}, +{0x3e,0x5c,0x60,0x60,0x60,0x40,0x00,0x40,0x60,0x60,0x60,0x40,0x00,}, +{0x3e,0x5d,0x63,0x63,0x63,0x5d,0x3e,0x5d,0x63,0x63,0x63,0x5d,0x3e,}, +{0x3e,0x5d,0x63,0x63,0x63,0x5d,0x3e,0x5c,0x60,0x60,0x60,0x5c,0x3e,}, +{0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00,}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,}, +}; diff --git a/ui/oswald-ui.c b/ui/oswald-ui.c new file mode 100644 index 0000000..74d5676 --- /dev/null +++ b/ui/oswald-ui.c @@ -0,0 +1,533 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +//#include "Fonts.h" // the MetaWatch fonts +#include "oswald.h" +#include "oswald_main.h" + +#include "oswald-ui.h" + +#define BITMAP_WIDTH 192 +#define BITMAP_HEIGHT 192 + +static oswald_ui *ui_g; + +void hal_lcd_set_pixel(gint x, gint y, uint8_t state) +{ + gint ix, iy; + + ix = x*2; + iy = y*2; + + // we double all pixel to get a bigger picture + gdk_draw_point(GDK_DRAWABLE(ui_g->pixmap), state ? ui_g->darea->style->black_gc : ui_g->darea->style->white_gc, ix, iy); + gdk_draw_point(GDK_DRAWABLE(ui_g->pixmap), state ? ui_g->darea->style->black_gc : ui_g->darea->style->white_gc, ix+1, iy); + gdk_draw_point(GDK_DRAWABLE(ui_g->pixmap), state ? ui_g->darea->style->black_gc : ui_g->darea->style->white_gc, ix, iy+1); + gdk_draw_point(GDK_DRAWABLE(ui_g->pixmap), state ? ui_g->darea->style->black_gc : ui_g->darea->style->white_gc, ix+1, iy+1); + +} + +/* updates the actual LCD so that drawing becomes visible */ +void hal_lcd_update_display(void) +{ + gtk_widget_queue_draw(ui_g->darea); +} + +void hal_lcd_clear_display(void) +{ + gdk_draw_rectangle (ui_g->pixmap, + ui_g->darea->style->white_gc, + TRUE, + 0, 0, + ui_g->darea->allocation.width, + ui_g->darea->allocation.height); + + gtk_widget_queue_draw(ui_g->darea); +} + +static bluetooth_state bt_state = BLUETOOTH_OFF; +static boolean bt_visible = FALSE; + +bluetooth_state hal_bluetooth_set_state(bluetooth_state state) +{ + bt_state = state; + if (bt_state == BLUETOOTH_OFF) + bt_visible = FALSE; + + return bt_state; +} + +bluetooth_state hal_bluetooth_get_state(void) +{ + return bt_state; +} + +uint8_t *hal_bluetooth_get_local_bdaddr(void) +{ + static uint8_t local_bdaddr[6] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55}; + + return local_bdaddr; +} + +void hal_bluetooth_set_visible(boolean visible) +{ + bt_visible = visible; +} + +boolean hal_bluetooth_get_visible(void) +{ + return bt_visible; +} + +void hal_bluetooth_send_data(const void *mdat, uint16_t mlen) +{ + g_printerr("write comm %d\n", mlen); +} + +const char *hal_get_version_string(void) +{ + return "GTK v0.3"; +} + +const char *hal_get_buildno_string(void) +{ + return BUILDNO; +} + +const char *hal_get_radio_version_string(void) +{ + return "BlueZ"; +} + +void hal_accelerometer_enable(void) +{ + g_printerr("accel enable\n"); + gtk_widget_set_sensitive(ui_g->x_sc, TRUE); + gtk_widget_set_sensitive(ui_g->y_sc, TRUE); + gtk_widget_set_sensitive(ui_g->z_sc, TRUE); +} + +void hal_accelerometer_disable(void) +{ + g_printerr("accel disable\n"); + gtk_widget_set_sensitive(ui_g->x_sc, FALSE); + gtk_widget_set_sensitive(ui_g->y_sc, FALSE); + gtk_widget_set_sensitive(ui_g->z_sc, FALSE); +} + + +static gint +configure_event (GtkWidget *widget, GdkEventConfigure *event, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + + if (ui->pixmap) + gdk_pixmap_unref(ui->pixmap); + + ui->pixmap = gdk_pixmap_new(widget->window, + widget->allocation.width, + widget->allocation.height, + -1); + gdk_draw_rectangle (ui->pixmap, + widget->style->white_gc, + TRUE, + 0, 0, + widget->allocation.width, + widget->allocation.height); + + return TRUE; +} + +static gint +expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + + gdk_draw_pixmap(widget->window, + widget->style->fg_gc[GTK_WIDGET_STATE (widget)], + ui->pixmap, + event->area.x, event->area.y, + event->area.x, event->area.y, + event->area.width, event->area.height); + + return FALSE; +} + +void button_A_clicked (GtkButton *button, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + + // g_print("Button-A clicked\n"); + oswald_handle_button_press(BUTTON_A); +} + +void button_B_clicked (GtkButton *button, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + + // g_print("Button-B clicked\n"); + oswald_handle_button_press(BUTTON_B); +} + +void button_C_clicked (GtkButton *button, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + + // g_print("Button-C clicked\n"); + oswald_handle_button_press(BUTTON_C); +} + +void button_D_clicked (GtkButton *button, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + + // g_print("Button-D clicked\n"); + oswald_handle_button_press(BUTTON_D); +} + +void button_E_clicked (GtkButton *button, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + + // g_print("Button-E clicked\n"); + oswald_handle_button_press(BUTTON_E); +} + +void button_F_clicked (GtkButton *button, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + + // g_print("Button-F clicked\n"); + oswald_handle_button_press(BUTTON_F); +} + +gboolean button_F_pr (GtkWidget *widget, GdkEvent *event, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + static gint32 press_time; + + GdkEventButton *bev = (GdkEventButton *)event; + if (bev->type == GDK_BUTTON_PRESS) { + press_time = bev->time; + return FALSE; + }; + if (bev->type == GDK_BUTTON_RELEASE) { + if (bev->time > (press_time+1000)) { + g_print("Button-F long press\n"); + return TRUE; + }; + }; + + return FALSE; +} + +void ambientlight_value_changed (GtkRange *range, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + double val; + + val = gtk_range_get_value(range); + oswald_handle_ambientlight_event((uint8_t) val); +} + +void accelX_value_changed (GtkRange *range, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + double val; + + val = gtk_range_get_value(range); + ui->accel_x = (uint8_t)val; + oswald_handle_accel_event(ui->accel_x, ui->accel_y, ui->accel_z); +} + +void accelY_value_changed (GtkRange *range, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + double val; + + val = gtk_range_get_value(range); + ui->accel_y = (uint8_t)val; + oswald_handle_accel_event(ui->accel_x, ui->accel_y, ui->accel_z); +} + +void accelZ_value_changed (GtkRange *range, gpointer user_data) +{ + oswald_ui *ui = (oswald_ui *)user_data; + double val; + + val = gtk_range_get_value(range); + ui->accel_z = (uint8_t)val; + oswald_handle_accel_event(ui->accel_x, ui->accel_y, ui->accel_z); +} + +static void create_mainwin(oswald_ui *ui) +{ + GtkWidget *mvb, *hb, *vb, *btn, *sc, *l; + + ui->pixmap = NULL; + + ui->mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL); + // gtk_window_set_default_size (GTK_WINDOW (ui->mainwin), 440, 240); + g_signal_connect(G_OBJECT(ui->mainwin), "destroy", gtk_main_quit, NULL); + + mvb = gtk_vbox_new(FALSE, 5); + gtk_container_add(GTK_CONTAINER(ui->mainwin), mvb); + + hb = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start (GTK_BOX(mvb), hb, FALSE, FALSE, 5); + + vb = gtk_vbox_new(FALSE, 5); + gtk_box_pack_start (GTK_BOX(hb), vb, FALSE, FALSE, 5); + + btn = gtk_button_new_with_label(" F "); + gtk_box_pack_start (GTK_BOX(vb), btn, FALSE, FALSE, 10); + g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(button_F_clicked), ui); + g_signal_connect(G_OBJECT(btn), "button-press-event", G_CALLBACK(button_F_pr), ui); + g_signal_connect(G_OBJECT(btn), "button-release-event", G_CALLBACK(button_F_pr), ui); + + btn = gtk_button_new_with_label(" E "); + gtk_box_pack_start (GTK_BOX(vb), btn, FALSE, FALSE, 10); + g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(button_E_clicked), ui); + + btn = gtk_button_new_with_label(" D "); + gtk_box_pack_start (GTK_BOX(vb), btn, FALSE, FALSE, 10); + g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(button_D_clicked), ui); + + ui->darea = gtk_drawing_area_new (); + gtk_box_pack_start (GTK_BOX(hb), GTK_WIDGET(ui->darea), FALSE, FALSE, 5); + gtk_drawing_area_size (GTK_DRAWING_AREA(ui->darea), BITMAP_WIDTH, BITMAP_HEIGHT); + + gtk_signal_connect (GTK_OBJECT (ui->darea), "expose_event", (GtkSignalFunc) expose_event, ui); + gtk_signal_connect (GTK_OBJECT (ui->darea), "configure_event", (GtkSignalFunc) configure_event, ui); + // gtk_signal_connect (GTK_OBJECT (drawing_area), "motion_notify_event", (GtkSignalFunc) motion_notify_event, ui); + // gtk_signal_connect (GTK_OBJECT (drawing_area), "button_press_event", (GtkSignalFunc) button_press_event, ui); + + gtk_widget_set_events (GTK_WIDGET(ui->darea), GDK_EXPOSURE_MASK + | GDK_LEAVE_NOTIFY_MASK + | GDK_BUTTON_PRESS_MASK + | GDK_POINTER_MOTION_MASK + | GDK_POINTER_MOTION_HINT_MASK); + + vb = gtk_vbox_new(FALSE, 5); + gtk_box_pack_start (GTK_BOX(hb), vb, FALSE, FALSE, 5); + + btn = gtk_button_new_with_label(" A "); + gtk_box_pack_start (GTK_BOX(vb), btn, FALSE, FALSE, 10); + g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(button_A_clicked), ui); + + btn = gtk_button_new_with_label(" B "); + gtk_box_pack_start (GTK_BOX(vb), btn, FALSE, FALSE, 10); + g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(button_B_clicked), ui); + + btn = gtk_button_new_with_label(" C "); + gtk_box_pack_start (GTK_BOX(vb), btn, FALSE, FALSE, 10); + g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(button_C_clicked), ui); + + // ambient light sensor + sc = gtk_vscale_new_with_range (0, 255, 1); + gtk_box_pack_start (GTK_BOX(hb), sc, FALSE, FALSE, 5); + g_signal_connect(G_OBJECT(sc), "value-changed", G_CALLBACK(ambientlight_value_changed), ui); + + hb = gtk_hbox_new(FALSE, 0); + gtk_box_pack_start (GTK_BOX(mvb), hb, FALSE, FALSE, 5); + + l = gtk_label_new("X:"); + gtk_box_pack_start (GTK_BOX(hb), l, FALSE, FALSE, 5); + sc = gtk_hscale_new_with_range (-128, 127, 1); + gtk_box_pack_start (GTK_BOX(hb), sc, TRUE, TRUE, 5); + g_signal_connect(G_OBJECT(sc), "value-changed", G_CALLBACK(accelX_value_changed), ui); + ui->x_sc = sc; + gtk_widget_set_sensitive(ui->x_sc, FALSE); + + l = gtk_label_new("Y:"); + gtk_box_pack_start (GTK_BOX(hb), l, FALSE, FALSE, 5); + sc = gtk_hscale_new_with_range (-128, 127, 1); + gtk_box_pack_start (GTK_BOX(hb), sc, TRUE, TRUE, 5); + g_signal_connect(G_OBJECT(sc), "value-changed", G_CALLBACK(accelY_value_changed), ui); + ui->y_sc = sc; + gtk_widget_set_sensitive(ui->y_sc, FALSE); + + l = gtk_label_new("Z:"); + gtk_box_pack_start (GTK_BOX(hb), l, FALSE, FALSE, 5); + sc = gtk_hscale_new_with_range (-128, 127, 1); + gtk_box_pack_start (GTK_BOX(hb), sc, TRUE, TRUE, 5); + g_signal_connect(G_OBJECT(sc), "value-changed", G_CALLBACK(accelZ_value_changed), ui); + ui->z_sc = sc; + gtk_widget_set_sensitive(ui->z_sc, FALSE); + + gtk_widget_show_all(ui->mainwin); +} + +static gboolean one_second_tmo_handler (gpointer userdata) +{ + oswald_ui *ui = (oswald_ui *)userdata; + + oswald_one_second_tick(); + + return TRUE; +} + +static gboolean app_idle_handler (gpointer user_data) +{ + g_print("i"); + if (OswaldState.pending_idle) { + // call Oswald's idle function + return TRUE; + }; + return FALSE; +} + +static gboolean centisecond_tmo_handler (gpointer userdata) +{ + oswald_ui *ui = (oswald_ui *)userdata; + + if (ui->centisecond_active) + oswald_centisecond_tick(); + else + return FALSE; + + return TRUE; +} + +void hal_enable_centisecond_timer(void) +{ + ui_g->centisecond_active = TRUE; + g_timeout_add(10, centisecond_tmo_handler, ui_g); +} + +void hal_disable_centisecond_timer(void) +{ + ui_g->centisecond_active = FALSE; +} + +static gboolean halfsecond_tmo_handler (gpointer userdata) +{ + oswald_ui *ui = (oswald_ui *)userdata; + + if (ui->halfsecond_active) + oswald_halfsecond_tick(); + else + return FALSE; + + return TRUE; +} + +void hal_enable_halfsecond_timer(void) +{ + ui_g->halfsecond_active = TRUE; + g_timeout_add(500, halfsecond_tmo_handler, ui_g); +} + +void hal_disable_halfsecond_timer(void) +{ + ui_g->halfsecond_active = FALSE; +} + +void hal_get_rtc(clock_state *rtc) +{ + time_t mt; + struct tm mtime; + + mt = time(NULL); + localtime_r(&mt, &mtime); + + rtc->hour = mtime.tm_hour; + rtc->minute = mtime.tm_min; + rtc->second = mtime.tm_sec; + rtc->day = mtime.tm_mday; + rtc->wday = mtime.tm_wday; + rtc->month = (mtime.tm_mon + 1); + rtc->year = (mtime.tm_year + 1900); + +} + +void hal_set_rtc(const clock_state *rtc, boolean set_set) +{ +} + +void hal_get_power_state(power_state *pwr) +{ + pwr->source = POWER_SOURCE_EXTERNAL; + pwr->charge_state = POWER_CHARGER_CHARGING; + pwr->percent = 50; + pwr->level = 3242; // mV +} + +static boolean BacklightState = FALSE; + +/* sets the backlight on/off, on=TRUE, off=FALSE */ +void hal_lcd_set_backlight(boolean state) +{ + g_print("turn LCD backlight %s\n", state ? "on" : "off"); + BacklightState = state; +} + +boolean hal_lcd_get_backlight(void) +{ + return BacklightState; +} + +static boolean VibrationState = FALSE; + +/* sets the vibration motor on/off, on=TRUE, off=FALSE */ +void hal_vibration_set_state(boolean state) +{ + g_print("turn vibration %s\n", state ? "on" : "off"); + VibrationState = state; +} + +boolean hal_vibration_get_state(void) +{ + return VibrationState; +} + +uint16_t hal_amblight_get_val(void) +{ + return 42; +} + + +int main(int argc , char ** argv) +{ + oswald_ui ui; + time_t mt; + struct tm mtime; + + ui_g = &ui; + + ui.accel_x = 0; + ui.accel_y = 0; + ui.accel_z = 0; + ui.halfsecond_active = FALSE; + ui.centisecond_active = FALSE; + + mt = time(NULL); + localtime_r(&mt, &mtime); + + gtk_init (&argc, &argv); + + create_mainwin(&ui); + gtk_widget_realize(ui.mainwin); + + oswald_set_time(mtime.tm_hour, mtime.tm_min, mtime.tm_sec, TRUE); + oswald_set_date(mtime.tm_mday, (mtime.tm_mon + 1), (mtime.tm_year + 1900), TRUE); + oswald_init(); + + g_timeout_add_seconds(1, one_second_tmo_handler, &ui); + // g_idle_add(app_idle_handler, &ui); + + gtk_main (); + return 0; +} + diff --git a/ui/oswald-ui.h b/ui/oswald-ui.h new file mode 100644 index 0000000..fdadd4b --- /dev/null +++ b/ui/oswald-ui.h @@ -0,0 +1,33 @@ +#ifndef _oswald_ui_h +#define _oswald_ui_h + +#include + +#include "oswald.h" + +typedef struct { + GtkWidget *mainwin; + GtkWidget *darea; + GdkPixmap *pixmap; + GtkWidget *x_sc; + GtkWidget *y_sc; + GtkWidget *z_sc; + uint8_t accel_x; + uint8_t accel_y; + uint8_t accel_z; + gboolean halfsecond_active; + gboolean centisecond_active; +} oswald_ui; + +void lcd_set_pixel(gint x, gint y, gboolean state); +void lcd_clear_display(void); +void lcd_update_display(void); + +void enable_centisecond_timer(void); +void disable_centisecond_timer(void); + +void enable_halfsecond_timer(void); +void disable_halfsecond_timer(void); + +#endif + diff --git a/ui/oswald.h b/ui/oswald.h new file mode 100644 index 0000000..dd61eed --- /dev/null +++ b/ui/oswald.h @@ -0,0 +1,139 @@ +#ifndef _OSWALD_H +#define _OSWALD_H +#include +#include +#include + +#define OSWALD_VERSION "v0.3" + +//#define DEBUG 1 +#ifdef DEBUG +#define dbg_out( args... ) fprintf(stderr, args) +#else +#define dbg_out( args... ) do {} while (0) +#endif + +typedef uint8_t boolean; +#ifdef TRUE +#undef TRUE +#endif +#define TRUE 1 +#ifdef FALSE +#undef FALSE +#endif +#define FALSE 0 +#ifndef NULL +#define NULL 0 +#endif + +typedef struct { + uint8_t hour; + uint8_t minute; + uint8_t second; + uint8_t day; + uint8_t wday; // day in week, 0=sunday, 1=monday,... + uint8_t month; + uint16_t year; + boolean clk24hr; + boolean day_first; +} clock_state; + +#define WDAY_SUNDAY (1 << 0) +#define WDAY_MONDAY (1 << 1) +#define WDAY_TUESDAY (1 << 2) +#define WDAY_WEDNESDAY (1 << 3) +#define WDAY_THURSDAY (1 << 4) +#define WDAY_FRIDAY (1 << 5) +#define WDAY_SATURDAY (1 << 6) +typedef struct { + uint8_t hour; + uint8_t minute; + uint8_t wday; // bitfield 0 to 6, 1=sunday, 2=monday, 4=tuesday... +} alarm_clk; + +typedef enum { + IDLE_SCREEN = 0, + MAIN_MENU_SCREEN, + ALARM_SETUP_SCREEN, + STOP_WATCH_SCREEN, + BLUETOOTH_SCREEN, + ACCEL_DISPLAY_SCREEN, + MESSAGES_SCREEN, + INFO_SCREEN, + LAST_SCREEN, // a marker for the last (not valid) screen) + MESSAGE_SCREEN, + MENU_TEST_SCREEN, + APPLICATION_SCREEN, + DATETIME_SETTING_SCREEN, + ALARM_SCREEN, + SCREENS_END, +} screen_number; + +typedef enum { + BUTTON_A = 0, + BUTTON_B, + BUTTON_C, + BUTTON_D, + BUTTON_E, + BUTTON_F, +} watch_button; + +#define EVENT_SCREEN_VISIBLE (1<<0) // screen just became visible +#define EVENT_SCREEN_DESTROY (1<<1) // screen is destroyed +#define EVENT_ONE_SEC_TIMER (1<<2) // one second timer for reguler clock +#define EVENT_HALF_SEC_TIMER (1<<3) // half second timer for blinking displays +#define EVENT_CS_TIMER (1<<4) // centisecond timer, e.g. for stop watch +#define EVENT_USER_BUTTONS (1<<5) // button presses +#define EVENT_ACCEL_UPDATE (1<<6) // accelerometer updates +#define EVENT_AMBIENTLIGHT_UPDATE (1<<7) // ambient light sensor updates +#define EVENT_POWER_CHANGE (1<<8) // power source status change +#define EVENT_COMMS (1<<9) // communication, like Bluetooth I/O +#define EVENT_POWER_STATE (1<<10) // power source changed or similar + +typedef enum { + EVENT_RET_UNHANDLED = 0, + EVENT_RET_HANDLED, + EVENT_RET_ERR +} event_ret_t; + +typedef struct { + uint16_t event_mask; // the event the screen wants to receive + event_ret_t (*event_func)(uint16_t event, void *data); // callback for events + void *user_data; +} watch_screen; + +typedef struct { + screen_number screen_id; + watch_screen *screen; // the current screen + boolean pending_idle; +} watch_state; + +typedef struct { + int8_t x; + int8_t y; + int8_t z; +} accel_data_t; + +#define POWER_SOURCE_BATTERY 0 +#define POWER_SOURCE_EXTERNAL 1 + +#define POWER_CHARGER_DONE 0 +#define POWER_CHARGER_PRECHARGE 1 +#define POWER_CHARGER_CHARGING 2 +#define POWER_CHARGER_UNK 3 + +typedef struct { + uint8_t source; + uint8_t charge_state; + uint8_t percent; + uint16_t level; +} power_state; + +typedef enum { + BLUETOOTH_OFF = 0, + BLUETOOTH_ON, + BLUETOOTH_CONNECTED, + BLUETOOTH_ILL +} bluetooth_state; + +#endif diff --git a/ui/oswald_fonts.c b/ui/oswald_fonts.c new file mode 100644 index 0000000..7f8419c --- /dev/null +++ b/ui/oswald_fonts.c @@ -0,0 +1,65 @@ +#include "oswald_fonts.h" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "fonts/lcd13x21.h" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "fonts/lcd8x13.h" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "fonts/fixed5x7.h" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "fonts/fixed6x9.h" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "fonts/DroidSans8x12.h" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "fonts/DroidSansBold8x12.h" + +const oswald_font oswald_fonts[LAST_FONT] = { + { + FONT_TYPE_MONOSPACE, + FONT_WIDTH_LCDnone_8x13, + FONT_HEIGHT_LCDnone_8x13, + (uint8_t *)FONT_DATA_LCDnone_8x13 + }, { + FONT_TYPE_MONOSPACE, + FONT_WIDTH_LCDnone_13x21, + FONT_HEIGHT_LCDnone_13x21, + (uint8_t *)FONT_DATA_LCDnone_13x21 + }, { + FONT_TYPE_MONOSPACE, + FONT_WIDTH_Fixed_5x7, + FONT_HEIGHT_Fixed_5x7, + (uint8_t *)FONT_DATA_Fixed_5x7 + }, { + FONT_TYPE_MONOSPACE, + FONT_WIDTH_Fixed_6x9, + FONT_HEIGHT_Fixed_6x9, + (uint8_t *)FONT_DATA_Fixed_6x9 + }, { + FONT_TYPE_PROPORTIONAL, + FONT_WIDTH_Droid_SansMedium_8x12, + FONT_HEIGHT_Droid_SansMedium_8x12, + (uint8_t *)FONT_DATA_Droid_SansMedium_8x12 + }, { + FONT_TYPE_PROPORTIONAL, + FONT_WIDTH_Droid_SansBold_8x12, + FONT_HEIGHT_Droid_SansBold_8x12, + (uint8_t *)FONT_DATA_Droid_SansBold_8x12 + }, +}; diff --git a/ui/oswald_fonts.h b/ui/oswald_fonts.h new file mode 100644 index 0000000..0a15a5e --- /dev/null +++ b/ui/oswald_fonts.h @@ -0,0 +1,30 @@ +#ifndef _FONTS_H +#define _FONTS_H + +#include "oswald.h" + +typedef enum { + FONT_TYPE_MONOSPACE = 0, + FONT_TYPE_PROPORTIONAL, +} oswald_font_type; + +typedef enum { + FONT_LCD8x13 = 0, + FONT_LCD13x21, + FONT_5x7, + FONT_6x9, + FONT_DROID8x12, + FONT_DROID8x12b, + LAST_FONT +} oswald_font_face; + +typedef struct { + oswald_font_type font_type; + uint8_t width; + uint8_t height; + uint8_t *data; +} oswald_font; + +extern const oswald_font oswald_fonts[]; + +#endif diff --git a/ui/oswald_graphics.c b/ui/oswald_graphics.c new file mode 100644 index 0000000..78e3659 --- /dev/null +++ b/ui/oswald_graphics.c @@ -0,0 +1,246 @@ +#include "oswald.h" +#include "oswald_strings.h" +#include "oswald_fonts.h" +#include "oswald_hal.h" + +#include "oswald_graphics.h" + + +#if 0 +void oswald_draw_pixel(const unsigned int xstart, const unsigned int ystart, uint8_t color) +{ + hal_lcd_set_pixel(xstart, ystart, TRUE); +} +#endif + +void oswald_draw_bitmap_opts(const unsigned int xstart, const unsigned int ystart, + const unsigned int xoff, const unsigned int yoff, + const unsigned int width, const unsigned int height, + const boolean invert, + const unsigned int bmp_width, const unsigned int bmp_height, + const void *bmp) +{ + unsigned int x, y; + uint8_t *cb; + + if (bmp == NULL) + return; + + //g_printerr("dbmp %d,%d off %d,%d\n", xstart, ystart, width, height); + cb = (uint8_t *)bmp; + //g_printerr("dat %02x %02x %02x\n", (uint8_t)cb[0], (uint8_t)cb[1], (uint8_t)cb[2]); + // we only draw set pixel, unset pixel remain as they are + for (y=yoff; y= 0) ? 1 : -1; + incy = (dy >= 0) ? 1 : -1; + + if (dx<0) + dx = -dx; + if (dy<0) + dy = -dy; + + if (dx>dy) { + pdx = incx; pdy = 0; + ddx=incx; ddy=incy; + es =dy; el =dx; + } else { + pdx=0; pdy=incy; + ddx=incx; ddy=incy; + es =dx; el =dy; + } + + x = xstart; + y = ystart; + err = el/2; + hal_lcd_set_pixel(x, y, TRUE); + + for (t = 0; t < el; ++t) { + err -= es; + if (err < 0) { + err += el; + x += ddx; + y += ddy; + } else { + x += pdx; + y += pdy; + } + hal_lcd_set_pixel(x, y, TRUE); + } +} + +void oswald_draw_line_ww(const uint8_t xstart, const uint8_t ystart, const uint8_t xend, const uint8_t yend, const uint8_t thickness) +{ + int16_t i, x, y, t, dx, dy, incx, incy, pdx, pdy, ddx, ddy, es, el, err; + + dx = xend - xstart; + dy = yend - ystart; + + incx = (dx >= 0) ? 1 : -1; + incy = (dy >= 0) ? 1 : -1; + + if (dx<0) + dx = -dx; + if (dy<0) + dy = -dy; + + if (dx>dy) { + pdx = incx; + pdy = 0; + ddx = incx; + ddy = incy; + es = dy; + el = dx; + } else { + pdx = 0; + pdy = incy; + ddx = incx; + ddy = incy; + es = dx; + el = dy; + } + + x = xstart; + y = ystart; + err = el/2; + hal_lcd_set_pixel(x, y, TRUE); + for (i=1; i 0 ? (8-(oswald_fonts[face].width % 8)) : 0, 0, ((oswald_fonts[face].width / 8) + ((oswald_fonts[face].width % 8) ? 1 : 0))*8, oswald_fonts[face].height, cdata); + + return cwidth; +} + +void oswald_write_string(const uint8_t x, const uint8_t y, const oswald_font_face face, const boolean invert, char *str) +{ + uint8_t lx, i, strl; + + strl = oswald_strlen(str); + if (strl == 0) + return; + + lx = x; + for (i=0; i len) + break; + } + + return (i+1); +} + +void oswald_write_number(const uint8_t x, const uint8_t y, const oswald_font_face face, const boolean invert, const int16_t number) +{ + uint8_t lx, i, strl; + char str[8]; + + itoa(number, str, 10); + strl = oswald_strlen(str); + if (strl == 0) + return; + + lx = x; + for (i=0; ievent_func != NULL) && + (OswaldState.screen->event_mask & EVENT_SCREEN_VISIBLE)) + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + } +} + +void oswald_set_time(uint8_t hour, uint8_t minute, uint8_t second, boolean clk24hr) +{ + OswaldClk.hour = hour; + OswaldClk.minute = minute; + OswaldClk.second = second; + OswaldClk.clk24hr = clk24hr; +} + +void oswald_set_date(uint8_t day, uint8_t month, uint16_t year, boolean day_first) +{ + OswaldClk.day = day; + OswaldClk.month = month; + OswaldClk.year = year; + OswaldClk.day_first = day_first; +} + +static void update_clock_state (void) +{ + hal_get_rtc(&OswaldClk); + + /* check for pending alarm once per minute */ + if (OswaldClk.second == 0) { + if (OswaldClk.hour == OswaldAlarm.hour && + OswaldClk.minute == OswaldAlarm.minute && + ((1 << OswaldClk.wday) & OswaldAlarm.wday)) { + OswaldState.screen->event_func(EVENT_SCREEN_DESTROY, NULL); + OswaldState.screen_id = ALARM_SCREEN; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + } + } +} + +void oswald_one_second_tick(void) +{ + /* update clock - should use RTC if available */ + update_clock_state(); + + hal_get_power_state(&OswaldPowerState); + if (backlight_safety_off) { + backlight_safety_off--; + if (!backlight_safety_off) + hal_lcd_set_backlight(FALSE); + } + + /* wake-up screen if interested in the one-second-event */ + if (OswaldState.screen->event_func != NULL && + (OswaldState.screen->event_mask & EVENT_ONE_SEC_TIMER)) + OswaldState.screen->event_func(EVENT_ONE_SEC_TIMER, NULL); +} + +void oswald_centisecond_tick(void) +{ + if (OswaldState.screen->event_func != NULL && + (OswaldState.screen->event_mask & EVENT_CS_TIMER)) + OswaldState.screen->event_func(EVENT_CS_TIMER, NULL); +} + +void oswald_halfsecond_tick(void) +{ + if (OswaldState.screen->event_func != NULL && + (OswaldState.screen->event_mask & EVENT_HALF_SEC_TIMER)) + OswaldState.screen->event_func(EVENT_HALF_SEC_TIMER, NULL); +} + +void oswald_handle_button_press(watch_button button) +{ + switch (button) { + case BUTTON_A: + case BUTTON_B: + case BUTTON_E: + case BUTTON_F: + if (OswaldState.screen->event_func != NULL && + (OswaldState.screen->event_mask & EVENT_USER_BUTTONS)) { + OswaldState.screen->event_func(EVENT_USER_BUTTONS, &button); + } + break; + case BUTTON_C: + if (OswaldState.screen->event_func != NULL && + (OswaldState.screen->event_mask & EVENT_USER_BUTTONS)) { + if (OswaldState.screen->event_func(EVENT_USER_BUTTONS, &button) == EVENT_RET_HANDLED) + break; + } + OswaldState.screen->event_func(EVENT_SCREEN_DESTROY, NULL); +#if 0 + // next screen + OswaldState.screen_id++; + if (OswaldState.screen_id >= LAST_SCREEN) { + OswaldState.screen_id = IDLE_SCREEN; + }; +#else + OswaldState.screen_id = IDLE_SCREEN; +#endif + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + break; + case BUTTON_D: + // backlight on/off + if (hal_lcd_get_backlight()) { + hal_lcd_set_backlight(FALSE); + backlight_safety_off = 0; + } else { + hal_lcd_set_backlight(TRUE); + backlight_safety_off = 2; + } + break; + default: + // should never get here + break; + }; +} + +void oswald_handle_accel_event(uint8_t x, uint8_t y, uint8_t z) +{ + accel_data_t accel_data; + + accel_data.x = x; + accel_data.y = y; + accel_data.z = z; + + if (OswaldState.screen->event_func != NULL && + (OswaldState.screen->event_mask & EVENT_ACCEL_UPDATE)) + OswaldState.screen->event_func(EVENT_ACCEL_UPDATE, &accel_data); +} + +void oswald_handle_ambientlight_event(uint8_t light_level) +{ + if (OswaldState.screen->event_func != NULL && + (OswaldState.screen->event_mask & EVENT_AMBIENTLIGHT_UPDATE)) + OswaldState.screen->event_func(EVENT_AMBIENTLIGHT_UPDATE, &light_level); +} + +void oswald_handle_comm_input(uint16_t mlen, const void *mdat) +{ + char *icmd = (char *) mdat; + + if (icmd[0] == '$') { + if (strncmp(icmd, "$GRT", 4) == 0) { // get current RTC + char rtime[16]; + snprintf(rtime, 16, "#RTC%02d%02d%02d\n", OswaldClk.hour, OswaldClk.minute, OswaldClk.second); + hal_bluetooth_send_data(rtime, strlen(rtime)); + } else if (strncmp(icmd, "$SRT", 4) == 0) { // set current RTC + char rtime[16]; + snprintf(rtime, 16, "#USP\n"); + hal_bluetooth_send_data(rtime, strlen(rtime)); + } else if (strncmp(icmd, "$MSG", 4) == 0) { // message on main screen + char *msg = (icmd+4); + mlen -= 4; + memset(MainMessage, 0, 148); + strncpy(MainMessage, msg, (mlen > 147) ? 147 : mlen); + } else if (strncmp(icmd, "$MCL", 4) == 0) { // clear message + memset(MainMessage, 0, 148); + } else if (strncmp(icmd, "$BAT", 4) == 0) { // clear message + char rtime[16]; + snprintf(rtime, 16, "#BAT%d,%d\n", OswaldPowerState.charge_state, OswaldPowerState.percent); + hal_bluetooth_send_data(rtime, strlen(rtime)); + } else if (strncmp(icmd, "$GAL", 4) == 0) { // get ambient light value + char rtime[16]; + snprintf(rtime, 16, "#GAL%d\n", hal_amblight_get_val()); + hal_bluetooth_send_data(rtime, strlen(rtime)); + } + } +} + +void oswald_init(void) +{ + OswaldScreens[IDLE_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_ONE_SEC_TIMER; + OswaldScreens[IDLE_SCREEN].event_func = idle_handle_events; + + OswaldScreens[MAIN_MENU_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_ONE_SEC_TIMER; + OswaldScreens[MAIN_MENU_SCREEN].event_func = main_menu_handle_events; + + OswaldScreens[ALARM_SETUP_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; + OswaldScreens[ALARM_SETUP_SCREEN].event_func = alarm_setup_events; + + OswaldScreens[STOP_WATCH_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_CS_TIMER; + OswaldScreens[STOP_WATCH_SCREEN].event_func = stop_watch_handle_events; + + OswaldScreens[BLUETOOTH_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; + OswaldScreens[BLUETOOTH_SCREEN].event_func = bluetooth_screen_events; + + OswaldScreens[ACCEL_DISPLAY_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_ACCEL_UPDATE; + OswaldScreens[ACCEL_DISPLAY_SCREEN].event_func = accel_handle_events; + + OswaldScreens[MESSAGES_SCREEN].event_mask = EVENT_USER_BUTTONS; + OswaldScreens[MESSAGES_SCREEN].event_func = messages_screen_handle_events; + + OswaldScreens[MESSAGE_SCREEN].event_mask = EVENT_USER_BUTTONS; + OswaldScreens[MESSAGE_SCREEN].event_func = message_screen_handle_events; + + OswaldScreens[INFO_SCREEN].event_mask = 0x00; // this one does not consume any events + OswaldScreens[INFO_SCREEN].event_func = info_screen_handle_events; + + OswaldScreens[DATETIME_SETTING_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; + OswaldScreens[DATETIME_SETTING_SCREEN].event_func = datetime_setup_events; + + OswaldScreens[MENU_TEST_SCREEN].event_mask = EVENT_USER_BUTTONS; + OswaldScreens[MENU_TEST_SCREEN].event_func = test_menu_handle_events; + + OswaldScreens[ALARM_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; + OswaldScreens[ALARM_SCREEN].event_func = alarm_handle_events; + + OswaldState.screen_id = IDLE_SCREEN; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + + if (OswaldState.screen->event_func != NULL) + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + + OswaldAlarm.hour = 12; + OswaldAlarm.minute = 0; + OswaldAlarm.wday = 0x00; + +} + diff --git a/ui/oswald_main.h b/ui/oswald_main.h new file mode 100644 index 0000000..dc632c5 --- /dev/null +++ b/ui/oswald_main.h @@ -0,0 +1,29 @@ +#ifndef _OSWALD_MAIN_H +#define _OSWALD_MAIN_H + +#include "oswald.h" + +extern clock_state OswaldClk; +extern alarm_clk OswaldAlarm; +extern power_state OswaldPowerState; +extern watch_state OswaldState; +extern watch_screen OswaldScreens[]; +extern char MainMessage[]; + +/* gets triggered by OS timer function */ +void oswald_one_second_tick(); + +/* sets internal 'RTC' time */ +void oswald_set_time(uint8_t hour, uint8_t minute, uint8_t second, boolean clk24hr); +void oswald_set_date(uint8_t day, uint8_t month, uint16_t year, boolean day_first); + +void oswald_handle_button_press(watch_button button); +void oswald_handle_accel_event(uint8_t x, uint8_t y, uint8_t z); +void oswald_handle_ambientlight_event(uint8_t light_level); +void oswald_handle_idle_event(void); +void oswald_one_second_tick(void); +void oswald_halfsecond_tick(void); +void oswald_centisecond_tick(void); +void oswald_init(void); +void oswald_handle_comm_input(uint16_t mlen, const void *mdat); +#endif diff --git a/ui/oswald_screens.c b/ui/oswald_screens.c new file mode 100644 index 0000000..680b5ba --- /dev/null +++ b/ui/oswald_screens.c @@ -0,0 +1,1533 @@ +#include + +#include "oswald.h" +#include "oswald_main.h" +#include "oswald_watch_faces.h" +#include "oswald_graphics.h" +#include "oswald_hal.h" + +#include "oswald_screens.h" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/startstopbutton_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/lapsebutton_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/upbutton_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/downbutton_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/leftbutton_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/rightbutton_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/enterbutton_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/checked_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/unchecked_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/main_menu_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/timesetup_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/stopwatch_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/alarm_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/Bluetooth_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/info_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/acc_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/Message_icon.xbm" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/Exit_icon.xbm" + + +/* + * Common event handler part of the watch faces + */ +typedef struct { + void (*screendraw_func)(boolean show_seconds); + boolean show_seconds; + boolean analogue; +} idle_data_t; +static idle_data_t idle_screen = { + DrawLcdDigitalClock, + TRUE, + FALSE, +}; + +event_ret_t idle_handle_user_buttons(watch_button button) +{ + switch (button) { + case BUTTON_A: + if (idle_screen.show_seconds) + idle_screen.show_seconds = FALSE; + else + idle_screen.show_seconds = TRUE; + break; + case BUTTON_B: + if (idle_screen.analogue == TRUE) { + idle_screen.analogue = FALSE; + idle_screen.screendraw_func = DrawLcdDigitalClock; + } else { + idle_screen.analogue = TRUE; + idle_screen.screendraw_func = DrawLcdAnaClock; + }; + break; + case BUTTON_C: + OswaldState.screen_id = MAIN_MENU_SCREEN; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + return EVENT_RET_HANDLED; + break; + case BUTTON_F: + OswaldState.screen_id = DATETIME_SETTING_SCREEN; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + return EVENT_RET_HANDLED; + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + + idle_screen.screendraw_func(idle_screen.show_seconds); + + return EVENT_RET_HANDLED; +} + +event_ret_t idle_handle_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_ONE_SEC_TIMER: + case EVENT_SCREEN_VISIBLE: + idle_screen.screendraw_func(idle_screen.show_seconds); + return EVENT_RET_HANDLED; + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + return idle_handle_user_buttons(*(watch_button *)data); + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + return EVENT_RET_UNHANDLED; +} + + +/* + * Main Menu Screen + */ +typedef struct { + int8_t pos; + uint8_t tmo; +} main_menu_data_t; +static main_menu_data_t main_menu_screen = { + ALARM_SETUP_SCREEN, + 0, +}; + +#define MAIN_MENU_GRID_PIXEL 84 +#define MAIN_MENU_GRID_X 3 +// GRID_Y is +1 since there is one empty row for title icon +#define MAIN_MENU_GRID_Y 3 +#define MAIN_MENU_GRID_SPACING 0 +#define MAIN_MENU_OFFSET_X 6 +#define MAIN_MENU_OFFSET_Y 8 + +void draw_main_menu_screen(main_menu_data_t *sdata) +{ + uint8_t pf = sdata->pos - 2; + + hal_lcd_clear_display(); + +// oswald_draw_bitmap(36, 0, main_menu_icon_width, main_menu_icon_height, main_menu_icon_bits); + + oswald_draw_bitmap(81, 6, rightbutton_icon_width, rightbutton_icon_height, rightbutton_icon_bits); + oswald_draw_bitmap(81, 38, leftbutton_icon_width, leftbutton_icon_height, leftbutton_icon_bits); + oswald_draw_bitmap(81, 70, enterbutton_icon_width, enterbutton_icon_height, enterbutton_icon_bits); + + oswald_draw_bitmpa_invert_opt(MAIN_MENU_OFFSET_X+((0+1) * MAIN_MENU_GRID_SPACING) + (0 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+(0 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), + alarm_icon_width, alarm_icon_height, alarm_icon_bits, (sdata->pos == ALARM_SETUP_SCREEN)); + oswald_draw_bitmpa_invert_opt(MAIN_MENU_OFFSET_X+((1+1) * MAIN_MENU_GRID_SPACING) + (1 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+(0 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), + stopwatch_icon_width, stopwatch_icon_height, stopwatch_icon_bits, (sdata->pos == STOP_WATCH_SCREEN)); + oswald_draw_bitmpa_invert_opt(MAIN_MENU_OFFSET_X+((2+1) * MAIN_MENU_GRID_SPACING) + (2 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+(0 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), + Bluetooth_icon_width, Bluetooth_icon_height, Bluetooth_icon_bits, (sdata->pos == BLUETOOTH_SCREEN)); + oswald_draw_bitmpa_invert_opt(MAIN_MENU_OFFSET_X+((0+1) * MAIN_MENU_GRID_SPACING) + (0 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+(1 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), + acc_icon_width, acc_icon_height, acc_icon_bits, (sdata->pos == ACCEL_DISPLAY_SCREEN)); + oswald_draw_bitmpa_invert_opt(MAIN_MENU_OFFSET_X+((1+1) * MAIN_MENU_GRID_SPACING) + (1 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+(1 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), + Message_icon_width, Message_icon_height, Message_icon_bits, (sdata->pos == MESSAGES_SCREEN)); + oswald_draw_bitmpa_invert_opt(MAIN_MENU_OFFSET_X+((2+1) * MAIN_MENU_GRID_SPACING) + (2 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+(1 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), + info_icon_width, info_icon_height, info_icon_bits, (sdata->pos == INFO_SCREEN)); + oswald_draw_bitmpa_invert_opt(MAIN_MENU_OFFSET_X+((0+1) * MAIN_MENU_GRID_SPACING) + (0 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+(2 * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), + Exit_icon_width, Exit_icon_height, Exit_icon_bits, (sdata->pos == LAST_SCREEN)); + + // round the corners of the inverted icon a little + hal_lcd_set_pixel(MAIN_MENU_OFFSET_X+((pf%MAIN_MENU_GRID_X) * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)) % (MAIN_MENU_GRID_X*(MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+((pf/MAIN_MENU_GRID_X) * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)) % (MAIN_MENU_GRID_Y*(MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), FALSE); + hal_lcd_set_pixel(MAIN_MENU_OFFSET_X+23+((pf%MAIN_MENU_GRID_X) * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)) % (MAIN_MENU_GRID_X*(MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+((pf/MAIN_MENU_GRID_X) * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)) % (MAIN_MENU_GRID_Y*(MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), FALSE); + hal_lcd_set_pixel(MAIN_MENU_OFFSET_X+((pf%MAIN_MENU_GRID_X) * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)) % (MAIN_MENU_GRID_X*(MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+23+((pf/MAIN_MENU_GRID_X) * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)) % (MAIN_MENU_GRID_Y*(MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), FALSE); + hal_lcd_set_pixel(MAIN_MENU_OFFSET_X+23+((pf%MAIN_MENU_GRID_X) * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)) % (MAIN_MENU_GRID_X*(MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_X)), + MAIN_MENU_OFFSET_Y+23+((pf/MAIN_MENU_GRID_X) * (MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)) % (MAIN_MENU_GRID_Y*(MAIN_MENU_GRID_PIXEL / MAIN_MENU_GRID_Y)), FALSE); + + + // finally a nice border + oswald_draw_line(3, 0, 95, 0); + oswald_draw_line(2, 1, 95, 1); + oswald_draw_line(1, 2, 95, 2); + + oswald_draw_line(0, 3, 0, 92); + oswald_draw_line(1, 3, 1, 93); + oswald_draw_line(2, 3, 2, 94); + + oswald_draw_line(1, 93, 95, 93); + oswald_draw_line(2, 94, 95, 94); + oswald_draw_line(3, 95, 95, 95); + + hal_lcd_update_display(); +} + +event_ret_t handle_main_menu_buttons(watch_button button, main_menu_data_t *sdata) +{ + switch (button) { + case BUTTON_A: + sdata->pos++; + if (sdata->pos > LAST_SCREEN) + sdata->pos = 2; + draw_main_menu_screen(&main_menu_screen); + return EVENT_RET_HANDLED; + break; + case BUTTON_B: + sdata->pos--; + if (sdata->pos < 2) + sdata->pos = LAST_SCREEN; + draw_main_menu_screen(&main_menu_screen); + return EVENT_RET_HANDLED; + break; + case BUTTON_C: + if (sdata->pos < LAST_SCREEN) { + OswaldState.screen_id = sdata->pos; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + } else { + OswaldState.screen_id = IDLE_SCREEN; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + } + return EVENT_RET_HANDLED; + break; + default: + break; + } + + return EVENT_RET_UNHANDLED; +} + +/* after MAIN_MENU_TIMEOUT seconds return to IDLE_SCREEN */ +#define MAIN_MENU_TIMEOUT 10 + +event_ret_t main_menu_handle_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_SCREEN_VISIBLE: + main_menu_screen.tmo = 0; + main_menu_screen.pos = 2; + draw_main_menu_screen(&main_menu_screen); + return EVENT_RET_HANDLED; + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + main_menu_screen.tmo = 0; + return handle_main_menu_buttons(*(watch_button *)data, &main_menu_screen); + break; + case EVENT_ONE_SEC_TIMER: + main_menu_screen.tmo++; + if (main_menu_screen.tmo > MAIN_MENU_TIMEOUT) { + OswaldState.screen_id = IDLE_SCREEN; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + } + return EVENT_RET_HANDLED; + default: + break; + }; + return EVENT_RET_UNHANDLED; +} + + +/* + * Accelerometer and sensor display screen + */ +typedef struct { + accel_data_t accdata; +} accelscreen_data_t; +static accelscreen_data_t accel_screen = { + { 0, 0, 0}, +}; + +void draw_accel_screen(accel_data_t *accel_data) +{ + uint8_t x,y; + + hal_lcd_clear_display(); + + oswald_draw_bitmap(36, 0, acc_icon_width, acc_icon_height, acc_icon_bits); + + oswald_draw_bitmap(81, 79, enterbutton_icon_width, enterbutton_icon_height, enterbutton_icon_bits); + + oswald_write_string(1, 40, FONT_6x9, FALSE, "X:"); + oswald_write_number(15, 40, FONT_6x9, FALSE, accel_data->x); + oswald_write_string(1, 52, FONT_6x9, FALSE, "Y:"); + oswald_write_number(15, 52, FONT_6x9, FALSE, accel_data->y); + oswald_write_string(1, 64, FONT_6x9, FALSE, "Z:"); + oswald_write_number(15, 64, FONT_6x9, FALSE, accel_data->z); + + oswald_write_string(1, 85, FONT_6x9, FALSE, "Light:"); + oswald_write_number(50, 85, FONT_6x9, FALSE, 0); + + oswald_draw_line(40, 30, 92, 30); + oswald_draw_line(92, 30, 92, 82); + oswald_draw_line(40, 82, 92, 82); + oswald_draw_line(40, 82, 40, 30); + + x = 41+25+((accel_data->x * 50) / (254)); + y = 31+25-((accel_data->y * 50) / (254)); + oswald_draw_pixel(x, y, TRUE); + oswald_draw_pixel(x+1, y, TRUE); + oswald_draw_pixel(x-1, y, TRUE); + oswald_draw_pixel(x, y+1, TRUE); + oswald_draw_pixel(x, y-1, TRUE); + + hal_lcd_update_display(); +} + +event_ret_t accel_handle_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_SCREEN_VISIBLE: + draw_accel_screen(&accel_screen.accdata); + hal_accelerometer_enable(); + return EVENT_RET_HANDLED; + break; + case EVENT_SCREEN_DESTROY: + hal_accelerometer_disable(); + return EVENT_RET_HANDLED; + break; + case EVENT_ACCEL_UPDATE: { + accel_data_t *accel_data = (accel_data_t *)data; + accel_screen.accdata.x = accel_data->x; + accel_screen.accdata.y = accel_data->y; + accel_screen.accdata.z = accel_data->z; + draw_accel_screen(&accel_screen.accdata); + }; + return EVENT_RET_HANDLED; + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + return EVENT_RET_UNHANDLED; +} + + +/* + * Date / time setup screen + */ +typedef struct { + uint8_t pos; + boolean set_mode; + boolean on; +} datetime_setup_data_t; +static datetime_setup_data_t dt_setup_screen = { + 0, + FALSE, + TRUE +}; + +void draw_datetime_setup_screen(datetime_setup_data_t *sdata) +{ + hal_lcd_clear_display(); + + oswald_draw_bitmap(36, 0, timesetup_icon_width, timesetup_icon_height, timesetup_icon_bits); + + oswald_draw_bitmap(81, 6, upbutton_icon_width, upbutton_icon_height, upbutton_icon_bits); + oswald_draw_bitmap(81, 38, downbutton_icon_width, downbutton_icon_height, downbutton_icon_bits); + oswald_draw_bitmap(81, 70, rightbutton_icon_width, rightbutton_icon_height, rightbutton_icon_bits); + + if ((sdata->pos == 0 && sdata->on) || sdata->pos != 0) { + oswald_write_character(2, 30, FONT_LCD13x21, FALSE, (OswaldClk.hour / 10)); + oswald_write_character(15, 30, FONT_LCD13x21, FALSE, (OswaldClk.hour % 10)); + } + oswald_write_character(25, 30, FONT_LCD13x21, FALSE, 10); + + if ((sdata->pos == 1 && sdata->on) || sdata->pos != 1) { + oswald_write_character(34, 30, FONT_LCD13x21, FALSE, (OswaldClk.minute / 10)); + oswald_write_character(47, 30, FONT_LCD13x21, FALSE, (OswaldClk.minute % 10)); + } + + if ((sdata->pos == 2 && sdata->on) || sdata->pos != 2) { + oswald_write_character(61, 38, FONT_LCD8x13, FALSE, (OswaldClk.second / 10)); + oswald_write_character(69, 38, FONT_LCD8x13, FALSE, (OswaldClk.second % 10)); + } + + + if ((sdata->pos == 3 && sdata->on) || sdata->pos != 3) { + oswald_write_number(2, 55, FONT_DROID8x12, FALSE, OswaldClk.day); + } + oswald_write_character(15, 55, FONT_DROID8x12, FALSE, '.'); + if ((sdata->pos == 4 && sdata->on) || sdata->pos != 4) { + oswald_write_number(21, 55, FONT_DROID8x12, FALSE, OswaldClk.month); + } + oswald_write_character(36, 55, FONT_DROID8x12, FALSE, '.'); + if ((sdata->pos == 5 && sdata->on) || sdata->pos != 5) { + oswald_write_number(43, 55, FONT_DROID8x12, FALSE, OswaldClk.year); + } + + if ((sdata->pos == 6 && sdata->on) || sdata->pos != 6) { + if (OswaldClk.clk24hr) { + oswald_draw_bitmap(2, 76, checked_icon_width, checked_icon_height, checked_icon_bits); + } else { + oswald_draw_bitmap(2, 76, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + } + oswald_write_string(15, 73, FONT_DROID8x12, FALSE, "24hr"); + + if ((sdata->pos == 7 && sdata->on) || sdata->pos != 7) { + if (OswaldClk.day_first) { + oswald_draw_bitmap(2, 86, checked_icon_width, checked_icon_height, checked_icon_bits); + } else { + oswald_draw_bitmap(2, 86, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + } + oswald_write_string(15, 83, FONT_DROID8x12, FALSE, "dd.mm. mm/dd"); + + hal_lcd_update_display(); +} + +void datetime_handle_updown(uint8_t pos, int8_t incr) +{ + switch (pos) { + case 0: // hour + if (OswaldClk.hour == 0 && incr == -1) { + OswaldClk.hour = 23; + break; + }; + OswaldClk.hour += incr; + if (OswaldClk.hour > 23) + OswaldClk.hour = 0; + break; + case 1: // minute + if (OswaldClk.minute == 0 && incr == -1) { + OswaldClk.minute = 59; + break; + }; + OswaldClk.minute += incr; + if (OswaldClk.minute > 59) + OswaldClk.minute = 0; + break; + case 2: // second + OswaldClk.second = 0; + break; + case 3: // day + if (OswaldClk.day == 1 && incr == -1) { + OswaldClk.day = 31; + break; + }; + OswaldClk.day += incr; + if (OswaldClk.day > 31) + OswaldClk.day = 1; + break; + case 4: // month + if (OswaldClk.month == 1 && incr == -1) { + OswaldClk.month = 12; + break; + }; + OswaldClk.month += incr; + if (OswaldClk.month > 12) + OswaldClk.month = 1; + break; + case 5: // year + OswaldClk.year += incr; + break; + case 6: // 24hr / 12hr + if (OswaldClk.clk24hr) + OswaldClk.clk24hr = FALSE; + else + OswaldClk.clk24hr = TRUE; + break; + case 7: // dd.mm. / mm/dd + if (OswaldClk.day_first) + OswaldClk.day_first = FALSE; + else + OswaldClk.day_first = TRUE; + break; + default: + break; + }; + if (pos == 2) + hal_set_rtc(&OswaldClk, TRUE); + else + hal_set_rtc(&OswaldClk, FALSE); +} + +event_ret_t handle_setup_datetime_buttons(watch_button button, datetime_setup_data_t *sdata) +{ + switch (button) { + case BUTTON_A: + datetime_handle_updown(sdata->pos, 1); + break; + case BUTTON_B: + datetime_handle_updown(sdata->pos, -1); + break; + case BUTTON_C: + sdata->pos++; + sdata->pos %= 8; + break; + case BUTTON_F: + OswaldState.screen->event_func(EVENT_SCREEN_DESTROY, NULL); + OswaldState.screen_id = IDLE_SCREEN; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + return EVENT_RET_HANDLED; + break; + default: + return EVENT_RET_UNHANDLED; + break; + } + draw_datetime_setup_screen(sdata); + return EVENT_RET_HANDLED; +} + +event_ret_t datetime_setup_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_SCREEN_VISIBLE: + dt_setup_screen.pos = 0; + draw_datetime_setup_screen(&dt_setup_screen); + hal_enable_halfsecond_timer(); + return EVENT_RET_HANDLED; + break; + case EVENT_SCREEN_DESTROY: + hal_disable_halfsecond_timer(); + return EVENT_RET_HANDLED; + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + return handle_setup_datetime_buttons(*(watch_button *)data, &dt_setup_screen); + break; + case EVENT_HALF_SEC_TIMER: + if (dt_setup_screen.on) + dt_setup_screen.on = FALSE; + else + dt_setup_screen.on = TRUE; + draw_datetime_setup_screen(&dt_setup_screen); + return EVENT_RET_HANDLED; + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + return EVENT_RET_UNHANDLED; +} + + +/* + * Alarm setup screen + */ +typedef struct { + uint8_t pos; + boolean set_mode; + boolean on; +} alarm_setup_data_t; +static alarm_setup_data_t alarm_setup_screen = { + 0, + FALSE, + TRUE +}; + +void draw_alarm_setup_screen(alarm_setup_data_t *sdata) +{ + hal_lcd_clear_display(); + + oswald_draw_bitmap(36, 0, alarm_icon_width, alarm_icon_height, alarm_icon_bits); + + if (sdata->set_mode) { + oswald_draw_bitmap(81, 6, upbutton_icon_width, upbutton_icon_height, upbutton_icon_bits); + oswald_draw_bitmap(81, 38, downbutton_icon_width, downbutton_icon_height, downbutton_icon_bits); + oswald_draw_bitmap(81, 70, rightbutton_icon_width, rightbutton_icon_height, rightbutton_icon_bits); + } else { + oswald_draw_bitmap(81, 70, enterbutton_icon_width, enterbutton_icon_height, enterbutton_icon_bits); + } + + if ((sdata->pos == 0 && sdata->on) || sdata->pos != 0) { + oswald_write_character(18, 30, FONT_LCD13x21, FALSE, (OswaldAlarm.hour / 10)); + oswald_write_character(32, 30, FONT_LCD13x21, FALSE, (OswaldAlarm.hour % 10)); + } + oswald_write_character(42, 30, FONT_LCD13x21, FALSE, 10); + + if ((sdata->pos == 1 && sdata->on) || sdata->pos != 1) { + oswald_write_character(53, 30, FONT_LCD13x21, FALSE, (OswaldAlarm.minute / 10)); + oswald_write_character(67, 30, FONT_LCD13x21, FALSE, (OswaldAlarm.minute % 10)); + } + + oswald_write_character(3, 55, FONT_6x9, FALSE, 'S'); + oswald_write_character(15, 55, FONT_6x9, FALSE, 'M'); + oswald_write_character(27, 55, FONT_6x9, FALSE, 'T'); + oswald_write_character(39, 55, FONT_6x9, FALSE, 'W'); + oswald_write_character(51, 55, FONT_6x9, FALSE, 'T'); + oswald_write_character(63, 55, FONT_6x9, FALSE, 'F'); + oswald_write_character(75, 55, FONT_6x9, FALSE, 'S'); + + if ((sdata->pos == 2 && sdata->on) || sdata->pos != 2) { + // oswald_write_character(3, 65, FONT_6x9, (OswaldAlarm.wday & WDAY_SUNDAY) ? 'x' : '_'); + if ((OswaldAlarm.wday & WDAY_SUNDAY)) + oswald_draw_bitmap(3, 66, checked_icon_width, checked_icon_height, checked_icon_bits); + else + oswald_draw_bitmap(3, 66, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + if ((sdata->pos == 3 && sdata->on) || sdata->pos != 3) { + // oswald_write_character(15, 65, FONT_6x9, (OswaldAlarm.wday & WDAY_MONDAY) ? 'x' : '_'); + if ((OswaldAlarm.wday & WDAY_MONDAY)) + oswald_draw_bitmap(15, 66, checked_icon_width, checked_icon_height, checked_icon_bits); + else + oswald_draw_bitmap(15, 66, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + if ((sdata->pos == 4 && sdata->on) || sdata->pos != 4) { + // oswald_write_character(27, 65, FONT_6x9, (OswaldAlarm.wday & WDAY_TUESDAY) ? 'x' : '_'); + if ((OswaldAlarm.wday & WDAY_TUESDAY)) + oswald_draw_bitmap(27, 66, checked_icon_width, checked_icon_height, checked_icon_bits); + else + oswald_draw_bitmap(27, 66, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + if ((sdata->pos == 5 && sdata->on) || sdata->pos != 5) { + // oswald_write_character(39, 65, FONT_6x9, (OswaldAlarm.wday & WDAY_WEDNESDAY) ? 'x' : '_'); + if ((OswaldAlarm.wday & WDAY_WEDNESDAY)) + oswald_draw_bitmap(39, 66, checked_icon_width, checked_icon_height, checked_icon_bits); + else + oswald_draw_bitmap(39, 66, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + if ((sdata->pos == 6 && sdata->on) || sdata->pos != 6) { + // oswald_write_character(51, 65, FONT_6x9, (OswaldAlarm.wday & WDAY_THURSDAY) ? 'x' : '_'); + if ((OswaldAlarm.wday & WDAY_THURSDAY)) + oswald_draw_bitmap(51, 66, checked_icon_width, checked_icon_height, checked_icon_bits); + else + oswald_draw_bitmap(51, 66, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + if ((sdata->pos == 7 && sdata->on) || sdata->pos != 7) { + // oswald_write_character(63, 65, FONT_6x9, (OswaldAlarm.wday & WDAY_FRIDAY) ? 'x' : '_'); + if ((OswaldAlarm.wday & WDAY_FRIDAY)) + oswald_draw_bitmap(63, 66, checked_icon_width, checked_icon_height, checked_icon_bits); + else + oswald_draw_bitmap(63, 66, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + if ((sdata->pos == 8 && sdata->on) || sdata->pos != 8) { + // oswald_write_character(75, 65, FONT_6x9, (OswaldAlarm.wday & WDAY_SATURDAY) ? 'x' : '_'); + if ((OswaldAlarm.wday & WDAY_SATURDAY)) + oswald_draw_bitmap(75, 66, checked_icon_width, checked_icon_height, checked_icon_bits); + else + oswald_draw_bitmap(75, 66, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + + hal_lcd_update_display(); +} + +void alarm_handle_updown(uint8_t pos, int8_t incr) +{ + switch (pos) { + case 0: // hour + if (OswaldAlarm.hour == 0 && incr == -1) { + OswaldAlarm.hour = 23; + break; + }; + OswaldAlarm.hour += incr; + if (OswaldAlarm.hour > 23) + OswaldAlarm.hour = 0; + break; + case 1: // minute + if (OswaldAlarm.minute == 0 && incr == -1) { + OswaldAlarm.minute = 59; + break; + }; + OswaldAlarm.minute += incr; + if (OswaldAlarm.minute > 59) + OswaldAlarm.minute = 0; + break; + case 2: // sunday + OswaldAlarm.wday ^= WDAY_SUNDAY; + break; + case 3: // monday + OswaldAlarm.wday ^= WDAY_MONDAY; + break; + case 4: // tuesday + OswaldAlarm.wday ^= WDAY_TUESDAY; + break; + case 5: // wednesday + OswaldAlarm.wday ^= WDAY_WEDNESDAY; + break; + case 6: // thursday + OswaldAlarm.wday ^= WDAY_THURSDAY; + break; + case 7: // friday + OswaldAlarm.wday ^= WDAY_FRIDAY; + break; + case 8: // saturday + OswaldAlarm.wday ^= WDAY_SATURDAY; + break; + default: + break; + }; +} + +event_ret_t handle_setup_alarm_buttons(watch_button button, alarm_setup_data_t *sdata) +{ + if (alarm_setup_screen.set_mode) { + switch (button) { + case BUTTON_A: + alarm_handle_updown(sdata->pos, 1); + break; + case BUTTON_B: + alarm_handle_updown(sdata->pos, -1); + break; + case BUTTON_C: + sdata->pos++; + sdata->pos %= 9; + break; + case BUTTON_F: + alarm_setup_screen.set_mode = FALSE; + break; + default: + return EVENT_RET_UNHANDLED; + break; + } + } else { + switch (button) { + case BUTTON_F: + alarm_setup_screen.set_mode = TRUE; + break; + default: + return EVENT_RET_UNHANDLED; + break; + } + } + draw_alarm_setup_screen(sdata); + + return EVENT_RET_HANDLED; +} + +event_ret_t alarm_setup_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_SCREEN_VISIBLE: + alarm_setup_screen.pos = 0; + alarm_setup_screen.on = TRUE; + alarm_setup_screen.set_mode = FALSE; + draw_alarm_setup_screen(&alarm_setup_screen); + hal_enable_halfsecond_timer(); + return EVENT_RET_HANDLED; + break; + case EVENT_SCREEN_DESTROY: + hal_disable_halfsecond_timer(); + return EVENT_RET_HANDLED; + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + return handle_setup_alarm_buttons(*(watch_button *)data, &alarm_setup_screen); + break; + case EVENT_HALF_SEC_TIMER: + if (alarm_setup_screen.set_mode) { + if (alarm_setup_screen.on) + alarm_setup_screen.on = FALSE; + else + alarm_setup_screen.on = TRUE; + } else + alarm_setup_screen.on = TRUE; + draw_alarm_setup_screen(&alarm_setup_screen); + return EVENT_RET_HANDLED; + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + return EVENT_RET_UNHANDLED; +} + + +/* + * Test menu + */ +typedef struct { + uint8_t menu_pos; +} test_menu_t; +static test_menu_t test_menu = { 0 }; + +void draw_menu_test_screen(void) +{ + hal_lcd_clear_display(); +#if 0 + SetFont(MetaWatch16); + WriteLcdString(2, 2, "Menu"); + SetFont(MetaWatch7); + WriteLcdString(2, 20, "Item 1"); + WriteLcdString(2, 29, "Item 2"); + WriteLcdString(2, 38, "Item 3"); + WriteLcdString(2, 47, "Item 4"); + WriteLcdString(2, 56, "Item 5"); + + WriteLcdString(50, 20+(9*test_menu.menu_pos), "*"); +#endif + oswald_write_string(2, 2, FONT_DROID8x12, FALSE, "Menu"); + + oswald_write_string(2, 20, FONT_DROID8x12, FALSE, "Item 1"); + oswald_write_string(2, 29, FONT_DROID8x12, FALSE, "Item 2"); + oswald_write_string(2, 38, FONT_DROID8x12, FALSE, "Item 3"); + oswald_write_string(2, 47, FONT_DROID8x12, FALSE, "Item 4"); + oswald_write_string(2, 56, FONT_DROID8x12, FALSE, "Item 5"); + + oswald_write_character(50, 18+(9*test_menu.menu_pos), FONT_6x9, FALSE, 0x11); + + hal_lcd_update_display(); +} + +event_ret_t handle_menu_user_buttons(watch_button button) +{ + switch (button) { + case BUTTON_A: + test_menu.menu_pos--; + test_menu.menu_pos %= 5; + break; + case BUTTON_B: + test_menu.menu_pos++; + test_menu.menu_pos %= 5; + break; + default: + return EVENT_RET_UNHANDLED; + break; + } + draw_menu_test_screen(); + return EVENT_RET_HANDLED; +} + +event_ret_t test_menu_handle_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + return handle_menu_user_buttons(*(watch_button *)data); + break; + case EVENT_SCREEN_VISIBLE: + test_menu.menu_pos = 0; + draw_menu_test_screen(); + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + return EVENT_RET_HANDLED; +} + + +/* + * Stop Watch + */ +typedef struct { + uint8_t hr; + uint8_t min; + uint8_t sec; + uint8_t csec; + uint8_t lapse_hr; + uint8_t lapse_min; + uint8_t lapse_sec; + uint8_t lapse_csec; + boolean running; +} stopwatch_data_t; +static stopwatch_data_t stopwatch_screen = { 0, 0, 0, 0, 0, 0, 0, 0, FALSE }; + + +static void draw_stop_watch_screen(stopwatch_data_t *sdata) +{ + int gRow = 1; + int gColumn = 35; + + hal_lcd_clear_display(); + + oswald_draw_bitmap(36, 0, stopwatch_icon_width, stopwatch_icon_height, stopwatch_icon_bits); + + oswald_draw_bitmap(81, 6, startstopbutton_icon_width, startstopbutton_icon_height, startstopbutton_icon_bits); + oswald_draw_bitmap(81, 38, lapsebutton_icon_width, lapsebutton_icon_height, lapsebutton_icon_bits); + oswald_draw_bitmap(81, 70, enterbutton_icon_width, enterbutton_icon_height, enterbutton_icon_bits); + + gRow += 3 + oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (sdata->hr % 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (sdata->min / 10)); + gRow += 3 + oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (sdata->min % 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (sdata->sec / 10)); + gRow += 3 + oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (sdata->sec % 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD8x13, FALSE, (sdata->csec / 10)); + + gRow = 6; + gColumn = 61; + gRow += 13 + oswald_write_character(gRow, gColumn, FONT_LCD8x13, FALSE, (sdata->lapse_hr % 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD8x13, FALSE, (sdata->lapse_min / 10)); + gRow += 13 + oswald_write_character(gRow, gColumn, FONT_LCD8x13, FALSE, (sdata->lapse_min % 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD8x13, FALSE, (sdata->lapse_sec / 10)); + gRow += 3 + oswald_write_character(gRow, gColumn, FONT_LCD8x13, FALSE, (sdata->lapse_sec % 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD8x13, FALSE, (sdata->lapse_csec / 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD8x13, FALSE, (sdata->lapse_csec % 10)); + + hal_lcd_update_display(); +} + +event_ret_t handle_stop_watch_buttons(watch_button button) +{ + switch (button) { + case BUTTON_A: // start/stop + if (stopwatch_screen.running) { + hal_disable_centisecond_timer(); + stopwatch_screen.running = FALSE; + } else { + hal_enable_centisecond_timer(); + stopwatch_screen.running = TRUE; + } + return EVENT_RET_HANDLED; + break; + case BUTTON_B: // lapse + stopwatch_screen.lapse_hr = stopwatch_screen.hr; + stopwatch_screen.lapse_min = stopwatch_screen.min; + stopwatch_screen.lapse_sec = stopwatch_screen.sec; + stopwatch_screen.lapse_csec = stopwatch_screen.csec; + return EVENT_RET_HANDLED; + break; + case BUTTON_F: // reset + stopwatch_screen.hr = 0; + stopwatch_screen.min = 0; + stopwatch_screen.sec = 0; + stopwatch_screen.csec = 0; + stopwatch_screen.lapse_hr = 0; + stopwatch_screen.lapse_min = 0; + stopwatch_screen.lapse_sec = 0; + stopwatch_screen.lapse_csec = 0; + return EVENT_RET_HANDLED; + break; + default: + return EVENT_RET_UNHANDLED; + break; + } + return EVENT_RET_UNHANDLED; +} + +event_ret_t stop_watch_handle_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + draw_stop_watch_screen(&stopwatch_screen); + return handle_stop_watch_buttons(*(watch_button *)data); + break; + case EVENT_SCREEN_VISIBLE: + draw_stop_watch_screen(&stopwatch_screen); + return EVENT_RET_HANDLED; + break; + case EVENT_SCREEN_DESTROY: + hal_disable_centisecond_timer(); + stopwatch_screen.running = FALSE; + return EVENT_RET_HANDLED; + break; + case EVENT_CS_TIMER: + stopwatch_screen.csec++; + if (stopwatch_screen.csec > 99) { + stopwatch_screen.csec = 0; + stopwatch_screen.sec++; + }; + if (stopwatch_screen.sec > 59) { + stopwatch_screen.sec = 0; + stopwatch_screen.min++; + }; + if (stopwatch_screen.min > 59) { + stopwatch_screen.min = 0; + stopwatch_screen.hr++; + }; + if (stopwatch_screen.hr > 59) { + stopwatch_screen.hr = 0; + }; + if (stopwatch_screen.csec % 10 == 0) + draw_stop_watch_screen(&stopwatch_screen); + //update_stop_watch_screen(&stopwatch_screen); + return EVENT_RET_HANDLED; + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + return EVENT_RET_HANDLED; +} + + +/* + * Alarm screen, shown when alarm is fired + */ +void draw_alarm_screen(void) +{ + hal_lcd_clear_display(); + + oswald_draw_bitmap(36, 20, alarm_icon_width, alarm_icon_height, alarm_icon_bits); + + oswald_draw_bitmap(81, 70, enterbutton_icon_width, enterbutton_icon_height, enterbutton_icon_bits); + + hal_lcd_update_display(); +} + +event_ret_t alarm_handle_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_SCREEN_VISIBLE: + draw_alarm_screen(); + hal_enable_halfsecond_timer(); + hal_vibration_set_state(TRUE); + return EVENT_RET_HANDLED; + break; + case EVENT_SCREEN_DESTROY: + hal_disable_halfsecond_timer(); + hal_lcd_set_backlight(FALSE); + hal_vibration_set_state(FALSE); + return EVENT_RET_HANDLED; + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + return EVENT_RET_UNHANDLED; + break; + case EVENT_HALF_SEC_TIMER: + hal_lcd_set_backlight(!hal_lcd_get_backlight()); + hal_vibration_set_state(!hal_vibration_get_state()); + dbg_out("timer\n"); + return EVENT_RET_HANDLED; + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + return EVENT_RET_HANDLED; +} + + +/* + * Bluetooth setup screen + */ +typedef struct { + uint8_t pos; + boolean bt_en; + boolean set_mode; + boolean on; +} bluetooth_data_t; +static bluetooth_data_t bluetooth_screen = { + 0, + FALSE, + FALSE, + TRUE +}; + +void draw_bluetooth_screen(bluetooth_data_t *sdata) +{ + char bstr[20]; + uint8_t *bd_addr; + + hal_lcd_clear_display(); + + oswald_draw_bitmap(36, 0, Bluetooth_icon_width, Bluetooth_icon_height, Bluetooth_icon_bits); + + if (sdata->set_mode) { + oswald_draw_bitmap(81, 6, upbutton_icon_width, upbutton_icon_height, upbutton_icon_bits); + oswald_draw_bitmap(81, 38, downbutton_icon_width, downbutton_icon_height, downbutton_icon_bits); + oswald_draw_bitmap(81, 70, rightbutton_icon_width, rightbutton_icon_height, rightbutton_icon_bits); + } else { + oswald_draw_bitmap(81, 70, enterbutton_icon_width, enterbutton_icon_height, enterbutton_icon_bits); + } + + oswald_write_string(1, 30, FONT_DROID8x12, FALSE, "Enable:"); + if ((sdata->pos == 0 && sdata->on) || sdata->pos != 0) { + if (bluetooth_screen.bt_en) + oswald_draw_bitmap(53, 33, checked_icon_width, checked_icon_height, checked_icon_bits); + else + oswald_draw_bitmap(53, 33, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + oswald_write_string(1, 40, FONT_DROID8x12, FALSE, "State:"); + switch (hal_bluetooth_get_state()) { + case BLUETOOTH_OFF: + oswald_write_string(53, 40, FONT_DROID8x12, FALSE, "off"); + break; + case BLUETOOTH_ON: + oswald_write_string(53, 40, FONT_DROID8x12, FALSE, "on"); + break; + case BLUETOOTH_CONNECTED: + oswald_write_string(53, 40, FONT_DROID8x12, FALSE, "conn."); + break; + default: + break; + }; + oswald_write_string(1, 50, FONT_DROID8x12, FALSE, "Visible:"); + if ((sdata->pos == 1 && sdata->on) || sdata->pos != 1) { + // oswald_write_character(53, 50, FONT_DROID8x12, hal_bluetooth_get_visible() ? 'x' : '_'); + if (hal_bluetooth_get_visible()) + oswald_draw_bitmap(53, 53, checked_icon_width, checked_icon_height, checked_icon_bits); + else + oswald_draw_bitmap(53, 53, unchecked_icon_width, unchecked_icon_height, unchecked_icon_bits); + } + + if (hal_bluetooth_get_state() >= BLUETOOTH_ON) { + bd_addr = hal_bluetooth_get_local_bdaddr(); + snprintf(bstr, 20, "%02x:%02x:%02x:%02x:%02x:%02x", bd_addr[5], bd_addr[4], bd_addr[3], bd_addr[2], bd_addr[1], bd_addr[0]); + oswald_write_string(2, 85, FONT_5x7, FALSE, bstr); + } else { + } + + hal_lcd_update_display(); +} + +void bluetooth_handle_updown(uint8_t pos, int8_t incr) +{ + switch (pos) { + case 0: + if (hal_bluetooth_get_state() >= BLUETOOTH_ON) { + hal_bluetooth_set_state(BLUETOOTH_OFF); + bluetooth_screen.bt_en = FALSE; + } else { + hal_bluetooth_set_state(BLUETOOTH_ON); + bluetooth_screen.bt_en = TRUE; + } + break; + case 1: + if (hal_bluetooth_get_state() >= BLUETOOTH_ON && !hal_bluetooth_get_visible()) { + hal_bluetooth_set_visible(TRUE); + } else { + hal_bluetooth_set_visible(FALSE); + } + break; + default: + break; + }; +} + +event_ret_t handle_bluetooth_buttons(watch_button button, bluetooth_data_t *sdata) +{ + if (bluetooth_screen.set_mode) { + switch (button) { + case BUTTON_A: + bluetooth_handle_updown(sdata->pos, 1); + break; + case BUTTON_B: + bluetooth_handle_updown(sdata->pos, -1); + break; + case BUTTON_C: + sdata->pos++; + sdata->pos %= 2; + break; + case BUTTON_F: + bluetooth_screen.set_mode = FALSE; + break; + default: + return EVENT_RET_UNHANDLED; + break; + } + } else { + switch (button) { + case BUTTON_F: + bluetooth_screen.set_mode = TRUE; + break; + default: + return EVENT_RET_UNHANDLED; + break; + } + } + + draw_bluetooth_screen(sdata); + + return EVENT_RET_HANDLED; +} + +event_ret_t bluetooth_screen_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_SCREEN_VISIBLE: + bluetooth_screen.pos = 0; + bluetooth_screen.bt_en = (hal_bluetooth_get_state() > 0); + draw_bluetooth_screen(&bluetooth_screen); + hal_enable_halfsecond_timer(); + break; + case EVENT_SCREEN_DESTROY: + hal_disable_halfsecond_timer(); + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + return handle_bluetooth_buttons(*(watch_button *)data, &bluetooth_screen); + break; + case EVENT_HALF_SEC_TIMER: + if (bluetooth_screen.set_mode) { + if (bluetooth_screen.on) + bluetooth_screen.on = FALSE; + else + bluetooth_screen.on = TRUE; + } else + bluetooth_screen.on = TRUE; + draw_bluetooth_screen(&bluetooth_screen); + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + return EVENT_RET_HANDLED; +} + + +/* + * Info Screen + */ +void draw_info_screen(void) +{ + hal_lcd_clear_display(); + + oswald_draw_bitmap(36, 0, info_icon_width, info_icon_height, info_icon_bits); + + oswald_draw_bitmap(81, 70, enterbutton_icon_width, enterbutton_icon_height, enterbutton_icon_bits); + + oswald_write_string(2, 29, FONT_DROID8x12, FALSE, "Oswald"); + oswald_write_string(35, 29, FONT_DROID8x12, FALSE, OSWALD_VERSION); + oswald_write_string(2, 41, FONT_DROID8x12, FALSE, "HAL"); + oswald_write_string(35, 41, FONT_DROID8x12, FALSE, (char *)hal_get_version_string()); + oswald_write_string(2, 53, FONT_DROID8x12, FALSE, "Build"); + oswald_write_string(35, 53, FONT_DROID8x12, FALSE, (char *)hal_get_buildno_string()); + oswald_write_string(2, 65, FONT_DROID8x12, FALSE, "Radio"); + oswald_write_string(35, 65, FONT_DROID8x12, FALSE, (char *)hal_get_radio_version_string()); + + hal_lcd_update_display(); +} + +event_ret_t info_screen_handle_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_SCREEN_VISIBLE: + draw_info_screen(); + return EVENT_RET_HANDLED; + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + break; + default: + return EVENT_RET_UNHANDLED; + break; + }; + return EVENT_RET_UNHANDLED; +} + + +/* + * Messages Screens + */ +typedef struct { + int8_t pos; // marker position + int8_t offset; // offset in msg list +} messages_data_t; +static messages_data_t messages_screen = { + 0, + 0, +}; + +typedef struct { + uint8_t day; + uint8_t month; + uint8_t year; // without century, add +1900 + uint8_t hour; + uint8_t minute; +} msg_timedate_t; + +#define MSG_TYPE_READ 0 +#define MSG_TYPE_NEW 1 +#define MSG_TYPE_END 127 + +typedef struct { + uint8_t type; + msg_timedate_t td; + char *msg; +} message_t; + +uint8_t Msgs = 15; +message_t Msg[] = { + { MSG_TYPE_READ, {9,5,113,0,38}, "Testmessage with more text than fits into the menu." }, + { MSG_TYPE_NEW, {9,5,113,0,39}, "Sitting in the train waiting to arrive." }, + { MSG_TYPE_READ, {9,5,113,0,40}, "People in the train are annoying!" }, + { MSG_TYPE_READ, {9,5,113,0,40}, "Auch auf Deutsch geht das hier und Text können lang sein." }, + { MSG_TYPE_NEW, {8,5,113,0,40}, "Und hier noch eine neue Nachricht, die nun wirklich lang ist, laenger als die anderen." }, + { MSG_TYPE_READ, {9,5,113,0,38}, "Testmessage with more text than fits into the menu." }, + { MSG_TYPE_NEW, {9,5,113,0,39}, "Sitting in the train waiting to arrive." }, + { MSG_TYPE_READ, {9,5,113,0,40}, "People in the train are annoying!" }, + { MSG_TYPE_READ, {9,5,113,0,40}, "Auch auf Deutsch geht das hier und Text können lang sein." }, + { MSG_TYPE_NEW, {8,5,113,0,40}, "Und hier noch eine neue Nachricht, die nun wirklich lang ist, laenger als die anderen." }, + { MSG_TYPE_READ, {9,5,113,0,38}, "Testmessage with more text than fits into the menu." }, + { MSG_TYPE_NEW, {9,5,113,0,39}, "Sitting in the train waiting to arrive." }, + { MSG_TYPE_READ, {9,5,113,0,40}, "People in the train are annoying!" }, + { MSG_TYPE_READ, {9,5,113,0,40}, "Auch auf Deutsch geht das hier und Text können lang sein." }, + { MSG_TYPE_NEW, {8,5,113,0,40}, "Und hier noch eine neue Nachricht, die nun wirklich lang ist, laenger als die anderen." }, + { MSG_TYPE_END, {0,0,0,0,0}, "Exit" }, +}; + +void draw_message_screen(messages_data_t *sdata) +{ + char dstr[32]; + uint8_t strpos, msglen; + uint8_t line; + + hal_lcd_clear_display(); + +#if 0 + oswald_draw_bitmap(81, 6, upbutton_icon_width, upbutton_icon_height, upbutton_icon_bits); + oswald_draw_bitmap(81, 38, downbutton_icon_width, downbutton_icon_height, downbutton_icon_bits); +#endif + oswald_draw_bitmap(81, 70, enterbutton_icon_width, enterbutton_icon_height, enterbutton_icon_bits); + + Msg[sdata->offset + sdata->pos].type = MSG_TYPE_READ; + snprintf(dstr, 19, "#%02d/%02d", sdata->pos + sdata->offset + 1, Msgs); + oswald_write_string(30, 0, FONT_5x7, FALSE, dstr); + oswald_draw_line(0,7,95,7); + + + // here goes the text + msglen = strlen(Msg[sdata->pos+sdata->offset].msg); + strpos=0; + line=0; + while ((strpos < msglen) && (line < 6)) { + strpos += oswald_write_string_length(4, 9+(line*12), 84, FONT_DROID8x12, FALSE, &Msg[sdata->pos+sdata->offset].msg[strpos]); + line++; + } + + + oswald_draw_line(0,87,95,87); + + if (Msg[sdata->offset + sdata->pos].type != MSG_TYPE_END) { + snprintf(dstr, 19, "%c %02d.%02d.%04d,%02d:%02d", (Msg[sdata->pos+sdata->offset].type == MSG_TYPE_NEW) ? '*':' ', Msg[sdata->pos+sdata->offset].td.day, Msg[sdata->pos+sdata->offset].td.month, Msg[sdata->pos+sdata->offset].td.year+1900, Msg[sdata->pos+sdata->offset].td.hour, Msg[sdata->pos+sdata->offset].td.minute); + oswald_write_string(2, 89, FONT_5x7, FALSE, dstr); + } + + hal_lcd_update_display(); +} + +event_ret_t handle_message_screen_buttons(watch_button button, messages_data_t *sdata) +{ + switch (button) { + case BUTTON_A: + break; + case BUTTON_B: + return EVENT_RET_HANDLED; + break; + case BUTTON_C: + // OswaldState.screen->event_func(EVENT_SCREEN_DESTROY, NULL); + OswaldState.screen_id = MESSAGES_SCREEN; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + return EVENT_RET_HANDLED; + break; + default: + break; + } + + return EVENT_RET_UNHANDLED; +} + +event_ret_t message_screen_handle_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_SCREEN_VISIBLE: + draw_message_screen(&messages_screen); + return EVENT_RET_HANDLED; + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + return handle_message_screen_buttons(*(watch_button *)data, &messages_screen); + break; + default: + break; + }; + return EVENT_RET_UNHANDLED; +} + +void draw_messages_screen(messages_data_t *sdata) +{ + char dstr[32]; + int i; + + hal_lcd_clear_display(); + + // oswald_draw_bitmap(36, 0, Message_icon_width, Message_icon_height, Message_icon_bits); + + oswald_draw_bitmap(81, 6, upbutton_icon_width, upbutton_icon_height, upbutton_icon_bits); + oswald_draw_bitmap(81, 38, downbutton_icon_width, downbutton_icon_height, downbutton_icon_bits); + oswald_draw_bitmap(81, 70, enterbutton_icon_width, enterbutton_icon_height, enterbutton_icon_bits); + + if (Msg[sdata->offset + sdata->pos].type != MSG_TYPE_END) { + snprintf(dstr, 19, "#%02d/%02d", sdata->pos + sdata->offset + 1, Msgs); + oswald_write_string(30, 0, FONT_5x7, FALSE, dstr); + } + oswald_draw_line(0,7,95,7); + + for (i=0; i<6; i++) { + if (Msg[i+sdata->offset].type != MSG_TYPE_END) { + //oswald_write_string_length(4, 9+(i*12), 84, FONT_DROID8x12, (Msg[i+sdata->offset].type == MSG_TYPE_NEW), Msg[i+sdata->offset].msg); + if (Msg[i+sdata->offset].type == MSG_TYPE_NEW) + oswald_write_string_length(4, 9+(i*12), 84, FONT_DROID8x12b, (i+sdata->offset) == (sdata->offset + sdata->pos), Msg[i+sdata->offset].msg); + else + oswald_write_string_length(4, 9+(i*12), 84, FONT_DROID8x12, (i+sdata->offset) == (sdata->offset + sdata->pos), Msg[i+sdata->offset].msg); + } else { + oswald_draw_bitmap(0, 66, leftbutton_icon_width, leftbutton_icon_height, leftbutton_icon_bits); + } + } + + // marker selected msg + oswald_draw_line(1,9,1,81); + oswald_draw_line_ww(1,10+(sdata->pos*12),1,20+(sdata->pos*12),2); + + oswald_draw_line(0,87,95,87); + + if (Msg[sdata->offset + sdata->pos].type != MSG_TYPE_END) { + snprintf(dstr, 19, "%c %02d.%02d.%04d,%02d:%02d", (Msg[sdata->pos+sdata->offset].type == MSG_TYPE_NEW) ? '*':' ', Msg[sdata->pos+sdata->offset].td.day, Msg[sdata->pos+sdata->offset].td.month, Msg[sdata->pos+sdata->offset].td.year+1900, Msg[sdata->pos+sdata->offset].td.hour, Msg[sdata->pos+sdata->offset].td.minute); + oswald_write_string(2, 89, FONT_5x7, FALSE, dstr); + } + + hal_lcd_update_display(); +} + +event_ret_t handle_messages_screen_buttons(watch_button button, messages_data_t *sdata) +{ + switch (button) { + case BUTTON_A: + sdata->pos--; + if (sdata->pos < 0) { + if (sdata->offset > 0) { + sdata->pos = 0; + sdata->offset--; + if (sdata->offset < 0) + sdata->offset = 0; + } else { + sdata->pos = 5; + sdata->offset = (Msgs - 5); + if (sdata->offset < 0) + sdata->offset = 0; + } + } + draw_messages_screen(&messages_screen); + return EVENT_RET_HANDLED; + break; + case BUTTON_B: + sdata->pos++; + if (sdata->pos > 5) { + sdata->pos = 5; + sdata->offset++; + if ((sdata->offset + 5) > Msgs) { + sdata->offset = 0; + sdata->pos = 0; + } + } + draw_messages_screen(&messages_screen); + return EVENT_RET_HANDLED; + break; + case BUTTON_C: + if (Msg[sdata->offset + sdata->pos].type == MSG_TYPE_END) + return EVENT_RET_UNHANDLED; + else + // OswaldState.screen->event_func(EVENT_SCREEN_DESTROY, NULL); + OswaldState.screen_id = MESSAGE_SCREEN; + OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; + OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); + return EVENT_RET_HANDLED; + break; + default: + break; + } + + return EVENT_RET_UNHANDLED; +} + +event_ret_t messages_screen_handle_events(uint16_t event, void *data) +{ + switch (event) { + case EVENT_SCREEN_VISIBLE: +// messages_screen.pos = 0; +// messages_screen.offset = 0; + draw_messages_screen(&messages_screen); + return EVENT_RET_HANDLED; + break; + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + return handle_messages_screen_buttons(*(watch_button *)data, &messages_screen); + break; + default: + break; + }; + return EVENT_RET_UNHANDLED; +} + diff --git a/ui/oswald_screens.h b/ui/oswald_screens.h new file mode 100644 index 0000000..213b1d5 --- /dev/null +++ b/ui/oswald_screens.h @@ -0,0 +1,28 @@ +#ifndef _OSWALD_SCREENS_H +#define _OSWALD_SCREENS_H + + +event_ret_t main_menu_handle_events(uint16_t event, void *data); + +event_ret_t idle_handle_events(uint16_t event, void *data); + +event_ret_t accel_handle_events(uint16_t event, void *data); + +event_ret_t datetime_setup_events(uint16_t event, void *data); + +event_ret_t alarm_setup_events(uint16_t event, void *data); + +event_ret_t test_menu_handle_events(uint16_t event, void *data); + +event_ret_t stop_watch_handle_events(uint16_t event, void *data); + +event_ret_t alarm_handle_events(uint16_t event, void *data); + +event_ret_t bluetooth_screen_events(uint16_t event, void *data); + +event_ret_t info_screen_handle_events(uint16_t event, void *data); + +event_ret_t messages_screen_handle_events(uint16_t event, void *data); +event_ret_t message_screen_handle_events(uint16_t event, void *data); + +#endif diff --git a/ui/oswald_strings.c b/ui/oswald_strings.c new file mode 100644 index 0000000..44bbeb6 --- /dev/null +++ b/ui/oswald_strings.c @@ -0,0 +1,48 @@ +#include "oswald.h" + +#include "oswald_strings.h" + +uint16_t oswald_strlen(char *string) +{ + int i=0; + + if (string == NULL) + return 0; + + while (string[i] != 0) i++; + + return i; +} + +char *itoa(int16_t value, char* result, int base) +{ + char *ptr = result, *ptr1 = result, tmp_char; + int16_t tmp_value; + + if (result == NULL) + return NULL; + + // check that the base if valid + if (base < 2 || base > 36) { + *result = '\0'; + return result; + } + + do { + tmp_value = value; + value /= base; + *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - value * base)]; + } while ( value ); + + // Apply negative sign + if (tmp_value < 0) + *ptr++ = '-'; + *ptr-- = '\0'; + while (ptr1 < ptr) { + tmp_char = *ptr; + *ptr--= *ptr1; + *ptr1++ = tmp_char; + } + return result; +} + diff --git a/ui/oswald_strings.h b/ui/oswald_strings.h new file mode 100644 index 0000000..845773e --- /dev/null +++ b/ui/oswald_strings.h @@ -0,0 +1,8 @@ +#ifndef _OSWALD_STRINGS_H +#define _OSWALD_STRINGS_H + +uint16_t oswald_strlen(char *string); +char* itoa(int16_t value, char* result, int base); + +#endif + diff --git a/ui/oswald_watch_faces.c b/ui/oswald_watch_faces.c new file mode 100644 index 0000000..b955c74 --- /dev/null +++ b/ui/oswald_watch_faces.c @@ -0,0 +1,298 @@ +#include +#include + +#include "oswald.h" +#include "oswald_main.h" +#include "oswald_hal.h" +#include "oswald_graphics.h" + +#include "oswald_watch_faces.h" + +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery0_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery25_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery50_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery75_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery100_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/charger_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/bluetooth_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/bluetooth_con_icon.xbm" + + +/* sine table, per degree, factor 100 */ +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +int16_t sintab[]={ + 0, 2, 3, 5, 7, 9, 10, 12, 14, 16, + 17, 19, 21, 22, 24, 26, 28, 29, 31, 33, + 34, 36, 37, 39, 41, 42, 44, 45, 47, 48, + 50, 52, 53, 54, 56, 57, 59, 60, 62, 63, + 64, 66, 67, 68, 69, 71, 72, 73, 74, 75, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 87, 88, 89, 90, 91, 91, 92, 93, 93, + 94, 95, 95, 96, 96, 97, 97, 97, 98, 98, + 98, 99, 99, 99, 99, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 99, 99, 99, 99, + 98, 98, 98, 97, 97, 97, 96, 96, 95, 95, + 94, 93, 93, 92, 91, 91, 90, 89, 88, 87, + 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, + 77, 75, 74, 73, 72, 71, 69, 68, 67, 66, + 64, 63, 62, 60, 59, 57, 56, 54, 53, 52, + 50, 48, 47, 45, 44, 42, 41, 39, 37, 36, + 34, 33, 31, 29, 28, 26, 24, 22, 21, 19, + 17, 16, 14, 12, 10, 9, 7, 5, 3, 2, + 0, -2, -3, -5, -7, -9, -10, -12, -14, -16, + -17, -19, -21, -22, -24, -26, -28, -29, -31, -33, + -34, -36, -37, -39, -41, -42, -44, -45, -47, -48, + -50, -52, -53, -54, -56, -57, -59, -60, -62, -63, + -64, -66, -67, -68, -69, -71, -72, -73, -74, -75, + -77, -78, -79, -80, -81, -82, -83, -84, -85, -86, + -87, -87, -88, -89, -90, -91, -91, -92, -93, -93, + -94, -95, -95, -96, -96, -97, -97, -97, -98, -98, + -98, -99, -99, -99, -99,-100,-100,-100,-100,-100, + -100,-100,-100,-100,-100,-100, -99, -99, -99, -99, + -98, -98, -98, -97, -97, -97, -96, -96, -95, -95, + -94, -93, -93, -92, -91, -91, -90, -89, -88, -87, + -87, -86, -85, -84, -83, -82, -81, -80, -79, -78, + -77, -75, -74, -73, -72, -71, -69, -68, -67, -66, + -64, -63, -62, -60, -59, -57, -56, -54, -53, -52, + -50, -48, -47, -45, -44, -42, -41, -39, -37, -36, + -34, -33, -31, -29, -28, -26, -24, -22, -21, -19, + -17, -16, -14, -12, -10, -9, -7, -5, -3, -2 +}; + +int16_t f_sin(int16_t v) +{ + v %= 360; + return sintab[v]; +} + +int16_t f_cos(int16_t v) +{ + v += 90; + v %= 360; + return sintab[v]; +} + +void draw_status_icons(void) +{ + static uint8_t ci = 0; + + if (OswaldPowerState.source) { + oswald_draw_bitmap(81, 0, charger_icon_width, charger_icon_height, charger_icon_bits); + + if (OswaldPowerState.charge_state != POWER_CHARGER_DONE) { + if (ci==0) oswald_draw_bitmap(81, 0, battery0_icon_width, battery0_icon_height, battery0_icon_bits); + else if (ci==1) oswald_draw_bitmap(81, 0, battery25_icon_width, battery25_icon_height, battery25_icon_bits); + else if (ci==2) oswald_draw_bitmap(81, 0, battery50_icon_width, battery50_icon_height, battery50_icon_bits); + else if (ci==3) oswald_draw_bitmap(81, 0, battery75_icon_width, battery75_icon_height, battery75_icon_bits); + else if (ci==4) oswald_draw_bitmap(81, 0, battery100_icon_width, battery100_icon_height, battery100_icon_bits); + ci++; + ci %= 5; + } else { + oswald_draw_bitmap(81, 0, battery100_icon_width, battery100_icon_height, battery100_icon_bits); + } + } else { + if (OswaldPowerState.percent > 75) + oswald_draw_bitmap(81, 0, battery100_icon_width, battery100_icon_height, battery100_icon_bits); + else if (OswaldPowerState.percent > 50) + oswald_draw_bitmap(81, 0, battery75_icon_width, battery75_icon_height, battery75_icon_bits); + else if (OswaldPowerState.percent > 25) + oswald_draw_bitmap(81, 0, battery50_icon_width, battery50_icon_height, battery50_icon_bits); + else if (OswaldPowerState.percent > 5) + oswald_draw_bitmap(81, 0, battery25_icon_width, battery25_icon_height, battery25_icon_bits); + else + oswald_draw_bitmap(81, 0, battery0_icon_width, battery0_icon_height, battery0_icon_bits); + } + + if (hal_bluetooth_get_state() == BLUETOOTH_ON) + oswald_draw_bitmap(81, 0, bluetooth_icon_width, bluetooth_icon_height, bluetooth_icon_bits); + else if (hal_bluetooth_get_state() == BLUETOOTH_CONNECTED) + oswald_draw_bitmap(81, 0, bluetooth_con_icon_width, bluetooth_con_icon_height, bluetooth_con_icon_bits); +} + +void DrawLcdAnaClock(boolean show_seconds) +{ + int16_t i, x, y, x2, y2; + int16_t tmp; + int8_t hour, minute, seconds; + char tstr[16]; + + hour = OswaldClk.hour; + minute = OswaldClk.minute; + seconds = OswaldClk.second; + + hour -= 3; + if (hour < 0) + hour += 12; + // mf = (1. / 59.) * (double)minute; + minute -= 15; + if (minute < 0) + minute += 60; + seconds -= 15; + if (seconds < 0) + seconds += 60; + + hal_lcd_clear_display(); + + snprintf(tstr, 16, "%2d", OswaldClk.day); + oswald_write_string(70, 43, FONT_6x9, FALSE, tstr); + + // Marker + // plot(R*cos(360° * i/N), R*sin(360° * i/N)) + for (i=0; i<12; i++) { + x = 47 + ((43 * f_cos((360 / 12) * i)) / 100); + y = 47 + ((43 * f_sin((360 / 12) * i)) / 100); + x2 = 47 + ((47 * f_cos((360 / 12) * i)) / 100); + y2 = 47 + ((47 * f_sin((360 / 12) * i)) / 100); + oswald_draw_line_ww(x, y, x2, y2, 2); + // g_printerr("br %d,%d %d,%d\n", x,y,x2,y2); + }; + + // Hour + tmp = 47 + (30 * f_cos(((360 / 12) * hour) + ((OswaldClk.minute * 360) /12 / 60)) / 100); + x = tmp; + tmp = 47 + (30 * f_sin(((360 / 12) * hour) + ((OswaldClk.minute * 360) /12 / 60)) / 100); + y = tmp; + oswald_draw_line_ww(47, 47, x, y, 2); + + // Minute + tmp = 47 + ((40 * f_cos((360 / 60) * minute)) / 100); + x = tmp; + tmp = 47 + ((40 * f_sin((360 / 60) * minute)) / 100); + y = tmp; + oswald_draw_line_ww(47, 47, x, y, 2); + + if (show_seconds) { + // Seconds + tmp = 47 + ((40 * f_cos((360 / 60) * seconds)) / 100); + x = tmp; + tmp = 47 + ((40 * f_sin((360 / 60) * seconds)) / 100); + y = tmp; + oswald_draw_line(47, 47, x, y); + }; + + draw_status_icons(); + + hal_lcd_update_display(); +} + +static const char *daynames[7] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; + +void DrawLcdDigitalClock(boolean show_seconds) +{ + int gRow = 1; + int gColumn = 1; + char tstr[16]; + int i; + +#if 0 + snprintf(tstr, 16, "%d%% (%dmV)", OswaldPowerState.percent, OswaldPowerState.level); + WriteLcdString(2, 48, tstr); + WriteLcdString(2, 64, OswaldPowerState.source ? "ext" : "bat"); + + /* this makes only sense when the charger is active */ + if (OswaldPowerState.source) { + switch (OswaldPowerState.charge_state) { + case POWER_CHARGER_DONE: + WriteLcdString(2, 80, "charge done"); + break; + case POWER_CHARGER_PRECHARGE: + WriteLcdString(2, 80, "precharging"); + break; + case POWER_CHARGER_CHARGING: + WriteLcdString(2, 80, "charging"); + break; + case POWER_CHARGER_UNK: + WriteLcdString(2, 80, "charge unkn."); + break; + default: + break; + }; + }; +#endif + hal_lcd_clear_display(); + + if (OswaldClk.clk24hr) { + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (OswaldClk.hour / 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (OswaldClk.hour % 10)); + } else { + unsigned char val = OswaldClk.hour; + if (val > 12) { + val -= 12; + oswald_write_string(59, 0, FONT_6x9, FALSE, "PM"); + } else { + oswald_write_string(59, 0, FONT_6x9, FALSE, "AM"); + } + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (val / 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (val % 10)); + } + if (OswaldClk.second % 2) + oswald_write_character(gRow-4, gColumn, FONT_LCD13x21, FALSE, 10); + gRow += 5; + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (OswaldClk.minute / 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, FALSE, (OswaldClk.minute % 10)); + + if (show_seconds) { + oswald_write_character(59, 9, FONT_LCD8x13, FALSE, (OswaldClk.second / 10)); + oswald_write_character(67, 9, FONT_LCD8x13, FALSE, (OswaldClk.second % 10)); + } + + if (OswaldClk.day_first) + snprintf(tstr, 16, "%s %d.%d.%d", daynames[OswaldClk.wday], OswaldClk.day, OswaldClk.month, OswaldClk.year); + else + snprintf(tstr, 16, "%s %d/%d %d", daynames[OswaldClk.wday], OswaldClk.month, OswaldClk.day, OswaldClk.year); + oswald_write_string(0, 25, FONT_DROID8x12, FALSE, tstr); + + gRow = 0; + gColumn = 45; + for (i=0; i 90) { + gRow = 0; + gColumn += 9; + } + // OK, screen ends, leave the loop, no matter what + if (gColumn > 86) + i = 255; + } + + draw_status_icons(); + + hal_lcd_update_display(); +} + diff --git a/ui/oswald_watch_faces.h b/ui/oswald_watch_faces.h new file mode 100644 index 0000000..9918a7b --- /dev/null +++ b/ui/oswald_watch_faces.h @@ -0,0 +1,8 @@ +#ifndef _OSWALD_WATCH_FACES_H +#define _OSWALD_WATCH_FACES_H + +void DrawLcdAnaClock(boolean show_seconds); +void DrawLcdDigitalClock(boolean show_seconds); + +#endif +