summaryrefslogtreecommitdiffstats
path: root/keyboard/alps64
diff options
context:
space:
mode:
authorChristopher Browne <cbbrowne@ca.afilias.info>2016-06-13 16:06:03 -0400
committerChristopher Browne <cbbrowne@ca.afilias.info>2016-06-13 16:06:03 -0400
commitdc9bf78f2b1d7d894576d87ea9bfc86d7bb3deee (patch)
tree44f432118882f9176ef6d901dc3d389d28737254 /keyboard/alps64
parentd649ab34334ff568448c47a04fcf40f1aa960135 (diff)
parent25d4772754186b8ab6ef86c28049da67a460f123 (diff)
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware
Diffstat (limited to 'keyboard/alps64')
-rw-r--r--keyboard/alps64/Makefile44
-rw-r--r--keyboard/alps64/alps64.c (renamed from keyboard/alps64/keymap_common.c)31
-rw-r--r--keyboard/alps64/alps64.h (renamed from keyboard/alps64/keymap_common.h)36
-rw-r--r--keyboard/alps64/config.h5
-rw-r--r--keyboard/alps64/keymaps/default/compiled.hex1373
-rw-r--r--keyboard/alps64/keymaps/default/keymap.c (renamed from keyboard/alps64/keymaps/default.c)4
-rw-r--r--keyboard/alps64/keymaps/hasu.c151
-rw-r--r--keyboard/alps64/matrix.c5
8 files changed, 1415 insertions, 234 deletions
diff --git a/keyboard/alps64/Makefile b/keyboard/alps64/Makefile
index 7634c4280e..8259e4d08d 100644
--- a/keyboard/alps64/Makefile
+++ b/keyboard/alps64/Makefile
@@ -39,27 +39,9 @@
#----------------------------------------------------------------------------
# Target file name (without extension).
-TARGET = alps64
-
-# Directory common source filess exist
-TMK_DIR = ../../tmk_core
-
-# Directory keyboard dependent files exist
-TARGET_DIR = .
# project specific files
-SRC = keymap_common.c \
- matrix.c \
- led.c
-
-ifdef KEYMAP
- SRC := keymaps/$(KEYMAP).c $(SRC)
-else
- SRC := keymaps/default.c $(SRC)
-endif
-
-CONFIG_H = config.h
-
+SRC = led.c
# MCU name
MCU = atmega32u2
@@ -113,22 +95,14 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
-
-# Optimize size but this may cause error "relocation truncated to fit"
-#EXTRALDFLAGS = -Wl,--relax
-
-# Search Path
-VPATH += $(TARGET_DIR)
-VPATH += $(TMK_DIR)
-
-include $(TMK_DIR)/protocol/lufa.mk
-include $(TMK_DIR)/common.mk
-include $(TMK_DIR)/rules.mk
+ifndef QUANTUM_DIR
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboard/alps64/keymap_common.c b/keyboard/alps64/alps64.c
index fdb1769e1c..dde10c11e3 100644
--- a/keyboard/alps64/keymap_common.c
+++ b/keyboard/alps64/alps64.c
@@ -14,17 +14,30 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "keymap_common.h"
+#include "quantum.h"
+#define LED_ON() do { DDRC |= (1<<5); PORTC |= (1<<5); } while (0)
+#define LED_OFF() do { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } while (0)
+#define LED_TGL() do { DDRC |= (1<<5); PINC |= (1<<5); } while (0)
-/* translates key to keycode */
-uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
-{
- return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
+__attribute__ ((weak))
+void matrix_init_user(void) {
+
+}
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+
+}
+
+void matrix_init_kb(void) {
+ LED_ON();
+ _delay_ms(500);
+ LED_OFF();
+
+ matrix_init_user();
}
-/* translates Fn keycode to action */
-action_t keymap_fn_to_action(uint8_t keycode)
-{
- return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
+void matrix_scan_kb(void) {
+ matrix_scan_user();
}
diff --git a/keyboard/alps64/keymap_common.h b/keyboard/alps64/alps64.h
index 957db57922..f265c3358e 100644
--- a/keyboard/alps64/keymap_common.h
+++ b/keyboard/alps64/alps64.h
@@ -14,25 +14,10 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef KEYMAP_COMMON_H
-#define KEYMAP_COMMON_H
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <avr/pgmspace.h>
-#include "keycode.h"
-#include "action.h"
-#include "action_macro.h"
-#include "report.h"
-#include "host.h"
-#include "print.h"
-#include "debug.h"
-#include "keymap.h"
-
-
-extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
-extern const uint16_t fn_actions[];
+#ifndef ALPS64_H
+#define ALPS64_H
+#include "quantum.h"
/* Alps64 keymap definition macro */
#define KEYMAP( \
@@ -52,19 +37,4 @@ extern const uint16_t fn_actions[];
{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 } \
}
-/* AEK US */
-#define KEYMAP_AEK( \
- K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K27, \
- K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \
- K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \
- K31, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, \
- K30, K40, K50, K60, K00, K10, K20 \
-) KEYMAP( \
- K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, NUHS,K27, \
- K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \
- K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \
- K31, NUBS,K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, ESC, \
- K30, K40, K50, K60, APP, K00, K10, K20 \
-)
-
#endif
diff --git a/keyboard/alps64/config.h b/keyboard/alps64/config.h
index 824d3e8302..858a82ecdd 100644
--- a/keyboard/alps64/config.h
+++ b/keyboard/alps64/config.h
@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CONFIG_H
#define CONFIG_H
+#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
@@ -31,6 +32,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 8
#define MATRIX_COLS 8
+#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6, B7 }
+#define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5, D6, C2 }
+#define UNUSED_PINS
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboard/alps64/keymaps/default/compiled.hex b/keyboard/alps64/keymaps/default/compiled.hex
new file mode 100644
index 0000000000..ef43410f24
--- /dev/null
+++ b/keyboard/alps64/keymaps/default/compiled.hex
@@ -0,0 +1,1373 @@
+:100000000C940B060C944F060C944F060C944F0660
+:100010000C944F060C944F060C944F060C944F060C
+:100020000C944F060C944F060C944F060C94D5106C
+:100030000C9483110C94E81E0C944F060C944F06FC
+:100040000C944F060C944F060C944F060C94501FC2
+:100050000C944F060C944F060C944F060C944F06CC
+:100060000C944F060C944F060C944F060C944F06BC
+:100070000C944F06F01112120013121200135712B3
+:100080007A120013CF12E2120C160C163B163B1616
+:100090007A169A16CA17CA17A516CA1755175517EA
+:1000A000BB17CA17CA17C4176217621762176217FD
+:1000B0006217621762176217621762176217621778
+:1000C00062176217621762177217801787178E17E9
+:1000D0009817E600100036000E000F0012002700EF
+:1000E0002D00E700370038003300340013002F00E4
+:1000F0002E00E400E5002900280031003000320025
+:100100002A00E000E100390004002B001400350053
+:100110001E00E30064001D0016001A0008001F0006
+:100120002000E2001B000700090015001700210055
+:1001300022002C00060019000A001C0018002300F1
+:1001400024006500050011000B000D000C002500C7
+:1001500026000A44454255473A20656E61626C6547
+:10016000642E0A005374617465206F6620726F7785
+:100170002025583A2025303136620A0048756D61D5
+:100180006E2D7265616461626C65206D6174726967
+:10019000782073746174653A0D0A004465626F7566
+:1001A0006E63696E672064656C61792072656D614C
+:1001B000696E696E673A2025580A005B735D004BD3
+:1001C0006579626F6172642073746172742E0A00C3
+:1001D0005B525D005B445D005B435D000E034100CC
+:1001E0006C007000730036003400000008035400F7
+:1001F0004D004B00000004030904090274000401CF
+:1002000000A0FA0904000001030101000921110105
+:100210000001223F000705810308000A09040100CC
+:100220000103010200092111010001224D0007050F
+:10023000820308000A0904020001030000000921EA
+:10024000110100012236000705830308000A090492
+:100250000300020300000009211101000122200017
+:100260000705840320000107050403200001120193
+:10027000100100000008EDFE6464010001020001AD
+:100280000631FF0974A1010975150025FF95207538
+:100290000881020976150025FF952075089102C096
+:1002A00005010980A101850216010026B7001A0187
+:1002B000002AB700751095018100C0050C0901A145
+:1002C000018503160100269C021A01002A9C027572
+:1002D0001095018100C005010902A1010901A100D9
+:1002E00005091901290515002501950575018102EA
+:1002F0009501750381010501093009311581257FBB
+:1003000095027508810609381581257F95017508C4
+:100310008106050C0A38021581257F950175088133
+:1003200006C0C005010906A101050719E029E71566
+:100330000025019508750181029501750881010567
+:10034000081901290595057501910295017503911B
+:10035000010507190029FF150025FF95067508817D
+:1003600000C00A002530325820006B6579626F6149
+:1003700072645F7265706F72743A20004B657962C7
+:100380006F617264204C4544732073746174653AE4
+:100390002025780A00646F6E652E0A00626F6F6711
+:1003A0006D61676963207363616E3A202E2E2E2083
+:1003B00000290A002575002F002575005D280025FD
+:1003C00064002000256400200025640020002564CE
+:1003D000007C0025303258006D6F7573656B657950
+:1003E000205B62746E7C782079207620685D2872AC
+:1003F00065702F61636C293A205B006D6B5F7768D5
+:1004000065656C5F74696D655F746F5F6D617820A1
+:100410003D2025640A006D6B5F776865656C5F6DD4
+:1004200061785F7370656564203D2025640A006D06
+:100430006B5F74696D655F746F5F6D6178203D20DF
+:1004400025640A006D6B5F6D61785F73706565642C
+:10045000203D2025640A006D6B5F696E74657276BD
+:10046000616C203D2025640A006D6B5F64656C61E2
+:1004700079203D2025640A006D6B5F776865656CA7
+:100480005F74696D655F746F5F6D6178203D2025D5
+:10049000640A006D6B5F776865656C5F6D61785F9E
+:1004A0007370656564203D2025640A006D6B5F7480
+:1004B000696D655F746F5F6D6178203D2025640A0A
+:1004C000006D6B5F6D61785F7370656564203D20C2
+:1004D00025640A006D6B5F696E74657276616C20CD
+:1004E0003D2025640A006D6B5F64656C6179203D79
+:1004F0002025640A000A00257500363A20776865D1
+:10050000656C5F74696D655F746F5F6D61783A20CB
+:10051000000A00257500353A20776865656C5F6DC7
+:1005200061785F73706565643A20000A0025750084
+:10053000343A2074696D655F746F5F6D61783A203D
+:10054000000A00257500333A206D61785F7370658D
+:1005500065643A20000A00257500323A20696E74FD
+:10056000657276616C286D73293A20000A00257542
+:1005700000313A2064656C6179282A31306D732925
+:100580003A20000A092D2056616C756573202D0AEA
+:10059000004D3E004D25643E20003F0073657420F1
+:1005A00064656661756C740A00433E200077686577
+:1005B00072652064656C74613A20637572736F7242
+:1005C0003D25642C20776865656C3D25640A53657C
+:1005D0006520687474703A2F2F656E2E77696B6989
+:1005E00070656469612E6F72672F77696B692F4D33
+:1005F0006F7573655F6B6579730A000A092D204D6D
+:100600006F7573656B6579202D0A4553432F713AD9
+:1006100009717569740A313A0964656C6179282A2F
+:1006200031306D73290A323A09696E7465727661E8
+:100630006C286D73290A333A096D61785F737065B0
+:1006400065640A343A0974696D655F746F5F6D6142
+:10065000780A353A09776865656C5F6D61785F7314
+:10066000706565640A363A09776865656C5F746918
+:100670006D655F746F5F6D61780A0A703A09707218
+:10068000696E742076616C7565730A643A097365E6
+:10069000742064656661756C74730A75703A092B11
+:1006A000310A646F776E3A092D310A706775703AB6
+:1006B000092B31300A7067646F776E3A092D31303B
+:1006C0000A0A7370656564203D2064656C7461205E
+:1006D0002A206D61785F7370656564202A20287216
+:1006E0006570656174202F2074696D655F746F5F3C
+:1006F0006D6178290A003F004D3E2000433E2000F6
+:100700004C25640A0074696D65725F636F756E7461
+:100710003A202530346C580A006B6579626F61723B
+:10072000645F69646C653A2025580A006B657962DC
+:100730006F6172645F70726F746F636F6C3A2025C3
+:10074000580A00686F73745F6B6579626F617264D9
+:100750005F6C65647328293A2025580A000A092D20
+:1007600020537461747573202D0A004743433A2067
+:10077000342E392E32204156522D4C4942433A20D4
+:10078000312E382E31204156525F415243483A2093
+:1007900061767233350A004F5054494F4E533A2018
+:1007A0004C55464120424F4F544D41474943204DFF
+:1007B0004F5553454B45592045585452414B455987
+:1007C00020434F4E534F4C4520434F4D4D414E44D7
+:1007D00020343039360A004255494C443A203136EB
+:1007E00037313865662D6469727479202832333A5E
+:1007F00030373A3132204A756E202039203230317C
+:1008000036290A005649443A20307846454544285E
+:10081000544D4B29205049443A20307836343634F0
+:1008200028416C7073363429205645523A2030786E
+:10083000303030310A00444553433A20544D4B2068
+:100840006B6579626F617264206669726D7761723F
+:100850006520666F7220416C707336340A000A0995
+:100860002D2056657273696F6E202D0A000A092DBE
+:1008700020436F6E736F6C65202D0A4553432F71B3
+:100880003A09717569740A6D3A096D6F7573656B14
+:1008900065790A000A092D204D61676963202D0AD8
+:1008A000443A094465627567204D657373616765F5
+:1008B00020546F67676C650A583A094D6174726914
+:1008C00078204465627567204D6F646520546F67BA
+:1008D000676C65202D2053686F77206B6579707287
+:1008E000657373657320696E206D61747269782019
+:1008F000677269640A4B3A094B6579626F61726489
+:1009000020446562756720546F67676C65202D20F1
+:1009100053686F77206B65797072657373207265A9
+:10092000706F72740A4D3A094465627567204D6FA5
+:1009300075736520546F67676C650A563A0956658A
+:100940007273696F6E0A533A095374617475730A4E
+:10095000433A09416374697661746520436F6E732D
+:100960006F6C65204D6F64650A46312D4631303A13
+:100970000953776974636820746F204C61796572DC
+:1009800020302D392028463130203D204C30290A96
+:10099000302D393A0953776974636820746F204C9D
+:1009A0006179657220302D390A4553433A095377EE
+:1009B0006974636820746F204C61796572203020FF
+:1009C00028616C7465726E617465206B6579203185
+:1009D000290A47524156453A09537769746368209A
+:1009E000746F204C6179657220302028616C7465C9
+:1009F000726E617465206B65792032290A50415509
+:100A000053453A094A756D7020746F20426F6F74B8
+:100A10006C6F6164657220285265736574290A459C
+:100A20003A095072696E7420454550524F4D20531B
+:100A3000657474696E67730A000A002575002E6E6E
+:100A40006B726F3A20000A002575002E7377617073
+:100A50005F6261636B736C6173685F6261636B7328
+:100A6000706163653A20000A002575002E73776176
+:100A7000705F67726176655F6573633A20000A0094
+:100A80002575002E6E6F5F6775693A20000A002594
+:100A900075002E737761705F72616C745F72677539
+:100AA000693A20000A002575002E737761705F6C2B
+:100AB000616C745F6C6775693A20000A00257500E7
+:100AC0002E636170736C6F636B5F746F5F636F6EC7
+:100AD00074726F6C3A20000A002575002E737761DE
+:100AE000705F636F6E74726F6C5F636170736C6F55
+:100AF000636B3A20000A0025303258006B65796D2F
+:100B000061705F636F6E6669672E7261773A20006D
+:100B10000A002575002E6D6F7573653A20000A0076
+:100B20002575002E6B6579626F6172643A20000A48
+:100B3000002575002E6D61747269783A20000A00F4
+:100B40002575002E656E61626C653A20000A0025ED
+:100B50003032580064656275675F636F6E666967FF
+:100B60002E7261773A20000A00257500646566617F
+:100B7000756C745F6C617965723A20003F000A6D94
+:100B80006F7573653A206F66660A000A6D6F75733C
+:100B9000653A206F6E0A000A6B6579626F61726454
+:100BA0003A206F66660A000A6B6579626F6172644B
+:100BB0003A206F6E0A000A6D61747269783A206F8C
+:100BC00066660A000A6D61747269783A206F6E0A6F
+:100BD000000A64656275673A206F66660A000A64F7
+:100BE000656275673A206F6E0A000A0A4A756D7071
+:100BF000696E6720746F20626F6F746C6F616465DB
+:100C0000722E2E2E2000433E20006565636F6E66B7
+:100C100069673A0A000011241FBECFEFD4E0DEBF9F
+:100C2000CDBF04B603FE24C08091E8019091E90194
+:100C3000A091EA01B091EB018730904BA740B04BF7
+:100C4000B9F41092E8011092E9011092EA011092B1
+:100C5000EB0114BE84B7877F84BF88E10FB6F89498
+:100C600080936000109260000FBEE0E0F8E3099509
+:100C700011E0A0E0B1E0E2E6F5E502C005900D92DA
+:100C8000A234B107D9F711E0A2E4B1E001C01D928E
+:100C9000A83EB107E1F70E942D0E0C94AF2A0C94E8
+:100CA0000000FF93EF93E0914201F09143013097F0
+:100CB00009F00995EF91FF910895FC01859180302D
+:100CC00011F0EFDFFBCF0895FF27E0E230E247FFAE
+:100CD0000CC0419597FF09C0EDE260957095809535
+:100CE0009095611D711D811D911D27FF02C02195E9
+:100CF00030E350E2AA27660F771F881F991FAA1FAB
+:100D0000A41710F0A41B63955A95A9F7AA3008F010
+:100D1000A95FA05DAF93F3956115710581059105FC
+:100D200041F7ED3211F4EF93F395F21718F43F9376
+:100D3000F395FBCF8F91B5DFFA95E1F70895E9912F
+:100D4000F9918591803021F0853219F0AADFF9CF31
+:100D5000089520E0E89455915532C1F3503311F4D1
+:100D6000689455915A3348F4505390F3220F022E51
+:100D7000220F220F200D250FF4CF0EF4219589911B
+:100D80009991533619F3533729F1533559F1BC0171
+:100D900088279927E8945C3621F489919991689481
+:100DA0005591543639F446EF7EF077FF0DC08FEF42
+:100DB0009FEF0AC055374AE039F0583540E121F03D
+:100DC000523642E009F00895FF93EF937DDFEF91F3
+:100DD000FF91B7CFFF93EF93FC0181918030B9F37E
+:100DE00060DFFBCFFF93EF9368DFF1CFDF93CF930B
+:100DF000CDB7DEB72596A3DFCF91DF91089581FFB0
+:100E000003C03D9A459A08953D98459808950895E0
+:100E100008953D9A459A2FEF89E698E12150804048
+:100E20009040E1F700C000003D9845980C940707FA
+:100E30000C94080781E0089581E008950C941C0744
+:100E400008950F931F93CF93DF938C01FC01C08112
+:100E5000D181CE010E94411DBE010E94D107EC014B
+:100E6000B8010E941E07882309F48DC0F801828111
+:100E7000882309F44AC080914F0181111FC0C431F9
+:100E8000F0E5DF0709F051C00E94200781E0809360
+:100E90004F010E941A1F90934E0180934D011092B2
+:100EA0004601109248011092470110924A01109297
+:100EB000490110924C0110924B0165C080914D0187
+:100EC00090914E010E94261F883C910570F48091FC
+:100ED0004601E82FF0E0EE0FFF1FE95BFE4FD183E4
+:100EE000C0838F5F809346014EC0C43880E5D80729
+:100EF00021F0C538D04501F13AC0F801828188233C
+:100F000041F01092440182E01EC0C438E0E5DE07E3
+:100F100059F580914401811106C086E20E94B01407
+:100F200086E20E94781582E01CC0C438F0E5DF0735
+:100F300041F3C538D045D9F4F8018281882331F0D6
+:100F40001092450180E20E94C7151DC080914501A5
+:100F5000811106C087E20E94B01487E20E947815D2
+:100F600080E20E94CE150FC0C538D04529F381E03C
+:100F70008093440180934501C801DF91CF911F9177
+:100F80000F910C941A0780E0DF91CF911F910F9180
+:100F900008950C9409070C94180780E090E00895D8
+:100FA0000895E82FF0E083E0EE0FFF1F8A95E1F748
+:100FB000E70FF11D93E0EE0FFF1F9A95E1F7E60FA3
+:100FC000F11DEE0FFF1FEE52FF4F85919491089592
+:100FD000880F991FFC01EE5AF04085919491089575
+:100FE000880F991FFC01EE52FF4F8591949108954F
+:100FF0000F931F93CF93DF93EC01811520E39207AA
+:1010000050F5C11580E2D80708F0C3C0CB3BD1052D
+:1010100090F4C83AD10508F06AC0C53AD10508F085
+:101020005BC0C430D10508F0D4C1219709F0CEC10E
+:1010300001E010E00EC2CF3FD10511F008F0C9C1A8
+:10104000C03FD10508F0A2C0CE01805E910908978B
+:1010500008F4BFC1BBC1C13090E5D90709F4A2C0F3
+:1010600020F5C0318FE4D80770F4C11590E4D9079A
+:1010700008F094C0C11521E3D20708F0A7C1DD270D
+:101080008E01106CE6C1C115D04509F09FC10E94C8
+:1010900035188FEF94E32CE0815090402040E1F729
+:1010A00000C000000E94751FD4C1C11597E5D90783
+:1010B00058F4C03121E5D20708F020C1C43180E5E1
+:1010C000D80708F479C082C1CE01905781159041AC
+:1010D00008F07CC1DF7077C1C53AD10509F47BC146
+:1010E000C63AD10509F07AC102E810E4B2C1C83AA3
+:1010F000D10509F476C1C93AD10509F475C1CA3AD6
+:10110000D10509F474C1CB3AD10509F473C1CC3AC5
+:10111000D10509F472C1CD3AD10509F471C1C03BC2
+:10112000D10509F470C1CE3AD10509F46FC1CF3AA7
+:10113000D10509F46EC1C13BD10509F46DC1C23BB3
+:10114000D10509F46CC1C33BD10509F46BC1C43BA3
+:10115000D10509F46AC1C53BD10509F469C1C63B93
+:10116000D10509F468C1C73BD10509F467C1C83B83
+:10117000D10509F466C1C93BD10509F465C1CA3B73
+:10118000D10509F464C100E014E463C18E01106567
+:1011900060C1CE019F700E94F0075CC1DF708E01BC
+:1011A000106A57C182E591E00E945D068091C901F5
+:1011B00081608093C9014DC10E941B21811102C031
+:1011C0000E9401210E94382190E09093E8018093D1
+:1011D000E701C23080E5D80721F48091E701816002
+:1011E00086C0C43090E5D90721F48091E701826080
+:1011F0007EC0C63020E5D20721F48091E7018460EB
+:1012000076C0C83080E5D80719F48091E70127C07F
+:10121000CA3090E5D90721F48091E701806167C069
+:10122000CC3020E5D20721F48091E70180625FC0D5
+:10123000CE3080E5D80721F48091E701806457C063
+:10124000C03190E5D90721F48091E70180684FC053
+:10125000C23120E5D20729F48091E70184608860DB
+:1012600046C0C33080E5D80721F48091E7018E7F26
+:101270003EC0C53090E5D90721F48091E7018D7F0C
+:1012800036C0C73020E5D20721F48091E7018B7F7B
+:101290002EC0C93080E5D80719F48091E70126C037
+:1012A000CB3090E5D90721F48091E7018F7E1FC0F4
+:1012B000CD3020E5D20721F48091E7018F7D17C062
+:1012C000CF3080E5D80721F48091E7018F7B0FC0F4
+:1012D000C13190E5D90721F48091E7018F7707C0EC
+:1012E000C331D04531F48091E7018B7F877F8093B4
+:1012F000E7018091E7010E943C21ABC08D2F992727
+:101300008F70992781309105D9F49E01237033277E
+:1013100002C0880F991F2A95E2F79C688E0144E06D
+:10132000000F111F4A95E1F700271370802B912BB6
+:1013300053E0CC0FDD1F5A95E1F7C076DD272FC0B3
+:101340008230910531F4DC2FCC278E01016F106AB9
+:1013500080C08330910569F4CE018370992701E044
+:1013600010E002C0000F111F8A95E2F7C8019C68C7
+:101370000FC084309105B9F4CE018370992701E044
+:1013800010E002C0000F111F8A95E2F7C8019A68A9
+:1013900023E0CC0FDD1F2A95E1F7C07ED7708C01CA
+:1013A0000C2B1D2B56C08530910531F4DC2FCC273A
+:1013B0008E01046F106A4DC0069709F04AC0CF71C4
+:1013C000DD27DC2FCC278E01106243C000E010E047
+:1013D00040C08E013EC001E810E43BC003E810E4C9
+:1013E00038C002EE14E435C009EE14E432C00AEE4F
+:1013F00014E42FC005EB14E42CC006EB14E429C060
+:1014000007EB14E426C00CEC14E423C00DEC14E448
+:1014100020C003E815E41DC00AE815E41AC002E97B
+:1014200015E417C004E915E414C001E216E411C084
+:1014300003E216E40EC004E216E40BC005E216E473
+:1014400008C006E216E405C007E216E402C00AE29C
+:1014500016E4C801DF91CF911F910F910895E82FF5
+:10146000F0E083E0EE0FFF1F8A95E1F7E70FF11D33
+:1014700093E0EE0FFF1F9A95E1F7E60FF11DEE0FD7
+:10148000FF1FEE52FF4F85919491803E9105E0F44D
+:10149000803C910558F58133910509F46FC048F4FB
+:1014A0008932910509F463C08A32910509F46DC04F
+:1014B00072C089339105E9F082389105D1F0853306
+:1014C000910509F44DC067C0833E910581F138F460
+:1014D000803E9105B9F0823E9105D9F05CC0863E10
+:1014E000910561F1873E9105A1F155C00E94E80781
+:1014F00008952091E70120FD02C021FF4CC080EE3D
+:1015000090E049C08091E70180FFF9CF89E390E046
+:1015100042C08091E70182FF0EC08091E70184FF05
+:1015200003C080E090E037C083EE90E034C080914B
+:10153000E70182FFF2CF82EE90E02DC08091E701BB
+:1015400083FF0BC08091E70184FDEBCF87EE90E035
+:1015500022C08091E70183FFF5CF86EE90E01BC0AB
+:101560008091E70185FF07C089E290E014C0809177
+:10157000E70185FFF9CF85E390E00DC08091E70199
+:1015800086FF07C08AE290E006C08091E70186FFEF
+:10159000F9CF81E390E00E94F8070895E82FF0E08A
+:1015A000E45EFE4F8081E82FEF70F0E082958F704F
+:1015B00021E030E0A90102C0440F551F8A95E2F7EF
+:1015C00040A308950F931F93CF93DF93C7E0D0E01C
+:1015D00001E010E0FE01E45EFE4F8081E82FEF7035
+:1015E000F0E021A182958F70A80102C0440F551F21
+:1015F0008A95E2F7CA01822B81A38C2F0E94CE0A22
+:10160000219740F787E090E061E070E0FC01EC5E3C
+:10161000FE4F2081E22FEF70F0E042A122952F7063
+:10162000DB0102C0AA0FBB1F2A95E2F79D01242B04
+:1016300022A3019758F7DF91CF911F910F910C943E
+:10164000C907EF92FF920F931F93CF93DF9308E5A3
+:1016500011E0C7E0EE24E394F12CD5E08C2F0E943A
+:10166000CE0A87E090E040E0FC01EC5EFE4F508146
+:10167000E52FEF70F0E020A130E052955F7002C0DE
+:10168000359527955A95E2F720FD07C09701082E5A
+:1016900001C0220F0A94EAF7422B019728F7F801BC
+:1016A00082918F01841719F04083D09300018C2F11
+:1016B0000E94CE0AC15090F68091000187FD32C091
+:1016C0009091C90190FF10C0282F332727FD309536
+:1016D0003F938F938BE991E09F938F930E94F6063F
+:1016E0000F900F900F900F90809100018150809388
+:1016F000000187FD07C08FE99FE00197F1F700C067
+:10170000000010C080E090E0FC01E85AFE4FDC01D0
+:10171000A05BBE4F17962C9127830197883FEFEF70
+:101720009E0791F70E94CB0781E0DF91CF911F9137
+:101730000F91FF90EF900895E82FF0E0E85AFE4FE8
+:10174000808108950F931F93CF93DF938091C901F8
+:1017500080FF04C08CE791E00E945D06C0E0D0E00D
+:1017600004E611E08091C90180FF15C0FE01E85A2E
+:10177000FE4F808190E00E94951E9F938F93DF9390
+:10178000CF931F930F930E94F6060F900F900F9028
+:101790000F900F900F902196C830D10519F7DF9167
+:1017A000CF911F910F9108950F931F93CF9300E650
+:1017B00011E0C0E0F80182918F0190E00E94771E55
+:1017C000C80FF1E008351F07A9F78C2FCF911F91A3
+:1017D0000F91089580916B0108959FB7F89410922E
+:1017E00062019FBF9091DE01943009F057C0909143
+:1017F000E9009F703091EC00232F217030FD20E82C
+:10180000922B24E02093E9002091EB0020FF43C0BD
+:101810002091EE0027FF3FC020916001222321F09C
+:101820002091E80025FF37C01092600126E030913A
+:10183000E80035FD15C03091DE01343061F530919E
+:10184000EB0035FD28C0215021F481E08093600138
+:1018500022C0EFE9FFE03197F1F700C00000E7CFC9
+:101860008093F1008091E80085FD0AC08091E80036
+:1018700080FFFCCF8091E8008E778093E80006C05F
+:101880008FB7F89421E0209362018FBF9F709093EF
+:10189000E90080E008959F709093E9008FEF08952C
+:1018A000CF93DF9300D01F92CDB7DEB79C0180911C
+:1018B000DE01843019F593E099833B832A8390936A
+:1018C000E9008FEF9091E800815095FD06C095EDFD
+:1018D0009A95F1F700008111F5CF8091E80085FF1E
+:1018E0000DC040E050E063E070E0CE0101960E9440
+:1018F000E30E8091E8008E778093E8000F900F90C0
+:101900000F90DF91CF910895CF93DF9300D01F9276
+:10191000CDB7DEB72091DE01243021F522E0298306
+:101920009B838A8383E08093E9008FEF9091E800A6
+:10193000815095FD06C095ED9A95F1F70000811153
+:10194000F5CF8091E80085FF0DC040E050E063E0F6
+:1019500070E0CE0101960E94E30E8091E8008E7740
+:101960008093E8000F900F900F90DF91CF91089532
+:101970002091DE012430F1F422E02093E9002FEFE2
+:101980003091E800215035FD06C035ED3A95F1F76C
+:1019900000002111F5CF2091E80025FF0BC040E0A9
+:1019A00050E065E070E00E94E30E8091E8008E77E1
+:1019B0008093E8000895CF93DF932091DE012430D7
+:1019C00039F521E02093E9002FEF3091E800215014
+:1019D00035FD06C035ED3A95F1F700002111F5CF40
+:1019E0002091E80025FF14C0EC0140E050E068E0E1
+:1019F00070E00E94E30E8091E8008E778093E8000B
+:101A000088E0FE01A3E6B1E001900D928A95E1F72E
+:101A1000DF91CF91089588ED91E00E945D0680915D
+:101A2000DD01811109C00E9472100E94C5108091D1
+:101A3000E20084608093E200089584ED91E00E94CA
+:101A40005D061092DD01089580ED91E00C945D0635
+:101A5000209161012F5F822F62E30E943F2A992328
+:101A600019F0209361010895109261018091620143
+:101A7000882371F18091DE01843041F58091E90085
+:101A80008F702091EC00922F917020FD90E8892BAF
+:101A900094E09093E9009091EB0090FF14C0909136
+:101AA000EE0097FF10C09091E80095FF03C01092E0
+:101AB000F100F9CF9091E80090FF05C09091E80007
+:101AC0009E779093E8008F708093E90010926201F6
+:101AD000089542E061EC81E00E94EC0F42E061EC8D
+:101AE00082E00E94EC0F42E061EC83E00E94EC0F88
+:101AF00042E261EC84E00C94EC0F8091E0018330D1
+:101B000009F453C030F4813071F0823009F48CC094
+:101B100008958A3009F478C08B3009F45EC08930AA
+:101B200009F09AC020C08091DF01813A09F094C089
+:101B30008091E800877F8093E8008091E301909195
+:101B4000E401892B21F468E083E691E003C060E0C2
+:101B500080E090E070E00E942E0F8091E8008B778B
+:101B60008093E80008958091DF01813209F074C00C
+:101B70008091E3019091E401892B09F06DC080917F
+:101B8000E800877F8093E8008091E80082FD05C02F
+:101B90008091DE018111F8CF5FC08091F1008093C8
+:101BA0006B018091E8008B7753C08091DF01813A0F
+:101BB00009F052C08091E3019091E401892B09F072
+:101BC0004BC08091E800877F8093E8008091E80017
+:101BD00080FFFCCF80910B0136C08091DF01813204
+:101BE000D9F58091E3019091E401892BA9F58091C9
+:101BF000E800877F8093E8000E9421108091E10136
+:101C000080930B010C9435188091DF01813221F50E
+:101C10008091E800877F8093E8000E9421108091E6
+:101C2000E20180936C0108958091DF01813AA1F473
+:101C30008091E800877F8093E8008091E80080FF32
+:101C4000FCCF80916C018093F1008091E8008E7749
+:101C50008093E8000C942110089584B7877F84BF97
+:101C600088E10FB6F89480936000109260000FBE78
+:101C700090E080E80FB6F894809361009093610043
+:101C80000FBE0E94C5130E9472100E94C510809161
+:101C9000E20084608093E2008DEE9BE00E94721E61
+:101CA00078940E9418130E94C71381E091E00E946B
+:101CB00033138FEB91E00E945D068091DE01853049
+:101CC00089F48BEB91E00E945D060E94AF1E80912B
+:101CD000DC01882391F30E94DA1E882371F30E94AD
+:101CE000CD0EEBCF0E94EB13E8CF292F3327233003
+:101CF0003105C9F064F42130310581F0223031051D
+:101D000009F043C084E790E02AEF31E042C021327D
+:101D10003105F1F02232310541F137C082E190E026
+:101D20002EE632E036C099278130910541F08230AD
+:101D3000910541F0892B49F5E6EFF1E005C0ECEEA5
+:101D4000F1E002C0ECEDF1E0849190E09F0121C050
+:101D50006430D8F4E62FF0E0EE0FFF1FE05DFE4F99
+:101D60002081318189E090E014C0643070F470E02B
+:101D7000FB01EE0FFF1FE85DFE4F20813181FB016B
+:101D8000EC5DFE4F808190E004C080E090E020E0B8
+:101D900030E0FA0131832083089584E089BD86E034
+:101DA00089BD09B400FEFDCF8091D8008F7D80935E
+:101DB000D8008091E00082608093E0008091E00094
+:101DC00081FDFCCF0895CF92DF92EF92FF920F93A7
+:101DD0001F93CF93DF93EC018B016A010E944010A7
+:101DE000811133C0C114D10439F0F6018081918191
+:101DF000081B190BC80FD91FE12CF12C0115110577
+:101E000019F18091E80085FD16C08091E8008E7779
+:101E10008093E800C114D10449F0F60180819181DA
+:101E2000E80EF91EF182E08285E00FC00E944010AA
+:101E3000882321F30AC089918093F1000150110990
+:101E4000FFEFEF1AFF0ADACF80E0DF91CF911F9109
+:101E50000F91FF90EF90DF90CF9008952091E501D2
+:101E60003091E6012617370748F06115710539F4FE
+:101E70002091E8002E772093E80001C0B90140E0EE
+:101E80006115710591F12091DE01222309F440C012
+:101E9000253009F43FC02091E80023FD3DC020918A
+:101EA000E80022FD2FC02091E80020FFE9CF20911B
+:101EB000F20030E0FC01CF016115710559F02830C6
+:101EC000310540F481918093F100615071092F5FD9
+:101ED0003F4FF1CF41E02830310509F040E020913B
+:101EE000E8002E772093E800CBCF4111CCCF0AC079
+:101EF0008091DE01882361F0853061F08091E800F7
+:101F000083FD0AC08091E80082FFF2CF80E008954F
+:101F100082E0089583E0089581E008952091E5012D
+:101F20003091E6012617370748F06115710539F43D
+:101F30002091E8002E772093E80001C0B901FC0150
+:101F400020E06115710579F18091DE01882309F4A3
+:101F50003DC0853009F43CC08091E80083FD3AC063
+:101F60008091E80082FD2CC08091E80080FFE9CFDD
+:101F70008091F20090E06115710559F0883091056B
+:101F800040F424912093F10031966150710901963B
+:101F9000F2CF21E0089709F020E08091E8008E77E9
+:101FA0008093E800CECF2111CFCF0AC08091DE010F
+:101FB000882361F0853061F08091E80083FD0AC0DC
+:101FC0008091E80082FFF2CF80E0089582E00895DA
+:101FD00083E0089581E00895982F953058F5909307
+:101FE000E900981739F07091EC002091ED005091C4
+:101FF000F00003C0242F762F50E021FF19C030914C
+:10200000EB003E7F3093EB003091ED003D7F30934D
+:10201000ED003091EB0031603093EB007093EC00F9
+:102020002093ED005093F0002091EE0027FF07C0B1
+:102030009F5FD3CF8F708093E90081E0089580E0A7
+:1020400008958091DF0187FF11C08091E80082FD33
+:1020500005C08091DE018111F8CF11C08091E800A8
+:102060008B770BC08091DE01882349F08091E800D6
+:1020700080FFF8CF8091E8008E778093E800089584
+:102080002091E4003091E50095E64091EC00842F2A
+:10209000817040FF22C08091E80080FD1CC08091CB
+:1020A000DE01882391F0853091F08091EB0085FD71
+:1020B00010C04091E4005091E5004217530729F306
+:1020C0009A01915011F784E0089582E0089583E029
+:1020D000089581E0089580E008954091E80042FF6E
+:1020E000DECF08950E94CF100E94D210E0EEF0E003
+:1020F000808181608083E8EDF0E080818F7780834C
+:1021000019BCE3E6F0E08081816080831092DD01FC
+:1021100008950E94CF100E94D2108091D8008F772E
+:102120008093D8008091D80080688093D8008091F7
+:10213000D8008F7D8093D80084E089BD86E089BD7A
+:1021400009B400FEFDCF1092DE011092DA01109268
+:10215000DC011092DB0142E060E080E00E94EC0FC5
+:102160008091E1008E7F8093E1008091E2008160A8
+:102170008093E2008091E20088608093E200809189
+:10218000E0008E7F8093E0000895E3E6F0E0808138
+:102190008E7F808381E08093DD010C948910109202
+:1021A000E20008951092E10008951F920F920FB679
+:1021B0000F9211242F933F934F935F936F937F93CD
+:1021C0008F939F93AF93BF93EF93FF938091E10021
+:1021D00082FF0BC08091E20082FF07C08091E10086
+:1021E0008B7F8093E1000E94280D8091E10080FFA9
+:1021F00018C08091E20080FF14C08091E2008E7FC1
+:102200008093E2008091E20080618093E2008091FF
+:10221000D80080628093D80019BC1092DE010E9421
+:102220001D0D8091E10084FF30C08091E20084FFA9
+:102230002CC084E089BD86E089BD09B400FEFDCFD5
+:102240008091D8008F7D8093D8008091E1008F7EAF
+:102250008093E1008091E2008F7E8093E200809184
+:10226000E20081608093E2008091DA01882311F01E
+:1022700084E007C08091E30087FD02C081E001C0D7
+:1022800083E08093DE010E940B0D8091E10083FFCB
+:1022900029C08091E20083FF25C08091E100877F03
+:1022A0008093E10082E08093DE011092DA01809158
+:1022B000E1008E7F8093E1008091E2008E7F809329
+:1022C000E2008091E20080618093E20042E060E001
+:1022D00080E00E94EC0F8091F00088608093F00015
+:1022E0000E94240DFF91EF91BF91AF919F918F912B
+:1022F0007F916F915F914F913F912F910F900FBE02
+:102300000F901F9018951F920F920FB60F921124E5
+:102310002F933F934F935F936F937F938F939F93ED
+:10232000AF93BF93CF93DF93EF93FF93C091E900F7
+:10233000CF708091EC00D82FD17080FDD0E8109242
+:10234000E9008091F000877F8093F00078940E94EC
+:10235000C7111092E9008091F00088608093F0002E
+:10236000CD2BCF70C093E900FF91EF91DF91CF911A
+:10237000BF91AF919F918F917F916F915F914F919D
+:102380003F912F910F900FBE0F901F9018951F93A4
+:10239000CF93DF93CDB7DEB7AA970FB6F894DEBF21
+:1023A0000FBECDBFEFEDF1E088E08E0F9091F10010
+:1023B00091938E13FBCF0E947D0D8091E80083FFE7
+:1023C0001FC18091DF019091E001492F50E04A3018
+:1023D000510508F015C1FA01E65CFF4F0C945F2A25
+:1023E000803881F0823809F00BC18091E3018F7051
+:1023F0008093E9008091EB0085FB882780F910929B
+:10240000E90006C08091DB019091DC0191118260AE
+:102410009091E800977F9093E8008093F1001092EC
+:10242000F100C8C0282F2D7F09F0EAC0882319F0D9
+:10243000823061F0E5C08091E101813009F0E0C0B7
+:10244000933009F080E08093DC012BC08091E101A2
+:10245000811127C08091E3018F7009F4D1C080936E
+:10246000E9002091EB0020FF1CC0933021F4809103
+:10247000EB00806214C09091EB0090619093EB00B0
+:1024800021E030E0A90102C0440F551F8A95E2F710
+:102490004093EA001092EA008091EB0088608093FC
+:1024A000EB001092E9008091E800877F86C08111DF
+:1024B000A7C01091E1011F778091E3008078812B04
+:1024C0008093E3008091E800877F8093E8000E947A
+:1024D00021108091E80080FFFCCF8091E3008068AC
+:1024E0008093E300111102C082E001C083E0809379
+:1024F000DE0186C08058823008F082C08091E10100
+:102500009091E2018C3D53E0950779F583E08A8351
+:102510008AE289834FB7F894DE01139620E03EE00B
+:1025200051E2E32FF0E050935700E49120FF03C005
+:10253000E295EF703F5FEF708E2F90E0EA3010F081
+:10254000C79601C0C0968D939D932F5F243149F7A4
+:102550004FBF8091E800877F8093E8006AE270E0D7
+:10256000CE0101960E942E0F14C0AE014F5F5F4F47
+:102570006091E3010E94750EBC01009709F440C010
+:102580009091E800977F9093E80089819A810E945A
+:102590008E0F8091E8008B778093E80031C08038FF
+:1025A00079F58091E800877F8093E8008091DA01D7
+:1025B0008093F1008091E8008E778093E8000E947C
+:1025C00021101EC081111CC09091E1019230C0F415
+:1025D0008091E800877F8093E8009093DA010E9461
+:1025E00021108091DA01811106C08091E30087FDFE
+:1025F00002C081E001C084E08093DE010E94690D89
+:102600008091E80083FF0AC08091E800877F809373
+:10261000E8008091EB0080628093EB00AA960FB6F1
+:10262000F894DEBF0FBECDBFDF91CF911F9108950B
+:10263000CF938091DE018823A1F0C091E900CF7093
+:102640009091EC00892F817090FD80E8C82B10924A
+:10265000E9008091E80083FD0E94C711CF70C0930C
+:10266000E900CF91089590937201809371010895CC
+:10267000E0917101F0917201309721F00190F081A9
+:10268000E02D099480E00895EF92FF920F931F933D
+:10269000CF93DF93E0917101F09172013097B1F126
+:1026A0008C010280F381E02D09958091C90182FFA0
+:1026B0002DC080FF04C08AE693E00E945D06E80119
+:1026C00018E084E6E82E83E0F82E8091C90180FFAF
+:1026D0000BC088811F928F93FF92EF920E94F606A3
+:1026E0000F900F900F900F90115021961111EDCF78
+:1026F0008091C90180FF0AC082E693E0DF91CF910B
+:102700001F910F91FF90EF900C945D06DF91CF9198
+:102710001F910F91FF90EF900895E0917101F0915A
+:102720007201309721F00480F581E02D099408951D
+:1027300020916F01309170018217930771F090938F
+:10274000700180936F01E0917101F09172013097F7
+:1027500021F00680F781E02D0994089520916D0104
+:1027600030916E018217930771F090936E01809300
+:102770006D01E0917101F0917201309721F00084B8
+:10278000F185E02D0994089508950C94C4130E94D6
+:10279000111F0E94E20A0C94D31FCF93DF931F9264
+:1027A000CDB7DEB79091C90192FF10C090FF0EC067
+:1027B0001F928F932CE733E03F932F9389830E94DE
+:1027C000F6060F900F900F900F9089810F90DF9178
+:1027D000CF910C94FF069F92AF92BF92CF92DF925F
+:1027E000EF92FF920F931F93CF93DF9300D000D00F
+:1027F00000D0CDB7DEB70E94210B07E010E0AA247D
+:10280000A394B12C902E802F0E949C0B98012C58E1
+:102810003E4F6901F901F080F826A1F40150110939
+:1028200088F78FEF89838A831B820E941A1F816039
+:10283000782F9D838C8349815A816B818D810E9481
+:1028400082142FC09091C90191FF04C08E830E9411
+:10285000A20B8E8127E030E0A501022E01C0440FBB
+:102860000A94EAF7E42E4F21C1F029839A828E213F
+:1028700091E009F490E09B830E941A1F8160782FF9
+:102880009D838C8349815A816B818D810E94821442
+:10289000F6018081E826E08204C021503109E0F68B
+:1028A000BDCF0E944123109173010E943813181765
+:1028B000B9F00E9438138093730126960FB6F894EE
+:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063
+:1028D000EF90DF90CF90BF90AF909F900C94CD136E
+:1028E00026960FB6F894DEBF0FBECDBFDF91CF9115
+:1028F0001F910F91FF90EF90DF90CF90BF90AF901E
+:102900009F900895CF93DF93CDB7DEB72B970FB687
+:10291000F894DEBF0FBECDBF4F83588769877A8793
+:102920008B87DE01119686E0FD0111928A95E9F709
+:1029300085E0FE01379601900D928A95E1F7498175
+:102940005A816B817C818D819E810E94E21A2B9637