From bcebb3447c155056819d42668943110ab0868517 Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Mon, 28 Mar 2016 16:14:54 +0200 Subject: Add action-preprocessing kb/user hooks in planck --- keyboard/planck/planck.c | 32 +++++++++++++++++--------------- keyboard/planck/planck.h | 1 + 2 files changed, 18 insertions(+), 15 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index fe8731ec7..4b39cf1e8 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -1,28 +1,26 @@ #include "planck.h" __attribute__ ((weak)) -void matrix_init_user(void) { - -} +void matrix_init_user(void) {} __attribute__ ((weak)) -void matrix_scan_user(void) { +void matrix_scan_user(void) {} -} +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) {} void matrix_init_kb(void) { - #ifdef BACKLIGHT_ENABLE - backlight_init_ports(); - #endif +#ifdef BACKLIGHT_ENABLE + backlight_init_ports(); +#endif - #ifdef RGBLIGHT_ENABLE - rgblight_init(); - #endif +#ifdef RGBLIGHT_ENABLE + rgblight_init(); +#endif - - // Turn status LED on - DDRE |= (1<<6); - PORTE |= (1<<6); + // Turn status LED on + DDRE |= (1<<6); + PORTE |= (1<<6); matrix_init_user(); } @@ -30,3 +28,7 @@ void matrix_init_kb(void) { void matrix_scan_kb(void) { matrix_scan_user(); } + +void process_action_kb(keyrecord_t *record) { + process_action_user(record); +} diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index e9566b922..edcb5fbff 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -42,5 +42,6 @@ void matrix_init_user(void); void matrix_scan_user(void); +void process_action_user(keyrecord_t *record); #endif -- cgit v1.2.3-70-g09d2 From 2ae44470e01287c48f3852ac54a87d7fc4e747c2 Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Tue, 29 Mar 2016 12:06:32 -0400 Subject: Fix error in Planck makefile comment [This comment](https://www.reddit.com/r/olkb/comments/428umx/rgb_underglow/czaivbc) states that because both audio output and RGB support require the user of timer 3, they can't be enabled at the same time. That makes sense, I can see where audio.c uses timer 3. But this comment in the code states that the incompatibility is with MIDI support, which doesn't make sense based on what I see in the code. Please enlighten me if I'm mistaken. --- keyboard/planck/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 307b0c7f4..03d260176 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -143,7 +143,7 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. +# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. ifdef BACKLIGHT_ENABLE SRC += backlight.c -- cgit v1.2.3-70-g09d2 From 95fba250ef2029ccdedb34500c5d1e96f6d065cf Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Tue, 29 Mar 2016 21:53:36 -0400 Subject: Updated several keyboard folders to use new keymap naming scheme --- BUILD_GUIDE.md | 5 +- keyboard/alps64/Makefile | 4 +- keyboard/alps64/keymap_hasu.c | 151 ----------- keyboard/alps64/keymap_plain.c | 12 - keyboard/alps64/keymaps/default.c | 12 + keyboard/alps64/keymaps/hasu.c | 151 +++++++++++ keyboard/atomic/Makefile | 4 +- keyboard/atomic/README.md | 4 +- keyboard/atomic/keymaps/abienz.c | 36 +++ keyboard/atomic/keymaps/default.c | 79 ++++++ keyboard/atomic/keymaps/keymap_abienz.c | 36 --- keyboard/atomic/keymaps/keymap_default.c | 79 ------ keyboard/atomic/keymaps/keymap_michelle.c | 183 ------------- keyboard/atomic/keymaps/michelle.c | 183 +++++++++++++ keyboard/atreus/Makefile | 4 +- keyboard/atreus/README.md | 4 +- keyboard/atreus/keymaps/default.c | 51 ++++ keyboard/atreus/keymaps/gerb.c | 66 +++++ keyboard/atreus/keymaps/keymap_default.c | 51 ---- keyboard/atreus/keymaps/keymap_gerb.c | 66 ----- keyboard/gh60/Makefile | 4 +- keyboard/gh60/Makefile.pjrc | 4 +- keyboard/gh60/README.md | 14 +- keyboard/gh60/keymap_hasu.c | 145 ----------- keyboard/gh60/keymap_hhkb.c | 52 ---- keyboard/gh60/keymap_plain.c | 11 - keyboard/gh60/keymap_poker.c | 104 -------- keyboard/gh60/keymap_poker_bit.c | 50 ---- keyboard/gh60/keymap_poker_set.c | 82 ------ keyboard/gh60/keymap_spacefn.c | 55 ---- keyboard/gh60/keymaps/hasu.c | 145 +++++++++++ keyboard/gh60/keymaps/hhkb.c | 52 ++++ keyboard/gh60/keymaps/plain.c | 11 + keyboard/gh60/keymaps/poker.c | 104 ++++++++ keyboard/gh60/keymaps/poker_bit.c | 50 ++++ keyboard/gh60/keymaps/poker_set.c | 82 ++++++ keyboard/gh60/keymaps/spacefn.c | 55 ++++ keyboard/hhkb/Makefile | 8 +- keyboard/hhkb/Makefile.pjrc | 4 +- keyboard/hhkb/Makefile.rn42 | 8 +- keyboard/hhkb/README.md | 2 +- keyboard/hhkb/keymap_hasu.c | 282 --------------------- keyboard/hhkb/keymap_hhkb.c | 95 ------- keyboard/hhkb/keymap_jp.c | 50 ---- keyboard/hhkb/keymap_spacefn.c | 116 --------- keyboard/hhkb/keymaps/hasu.c | 282 +++++++++++++++++++++ keyboard/hhkb/keymaps/hhkb.c | 95 +++++++ keyboard/hhkb/keymaps/jp.c | 50 ++++ keyboard/hhkb/keymaps/spacefn.c | 116 +++++++++ keyboard/hhkb_qmk/Makefile | 4 +- keyboard/hhkb_qmk/README.md | 4 +- keyboard/hhkb_qmk/keymaps/default.c | 78 ++++++ keyboard/hhkb_qmk/keymaps/keymap_default.c | 78 ------ keyboard/hhkb_qmk/keymaps/keymap_lxol.c | 208 --------------- keyboard/hhkb_qmk/keymaps/lxol.c | 208 +++++++++++++++ keyboard/jd45/Makefile | 4 +- keyboard/jd45/keymaps/default.c | 31 +++ keyboard/jd45/keymaps/justin.c | 101 ++++++++ keyboard/jd45/keymaps/keymap_default.c | 31 --- keyboard/jd45/keymaps/keymap_justin.c | 101 -------- keyboard/planck/README.md | 4 +- keyboard/planck/common_keymaps/keymap_mitch.c | 49 ---- .../old_keymap_files/common_keymaps/keymap_mitch.c | 49 ++++ quantum/template/README.md | 2 +- 64 files changed, 2132 insertions(+), 2129 deletions(-) delete mode 100644 keyboard/alps64/keymap_hasu.c delete mode 100644 keyboard/alps64/keymap_plain.c create mode 100644 keyboard/alps64/keymaps/default.c create mode 100644 keyboard/alps64/keymaps/hasu.c create mode 100644 keyboard/atomic/keymaps/abienz.c create mode 100644 keyboard/atomic/keymaps/default.c delete mode 100644 keyboard/atomic/keymaps/keymap_abienz.c delete mode 100644 keyboard/atomic/keymaps/keymap_default.c delete mode 100644 keyboard/atomic/keymaps/keymap_michelle.c create mode 100644 keyboard/atomic/keymaps/michelle.c create mode 100644 keyboard/atreus/keymaps/default.c create mode 100644 keyboard/atreus/keymaps/gerb.c delete mode 100644 keyboard/atreus/keymaps/keymap_default.c delete mode 100644 keyboard/atreus/keymaps/keymap_gerb.c delete mode 100644 keyboard/gh60/keymap_hasu.c delete mode 100644 keyboard/gh60/keymap_hhkb.c delete mode 100644 keyboard/gh60/keymap_plain.c delete mode 100644 keyboard/gh60/keymap_poker.c delete mode 100644 keyboard/gh60/keymap_poker_bit.c delete mode 100644 keyboard/gh60/keymap_poker_set.c delete mode 100644 keyboard/gh60/keymap_spacefn.c create mode 100644 keyboard/gh60/keymaps/hasu.c create mode 100644 keyboard/gh60/keymaps/hhkb.c create mode 100644 keyboard/gh60/keymaps/plain.c create mode 100644 keyboard/gh60/keymaps/poker.c create mode 100644 keyboard/gh60/keymaps/poker_bit.c create mode 100644 keyboard/gh60/keymaps/poker_set.c create mode 100644 keyboard/gh60/keymaps/spacefn.c delete mode 100644 keyboard/hhkb/keymap_hasu.c delete mode 100644 keyboard/hhkb/keymap_hhkb.c delete mode 100644 keyboard/hhkb/keymap_jp.c delete mode 100644 keyboard/hhkb/keymap_spacefn.c create mode 100644 keyboard/hhkb/keymaps/hasu.c create mode 100644 keyboard/hhkb/keymaps/hhkb.c create mode 100644 keyboard/hhkb/keymaps/jp.c create mode 100644 keyboard/hhkb/keymaps/spacefn.c create mode 100644 keyboard/hhkb_qmk/keymaps/default.c delete mode 100644 keyboard/hhkb_qmk/keymaps/keymap_default.c delete mode 100644 keyboard/hhkb_qmk/keymaps/keymap_lxol.c create mode 100644 keyboard/hhkb_qmk/keymaps/lxol.c create mode 100644 keyboard/jd45/keymaps/default.c create mode 100644 keyboard/jd45/keymaps/justin.c delete mode 100644 keyboard/jd45/keymaps/keymap_default.c delete mode 100644 keyboard/jd45/keymaps/keymap_justin.c delete mode 100644 keyboard/planck/common_keymaps/keymap_mitch.c create mode 100644 keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c (limited to 'keyboard/planck') diff --git a/BUILD_GUIDE.md b/BUILD_GUIDE.md index 22df53c30..f7a57d2fc 100644 --- a/BUILD_GUIDE.md +++ b/BUILD_GUIDE.md @@ -44,7 +44,10 @@ If you have any problems building the firmware, you can try using a tool called 4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. ## Customizing, Building, and Deploying Your Firmware -1. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. + +Note: Some keyboard folders have non-standard organizations, and may not even support specifying alternate keymaps. Until these get reorganized, you will need to edit their default keymaps directly. + +1. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. 2. To build a keymap other than the default, type `KEYMAP=` after `make`. So if I've named my keymap jack.c, the full command would be `make KEYMAP=jack`. 3. How you deploy the firmware will depend on whether you are using a PCB or a Teensy. In both cases, you'll need to put the keyboard in bootloader mode, either by pressing a button on the PCB/Teensy or pressing the key with the `RESET` keycode. Then, if you're using a PCB, just run `make KEYMAP= dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the .hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html) diff --git a/keyboard/alps64/Makefile b/keyboard/alps64/Makefile index e90dcedb6..7634c4280 100644 --- a/keyboard/alps64/Makefile +++ b/keyboard/alps64/Makefile @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_plain.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/alps64/keymap_hasu.c b/keyboard/alps64/keymap_hasu.c deleted file mode 100644 index d297d72fe..000000000 --- a/keyboard/alps64/keymap_hasu.c +++ /dev/null @@ -1,151 +0,0 @@ -#include "keymap_common.h" - -/* - * Hasu - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc | - * |-----------------------------------------------------------| - * |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|FN1 | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - */ - [0] = KEYMAP_AEK( \ - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ - LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN1, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT, \ - LCTL,LGUI,LALT, FN4, RALT,FN5, FN0), - - /* HHKB mode[HHKB Fn] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| ` | - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Del | - * |-----------------------------------------------------------| - * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * |Shift | | | | | | +| -|End|PgD|Dow|Shift | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - */ - [1] = KEYMAP_AEK( \ - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ - CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, DEL, \ - LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,TRNS, \ - LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT, \ - LCTL,LGUI,LALT, TRNS, RALT,RGUI,TRNS), - - /* Vi mode[Slash] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Del | - * |-----------------------------------------------------------| - * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs| - * |-----------------------------------------------------------| - * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | - * |-----------------------------------------------------------| - * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - */ - [2] = KEYMAP_AEK( \ - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ - TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, DEL, \ - LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ - LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,RCTL), - - /* Mouse mode(IJKL)[Semicolon] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| - * |-----------------------------------------------------------| - * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - [3] = KEYMAP_AEK( \ - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ - FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,FN8, \ - LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,TRNS,NO, ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT, \ - LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS), - - /* Layer 4: Mouse mode(IJKL)[Space] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| - * |-----------------------------------------------------------| - * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - [4] = KEYMAP_AEK( \ - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ - FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,FN8, \ - LCTL,VOLD,VOLU,MUTE,NO, NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT, \ - LCTL,LGUI,LALT, TRNS, TRNS,TRNS,TRNS), -}; - - -/* id for user defined function/macro */ -enum function_id { - NONE, -}; - -enum macro_id { - ALT_TAB, -}; - - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), // HHKB layer - [1] = ACTION_LAYER_TAP_KEY(1, KC_ENTER), // HHKB layer - [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* - [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon* - [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space - [5] = ACTION_LAYER_MOMENTARY(3), // Mousekey layer(IJKL) - [6] = ACTION_LAYER_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter - [7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift - [8] = ACTION_MACRO(ALT_TAB), // Application switching - [9] = ACTION_MODS_KEY(MOD_LALT, KC_LEFT), - [10] = ACTION_MODS_KEY(MOD_LALT, KC_RIGHT), -}; - - -/* - * Macro definition - */ -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch (id) { - case ALT_TAB: - return (record->event.pressed ? - MACRO( D(LALT), D(TAB), END ) : - MACRO( U(TAB), END )); - } - return MACRO_NONE; -} diff --git a/keyboard/alps64/keymap_plain.c b/keyboard/alps64/keymap_plain.c deleted file mode 100644 index a54899196..000000000 --- a/keyboard/alps64/keymap_plain.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP( \ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ - LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,ESC, \ - LCTL,LGUI,LALT, SPC, APP, RALT,RGUI,RCTL), -}; -const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboard/alps64/keymaps/default.c b/keyboard/alps64/keymaps/default.c new file mode 100644 index 000000000..a54899196 --- /dev/null +++ b/keyboard/alps64/keymaps/default.c @@ -0,0 +1,12 @@ +#include "keymap_common.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP( \ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ + LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,ESC, \ + LCTL,LGUI,LALT, SPC, APP, RALT,RGUI,RCTL), +}; +const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboard/alps64/keymaps/hasu.c b/keyboard/alps64/keymaps/hasu.c new file mode 100644 index 000000000..d297d72fe --- /dev/null +++ b/keyboard/alps64/keymaps/hasu.c @@ -0,0 +1,151 @@ +#include "keymap_common.h" + +/* + * Hasu + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc | + * |-----------------------------------------------------------| + * |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|FN1 | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + */ + [0] = KEYMAP_AEK( \ + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ + LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN1, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT, \ + LCTL,LGUI,LALT, FN4, RALT,FN5, FN0), + + /* HHKB mode[HHKB Fn] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| ` | + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Del | + * |-----------------------------------------------------------| + * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * |Shift | | | | | | +| -|End|PgD|Dow|Shift | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + */ + [1] = KEYMAP_AEK( \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ + CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, DEL, \ + LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,TRNS, \ + LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT, \ + LCTL,LGUI,LALT, TRNS, RALT,RGUI,TRNS), + + /* Vi mode[Slash] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Del | + * |-----------------------------------------------------------| + * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs| + * |-----------------------------------------------------------| + * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + */ + [2] = KEYMAP_AEK( \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ + TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, DEL, \ + LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ + LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,RCTL), + + /* Mouse mode(IJKL)[Semicolon] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + [3] = KEYMAP_AEK( \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ + FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,FN8, \ + LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,TRNS,NO, ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT, \ + LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS), + + /* Layer 4: Mouse mode(IJKL)[Space] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + [4] = KEYMAP_AEK( \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ + FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,FN8, \ + LCTL,VOLD,VOLU,MUTE,NO, NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT, \ + LCTL,LGUI,LALT, TRNS, TRNS,TRNS,TRNS), +}; + + +/* id for user defined function/macro */ +enum function_id { + NONE, +}; + +enum macro_id { + ALT_TAB, +}; + + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // HHKB layer + [1] = ACTION_LAYER_TAP_KEY(1, KC_ENTER), // HHKB layer + [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* + [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon* + [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space + [5] = ACTION_LAYER_MOMENTARY(3), // Mousekey layer(IJKL) + [6] = ACTION_LAYER_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter + [7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift + [8] = ACTION_MACRO(ALT_TAB), // Application switching + [9] = ACTION_MODS_KEY(MOD_LALT, KC_LEFT), + [10] = ACTION_MODS_KEY(MOD_LALT, KC_RIGHT), +}; + + +/* + * Macro definition + */ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case ALT_TAB: + return (record->event.pressed ? + MACRO( D(LALT), D(TAB), END ) : + MACRO( U(TAB), END )); + } + return MACRO_NONE; +} diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index e678b4efa..da6d0ac60 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -54,9 +54,9 @@ SRC = atomic.c \ backlight.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/atomic/README.md b/keyboard/atomic/README.md index c8e83cf55..0e42370ba 100644 --- a/keyboard/atomic/README.md +++ b/keyboard/atomic/README.md @@ -16,10 +16,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/atomic/keymaps/abienz.c b/keyboard/atomic/keymaps/abienz.c new file mode 100644 index 000000000..589a64dc4 --- /dev/null +++ b/keyboard/atomic/keymaps/abienz.c @@ -0,0 +1,36 @@ +#include "atomic.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Colemak */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO }, + { KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, KC_NO, KC_PGUP }, + { KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, KC_NO, KC_LALT, FUNC(1), KC_SPC, KC_NO, KC_RALT, FUNC(2), KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [1] = { /* function */ + { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_NO }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPLY }, + { KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, FUNC(1), KC_TRNS, KC_NO, KC_TRNS, FUNC(2), KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT }, + } +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), + [2] = ACTION_LAYER_MOMENTARY(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(TYPE(KC_T), END); + break; + } + return MACRO_NONE; +}; + diff --git a/keyboard/atomic/keymaps/default.c b/keyboard/atomic/keymaps/default.c new file mode 100644 index 000000000..f37d9d9a5 --- /dev/null +++ b/keyboard/atomic/keymaps/default.c @@ -0,0 +1,79 @@ +#include "atomic.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Qwerty */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ + { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, KC_LEFT, KC_DOWN, KC_RGHT }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ +// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ +// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌───────────────────── 6.25u ────────────────────────────┐ +// │ X │ +// └────────────────────────────────────────────────────────┘ +// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ +// │ X │ X │ X │ X │ X │ X │ +// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + } +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(TYPE(KC_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/atomic/keymaps/keymap_abienz.c b/keyboard/atomic/keymaps/keymap_abienz.c deleted file mode 100644 index 589a64dc4..000000000 --- a/keyboard/atomic/keymaps/keymap_abienz.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "atomic.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Colemak */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO }, - { KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, - { KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, KC_NO, KC_PGUP }, - { KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, KC_NO, KC_LALT, FUNC(1), KC_SPC, KC_NO, KC_RALT, FUNC(2), KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, - }, - [1] = { /* function */ - { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_NO }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPLY }, - { KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, FUNC(1), KC_TRNS, KC_NO, KC_TRNS, FUNC(2), KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT }, - } -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), - [2] = ACTION_LAYER_MOMENTARY(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_T), END); - break; - } - return MACRO_NONE; -}; - diff --git a/keyboard/atomic/keymaps/keymap_default.c b/keyboard/atomic/keymaps/keymap_default.c deleted file mode 100644 index f37d9d9a5..000000000 --- a/keyboard/atomic/keymaps/keymap_default.c +++ /dev/null @@ -1,79 +0,0 @@ -#include "atomic.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Qwerty */ - { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ - { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, KC_LEFT, KC_DOWN, KC_RGHT }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ -// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ -// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌───────────────────── 6.25u ────────────────────────────┐ -// │ X │ -// └────────────────────────────────────────────────────────┘ -// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ -// │ X │ X │ X │ X │ X │ X │ -// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - } -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/atomic/keymaps/keymap_michelle.c b/keyboard/atomic/keymaps/keymap_michelle.c deleted file mode 100644 index 2364c46a1..000000000 --- a/keyboard/atomic/keymaps/keymap_michelle.c +++ /dev/null @@ -1,183 +0,0 @@ -#include "atomic.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Dvorak */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ - { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LCTL, MO(1), KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ -// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ -// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌───────────────────── 6.25u ────────────────────────────┐ -// │ X │ -// └────────────────────────────────────────────────────────┘ -// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ -// │ X │ X │ X │ X │ X │ X │ -// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - }, - [1] = { /* Qwerty + F keys */ - { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_NO }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_INS, KC_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ - { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_NO, KC_PGUP }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ -// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ -// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌───────────────────── 6.25u ────────────────────────────┐ -// │ X │ -// └────────────────────────────────────────────────────────┘ -// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ -// │ X │ X │ X │ X │ X │ X │ -// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - }, - [2] = { /* Numpad + qwerty shortcut keys */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ - { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ -// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ -// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌───────────────────── 6.25u ────────────────────────────┐ -// │ X │ -// └────────────────────────────────────────────────────────┘ -// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ -// │ X │ X │ X │ X │ X │ X │ -// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - }, -}; - -const uint16_t PROGMEM fn_actions[] = { -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/atomic/keymaps/michelle.c b/keyboard/atomic/keymaps/michelle.c new file mode 100644 index 000000000..2364c46a1 --- /dev/null +++ b/keyboard/atomic/keymaps/michelle.c @@ -0,0 +1,183 @@ +#include "atomic.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Dvorak */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ + { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LCTL, MO(1), KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ +// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ +// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌───────────────────── 6.25u ────────────────────────────┐ +// │ X │ +// └────────────────────────────────────────────────────────┘ +// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ +// │ X │ X │ X │ X │ X │ X │ +// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + }, + [1] = { /* Qwerty + F keys */ + { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_NO }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_INS, KC_DEL }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ + { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_NO, KC_PGUP }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ +// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ +// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌───────────────────── 6.25u ────────────────────────────┐ +// │ X │ +// └────────────────────────────────────────────────────────┘ +// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ +// │ X │ X │ X │ X │ X │ X │ +// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + }, + [2] = { /* Numpad + qwerty shortcut keys */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ + { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ +// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ +// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌───────────────────── 6.25u ────────────────────────────┐ +// │ X │ +// └────────────────────────────────────────────────────────┘ +// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ +// │ X │ X │ X │ X │ X │ X │ +// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + }, +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(TYPE(KC_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/atreus/Makefile b/keyboard/atreus/Makefile index 2e542d62e..a6fddd70d 100644 --- a/keyboard/atreus/Makefile +++ b/keyboard/atreus/Makefile @@ -53,9 +53,9 @@ TARGET_DIR = . SRC = atreus.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default.c $(SRC) endif ifdef TEENSY2 diff --git a/keyboard/atreus/README.md b/keyboard/atreus/README.md index 4db7ac120..aacf2841f 100644 --- a/keyboard/atreus/README.md +++ b/keyboard/atreus/README.md @@ -177,10 +177,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/atreus/keymaps/default.c b/keyboard/atreus/keymaps/default.c new file mode 100644 index 000000000..1c4280ff5 --- /dev/null +++ b/keyboard/atreus/keymaps/default.c @@ -0,0 +1,51 @@ +// this is the style you want to emulate. +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, + +#include "atreus.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _RS 1 +#define _LW 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN }, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH }, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT } +}, +[_RS] = { /* [> RAISE <] */ + {KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR}, + {KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS}, + {KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_LALT, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS}, + {TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL} +}, +[_LW] = { /* [> LOWER <] */ + {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10}, + {KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_TRNS, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12}, + {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, DF(_QW), KC_TRNS, KC_TRNS, RESET} +}}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/atreus/keymaps/gerb.c b/keyboard/atreus/keymaps/gerb.c new file mode 100644 index 000000000..1ba3942e3 --- /dev/null +++ b/keyboard/atreus/keymaps/gerb.c @@ -0,0 +1,66 @@ +// This is the personal keymap of Chris Gerber (@gerbercj). I haven't worked out the kinks +// with the Colemak and Dvorak support yet, but everything else works nicely. + +#include "atreus.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _L1 3 +#define _L2 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH}, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } + }, + [_CM] = { /* Colemak */ + {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH}, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } + }, + [_DV] = { /* Dvorak */ + {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, + {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, + {KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LALT, KC_B, KC_M, KC_W, KC_V, KC_Z }, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_ENT } + }, + [_L1] = { /* LAYER 1 */ + {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_VOLU, KC_7, KC_8, KC_9, KC_LBRC}, + {KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_VOLD, KC_4, KC_5, KC_6, KC_RBRC}, + {KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_LALT, KC_MUTE, KC_1, KC_2, KC_3, KC_BSLS}, + {TG(_L2), KC_APP, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL } + }, + [_L2] = { /* LAYER 2 */ + {KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, KC_NO, DF(_QW), KC_F7, KC_F8, KC_F9, KC_F10 }, + {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_NO, DF(_CM), KC_F6, KC_F5, KC_F6, KC_F11 }, + {KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_LALT, DF(_DV), KC_F1, KC_F2, KC_F3, KC_F12 }, + {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET } + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/atreus/keymaps/keymap_default.c b/keyboard/atreus/keymaps/keymap_default.c deleted file mode 100644 index 1c4280ff5..000000000 --- a/keyboard/atreus/keymaps/keymap_default.c +++ /dev/null @@ -1,51 +0,0 @@ -// this is the style you want to emulate. -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, - -#include "atreus.h" - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _RS 1 -#define _LW 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P }, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN }, - {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH }, - {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT } -}, -[_RS] = { /* [> RAISE <] */ - {KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR}, - {KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS}, - {KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_LALT, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS}, - {TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL} -}, -[_LW] = { /* [> LOWER <] */ - {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10}, - {KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_TRNS, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12}, - {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, DF(_QW), KC_TRNS, KC_TRNS, RESET} -}}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/atreus/keymaps/keymap_gerb.c b/keyboard/atreus/keymaps/keymap_gerb.c deleted file mode 100644 index 1ba3942e3..000000000 --- a/keyboard/atreus/keymaps/keymap_gerb.c +++ /dev/null @@ -1,66 +0,0 @@ -// This is the personal keymap of Chris Gerber (@gerbercj). I haven't worked out the kinks -// with the Colemak and Dvorak support yet, but everything else works nicely. - -#include "atreus.h" - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _DV 2 -#define _L1 3 -#define _L2 4 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* Qwerty */ - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, - {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH}, - {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } - }, - [_CM] = { /* Colemak */ - {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, - {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, - {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH}, - {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } - }, - [_DV] = { /* Dvorak */ - {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, - {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, - {KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LALT, KC_B, KC_M, KC_W, KC_V, KC_Z }, - {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_ENT } - }, - [_L1] = { /* LAYER 1 */ - {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_VOLU, KC_7, KC_8, KC_9, KC_LBRC}, - {KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_VOLD, KC_4, KC_5, KC_6, KC_RBRC}, - {KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_LALT, KC_MUTE, KC_1, KC_2, KC_3, KC_BSLS}, - {TG(_L2), KC_APP, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL } - }, - [_L2] = { /* LAYER 2 */ - {KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, KC_NO, DF(_QW), KC_F7, KC_F8, KC_F9, KC_F10 }, - {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_NO, DF(_CM), KC_F6, KC_F5, KC_F6, KC_F11 }, - {KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_LALT, DF(_DV), KC_F1, KC_F2, KC_F3, KC_F12 }, - {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET } - } -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/gh60/Makefile b/keyboard/gh60/Makefile index daba0f644..4c8f9dc8a 100644 --- a/keyboard/gh60/Makefile +++ b/keyboard/gh60/Makefile @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_poker.c $(SRC) + SRC := keymaps/poker.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/gh60/Makefile.pjrc b/keyboard/gh60/Makefile.pjrc index 11bd3b784..8ed73a248 100644 --- a/keyboard/gh60/Makefile.pjrc +++ b/keyboard/gh60/Makefile.pjrc @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_poker.c $(SRC) + SRC := keymaps/poker.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/gh60/README.md b/keyboard/gh60/README.md index 510cb5c8b..41a757ea3 100644 --- a/keyboard/gh60/README.md +++ b/keyboard/gh60/README.md @@ -21,7 +21,7 @@ Use `make -f Makefile.pjrc` if you want to use PJRC stack but I find no reason t ## Keymap -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document(you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document(you can find in top README.md) and existent keymap files. To build firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like: @@ -29,8 +29,8 @@ To build firmware binary hex file with a certain keymap just do `make` with `KEY ### 1 Poker -[keymap_poker.c](keymap_poker.c) emulates original Poker layers -while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. +[poker.c](keymaps/poker.c) emulates original Poker layers +while both [poker_bit.c](keymaps/poker_bit.c) and [poker_set.c](keymaps/poker_set.c) implement the same layout in different ways and they fix a minor issue of original Poker and enhance arrow keys. Fn + Esc = ` Fn + {left, down, up, right} = {home, pgdown, pgup, end} @@ -63,7 +63,7 @@ while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](key ### 2. Plain Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host. -See [keymap_plain.c](keymap_plain.c) for detail. +See [plain.c](keymaps/plain.c) for detail. #### 1.0 Plain Default layer ,-----------------------------------------------------------. @@ -80,11 +80,11 @@ See [keymap_plain.c](keymap_plain.c) for detail. ### 3. Hasu -This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail. +This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [hasu.c](keymaps/hasu.c) for detail. ### 4. SpaceFN -This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). +This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [spacefn.c](keymaps/spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). #### 4.0 Default layer ,-----------------------------------------------------------. @@ -113,7 +113,7 @@ This layout proposed by spiceBar uses space bar to change layer with using Dual ### 5. HHKB -[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers. +[hhkb.c](keymaps/hhkb.c) emulates original HHKB layers. #### 5.0: Default layer ,-----------------------------------------------------------. |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| diff --git a/keyboard/gh60/keymap_hasu.c b/keyboard/gh60/keymap_hasu.c deleted file mode 100644 index e6af28585..000000000 --- a/keyboard/gh60/keymap_hasu.c +++ /dev/null @@ -1,145 +0,0 @@ -#include "keymap_common.h" - -/* - * Hasu - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L|Fn3| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Fn4 |Fn4 |Fn1 | - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, FN2, QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, FN9, \ - LCTL,LGUI,LALT, SPC, RALT,FN3, FN3, FN0), - /* Keymap 1: colemak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ - LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), - /* Keymap 2: dvorak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ - LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), - /* Keymap 3: workman */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ - LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), - - /* Overlay 4: HHKB mode - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Inser| - * |-----------------------------------------------------------| - * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * |Shift | | | | | | +| -|End|PgD|Dow|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Gui |App | | - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ - CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \ - LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \ - LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,FN4, TRNS), - /* Overlay 5: Vi mode (Slash) - * ,-----------------------------------------------------------. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | - * |-----------------------------------------------------------| - * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgU|End| | | | | - * |-----------------------------------------------------------| - * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | - * |-----------------------------------------------------------| - * |Shift | | | | | |Hom|PgD|PgU|End| |Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ - TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,TRNS, \ - LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \ - LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), - /* Overlay 6: Mouse mode (Semicolon/App) - * ,-----------------------------------------------------------. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|MwU|MwR| | | | | - * |-----------------------------------------------------------| - * |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR| | |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space | | | | | - * `-----------------------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ - TAB, TRNS,TRNS,TRNS,TRNS,TRNS,WH_L,WH_D,WH_U,WH_R,TRNS,TRNS,TRNS,TRNS, \ - LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \ - LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \ - LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL), - /* Overlay 7: Layout selector - * ,-----------------------------------------------------------. - * | Lq| Lc| Ld| Lw| | | | | | | | | | | - * |-----------------------------------------------------------| - * | |Lq |Lw | | | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | |Ld | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | |Lc | | | | | | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' - * Lq: set Qwerty layout - * Lc: set Colemak layout - * Ld: set Dvorak layout - * Lw: set Workman layout - */ - KEYMAP_ANSI( - FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), -}; - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(4), - [1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH), - [2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN), - [3] = ACTION_LAYER_MOMENTARY(6), - [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector - [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout - [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout - [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout - [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout - [9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRV), -}; diff --git a/keyboard/gh60/keymap_hhkb.c b/keyboard/gh60/keymap_hhkb.c deleted file mode 100644 index ce1b816ec..000000000 --- a/keyboard/gh60/keymap_hhkb.c +++ /dev/null @@ -1,52 +0,0 @@ -#include "keymap_common.h" - -/* - * HHKB Layout - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: Default layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc | - * |-----------------------------------------------------------| - * |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn | - * |-----------------------------------------------------------| - * | |Gui |Alt | Space | |Alt |Gui | | - * `-----------------------------------------------------------' - */ - KEYMAP_HHKB( - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, GRV, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT,FN0, \ - NO, LGUI,LALT, SPC, NO, RALT,RGUI,NO), - /* 1: HHKB Fn layer - * ,-----------------------------------------------------------. - * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | | | - * |-----------------------------------------------------------| - * | |VoD|VoU|Mut|Ejc| | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * | | | | | | | +| -|End|PgD|Dow| | | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' - */ - KEYMAP_HHKB( - PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,TRNS, \ - TRNS,VOLD,VOLU,MUTE,EJCT,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, PENT, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, TRNS,TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), -}; - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), -}; diff --git a/keyboard/gh60/keymap_plain.c b/keyboard/gh60/keymap_plain.c deleted file mode 100644 index 3138c1807..000000000 --- a/keyboard/gh60/keymap_plain.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \ - LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), -}; -const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboard/gh60/keymap_poker.c b/keyboard/gh60/keymap_poker.c deleted file mode 100644 index 7a612ee44..000000000 --- a/keyboard/gh60/keymap_poker.c +++ /dev/null @@ -1,104 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 1: colemak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ - LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 2: dvorak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ - LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 3: workman */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ - LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 4: Poker with Arrow */ - KEYMAP_ANSI( - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), - /* 5: Poker with Esc */ - KEYMAP_ANSI( - ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), - /* 6: Poker Fn - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | - * |-----------------------------------------------------------| - * | |FnQ| Up| | | | | | |Cal| |Hom|Ins|FnL | - * |-----------------------------------------------------------| - * | |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| | - * |-----------------------------------------------------------| - * | |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| | - * |-----------------------------------------------------------| - * | | | | FnS | | | | | - * `-----------------------------------------------------------' - * Fn: to Fn overlay - * FnL: to Layout selector overaly - * FnQ: toggle Esc overlay - * FnS: toggle Arrow overlay - */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, FN4, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), - /* 7: Layout selector - * ,-----------------------------------------------------------. - * | Lq| Lc| Ld| Lw| | | | | | | | | | | - * |-----------------------------------------------------------| - * | |Lq |Lw | | | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | |Ld | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | |Lc | | | | | | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' - * Lq: set Qwerty layout - * Lc: set Colemak layout - * Ld: set Dvorak layout - * Lw: set Workman layout - */ - KEYMAP_ANSI( - FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - /* Poker Layout */ - [0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay - [1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay - [2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay - [3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc) - [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector - [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout - [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout - [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout - [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout -}; diff --git a/keyboard/gh60/keymap_poker_bit.c b/keyboard/gh60/keymap_poker_bit.c deleted file mode 100644 index b8870fdd8..000000000 --- a/keyboard/gh60/keymap_poker_bit.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -// Poker fix with toggle and bit operation -// Fn + Esc = ` -// Fn + {left, down, up, right} = {home, pgdown, pgup, end} -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 4: Poker Default + Fn'd */ - [4] = KEYMAP_ANSI( - TRNS,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN4, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), - /* 5: Poker with Arrow */ - KEYMAP_ANSI( - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, PGUP, \ - TRNS,TRNS,TRNS, TRNS, FN3, HOME,PGDN,END), - /* 6: Poker with Esc */ - KEYMAP_ANSI( - ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), - /* 7: Poker with Arrow + Fn'd */ - KEYMAP_ANSI( - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), -}; -const uint16_t PROGMEM fn_actions[] = { - /* Poker Layout */ - [0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc) - [1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle - [2] = ACTION_LAYER_TOGGLE(6), // Poker Esc toggle - [3] = ACTION_LAYER_BIT_XOR(1, 0b1101, ON_BOTH), // Poker Fn(with fix for Arrow) - [4] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN3 Task(RControl,RShift+Esc) -}; diff --git a/keyboard/gh60/keymap_poker_set.c b/keyboard/gh60/keymap_poker_set.c deleted file mode 100644 index aaa31fc57..000000000 --- a/keyboard/gh60/keymap_poker_set.c +++ /dev/null @@ -1,82 +0,0 @@ -#include "keymap_common.h" - -// Poker fix with set(state transition) -// Fn + Esc = ` -// Fn + {left, down, up, right} = {home, pgdown, pgup, end} -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 1: Poker with Arrow */ - KEYMAP_ANSI( - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, FN1, LEFT,DOWN,RGHT), - /* 2: Poker with Esc */ - KEYMAP_ANSI( - ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS), - /* 3: Poker with Arrow and Esc */ - KEYMAP_ANSI( - ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, FN3, LEFT,DOWN,RGHT), - /* 4: Poker Fn'd */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN6, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS), - /* 5: Poker Fn'd arrow */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN7, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ - TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END), - /* 6: Poker Fn'd Esc */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN4, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS), - /* 7: Poker Fn'd Arrow + Esc */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN5, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ - TRNS,TRNS,TRNS, FN6, FN7, HOME,PGDN,END), -}; - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - /* Poker Layout */ - [0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press - [1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press - [2] = ACTION_LAYER_SET(6, ON_PRESS), // FN2 move to Fn'd Esc when press - [3] = ACTION_LAYER_SET(7, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press - - //[4] = ACTION_LAYER_CLEAR(ON_RELEASE), // FN4 clear overlay when release - [4] = ACTION_LAYER_SET(0, ON_RELEASE), // FN4 clear overlay when release - [5] = ACTION_LAYER_SET(1, ON_RELEASE), // FN5 move to arrow when release - [6] = ACTION_LAYER_SET(2, ON_RELEASE), // FN6 move to Esc when release - [7] = ACTION_LAYER_SET(3, ON_RELEASE), // FN7 move to arrow + Esc when release - - [8] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN8 Task(RControl,RShift+Esc) -}; diff --git a/keyboard/gh60/keymap_spacefn.c b/keyboard/gh60/keymap_spacefn.c deleted file mode 100644 index 8077dcee7..000000000 --- a/keyboard/gh60/keymap_spacefn.c +++ /dev/null @@ -1,55 +0,0 @@ -#include "keymap_common.h" - -/* - * SpaceFN - * http://geekhack.org/index.php?topic=51069.0 - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, FN0, RALT,RGUI,APP, RCTL), - - /* Overlay 1: SpaceFN - * ,-----------------------------------------------------------. - * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | - * |-----------------------------------------------------------| - * | | | | | | | |Hom|Up |End|Psc|Slk|Pau|Ins | - * |-----------------------------------------------------------| - * | | | | | | |PgU|Lef|Dow|Rig| | | | - * |-----------------------------------------------------------| - * | | | | | |Spc|PgD|` |~ | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ - TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,UP, END, PSCR,SLCK,PAUS,INS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN1, TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), -}; - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), - [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde -}; diff --git a/keyboard/gh60/keymaps/hasu.c b/keyboard/gh60/keymaps/hasu.c new file mode 100644 index 000000000..e6af28585 --- /dev/null +++ b/keyboard/gh60/keymaps/hasu.c @@ -0,0 +1,145 @@ +#include "keymap_common.h" + +/* + * Hasu + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L|Fn3| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Fn4 |Fn4 |Fn1 | + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, FN2, QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, FN9, \ + LCTL,LGUI,LALT, SPC, RALT,FN3, FN3, FN0), + /* Keymap 1: colemak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), + /* Keymap 2: dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), + /* Keymap 3: workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), + + /* Overlay 4: HHKB mode + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Inser| + * |-----------------------------------------------------------| + * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * |Shift | | | | | | +| -|End|PgD|Dow|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |App | | + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \ + LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,FN4, TRNS), + /* Overlay 5: Vi mode (Slash) + * ,-----------------------------------------------------------. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | + * |-----------------------------------------------------------| + * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgU|End| | | | | + * |-----------------------------------------------------------| + * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | | |Hom|PgD|PgU|End| |Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ + TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,TRNS, \ + LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), + /* Overlay 6: Mouse mode (Semicolon/App) + * ,-----------------------------------------------------------. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|MwU|MwR| | | | | + * |-----------------------------------------------------------| + * |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR| | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space | | | | | + * `-----------------------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ + TAB, TRNS,TRNS,TRNS,TRNS,TRNS,WH_L,WH_D,WH_U,WH_R,TRNS,TRNS,TRNS,TRNS, \ + LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \ + LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL), + /* Overlay 7: Layout selector + * ,-----------------------------------------------------------. + * | Lq| Lc| Ld| Lw| | | | | | | | | | | + * |-----------------------------------------------------------| + * | |Lq |Lw | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Ld | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Lc | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + * Lq: set Qwerty layout + * Lc: set Colemak layout + * Ld: set Dvorak layout + * Lw: set Workman layout + */ + KEYMAP_ANSI( + FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(4), + [1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH), + [2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN), + [3] = ACTION_LAYER_MOMENTARY(6), + [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector + [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout + [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout + [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout + [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout + [9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRV), +}; diff --git a/keyboard/gh60/keymaps/hhkb.c b/keyboard/gh60/keymaps/hhkb.c new file mode 100644 index 000000000..ce1b816ec --- /dev/null +++ b/keyboard/gh60/keymaps/hhkb.c @@ -0,0 +1,52 @@ +#include "keymap_common.h" + +/* + * HHKB Layout + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: Default layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc | + * |-----------------------------------------------------------| + * |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn | + * |-----------------------------------------------------------| + * | |Gui |Alt | Space | |Alt |Gui | | + * `-----------------------------------------------------------' + */ + KEYMAP_HHKB( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT,FN0, \ + NO, LGUI,LALT, SPC, NO, RALT,RGUI,NO), + /* 1: HHKB Fn layer + * ,-----------------------------------------------------------. + * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | | | + * |-----------------------------------------------------------| + * | |VoD|VoU|Mut|Ejc| | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * | | | | | | | +| -|End|PgD|Dow| | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + KEYMAP_HHKB( + PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,TRNS, \ + TRNS,VOLD,VOLU,MUTE,EJCT,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, PENT, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), +}; diff --git a/keyboard/gh60/keymaps/plain.c b/keyboard/gh60/keymaps/plain.c new file mode 100644 index 000000000..3138c1807 --- /dev/null +++ b/keyboard/gh60/keymaps/plain.c @@ -0,0 +1,11 @@ +#include "keymap_common.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \ + LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), +}; +const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboard/gh60/keymaps/poker.c b/keyboard/gh60/keymaps/poker.c new file mode 100644 index 000000000..7a612ee44 --- /dev/null +++ b/keyboard/gh60/keymaps/poker.c @@ -0,0 +1,104 @@ +#include "keymap_common.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 1: colemak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 2: dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 3: workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 4: Poker with Arrow */ + KEYMAP_ANSI( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), + /* 5: Poker with Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), + /* 6: Poker Fn + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | + * |-----------------------------------------------------------| + * | |FnQ| Up| | | | | | |Cal| |Hom|Ins|FnL | + * |-----------------------------------------------------------| + * | |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| | + * |-----------------------------------------------------------| + * | |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| | + * |-----------------------------------------------------------| + * | | | | FnS | | | | | + * `-----------------------------------------------------------' + * Fn: to Fn overlay + * FnL: to Layout selector overaly + * FnQ: toggle Esc overlay + * FnS: toggle Arrow overlay + */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, FN4, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), + /* 7: Layout selector + * ,-----------------------------------------------------------. + * | Lq| Lc| Ld| Lw| | | | | | | | | | | + * |-----------------------------------------------------------| + * | |Lq |Lw | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Ld | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Lc | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + * Lq: set Qwerty layout + * Lc: set Colemak layout + * Ld: set Dvorak layout + * Lw: set Workman layout + */ + KEYMAP_ANSI( + FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; +const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay + [1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay + [2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay + [3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc) + [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector + [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout + [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout + [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout + [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout +}; diff --git a/keyboard/gh60/keymaps/poker_bit.c b/keyboard/gh60/keymaps/poker_bit.c new file mode 100644 index 000000000..b8870fdd8 --- /dev/null +++ b/keyboard/gh60/keymaps/poker_bit.c @@ -0,0 +1,50 @@ +#include "keymap_common.h" + +// Poker fix with toggle and bit operation +// Fn + Esc = ` +// Fn + {left, down, up, right} = {home, pgdown, pgup, end} +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 4: Poker Default + Fn'd */ + [4] = KEYMAP_ANSI( + TRNS,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + CAPS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN4, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), + /* 5: Poker with Arrow */ + KEYMAP_ANSI( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, PGUP, \ + TRNS,TRNS,TRNS, TRNS, FN3, HOME,PGDN,END), + /* 6: Poker with Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), + /* 7: Poker with Arrow + Fn'd */ + KEYMAP_ANSI( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), +}; +const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc) + [1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle + [2] = ACTION_LAYER_TOGGLE(6), // Poker Esc toggle + [3] = ACTION_LAYER_BIT_XOR(1, 0b1101, ON_BOTH), // Poker Fn(with fix for Arrow) + [4] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN3 Task(RControl,RShift+Esc) +}; diff --git a/keyboard/gh60/keymaps/poker_set.c b/keyboard/gh60/keymaps/poker_set.c new file mode 100644 index 000000000..aaa31fc57 --- /dev/null +++ b/keyboard/gh60/keymaps/poker_set.c @@ -0,0 +1,82 @@ +#include "keymap_common.h" + +// Poker fix with set(state transition) +// Fn + Esc = ` +// Fn + {left, down, up, right} = {home, pgdown, pgup, end} +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 1: Poker with Arrow */ + KEYMAP_ANSI( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, FN1, LEFT,DOWN,RGHT), + /* 2: Poker with Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS), + /* 3: Poker with Arrow and Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, FN3, LEFT,DOWN,RGHT), + /* 4: Poker Fn'd */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN6, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS), + /* 5: Poker Fn'd arrow */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN7, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END), + /* 6: Poker Fn'd Esc */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN4, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS), + /* 7: Poker Fn'd Arrow + Esc */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN5, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN6, FN7, HOME,PGDN,END), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press + [1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press + [2] = ACTION_LAYER_SET(6, ON_PRESS), // FN2 move to Fn'd Esc when press + [3] = ACTION_LAYER_SET(7, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press + + //[4] = ACTION_LAYER_CLEAR(ON_RELEASE), // FN4 clear overlay when release + [4] = ACTION_LAYER_SET(0, ON_RELEASE), // FN4 clear overlay when release + [5] = ACTION_LAYER_SET(1, ON_RELEASE), // FN5 move to arrow when release + [6] = ACTION_LAYER_SET(2, ON_RELEASE), // FN6 move to Esc when release + [7] = ACTION_LAYER_SET(3, ON_RELEASE), // FN7 move to arrow + Esc when release + + [8] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN8 Task(RControl,RShift+Esc) +}; diff --git a/keyboard/gh60/keymaps/spacefn.c b/keyboard/gh60/keymaps/spacefn.c new file mode 100644 index 000000000..8077dcee7 --- /dev/null +++ b/keyboard/gh60/keymaps/spacefn.c @@ -0,0 +1,55 @@ +#include "keymap_common.h" + +/* + * SpaceFN + * http://geekhack.org/index.php?topic=51069.0 + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, FN0, RALT,RGUI,APP, RCTL), + + /* Overlay 1: SpaceFN + * ,-----------------------------------------------------------. + * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | + * |-----------------------------------------------------------| + * | | | | | | | |Hom|Up |End|Psc|Slk|Pau|Ins | + * |-----------------------------------------------------------| + * | | | | | | |PgU|Lef|Dow|Rig| | | | + * |-----------------------------------------------------------| + * | | | | | |Spc|PgD|` |~ | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ + TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,UP, END, PSCR,SLCK,PAUS,INS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN1, TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), + [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde +}; diff --git a/keyboard/hhkb/Makefile b/keyboard/hhkb/Makefile index 5a179bd24..d434246ce 100644 --- a/keyboard/hhkb/Makefile +++ b/keyboard/hhkb/Makefile @@ -129,17 +129,17 @@ NKRO_ENABLE = yes # USB Nkey Rollover # Keymap file # ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else ifdef HHKB_JP - SRC := keymap_jp.c $(SRC) + SRC := keymaps/jp.c $(SRC) else - SRC := keymap_hhkb.c $(SRC) + SRC := keymaps/hhkb.c $(SRC) endif endif -ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) +ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) OPT_DEFS += -DHHKB_JP endif diff --git a/keyboard/hhkb/Makefile.pjrc b/keyboard/hhkb/Makefile.pjrc index 7d0f8c3a9..403a8ec60 100644 --- a/keyboard/hhkb/Makefile.pjrc +++ b/keyboard/hhkb/Makefile.pjrc @@ -18,9 +18,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_hasu.c $(SRC) + SRC := keymaps/hasu.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/hhkb/Makefile.rn42 b/keyboard/hhkb/Makefile.rn42 index cbb2b744c..a730442af 100644 --- a/keyboard/hhkb/Makefile.rn42 +++ b/keyboard/hhkb/Makefile.rn42 @@ -122,17 +122,17 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # Keymap file # ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else ifdef HHKB_JP - SRC := keymap_jp.c $(SRC) + SRC := keymaps/jp.c $(SRC) else - SRC := keymap_hhkb.c $(SRC) + SRC := keymaps/hhkb.c $(SRC) endif endif -ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) +ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) OPT_DEFS += -DHHKB_JP endif diff --git a/keyboard/hhkb/README.md b/keyboard/hhkb/README.md index fcd72e194..e20c23d82 100644 --- a/keyboard/hhkb/README.md +++ b/keyboard/hhkb/README.md @@ -76,7 +76,7 @@ Use [Teensy Loader] if your controller is Teensy/Teensy++. ##Keymap -To define your own keymap create file named `keymap_.c` and see [keymap document](../../doc/keymap.md) and existent keymap files. +To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. ##Hardware diff --git a/keyboard/hhkb/keymap_hasu.c b/keyboard/hhkb/keymap_hasu.c deleted file mode 100644 index a5602ded3..000000000 --- a/keyboard/hhkb/keymap_hasu.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - * Hasu: my personal keymap - */ -#include "keymap_common.h" - - -#ifdef KEYMAP_SECTION_ENABLE -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { -#else -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { -#endif - /* Layer 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs| - * |-----------------------------------------------------------| - * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Fn6 | - * |-----------------------------------------------------------| - * |Fn7 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1| - * `-----------------------------------------------------------' - * |Gui|Alt | Fn4 |Fn5 |Gui| - * `-------------------------------------------' - */ - [0] = \ - KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ - LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN6, \ - FN7, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,FN1, \ - LGUI,LALT, FN4, FN5, RGUI), - - /* Layer 1: HHKB mode[HHKB Fn] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| - * |-----------------------------------------------------------| - * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * |Shift | | | | | | +| -|End|PgD|Dow|Shift | | - * `-----------------------------------------------------------' - * |Gui|Alt | Space |Alt |Gui| - * `-------------------------------------------' - */ - [1] = \ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \ - LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ - LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \ - LGUI,LALT, TRNS, RALT,RGUI), - - /* Layer 2: Vi mode[Slash] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs| - * |-----------------------------------------------------------| - * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | - * |-----------------------------------------------------------| - * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | | - * `-----------------------------------------------------------' - * |Gui|Alt | Space |Alt |Gui| - * `-------------------------------------------' - */ - [2] = \ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \ - LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ - LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT,TRNS, \ - LGUI,LALT, SPC, RALT,RGUI), - - /* Layer 3: Mouse mode(IJKL)[Semicolon] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| - * |-----------------------------------------------------------| - * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | - * `-----------------------------------------------------------' - * |Gui |Alt | Mb1 |Fn |Fn | - * `--------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - [3] = \ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,FN9, FN10,FN8, \ - LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,FN3, NO, ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \ - LGUI,LALT, BTN1, TRNS,TRNS), - - /* Layer 4: Mouse mode(IJKL)[Space] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| - * |-----------------------------------------------------------| - * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | - * `-----------------------------------------------------------' - * |Gui |Alt | Mb1 |Fn |Fn | - * `--------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - [4] = \ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,BTN4,BTN5,FN8, \ - LCTL,VOLD,VOLU,MUTE,NO, NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \ - LGUI,LALT, TRNS, TRNS,TRNS), - -#if 0 - /* Layer 3: Mouse mode(HJKL)[Semicolon] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|MwU|MwR| | | |Backs| - * |-----------------------------------------------------------| - * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | - * `-----------------------------------------------------------' - * |Gui |Alt | Mb1 |Alt |Fn0| - * `--------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - TAB, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, NO, NO, BSPC, \ - LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,TRNS,QUOT,ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,SLSH,RSFT,NO, \ - LGUI,LALT, BTN1, RALT,TRNS), - - /* Layer4: Mouse mode(HJKL)[Space] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|MwU|MwR| |Wbk|Wfr|Alt-T| - * |-----------------------------------------------------------| - * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | - * `-----------------------------------------------------------' - * |Gui |Alt | Fn0 |Alt |Fn0| - * `--------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - FN8, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, FN9, FN10,FN8, \ - LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,BTN1,NO, ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,NO, \ - LGUI,LALT, TRNS, RALT,RGUI), -#endif -#if 0 - /* Layer x: Matias half-qwerty keyboard style[Space] - * ,-----------------------------------------------------------. - * | -| 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | |Esc| - * |-----------------------------------------------------------| - * |Backs| P| O| I| U| Y| T| R| E| W| Q| | |Tab | - * |-----------------------------------------------------------| - * |Contro| ;| L| K| J| H| G| F| D| S| A|Con|Control | - * |-----------------------------------------------------------| - * |Shift | /| .| ,| M| N| B| V| C| X| Z|Shift | | - * `-----------------------------------------------------------' - * |Gui |Alt | Fn0 |Alt |Gui| - * `--------------------------------------------' - */ - KEYMAP(MINS,0, 9, 8, 7, 6, 5, 4, 3, 2, 1, NO, NO, NO, ESC, \ - BSPC,P, O, I, U, Y, T, R, E, W, Q, NO, NO, TAB, \ - LCTL,SCLN,L, K, J, H, G, F, D, S, A, RCTL,RCTL, \ - LSFT,SLSH,DOT, COMM,M, N, B, V, C, X, Z, RSFT,NO, \ - LGUI,LALT, TRNS, RALT,RGUI), -#endif -}; - - - -/* id for user defined functions */ -enum function_id { - LSHIFT_LPAREN, -}; - -enum macro_id { - HELLO, - VOLUP, - ALT_TAB, -}; - - -/* - * Fn action definition - */ -#ifdef KEYMAP_SECTION_ENABLE -const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { -#else -const uint16_t fn_actions[] PROGMEM = { -#endif - [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) - [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) - [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* - [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon* - [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space - [5] = ACTION_LAYER_MOMENTARY(4), // Mousekey layer(IJKL) - [6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter - [7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift - [8] = ACTION_MACRO(ALT_TAB), // Application switching - [9] = ACTION_MODS_KEY(MOD_LALT, KC_LEFT), - [10] = ACTION_MODS_KEY(MOD_LALT, KC_RIGHT), - -// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // LControl with tap Backspace -// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // LControl with tap Esc -// [x] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // Function: LShift with tap '(' -// [x] = ACTION_MACRO(HELLO), // Macro: say hello -// [x] = ACTION_MACRO(VOLUP), // Macro: media key -}; - - -/* - * Macro definition - */ -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch (id) { - case HELLO: - return (record->event.pressed ? - MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) : - MACRO_NONE ); - case VOLUP: - return (record->event.pressed ? - MACRO( D(VOLU), U(VOLU), END ) : - MACRO_NONE ); - case ALT_TAB: - return (record->event.pressed ? - MACRO( D(LALT), D(TAB), END ) : - MACRO( U(TAB), END )); - } - return MACRO_NONE; -} - - - -/* - * user defined action function - */ -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - if (record->event.pressed) dprint("P"); else dprint("R"); - dprintf("%d", record->tap.count); - if (record->tap.interrupted) dprint("i"); - dprint("\n"); - - switch (id) { - case LSHIFT_LPAREN: - // Shift parentheses example: LShft + tap '(' - // http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses - // http://geekhack.org/index.php?topic=41989.msg1304899#msg1304899 - if (record->event.pressed) { - if (record->tap.count > 0 && !record->tap.interrupted) { - if (record->tap.interrupted) { - dprint("tap interrupted\n"); - register_mods(MOD_BIT(KC_LSHIFT)); - } - } else { - register_mods(MOD_BIT(KC_LSHIFT)); - } - } else { - if (record->tap.count > 0 && !(record->tap.interrupted)) { - add_weak_mods(MOD_BIT(KC_LSHIFT)); - send_keyboard_report(); - register_code(KC_9); - unregister_code(KC_9); - del_weak_mods(MOD_BIT(KC_LSHIFT)); - send_keyboard_report(); - record->tap.count = 0; // ad hoc: cancel tap - } else { - unregister_mods(MOD_BIT(KC_LSHIFT)); - } - } - break; - } -} diff --git a/keyboard/hhkb/keymap_hhkb.c b/keyboard/hhkb/keymap_hhkb.c deleted file mode 100644 index 86ad0f5ee..000000000 --- a/keyboard/hhkb/keymap_hhkb.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - * HHKB Layout - */ -#include "keymap_common.h" - - -#ifdef KEYMAP_SECTION_ENABLE -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { -#else -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { -#endif - /* Layer 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs| - * |-----------------------------------------------------------| - * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| - * `-----------------------------------------------------------' - * |Alt|Gui | Space |Gui |Alt| - * `-------------------------------------------' - */ - KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,FN0, \ - LALT,LGUI, SPC, RGUI,RALT), - - /* Layer 1: HHKB mode (HHKB Fn) - * ,-----------------------------------------------------------. - * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| - * |-----------------------------------------------------------| - * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * | | | | | | | +| -|End|PgD|Dow| | | - * `-----------------------------------------------------------' - * | | | | | | - * `-------------------------------------------' - */ - KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS, BSPC, \ - TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,PENT, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS, \ - TRNS,TRNS, TRNS, TRNS,TRNS), -}; - - - -/* - * Fn action definition - */ -#ifdef KEYMAP_SECTION_ENABLE -const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { - [0] = ACTION_LAYER_MOMENTARY(1), - [1] = ACTION_LAYER_MOMENTARY(2), - [2] = ACTION_LAYER_MOMENTARY(3), - [3] = ACTION_LAYER_MOMENTARY(4), - [4] = ACTION_LAYER_MOMENTARY(5), - [5] = ACTION_LAYER_MOMENTARY(6), - [6] = ACTION_LAYER_MOMENTARY(7), - [7] = ACTION_LAYER_TOGGLE(1), - [8] = ACTION_LAYER_TOGGLE(2), - [9] = ACTION_LAYER_TOGGLE(3), - [10] = ACTION_LAYER_TAP_TOGGLE(1), - [11] = ACTION_LAYER_TAP_TOGGLE(2), - [12] = ACTION_LAYER_TAP_TOGGLE(3), - [13] = ACTION_LAYER_TAP_KEY(1, KC_A), - [14] = ACTION_LAYER_TAP_KEY(2, KC_F), - [15] = ACTION_LAYER_TAP_KEY(3, KC_J), - [16] = ACTION_LAYER_TAP_KEY(4, KC_SPACE), - [17] = ACTION_LAYER_TAP_KEY(5, KC_SCOLON), - [18] = ACTION_LAYER_TAP_KEY(6, KC_QUOTE), - [19] = ACTION_LAYER_TAP_KEY(7, KC_SLASH), - [20] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPACE), - [21] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_SPACE), - [22] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_QUOTE), - [23] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENTER), - [24] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ESC), - [25] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPACE), - [26] = ACTION_MODS_ONESHOT(MOD_LCTL), - [27] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_ESC), - [28] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPACE), - [29] = ACTION_MODS_ONESHOT(MOD_LSFT), - [30] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ESC), - [31] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_BSPACE), -}; -#else -const uint16_t fn_actions[] PROGMEM = { - [0] = ACTION_LAYER_MOMENTARY(1), -}; -#endif diff --git a/keyboard/hhkb/keymap_jp.c b/keyboard/hhkb/keymap_jp.c deleted file mode 100644 index 48d0ee70b..000000000 --- a/keyboard/hhkb/keymap_jp.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * HHKB JP Layout - */ -#include "keymap_common.h" - - -#ifdef KEYMAP_SECTION_ENABLE -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { -#else -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { -#endif - /* Layer 0: Default Layer */ - KEYMAP_JP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,BSLS,ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RO, UP, RSFT, \ - FN0, ZKHK,LGUI,LALT,MHEN, SPC, HENK,KANA,RALT,FN0, LEFT,DOWN,RGHT), - - /* Layer 1: HHKB mode (HHKB Fn) - * ,-----------------------------------------------------------. - * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | | | - * |------------------------------------------------------` | - * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig| | | - * |-----------------------------------------------------------| - * | | | | | | | +| -|End|PgD|Dow| | | | - * |-----------------------------------------------------------| - * | || | | | | | | | | || | | | - * `-----------------------------------------------------------' - */ - KEYMAP_JP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS, \ - TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,TRNS,PENT, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS), -}; - - - -/* - * Fn action definition - */ -#ifdef KEYMAP_SECTION_ENABLE -const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { -#else -const uint16_t fn_actions[] PROGMEM = { -#endif - [0] = ACTION_LAYER_MOMENTARY(1), -}; diff --git a/keyboard/hhkb/keymap_spacefn.c b/keyboard/hhkb/keymap_spacefn.c deleted file mode 100644 index deff920ae..000000000 --- a/keyboard/hhkb/keymap_spacefn.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - * SpaceFN - * http://geekhack.org/index.php?topic=51069.0 - */ -#include "keymap_common.h" - - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Layer 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp| - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| - * `-----------------------------------------------------------' - * |Gui|Alt | SpaceFN |Alt |Gui| - * `-------------------------------------------' - */ - KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, GRV, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,FN0, \ - LGUI,LALT, FN1, RALT,RGUI), - - /* Layer 1: HHKB mode (HHKB Fn) - * ,-----------------------------------------------------------. - * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| - * |-----------------------------------------------------------| - * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * | | | | | | | +| -|End|PgD|Dow| | | - * `-----------------------------------------------------------' - * | | | | | | - * `-------------------------------------------' - */ - KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS, BSPC, \ - TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,PENT, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS, \ - TRNS,TRNS, SPC, TRNS,TRNS), - - /* Layer 2: SpaceFN - * ,-----------------------------------------------------------. - * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Del| - * |-----------------------------------------------------------| - * | | | |Esc| | | |Hom|Up |End|Psc|Slk|Pau|Ins | - * |-----------------------------------------------------------| - * | | | | | | |PgU|Lef|Dow|Rig| | | | - * |-----------------------------------------------------------| - * | | | | | |Spc|PgD|` |~ | | | | | - * `-----------------------------------------------------------' - * | | | | | | - * `-------------------------------------------' - */ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,DEL, \ - TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,FN3, END, PSCR,SLCK,PAUS,INS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN2, TRNS,TRNS,TRNS,NO, \ - TRNS,TRNS, TRNS, TRNS,TRNS), -}; - - -/* - * user defined action function - */ -enum function_id { - CTRL_SPACE_I, // Ctrl + Up(SpaceFN) -> PgUp -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -# define MODS_CTRL_MASK (MOD_BIT(KC_LCTRL)|MOD_BIT(KC_RCTRL)) - static uint8_t ctrl_space_i_prev_ctrl; - - switch (id) { - // Ctrl + Up(SpaceFN) -> PgUp - case CTRL_SPACE_I: - ctrl_space_i_prev_ctrl = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (ctrl_space_i_prev_ctrl) { - del_mods(ctrl_space_i_prev_ctrl); // remove Ctrl - add_key(KC_PGUP); - send_keyboard_report(); // send PgUp without Ctrl - add_mods(ctrl_space_i_prev_ctrl); // return Ctrl but not sent - } else { - add_key(KC_UP); - send_keyboard_report(); - } - } else { - if (ctrl_space_i_prev_ctrl) { - del_key(KC_PGUP); - send_keyboard_report(); - } else { - del_key(KC_UP); - send_keyboard_report(); - } - } - break; - } -} - - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), - [1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), - [2] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde - [3] = ACTION_FUNCTION(CTRL_SPACE_I), // Ctrl + Up(SpaceFN) -> PgUp -}; diff --git a/keyboard/hhkb/keymaps/hasu.c b/keyboard/hhkb/keymaps/hasu.c new file mode 100644 index 000000000..a5602ded3 --- /dev/null +++ b/keyboard/hhkb/keymaps/hasu.c @@ -0,0 +1,282 @@ +/* + * Hasu: my personal keymap + */ +#include "keymap_common.h" + + +#ifdef KEYMAP_SECTION_ENABLE +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { +#else +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { +#endif + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Fn6 | + * |-----------------------------------------------------------| + * |Fn7 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1| + * `-----------------------------------------------------------' + * |Gui|Alt | Fn4 |Fn5 |Gui| + * `-------------------------------------------' + */ + [0] = \ + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ + LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN6, \ + FN7, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,FN1, \ + LGUI,LALT, FN4, FN5, RGUI), + + /* Layer 1: HHKB mode[HHKB Fn] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| + * |-----------------------------------------------------------| + * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * |Shift | | | | | | +| -|End|PgD|Dow|Shift | | + * `-----------------------------------------------------------' + * |Gui|Alt | Space |Alt |Gui| + * `-------------------------------------------' + */ + [1] = \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \ + LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ + LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \ + LGUI,LALT, TRNS, RALT,RGUI), + + /* Layer 2: Vi mode[Slash] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs| + * |-----------------------------------------------------------| + * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | | + * `-----------------------------------------------------------' + * |Gui|Alt | Space |Alt |Gui| + * `-------------------------------------------' + */ + [2] = \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \ + LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ + LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT,TRNS, \ + LGUI,LALT, SPC, RALT,RGUI), + + /* Layer 3: Mouse mode(IJKL)[Semicolon] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Mb1 |Fn |Fn | + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + [3] = \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,FN9, FN10,FN8, \ + LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,FN3, NO, ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \ + LGUI,LALT, BTN1, TRNS,TRNS), + + /* Layer 4: Mouse mode(IJKL)[Space] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Mb1 |Fn |Fn | + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + [4] = \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,BTN4,BTN5,FN8, \ + LCTL,VOLD,VOLU,MUTE,NO, NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \ + LGUI,LALT, TRNS, TRNS,TRNS), + +#if 0 + /* Layer 3: Mouse mode(HJKL)[Semicolon] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|MwU|MwR| | | |Backs| + * |-----------------------------------------------------------| + * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Mb1 |Alt |Fn0| + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + TAB, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, NO, NO, BSPC, \ + LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,TRNS,QUOT,ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,SLSH,RSFT,NO, \ + LGUI,LALT, BTN1, RALT,TRNS), + + /* Layer4: Mouse mode(HJKL)[Space] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|MwU|MwR| |Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Fn0 |Alt |Fn0| + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + FN8, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, FN9, FN10,FN8, \ + LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,BTN1,NO, ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,NO, \ + LGUI,LALT, TRNS, RALT,RGUI), +#endif +#if 0 + /* Layer x: Matias half-qwerty keyboard style[Space] + * ,-----------------------------------------------------------. + * | -| 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | |Esc| + * |-----------------------------------------------------------| + * |Backs| P| O| I| U| Y| T| R| E| W| Q| | |Tab | + * |-----------------------------------------------------------| + * |Contro| ;| L| K| J| H| G| F| D| S| A|Con|Control | + * |-----------------------------------------------------------| + * |Shift | /| .| ,| M| N| B| V| C| X| Z|Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Fn0 |Alt |Gui| + * `--------------------------------------------' + */ + KEYMAP(MINS,0, 9, 8, 7, 6, 5, 4, 3, 2, 1, NO, NO, NO, ESC, \ + BSPC,P, O, I, U, Y, T, R, E, W, Q, NO, NO, TAB, \ + LCTL,SCLN,L, K, J, H, G, F, D, S, A, RCTL,RCTL, \ + LSFT,SLSH,DOT, COMM,M, N, B, V, C, X, Z, RSFT,NO, \ + LGUI,LALT, TRNS, RALT,RGUI), +#endif +}; + + + +/* id for user defined functions */ +enum function_id { + LSHIFT_LPAREN, +}; + +enum macro_id { + HELLO, + VOLUP, + ALT_TAB, +}; + + +/* + * Fn action definition + */ +#ifdef KEYMAP_SECTION_ENABLE +const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { +#else +const uint16_t fn_actions[] PROGMEM = { +#endif + [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) + [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) + [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* + [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon* + [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space + [5] = ACTION_LAYER_MOMENTARY(4), // Mousekey layer(IJKL) + [6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter + [7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift + [8] = ACTION_MACRO(ALT_TAB), // Application switching + [9] = ACTION_MODS_KEY(MOD_LALT, KC_LEFT), + [10] = ACTION_MODS_KEY(MOD_LALT, KC_RIGHT), + +// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // LControl with tap Backspace +// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // LControl with tap Esc +// [x] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // Function: LShift with tap '(' +// [x] = ACTION_MACRO(HELLO), // Macro: say hello +// [x] = ACTION_MACRO(VOLUP), // Macro: media key +}; + + +/* + * Macro definition + */ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case HELLO: + return (record->event.pressed ? + MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) : + MACRO_NONE ); + case VOLUP: + return (record->event.pressed ? + MACRO( D(VOLU), U(VOLU), END ) : + MACRO_NONE ); + case ALT_TAB: + return (record->event.pressed ? + MACRO( D(LALT), D(TAB), END ) : + MACRO( U(TAB), END )); + } + return MACRO_NONE; +} + + + +/* + * user defined action function + */ +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + if (record->event.pressed) dprint("P"); else dprint("R"); + dprintf("%d", record->tap.count); + if (record->tap.interrupted) dprint("i"); + dprint("\n"); + + switch (id) { + case LSHIFT_LPAREN: + // Shift parentheses example: LShft + tap '(' + // http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses + // http://geekhack.org/index.php?topic=41989.msg1304899#msg1304899 + if (record->event.pressed) { + if (record->tap.count > 0 && !record->tap.interrupted) { + if (record->tap.interrupted) { + dprint("tap interrupted\n"); + register_mods(MOD_BIT(KC_LSHIFT)); + } + } else { + register_mods(MOD_BIT(KC_LSHIFT)); + } + } else { + if (record->tap.count > 0 && !(record->tap.interrupted)) { + add_weak_mods(MOD_BIT(KC_LSHIFT)); + send_keyboard_report(); + register_code(KC_9); + unregister_code(KC_9); + del_weak_mods(MOD_BIT(KC_LSHIFT)); + send_keyboard_report(); + record->tap.count = 0; // ad hoc: cancel tap + } else { + unregister_mods(MOD_BIT(KC_LSHIFT)); + } + } + break; + } +} diff --git a/keyboard/hhkb/keymaps/hhkb.c b/keyboard/hhkb/keymaps/hhkb.c new file mode 100644 index 000000000..86ad0f5ee --- /dev/null +++ b/keyboard/hhkb/keymaps/hhkb.c @@ -0,0 +1,95 @@ +/* + * HHKB Layout + */ +#include "keymap_common.h" + + +#ifdef KEYMAP_SECTION_ENABLE +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { +#else +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { +#endif + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| + * `-----------------------------------------------------------' + * |Alt|Gui | Space |Gui |Alt| + * `-------------------------------------------' + */ + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,FN0, \ + LALT,LGUI, SPC, RGUI,RALT), + + /* Layer 1: HHKB mode (HHKB Fn) + * ,-----------------------------------------------------------. + * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| + * |-----------------------------------------------------------| + * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * | | | | | | | +| -|End|PgD|Dow| | | + * `-----------------------------------------------------------' + * | | | | | | + * `-------------------------------------------' + */ + KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS, BSPC, \ + TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,PENT, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS, \ + TRNS,TRNS, TRNS, TRNS,TRNS), +}; + + + +/* + * Fn action definition + */ +#ifdef KEYMAP_SECTION_ENABLE +const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { + [0] = ACTION_LAYER_MOMENTARY(1), + [1] = ACTION_LAYER_MOMENTARY(2), + [2] = ACTION_LAYER_MOMENTARY(3), + [3] = ACTION_LAYER_MOMENTARY(4), + [4] = ACTION_LAYER_MOMENTARY(5), + [5] = ACTION_LAYER_MOMENTARY(6), + [6] = ACTION_LAYER_MOMENTARY(7), + [7] = ACTION_LAYER_TOGGLE(1), + [8] = ACTION_LAYER_TOGGLE(2), + [9] = ACTION_LAYER_TOGGLE(3), + [10] = ACTION_LAYER_TAP_TOGGLE(1), + [11] = ACTION_LAYER_TAP_TOGGLE(2), + [12] = ACTION_LAYER_TAP_TOGGLE(3), + [13] = ACTION_LAYER_TAP_KEY(1, KC_A), + [14] = ACTION_LAYER_TAP_KEY(2, KC_F), + [15] = ACTION_LAYER_TAP_KEY(3, KC_J), + [16] = ACTION_LAYER_TAP_KEY(4, KC_SPACE), + [17] = ACTION_LAYER_TAP_KEY(5, KC_SCOLON), + [18] = ACTION_LAYER_TAP_KEY(6, KC_QUOTE), + [19] = ACTION_LAYER_TAP_KEY(7, KC_SLASH), + [20] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPACE), + [21] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_SPACE), + [22] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_QUOTE), + [23] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENTER), + [24] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ESC), + [25] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPACE), + [26] = ACTION_MODS_ONESHOT(MOD_LCTL), + [27] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_ESC), + [28] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPACE), + [29] = ACTION_MODS_ONESHOT(MOD_LSFT), + [30] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ESC), + [31] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_BSPACE), +}; +#else +const uint16_t fn_actions[] PROGMEM = { + [0] = ACTION_LAYER_MOMENTARY(1), +}; +#endif diff --git a/keyboard/hhkb/keymaps/jp.c b/keyboard/hhkb/keymaps/jp.c new file mode 100644 index 000000000..48d0ee70b --- /dev/null +++ b/keyboard/hhkb/keymaps/jp.c @@ -0,0 +1,50 @@ +/* + * HHKB JP Layout + */ +#include "keymap_common.h" + + +#ifdef KEYMAP_SECTION_ENABLE +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { +#else +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { +#endif + /* Layer 0: Default Layer */ + KEYMAP_JP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,BSLS,ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RO, UP, RSFT, \ + FN0, ZKHK,LGUI,LALT,MHEN, SPC, HENK,KANA,RALT,FN0, LEFT,DOWN,RGHT), + + /* Layer 1: HHKB mode (HHKB Fn) + * ,-----------------------------------------------------------. + * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | | | + * |------------------------------------------------------` | + * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig| | | + * |-----------------------------------------------------------| + * | | | | | | | +| -|End|PgD|Dow| | | | + * |-----------------------------------------------------------| + * | || | | | | | | | | || | | | + * `-----------------------------------------------------------' + */ + KEYMAP_JP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS, \ + TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,TRNS,PENT, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS), +}; + + + +/* + * Fn action definition + */ +#ifdef KEYMAP_SECTION_ENABLE +const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { +#else +const uint16_t fn_actions[] PROGMEM = { +#endif + [0] = ACTION_LAYER_MOMENTARY(1), +}; diff --git a/keyboard/hhkb/keymaps/spacefn.c b/keyboard/hhkb/keymaps/spacefn.c new file mode 100644 index 000000000..deff920ae --- /dev/null +++ b/keyboard/hhkb/keymaps/spacefn.c @@ -0,0 +1,116 @@ +/* + * SpaceFN + * http://geekhack.org/index.php?topic=51069.0 + */ +#include "keymap_common.h" + + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| + * `-----------------------------------------------------------' + * |Gui|Alt | SpaceFN |Alt |Gui| + * `-------------------------------------------' + */ + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, GRV, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,FN0, \ + LGUI,LALT, FN1, RALT,RGUI), + + /* Layer 1: HHKB mode (HHKB Fn) + * ,-----------------------------------------------------------. + * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| + * |-----------------------------------------------------------| + * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * | | | | | | | +| -|End|PgD|Dow| | | + * `-----------------------------------------------------------' + * | | | | | | + * `-------------------------------------------' + */ + KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS, BSPC, \ + TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,PENT, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS, \ + TRNS,TRNS, SPC, TRNS,TRNS), + + /* Layer 2: SpaceFN + * ,-----------------------------------------------------------. + * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Del| + * |-----------------------------------------------------------| + * | | | |Esc| | | |Hom|Up |End|Psc|Slk|Pau|Ins | + * |-----------------------------------------------------------| + * | | | | | | |PgU|Lef|Dow|Rig| | | | + * |-----------------------------------------------------------| + * | | | | | |Spc|PgD|` |~ | | | | | + * `-----------------------------------------------------------' + * | | | | | | + * `-------------------------------------------' + */ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,DEL, \ + TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,FN3, END, PSCR,SLCK,PAUS,INS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN2, TRNS,TRNS,TRNS,NO, \ + TRNS,TRNS, TRNS, TRNS,TRNS), +}; + + +/* + * user defined action function + */ +enum function_id { + CTRL_SPACE_I, // Ctrl + Up(SpaceFN) -> PgUp +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +# define MODS_CTRL_MASK (MOD_BIT(KC_LCTRL)|MOD_BIT(KC_RCTRL)) + static uint8_t ctrl_space_i_prev_ctrl; + + switch (id) { + // Ctrl + Up(SpaceFN) -> PgUp + case CTRL_SPACE_I: + ctrl_space_i_prev_ctrl = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (ctrl_space_i_prev_ctrl) { + del_mods(ctrl_space_i_prev_ctrl); // remove Ctrl + add_key(KC_PGUP); + send_keyboard_report(); // send PgUp without Ctrl + add_mods(ctrl_space_i_prev_ctrl); // return Ctrl but not sent + } else { + add_key(KC_UP); + send_keyboard_report(); + } + } else { + if (ctrl_space_i_prev_ctrl) { + del_key(KC_PGUP); + send_keyboard_report(); + } else { + del_key(KC_UP); + send_keyboard_report(); + } + } + break; + } +} + + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), + [1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), + [2] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde + [3] = ACTION_FUNCTION(CTRL_SPACE_I), // Ctrl + Up(SpaceFN) -> PgUp +}; diff --git a/keyboard/hhkb_qmk/Makefile b/keyboard/hhkb_qmk/Makefile index 8bd44100b..21ba261a2 100644 --- a/keyboard/hhkb_qmk/Makefile +++ b/keyboard/hhkb_qmk/Makefile @@ -54,9 +54,9 @@ SRC = hhkb_qmk.c \ matrix.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/hhkb_qmk/README.md b/keyboard/hhkb_qmk/README.md index 606025c41..389407b3a 100644 --- a/keyboard/hhkb_qmk/README.md +++ b/keyboard/hhkb_qmk/README.md @@ -171,10 +171,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/hhkb_qmk/keymaps/default.c b/keyboard/hhkb_qmk/keymaps/default.c new file mode 100644 index 000000000..bcd8ead37 --- /dev/null +++ b/keyboard/hhkb_qmk/keymaps/default.c @@ -0,0 +1,78 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + */ +#include "hhkb_qmk.h" + +#define BASE 0 +#define HHKB 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BASE Level: Default Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [BASE] = KEYMAP( // default layer + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer HHKB: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [HHKB] = KEYMAP( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/hhkb_qmk/keymaps/keymap_default.c b/keyboard/hhkb_qmk/keymaps/keymap_default.c deleted file mode 100644 index bcd8ead37..000000000 --- a/keyboard/hhkb_qmk/keymaps/keymap_default.c +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- eval: (turn-on-orgtbl); -*- - * default HHKB Layout - */ -#include "hhkb_qmk.h" - -#define BASE 0 -#define HHKB 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* BASE Level: Default Layer - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - - |------+------+-----------------------+------+------| - | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | - |------+------+-----------------------+------+------| - */ - - [BASE] = KEYMAP( // default layer - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), - - - - /* Layer HHKB: HHKB mode (HHKB Fn) - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | | | | | | + | - | End | PgD | Dow | | | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - - |------+------+----------------------+------+------+ - | **** | **** | ******************** | **** | **** | - |------+------+----------------------+------+------+ - - */ - - [HHKB] = KEYMAP( - KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; - - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/hhkb_qmk/keymaps/keymap_lxol.c b/keyboard/hhkb_qmk/keymaps/keymap_lxol.c deleted file mode 100644 index 3256fda51..000000000 --- a/keyboard/hhkb_qmk/keymaps/keymap_lxol.c +++ /dev/null @@ -1,208 +0,0 @@ -/* -*- eval: (turn-on-orgtbl); -*- - * lxol HHKB Layout - */ -#include "hhkb_qmk.h" - -#define BASE 0 -#define WIN 1 -#define HHKB 2 -#define RGUILEV 3 -#define LGUILEV 4 -#define RALTLEV 5 -#define LALTLEV 6 - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Layer 0: Default Layer - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | RGUI | RAlt | - |------+------+-------+------+------| - */ - - [BASE] = KEYMAP( // layer 0 : default - - - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ - KC_LCTL, LT(LALTLEV,KC_A), LT(LGUILEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RGUILEV,KC_L), LT(RALTLEV,KC_SCLN), KC_QUOT, KC_FN0, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT), - - - - /* Layer 1: HHKB mode (HHKB Fn) - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | | | | | | + | - | End | PgD | Dow | | | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - - |---+---+---+---+---| - | | | | | | - |---+---+---+---+---| - */ - - [HHKB] = KEYMAP( - KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - - /* Layer LGUI: All keys with RGUI modifier - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | RGUI | RAlt | - |------+------+-------+------+------| - */ - - [RGUILEV] = KEYMAP( // Right GUI layer by KC_L - - RGUI(KC_ESC), RGUI(KC_1), RGUI(KC_2), RGUI(KC_3), RGUI(KC_4), RGUI(KC_5), RGUI(KC_6), RGUI(KC_7), RGUI(KC_8), RGUI(KC_9), RGUI(KC_0), RGUI(KC_MINS), RGUI(KC_EQL), RGUI(KC_BSLS), RGUI(KC_GRV), \ - RGUI(KC_TAB), RGUI(KC_Q), RGUI(KC_W), RGUI(KC_E), RGUI(KC_R), RGUI(KC_T), RGUI(KC_Y), RGUI(KC_U), RGUI(KC_I), RGUI(KC_O), RGUI(KC_P), RGUI(KC_LBRC), RGUI(KC_RBRC), RGUI(KC_BSPC), \ - RGUI(KC_LCTL), RGUI(KC_A), RGUI(KC_S), RGUI(KC_D), RGUI(KC_F), RGUI(KC_G), RGUI(KC_H), RGUI(KC_J), RGUI(KC_K), KC_TRNS, KC_TRNS, RGUI(KC_QUOT), KC_FN0, \ - RGUI(KC_LSFT), RGUI(KC_Z), RGUI(KC_X), RGUI(KC_C), RGUI(KC_V), RGUI(KC_B), RGUI(KC_N), RGUI(KC_M), RGUI(KC_COMM), RGUI(KC_DOT), RGUI(KC_SLSH), RGUI(KC_RSFT), KC_TRNS, \ - KC_LALT, KC_LGUI, RGUI(KC_SPC), KC_RGUI, KC_RALT), - - /* Layer LGUI: All keys with LGUI modifier - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | LGUI | RAlt | - |------+------+-------+------+------| - */ - - [LGUILEV] = KEYMAP( // Right GUI layer by KC_L - - LGUI(KC_ESC), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), LGUI(KC_MINS), LGUI(KC_EQL), LGUI(KC_BSLS), LGUI(KC_GRV), \ - LGUI(KC_TAB), LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), LGUI(KC_BSPC), \ - LGUI(KC_LCTL), KC_TRNS, KC_TRNS, LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), LGUI(KC_SCLN), LGUI(KC_QUOT), KC_FN0, \ - KC_LSFT, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), KC_RSFT, KC_TRNS, \ - KC_LALT, KC_LGUI, LGUI(KC_SPC), KC_LGUI, KC_RALT), - - /* Layer LALT: All keys with RALT modifier - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | RGUI | RAlt | - |------+------+-------+------+------| - */ - - [RALTLEV] = KEYMAP( // Right ALT layer by KC_L - - RALT(KC_ESC), RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), RALT(KC_EQL), RALT(KC_BSLS), RALT(KC_GRV), \ - RALT(KC_TAB), RALT(KC_Q), RALT(KC_W), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(KC_Y), RALT(KC_U), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_BSPC), \ - RALT(KC_LCTL), RALT(KC_A), RALT(KC_S), RALT(KC_D), RALT(KC_F), RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), KC_TRNS, KC_TRNS, RALT(KC_QUOT), KC_FN0, \ - RALT(KC_LSFT), RALT(KC_Z), RALT(KC_X), RALT(KC_C), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), RALT(KC_SLSH), RALT(KC_RSFT), KC_TRNS, \ - KC_LALT, KC_LGUI, RALT(KC_SPC), KC_RGUI, KC_RALT), - - /* Layer LALT: All keys with LALT modifier - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | LGUI | RAlt | - |------+------+-------+------+------| - */ - - [LALTLEV] = KEYMAP( // Right ALT layer by KC_L - - LALT(KC_ESC), LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), LALT(KC_MINS), LALT(KC_EQL), LALT(KC_BSLS), LALT(KC_GRV), \ - LALT(KC_TAB), LALT(KC_Q), LALT(KC_W), LALT(KC_E), LALT(KC_R), LALT(KC_T), LALT(KC_Y), LALT(KC_U), LALT(KC_I), LALT(KC_O), LALT(KC_P), LALT(KC_LBRC), LALT(KC_RBRC), LALT(KC_BSPC), \ - LALT(KC_LCTL), KC_TRNS, KC_TRNS, LALT(KC_D), LALT(KC_F), LALT(KC_G), LALT(KC_H), LALT(KC_J), LALT(KC_K), LALT(KC_L), LALT(KC_SCLN), LALT(KC_QUOT), KC_FN0, \ - KC_LSFT, LALT(KC_Z), LALT(KC_X), LALT(KC_C), LALT(KC_V), LALT(KC_B), LALT(KC_N), LALT(KC_M), LALT(KC_COMM), LALT(KC_DOT), LALT(KC_SLSH), KC_RSFT, KC_TRNS, \ - KC_LALT, KC_LGUI, LALT(KC_SPC), KC_LGUI, KC_RALT), - - - /* Layer WIN: Win layer - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - - |------+------+-------+------+------| - | LGui | LAlt | Space | RGui | Ralt | - |------+------+-------+------+------| - */ - - [WIN] = KEYMAP( // BASE level with swapped GUI/ALT - - - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ - KC_LCTL, LT(LGUILEV,KC_A), LT(LALTLEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RALTLEV,KC_L), LT(RGUILEV,KC_SCLN), KC_QUOT, KC_FN0, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_RGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI)}; - - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT) // RControl with tap Enter* -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/hhkb_qmk/keymaps/lxol.c b/keyboard/hhkb_qmk/keymaps/lxol.c new file mode 100644 index 000000000..3256fda51 --- /dev/null +++ b/keyboard/hhkb_qmk/keymaps/lxol.c @@ -0,0 +1,208 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * lxol HHKB Layout + */ +#include "hhkb_qmk.h" + +#define BASE 0 +#define WIN 1 +#define HHKB 2 +#define RGUILEV 3 +#define LGUILEV 4 +#define RALTLEV 5 +#define LALTLEV 6 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Layer 0: Default Layer + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [BASE] = KEYMAP( // layer 0 : default + + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_LCTL, LT(LALTLEV,KC_A), LT(LGUILEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RGUILEV,KC_L), LT(RALTLEV,KC_SCLN), KC_QUOT, KC_FN0, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer 1: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |---+---+---+---+---| + | | | | | | + |---+---+---+---+---| + */ + + [HHKB] = KEYMAP( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + + /* Layer LGUI: All keys with RGUI modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [RGUILEV] = KEYMAP( // Right GUI layer by KC_L + + RGUI(KC_ESC), RGUI(KC_1), RGUI(KC_2), RGUI(KC_3), RGUI(KC_4), RGUI(KC_5), RGUI(KC_6), RGUI(KC_7), RGUI(KC_8), RGUI(KC_9), RGUI(KC_0), RGUI(KC_MINS), RGUI(KC_EQL), RGUI(KC_BSLS), RGUI(KC_GRV), \ + RGUI(KC_TAB), RGUI(KC_Q), RGUI(KC_W), RGUI(KC_E), RGUI(KC_R), RGUI(KC_T), RGUI(KC_Y), RGUI(KC_U), RGUI(KC_I), RGUI(KC_O), RGUI(KC_P), RGUI(KC_LBRC), RGUI(KC_RBRC), RGUI(KC_BSPC), \ + RGUI(KC_LCTL), RGUI(KC_A), RGUI(KC_S), RGUI(KC_D), RGUI(KC_F), RGUI(KC_G), RGUI(KC_H), RGUI(KC_J), RGUI(KC_K), KC_TRNS, KC_TRNS, RGUI(KC_QUOT), KC_FN0, \ + RGUI(KC_LSFT), RGUI(KC_Z), RGUI(KC_X), RGUI(KC_C), RGUI(KC_V), RGUI(KC_B), RGUI(KC_N), RGUI(KC_M), RGUI(KC_COMM), RGUI(KC_DOT), RGUI(KC_SLSH), RGUI(KC_RSFT), KC_TRNS, \ + KC_LALT, KC_LGUI, RGUI(KC_SPC), KC_RGUI, KC_RALT), + + /* Layer LGUI: All keys with LGUI modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | LGUI | RAlt | + |------+------+-------+------+------| + */ + + [LGUILEV] = KEYMAP( // Right GUI layer by KC_L + + LGUI(KC_ESC), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), LGUI(KC_MINS), LGUI(KC_EQL), LGUI(KC_BSLS), LGUI(KC_GRV), \ + LGUI(KC_TAB), LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), LGUI(KC_BSPC), \ + LGUI(KC_LCTL), KC_TRNS, KC_TRNS, LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), LGUI(KC_SCLN), LGUI(KC_QUOT), KC_FN0, \ + KC_LSFT, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), KC_RSFT, KC_TRNS, \ + KC_LALT, KC_LGUI, LGUI(KC_SPC), KC_LGUI, KC_RALT), + + /* Layer LALT: All keys with RALT modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [RALTLEV] = KEYMAP( // Right ALT layer by KC_L + + RALT(KC_ESC), RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), RALT(KC_EQL), RALT(KC_BSLS), RALT(KC_GRV), \ + RALT(KC_TAB), RALT(KC_Q), RALT(KC_W), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(KC_Y), RALT(KC_U), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_BSPC), \ + RALT(KC_LCTL), RALT(KC_A), RALT(KC_S), RALT(KC_D), RALT(KC_F), RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), KC_TRNS, KC_TRNS, RALT(KC_QUOT), KC_FN0, \ + RALT(KC_LSFT), RALT(KC_Z), RALT(KC_X), RALT(KC_C), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), RALT(KC_SLSH), RALT(KC_RSFT), KC_TRNS, \ + KC_LALT, KC_LGUI, RALT(KC_SPC), KC_RGUI, KC_RALT), + + /* Layer LALT: All keys with LALT modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | LGUI | RAlt | + |------+------+-------+------+------| + */ + + [LALTLEV] = KEYMAP( // Right ALT layer by KC_L + + LALT(KC_ESC), LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), LALT(KC_MINS), LALT(KC_EQL), LALT(KC_BSLS), LALT(KC_GRV), \ + LALT(KC_TAB), LALT(KC_Q), LALT(KC_W), LALT(KC_E), LALT(KC_R), LALT(KC_T), LALT(KC_Y), LALT(KC_U), LALT(KC_I), LALT(KC_O), LALT(KC_P), LALT(KC_LBRC), LALT(KC_RBRC), LALT(KC_BSPC), \ + LALT(KC_LCTL), KC_TRNS, KC_TRNS, LALT(KC_D), LALT(KC_F), LALT(KC_G), LALT(KC_H), LALT(KC_J), LALT(KC_K), LALT(KC_L), LALT(KC_SCLN), LALT(KC_QUOT), KC_FN0, \ + KC_LSFT, LALT(KC_Z), LALT(KC_X), LALT(KC_C), LALT(KC_V), LALT(KC_B), LALT(KC_N), LALT(KC_M), LALT(KC_COMM), LALT(KC_DOT), LALT(KC_SLSH), KC_RSFT, KC_TRNS, \ + KC_LALT, KC_LGUI, LALT(KC_SPC), KC_LGUI, KC_RALT), + + + /* Layer WIN: Win layer + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + + |------+------+-------+------+------| + | LGui | LAlt | Space | RGui | Ralt | + |------+------+-------+------+------| + */ + + [WIN] = KEYMAP( // BASE level with swapped GUI/ALT + + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_LCTL, LT(LGUILEV,KC_A), LT(LALTLEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RALTLEV,KC_L), LT(RGUILEV,KC_SCLN), KC_QUOT, KC_FN0, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ + KC_RGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI)}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT) // RControl with tap Enter* +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/jd45/Makefile b/keyboard/jd45/Makefile index 076dced82..f6a8d10c5 100644 --- a/keyboard/jd45/Makefile +++ b/keyboard/jd45/Makefile @@ -54,9 +54,9 @@ SRC = jd45.c \ backlight.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/keymaps/(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/jd45/keymaps/default.c b/keyboard/jd45/keymaps/default.c new file mode 100644 index 000000000..05dd46e79 --- /dev/null +++ b/keyboard/jd45/keymaps/default.c @@ -0,0 +1,31 @@ +#include "jd45.h" +#include "backlight.h" + +/* this keymap is to provide a basic keyboard layout for testing the matrix + * for more practical and complicated keymap refer to other keymaps in the same folder + */ +/* JD45 keymap definition macro + */ +#define KEYMAP( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ + K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ + K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ +) { \ + { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ + { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \ + { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \ + { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \ +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + ESC, Q, W, E, R, T, Y, U, I, O, P, QUOT, BSPC, + TAB, A, S, D, F, G, H, J, K, L, SCLN, ENT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, + PAUSE, LCTL, LALT, DEL, SPC, DEL, LEFT, UP, DOWN, RIGHT ), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; diff --git a/keyboard/jd45/keymaps/justin.c b/keyboard/jd45/keymaps/justin.c new file mode 100644 index 000000000..f261b5463 --- /dev/null +++ b/keyboard/jd45/keymaps/justin.c @@ -0,0 +1,101 @@ +#include "jd45.h" +#include "backlight.h" + +/* JD45 keymap definition macro + */ +#define KEYMAP( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ + K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ + K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ +) { \ + { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ + { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \ + { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \ + { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \ +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC, + FN8, A, R, S, T, D, H, N, E, I, O, ENT, + LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, FN6, + FN4, LGUI, FN7, FN2, FN1, SPC, FN5, RALT, FN3, FN0 ), +[1] = KEYMAP( + TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), +[2] = KEYMAP( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, + TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ), +[3] = KEYMAP( + TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), +[4] = KEYMAP( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, + TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ), +}; + +enum macro_id { + PSWD1, + PSWD2, + PSWD3, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_MINS), + [1] = ACTION_LAYER_MOMENTARY(1), // FN1 + [2] = ACTION_LAYER_MOMENTARY(2), // FN2 + [3] = ACTION_LAYER_MOMENTARY(3), // FN3 + [4] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_GRV), + [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_RGUI), + [6] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_CAPS), + [7] = ACTION_LAYER_MODS(4, MOD_LSFT), // FN4 + [8] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB), + + [10] = ACTION_MACRO(PSWD1), + [11] = ACTION_MACRO(PSWD2), + [12] = ACTION_MACRO(PSWD3), + + [29] = ACTION_BACKLIGHT_TOGGLE(), + [30] = ACTION_BACKLIGHT_INCREASE(), + [31] = ACTION_BACKLIGHT_DECREASE() + +}; + +/* + * Macro definition + */ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case PSWD1: + return (record->event.pressed ? + MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : + MACRO_NONE ); + case PSWD2: + return (record->event.pressed ? + MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : + MACRO_NONE ); + case PSWD3: + return (record->event.pressed ? + MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : + MACRO_NONE ); + //case VOLUP: + // return (record->event.pressed ? + // MACRO( D(VOLU), U(VOLU), END ) : + // MACRO_NONE ); + //case ALT_TAB: + // return (record->event.pressed ? + // MACRO( D(LALT), D(TAB), END ) : + // MACRO( U(TAB), END )); + } + return MACRO_NONE; +} diff --git a/keyboard/jd45/keymaps/keymap_default.c b/keyboard/jd45/keymaps/keymap_default.c deleted file mode 100644 index 05dd46e79..000000000 --- a/keyboard/jd45/keymaps/keymap_default.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "jd45.h" -#include "backlight.h" - -/* this keymap is to provide a basic keyboard layout for testing the matrix - * for more practical and complicated keymap refer to other keymaps in the same folder - */ -/* JD45 keymap definition macro - */ -#define KEYMAP( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ - K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ - K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ - K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ -) { \ - { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ - { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \ - { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \ - { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \ -} - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, E, R, T, Y, U, I, O, P, QUOT, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, - PAUSE, LCTL, LALT, DEL, SPC, DEL, LEFT, UP, DOWN, RIGHT ), -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; diff --git a/keyboard/jd45/keymaps/keymap_justin.c b/keyboard/jd45/keymaps/keymap_justin.c deleted file mode 100644 index f261b5463..000000000 --- a/keyboard/jd45/keymaps/keymap_justin.c +++ /dev/null @@ -1,101 +0,0 @@ -#include "jd45.h" -#include "backlight.h" - -/* JD45 keymap definition macro - */ -#define KEYMAP( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ - K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ - K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ - K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ -) { \ - { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ - { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \ - { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \ - { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \ -} - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC, - FN8, A, R, S, T, D, H, N, E, I, O, ENT, - LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, FN6, - FN4, LGUI, FN7, FN2, FN1, SPC, FN5, RALT, FN3, FN0 ), -[1] = KEYMAP( - TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), -[2] = KEYMAP( - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, - TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ), -[3] = KEYMAP( - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), -[4] = KEYMAP( - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, - TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ), -}; - -enum macro_id { - PSWD1, - PSWD2, - PSWD3, -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_MINS), - [1] = ACTION_LAYER_MOMENTARY(1), // FN1 - [2] = ACTION_LAYER_MOMENTARY(2), // FN2 - [3] = ACTION_LAYER_MOMENTARY(3), // FN3 - [4] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_GRV), - [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_RGUI), - [6] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_CAPS), - [7] = ACTION_LAYER_MODS(4, MOD_LSFT), // FN4 - [8] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB), - - [10] = ACTION_MACRO(PSWD1), - [11] = ACTION_MACRO(PSWD2), - [12] = ACTION_MACRO(PSWD3), - - [29] = ACTION_BACKLIGHT_TOGGLE(), - [30] = ACTION_BACKLIGHT_INCREASE(), - [31] = ACTION_BACKLIGHT_DECREASE() - -}; - -/* - * Macro definition - */ -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch (id) { - case PSWD1: - return (record->event.pressed ? - MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : - MACRO_NONE ); - case PSWD2: - return (record->event.pressed ? - MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : - MACRO_NONE ); - case PSWD3: - return (record->event.pressed ? - MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : - MACRO_NONE ); - //case VOLUP: - // return (record->event.pressed ? - // MACRO( D(VOLU), U(VOLU), END ) : - // MACRO_NONE ); - //case ALT_TAB: - // return (record->event.pressed ? - // MACRO( D(LALT), D(TAB), END ) : - // MACRO( U(TAB), END )); - } - return MACRO_NONE; -} diff --git a/keyboard/planck/README.md b/keyboard/planck/README.md index 3ba0cc152..d9a1e3bee 100644 --- a/keyboard/planck/README.md +++ b/keyboard/planck/README.md @@ -16,13 +16,13 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. ### Notable forks (which some of the keymap files are from) - [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) diff --git a/keyboard/planck/common_keymaps/keymap_mitch.c b/keyboard/planck/common_keymaps/keymap_mitch.c deleted file mode 100644 index f7df7bbba..000000000 --- a/keyboard/planck/common_keymaps/keymap_mitch.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, - LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN3, - ESC, DEL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( - GRV, GRV, FN22, FN19, FN10, TRNS, TRNS, 7, 8, 9, 0, BSPC, - TRNS, LBRC, RBRC, FN23, FN24, TRNS, TRNS, 4, 5, 6, TRNS, BSLS, - TRNS, MINS, FN20, EQL, FN21, TRNS, TRNS, 1, 2, 3, TRNS, ENT, - TRNS, TRNS, TRNS, TRNS, TRNS, SPC, FN1, TRNS, PGDN, PGUP, TRNS), -[2] = KEYMAP( - FN26, FN10, FN11, FN12, FN13, FN14, FN15, FN17, FN18, FN19, FN10, DEL, - TRNS, TRNS, MUTE, VOLD, VOLU, TRNS, BSPC, FN14, FN15, FN16, TRNS, FN25, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN11, FN12, FN13, TRNS, ENT, - TRNS, TRNS, TRNS, TRNS, FN2, ENT, TRNS, TRNS, PGDN, PGUP, TRNS), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // Switch layer raise - [2] = ACTION_LAYER_MOMENTARY(2), // Switch layer lower - - [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Right shift serves as Enter on tap - - // Numeric shift modifiers - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - - // Other shift modifiers - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _ - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~ - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // | - - // Switch windows in app - [26] = ACTION_MODS_KEY(MOD_LGUI, KC_GRV), -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c new file mode 100644 index 000000000..f7df7bbba --- /dev/null +++ b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c @@ -0,0 +1,49 @@ +#include "keymap_common.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN3, + ESC, DEL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), +[1] = KEYMAP( + GRV, GRV, FN22, FN19, FN10, TRNS, TRNS, 7, 8, 9, 0, BSPC, + TRNS, LBRC, RBRC, FN23, FN24, TRNS, TRNS, 4, 5, 6, TRNS, BSLS, + TRNS, MINS, FN20, EQL, FN21, TRNS, TRNS, 1, 2, 3, TRNS, ENT, + TRNS, TRNS, TRNS, TRNS, TRNS, SPC, FN1, TRNS, PGDN, PGUP, TRNS), +[2] = KEYMAP( + FN26, FN10, FN11, FN12, FN13, FN14, FN15, FN17, FN18, FN19, FN10, DEL, + TRNS, TRNS, MUTE, VOLD, VOLU, TRNS, BSPC, FN14, FN15, FN16, TRNS, FN25, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN11, FN12, FN13, TRNS, ENT, + TRNS, TRNS, TRNS, TRNS, FN2, ENT, TRNS, TRNS, PGDN, PGUP, TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // Switch layer raise + [2] = ACTION_LAYER_MOMENTARY(2), // Switch layer lower + + [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Right shift serves as Enter on tap + + // Numeric shift modifiers + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + + // Other shift modifiers + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _ + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~ + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } + [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // | + + // Switch windows in app + [26] = ACTION_MODS_KEY(MOD_LGUI, KC_GRV), +}; diff --git a/quantum/template/README.md b/quantum/template/README.md index dc163a2f4..39f9f59d1 100644 --- a/quantum/template/README.md +++ b/quantum/template/README.md @@ -15,7 +15,7 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` -- cgit v1.2.3-70-g09d2 From 3b703eff33963a5756b3e3f16019d6ddae8a7874 Mon Sep 17 00:00:00 2001 From: Miha Rekar Date: Wed, 30 Mar 2016 17:03:03 +0200 Subject: Tiny fix of Planck diagrams --- keyboard/planck/keymaps/default/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index d995eb9e5..988deee99 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| -- cgit v1.2.3-70-g09d2 From ad3ec12fb62b67fa2a69f3950a073fafc22be8f4 Mon Sep 17 00:00:00 2001 From: tak3over Date: Fri, 1 Apr 2016 15:26:09 -0500 Subject: Create tak3over.c Custom keymap with an additional function layer for numpad, pgup, pgdn, del, ins, home, end, and additional arrow keys. --- keyboard/planck/keymaps/tak3over.c | 136 +++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 keyboard/planck/keymaps/tak3over.c (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c new file mode 100644 index 000000000..c49af7d0e --- /dev/null +++ b/keyboard/planck/keymaps/tak3over.c @@ -0,0 +1,136 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. +// +// Custom style by tak3over. Dropped the dvorak layer as it was not being used by me. Shifted over +// keys to make room for a second function key on the left side. Now has a keypad and most all +// standard keyboard keys. Including Delete. See TK layer. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _TK 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* TenKey, Arrow, and Function key Layer + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | Left | Up | Down | Right| Del | * | 4 | 5 | 6 | + | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Home | PGUP | PGDN | End | Ins | . | 1 | 2 | 3 | - |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_TK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_DEL, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, KC_SLSH}, + {KC_LSFT, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_INS, KC_DOT, KC_1, KC_2, KC_3, KC_MINS, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3-70-g09d2 From 9cd0c9d589283b5d9e28dcf6da35ec5427cb936f Mon Sep 17 00:00:00 2001 From: tak3over Date: Mon, 4 Apr 2016 13:19:19 -0500 Subject: Minor documentation error. Raise and Lower. The Raise and Lower keys were transposed in the comment key map for all layers. Assuming _RS and _LW should be mapped to Raise and Lower respectively. Probably is the same in the other custom keymaps that copied from this default. --- keyboard/planck/keymaps/default/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 988deee99..a7541b0b8 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_QW] = { @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_CM] = { @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_DV] = { @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_RS] = { @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_LW] = { -- cgit v1.2.3-70-g09d2 From 2a488d1597a37ebc021f7305aed6526f8b0a7c82 Mon Sep 17 00:00:00 2001 From: tak3over Date: Mon, 4 Apr 2016 16:51:30 -0500 Subject: Update tak3over.c --- keyboard/planck/keymaps/tak3over.c | 54 +++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c index c49af7d0e..caba6167f 100644 --- a/keyboard/planck/keymaps/tak3over.c +++ b/keyboard/planck/keymaps/tak3over.c @@ -3,7 +3,7 @@ // // Custom style by tak3over. Dropped the dvorak layer as it was not being used by me. Shifted over // keys to make room for a second function key on the left side. Now has a keypad and most all -// standard keyboard keys. Including Delete. See TK layer. +// standard keyboard keys. Including Delete. See TK layer. #include "planck.h" #ifdef BACKLIGHT_ENABLE @@ -16,7 +16,7 @@ // entirely and just use numbers. #define _QW 0 #define _CM 1 -#define _TK 2 +//#define _TK 2 #define _LW 3 #define _RS 4 @@ -30,14 +30,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_QW] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} }, /* Colemak @@ -48,68 +48,68 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_CM] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} }, -/* TenKey, Arrow, and Function key Layer +/* TenKey Layer, obsolete * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | Left | Up | Down | Right| Del | * | 4 | 5 | 6 | + | / | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | Next | Vol- | Vol+ | Play | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Home | PGUP | PGDN | End | Ins | . | 1 | 2 | 3 | - |Enter | + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' - */ + [_TK] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_DEL, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, KC_SLSH}, {KC_LSFT, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_INS, KC_DOT, KC_1, KC_2, KC_3, KC_MINS, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} +},*/ -/* Raise +/* Raise * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Esc |Reset | Ins | Home | PGUP | Next | Left | Down | Up |Right | Play | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | + * | Shift| Brite| Del | End | PGDN |Qwerty|Colemk| - | = | [ | ] |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_RS] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, KC_MNXT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MPLY, KC_BSLS}, + {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), DF(_CM), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, /* Lower * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | Next | Vol- | Vol+ | Play | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' - */ + */ [_LW] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} } }; -- cgit v1.2.3-70-g09d2 From 028dd16fe61818294790c0190c5fd571ce2e5635 Mon Sep 17 00:00:00 2001 From: tak3over Date: Tue, 5 Apr 2016 16:21:45 -0500 Subject: Modified keymap --- keyboard/planck/keymaps/tak3over.c | 39 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c index caba6167f..2c3d8ef1c 100644 --- a/keyboard/planck/keymaps/tak3over.c +++ b/keyboard/planck/keymaps/tak3over.c @@ -16,9 +16,8 @@ // entirely and just use numbers. #define _QW 0 #define _CM 1 -//#define _TK 2 -#define _LW 3 -#define _RS 4 +#define _LW 2 +#define _RS 3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -58,39 +57,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} }, -/* TenKey Layer, obsolete - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | Next | Vol- | Vol+ | Play | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | - * `-----------------------------------------------------------------------------------' - -[_TK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_DEL, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, KC_SLSH}, - {KC_LSFT, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_INS, KC_DOT, KC_1, KC_2, KC_3, KC_MINS, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} -},*/ - -/* Raise +/* Raise * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc |Reset | Ins | Home | PGUP | Next | Left | Down | Up |Right | Play | \ | + * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | Down | Up |Right | Del | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Brite| Del | End | PGDN |Qwerty|Colemk| - | = | [ | ] |Enter | + * | Shift| Brite| Del | End | PGDN |Qwerty| Next | Mute | Vol- | Vol+ | Play |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_RS] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, KC_MNXT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MPLY, KC_BSLS}, - {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), DF(_CM), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, + {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, @@ -98,16 +79,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | Next | Vol- | Vol+ | Play | | | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' - */ + */ [_LW] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_PIPE}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE}, {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} } -- cgit v1.2.3-70-g09d2 From 4eadc2a977204fc2f1d863ce0a7f68513a6ad5e8 Mon Sep 17 00:00:00 2001 From: tak3over Date: Tue, 5 Apr 2016 16:39:45 -0500 Subject: updated my keymap --- keyboard/planck/keymaps/tak3over.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c index 2c3d8ef1c..a212efc90 100644 --- a/keyboard/planck/keymaps/tak3over.c +++ b/keyboard/planck/keymaps/tak3over.c @@ -1,9 +1,7 @@ // This is the canonical layout file for the Quantum project. If you want to add another keyboard, // this is the style you want to emulate. // -// Custom style by tak3over. Dropped the dvorak layer as it was not being used by me. Shifted over -// keys to make room for a second function key on the left side. Now has a keypad and most all -// standard keyboard keys. Including Delete. See TK layer. +//Dropped the Dvorak layer and added two my layer buttons. Both Raise and lower can be accessed from either side now. #include "planck.h" #ifdef BACKLIGHT_ENABLE -- cgit v1.2.3-70-g09d2 From e89fd63426fc4bd2f1db693c85feabe4aefc5a9e Mon Sep 17 00:00:00 2001 From: tak3over Date: Wed, 6 Apr 2016 11:12:58 -0500 Subject: switched raise and lower layers --- keyboard/planck/keymaps/tak3over.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c index a212efc90..da88a1b4f 100644 --- a/keyboard/planck/keymaps/tak3over.c +++ b/keyboard/planck/keymaps/tak3over.c @@ -36,7 +36,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} }, - /* Colemak * ,-----------------------------------------------------------------------------------. * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | @@ -50,44 +49,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_CM] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} }, - /* Raise * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | Down | Up |Right | Del | \ | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Brite| Del | End | PGDN |Qwerty| Next | Mute | Vol- | Vol+ | Play |Enter | + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_RS] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, - {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, - /* Lower * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | + * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | Down | Up |Right | Del | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | + * | Shift| Brite| Del | End | PGDN |Qwerty| Next | Mute | Vol- | Vol+ | Play |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_LW] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, + {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} } }; -- cgit v1.2.3-70-g09d2 From 9cfc74c35b940884618b0fe1e6fd25c570e1c974 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Thu, 7 Apr 2016 15:21:06 +0300 Subject: [Erez & Jack] Makes tri-layer available across Quantum --- keyboard/planck/keymaps/default/keymap.c | 9 --------- quantum/keymap_common.c | 8 ++++++++ quantum/keymap_common.h | 4 ++++ 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index dee2840f2..56092d04f 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -174,16 +174,7 @@ float tone_dv[][2] = { }; #endif -#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) -#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) -void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - layer_on(layer3); - } else { - layer_off(layer3); - } -} const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index e3030a886..3a00d36f0 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -291,3 +291,11 @@ action_t keymap_func_to_action(uint16_t keycode) // For FUNC without 8bit limit return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) }; } + +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + layer_on(layer3); + } else { + layer_off(layer3); + } +} diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index 4a877d2a7..7452a1ff3 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -208,5 +208,9 @@ extern const uint16_t fn_actions[]; #define UNICODE(n) (n | 0x8000) #define UC(n) UNICODE(n) +// For tri-layer +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); +#define IS_LAYER_ON(layer) ((layer_state) & (1UL<<(layer))) +#define IS_LAYER_OFF(layer) ((!layer_state) & (1UL<<(layer))) #endif -- cgit v1.2.3-70-g09d2 From 9e153b1a5c2849fa079329af7f90b144407b85d8 Mon Sep 17 00:00:00 2001 From: tak3over Date: Thu, 7 Apr 2016 10:54:11 -0500 Subject: another modification of layers, restored arrow keys and added cut/paste --- keyboard/planck/keymaps/tak3over.c | 44 +++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 13 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c index da88a1b4f..7d8243dfa 100644 --- a/keyboard/planck/keymaps/tak3over.c +++ b/keyboard/planck/keymaps/tak3over.c @@ -16,6 +16,7 @@ #define _CM 1 #define _LW 2 #define _RS 3 +#define _FN 4 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -27,14 +28,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_QW] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} + {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak * ,-----------------------------------------------------------------------------------. @@ -44,47 +45,64 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right * `-----------------------------------------------------------------------------------' */ [_CM] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} + {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Raise * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp * |------+------+------+------+------+-------------+------+------+------+------+------| * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_RS] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE}, {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, /* Lower * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | Down | Up |Right | Del | \ | + * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Brite| Del | End | PGDN |Qwerty| Next | Mute | Vol- | Vol+ | Play |Enter | + * | Shift| Brite| Del | End | PGDN |Qwerty| Del | _ | + | { | } |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_DEL, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* Function + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | GUI | X | C | V | Z | Left | Down | Up |Right | Del | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |Shift | Ctrl | X | C | V | Z | Next | Mute | Vol- | Vol+ | Play |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, - {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, + {KC_TRNS, KC_RGUI, KC_X, KC_C, KC_V, KC_Z, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, + {KC_TRNS, KC_RCTL, KC_X, KC_C, KC_V, KC_Z, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} } }; -- cgit v1.2.3-70-g09d2 From 077aee09a4ec90cdb7abed10bd100a96cd671c83 Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Sat, 9 Apr 2016 11:34:01 -0700 Subject: Add my keymap --- keyboard/planck/keymaps/nico.c | 69 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 keyboard/planck/keymaps/nico.c (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/nico.c b/keyboard/planck/keymaps/nico.c new file mode 100644 index 000000000..e81fd80a4 --- /dev/null +++ b/keyboard/planck/keymaps/nico.c @@ -0,0 +1,69 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "backlight.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_DV] = { /* Dvorak */ + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_KEY(MO(_LW), KC_BSPC), // Tap for backspace, hold for LOWER + [2] = ACTION_LAYER_TAP_KEY(MO(_RS), KC_ENT), // Tap for enter, hold for RAISE +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3-70-g09d2 From 5ef6978cab7de2821eb6bfce4fd04067655a8937 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 12 Apr 2016 06:55:26 -0500 Subject: Adding personal files --- keyboard/planck/Makefile | 4 +- keyboard/planck/config.h | 2 +- keyboard/planck/keymaps/pc.c | 132 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 135 insertions(+), 3 deletions(-) create mode 100644 keyboard/planck/keymaps/pc.c (limited to 'keyboard/planck') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 03d260176..17e5cd45c 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -137,8 +137,8 @@ CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # MIDI_ENABLE = YES # MIDI controls # AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index d3719e0cb..d435cc795 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -76,7 +76,7 @@ along with this program. If not, see . #define NO_DEBUG /* disable print */ -#define NO_PRINT +//#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c new file mode 100644 index 000000000..f8254fd46 --- /dev/null +++ b/keyboard/planck/keymaps/pc.c @@ -0,0 +1,132 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | |Raise | Space |Lower | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3-70-g09d2 From ff06eaf8537e5f6ab1489c77a6147531c57bb538 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 12 Apr 2016 08:17:02 -0500 Subject: Added del --- keyboard/planck/keymaps/pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c index f8254fd46..0adee8b2e 100644 --- a/keyboard/planck/keymaps/pc.c +++ b/keyboard/planck/keymaps/pc.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, - {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} }, /* Colemak -- cgit v1.2.3-70-g09d2 From caf3e48de8b29aa21343301dd22ce425e8f7c3ba Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 17:40:16 -0500 Subject: LOCAL COMMIT LOCAL COMMIT --- keyboard/atomic/Makefile | 24 +-- keyboard/atomic/config.h | 95 ++--------- keyboard/atomic/keymaps/default.c | 283 +++++++++++++++++++++++-------- keyboard/atomic/keymaps/pc_atomic.c | 37 ++-- keyboard/planck/keymaps/default/keymap.c | 16 +- 5 files changed, 263 insertions(+), 192 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 95554ea89..17baeaf53 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -114,19 +114,19 @@ 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 -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA -#BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +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 +#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA +#BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +#MIDI_ENABLE = yes # MIDI controls +#UNICODE_ENABLE = yes # Unicode +#BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/atomic/config.h b/keyboard/atomic/config.h index e28fa18c0..11c0e848e 100644 --- a/keyboard/atomic/config.h +++ b/keyboard/atomic/config.h @@ -32,109 +32,36 @@ along with this program. If not, see . #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ +// Planck PCB default pin-out +// Change this to how you wired your keyboard +// COLS: Left to right, ROWS: Top to bottom #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } #define ROWS (int []){ D0, D5, B5, B6, C6 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ +/* define if matrix has ghost */ //#define MATRIX_HAS_GHOST /* number of backlight levels */ +/* NOTE: this is the max value of 0..BACKLIGHT_LEVELS so really 16 levels. */ #define BACKLIGHT_LEVELS 3 +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ +/* key combination for command */ #define IS_COMMAND() ( \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER B -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z + /* * Feature disable options @@ -154,4 +81,6 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION +#define MAGIC_KEY_BOOTLOADER B + #endif diff --git a/keyboard/atomic/keymaps/default.c b/keyboard/atomic/keymaps/default.c index d62e5c244..4ed8a71f1 100644 --- a/keyboard/atomic/keymaps/default.c +++ b/keyboard/atomic/keymaps/default.c @@ -1,95 +1,234 @@ #include "atomic.h" +// Fillers to make layering more clear +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +// Layer shorthand #define _QW 0 #define _CM 1 #define _DV 2 #define _LW 3 #define _RS 4 +#define _FN 4 -// ROW 1 OPTIONS -// .--------------------------------------------------------------------------------------------------------------------------------------. -// | | | | | | | | | | | | | | | | -// '--------------------------------------------------------------------------------------------------------------------------------------' -// .- 2u ------------. -// | X | -// '-----------------' +/* ROW 1 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. + * | KEY . XXXXXX | + * '-----------------' + */ + +/* ROW 2 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. .- 2u ------------. + * | KEY . XXXXXX | | KEY . XXXXXX | + * '-----------------' '-----------------' + */ + +/* ROW 3 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. .- 2u ------------. + * | KEY . XXXXXX | | X | + * '-----------------' '-----------------' + * .- 2u ------------. + * | X | + * '-----------------' + */ + +/* ROW 4 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. + * | KEY . XXXXXX | + * '-----------------' + * .- 2u ------------. .- 2u ------------. + * | KEY . XXXXXX | | KEY . XXXXXX | + * '-----------------' '-----------------' + * .- 2u ------------. + * | KEY . XXXXXX | + * '-----------------' + */ -// ROW 2 OPTIONS -// .--------------------------------------------------------------------------------------------------------------------------------------. -// | | | | | | | | | | | | | | | | -// '--------------------------------------------------------------------------------------------------------------------------------------' -// .- 2u ------------. .- 2u ------------. -// | X | | X | -// '-----------------' '-----------------' +/* ROW 5 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 1.25u --+ 1.25u ------- 1.25u +--- 1.25u --- 2u -------------- 1.25u ---- 1.25u ------ 1.25u +---- 1.25u . + * | X | X | X | X | X | X | X | X | X | + * '-----------------------------------------------------------------------------------------------------------' + * .- 2u ------------. + * | X | + * '-----------------' + * .--------------------- 6.25u ----------------------------. + * | X | + * '--------------------------------------------------------' + * .----------------------- 6.25u ---------------------------- 1.25u ---- 1.25u ---- 1.25u ------ 1.25u +-- 1.25u --. + * | X | X | X | X | X | X | + * '----------------------------------------------------------------------------------------------------------------' + */ -// ROW 3 OPTIONS -// .--------------------------------------------------------------------------------------------------------------------------------------. -// | | | | | | | | | | | | | | | | -// '--------------------------------------------------------------------------------------------------------------------------------------' -// .- 2u ------------. .- 2u ------------. -// | X | | X | -// '-----------------' '-----------------' -// .- 2u ------------. -// | X | -// '-----------------' +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// ROW 4 OPTIONS -// .--------------------------------------------------------------------------------------------------------------------------------------. -// | | | | | | | | | | | | | | | | -// '--------------------------------------------------------------------------------------------------------------------------------------' -// .- 2u ------------. -// | X | -// '-----------------' -// .- 2u ------------. .- 2u ------------. -// | X | | X | -// '-----------------' '-----------------' -// .- 2u ------------. -// | X | -// '-----------------' +/* QWERTY - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_QW] = { /* QWERTY */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, + }, -// ROW 5 OPTIONS -// .--------------------------------------------------------------------------------------------------------------------------------------. -// | | | | | | | | | | | | | | | | -// '--------------------------------------------------------------------------------------------------------------------------------------' -// .- 1.25u --+ 1.25u ------- 1.25u +--- 1.25u --- 2u -------------- 1.25u ---- 1.25u ------ 1.25u +---- 1.25u . -// | X | X | X | X | X | X | X | X | X | -// '-----------------------------------------------------------------------------------------------------------' -// .- 2u ------------. -// | X | -// '-----------------' -// .--------------------- 6.25u ----------------------------. -// | X | -// '--------------------------------------------------------' -// .----------------------- 6.25u ---------------------------- 1.25u ---- 1.25u ---- 1.25u ------ 1.25u +-- 1.25u --. -// | X | X | X | X | X | X | -// '----------------------------------------------------------------------------------------------------------------' +/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_CM] = { /* COLEMAK */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* DVORAK - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | ' | , | . | P | Y | F | G | C | R | L | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | O | E | U | I | D | H | T | N | S | / | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* Qwerty */ - { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL }, - { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, - { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, KC_LEFT, KC_DOWN, KC_RGHT }, - } + [_DV] = { /* DVORAK */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* LOWERED + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | | | | | | | | | | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | | | | | | | | | | | | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | | | | | | | | | | | XXXXXX . | | | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_LW] = { /* LOWERED */ + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + +/* RAISED + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | | | | | | | | | | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | | | | | | | | | | | | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | | | | | | | | | | | XXXXXX . | | | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_RS] = { /* RAISED */ + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + +/* FUNCTION + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | | QWERTY | COLEMK | DVORAK | | | | | | | XXXXXX . | MOUS U | WHEEL- | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . MS BT1 | | | | | | MOUS L | MOUS D | MOUS R | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_FN] = { /* FUNCTION */ + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, + { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, + { _______, _______, DF(_QW), DF(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_T), END); - break; - } + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } return MACRO_NONE; }; diff --git a/keyboard/atomic/keymaps/pc_atomic.c b/keyboard/atomic/keymaps/pc_atomic.c index 2792ff6e7..1c0425a76 100644 --- a/keyboard/atomic/keymaps/pc_atomic.c +++ b/keyboard/atomic/keymaps/pc_atomic.c @@ -23,34 +23,33 @@ */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// [_QW] = { /* QWERTY */ - [0] = { /* QWERTY */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC }, + [_QW] = { /* QWERTY */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX }, { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, - { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, KC_PGUP }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), XXXXXXX, KC_SPC, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), KC_SPC, XXXXXXX, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, [_LW] = { /* LOWERED */ - { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, [_RS] = { /* RAISED */ - { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, [_FN] = { /* FUNCTION */ - { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, + { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, + { _______, _______, _______, DF(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, }; diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 988deee99..f1c7b5610 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -16,6 +16,10 @@ #define _LW 3 #define _RS 4 +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -85,9 +89,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RS] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Lower @@ -103,9 +107,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_LW] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} } }; -- cgit v1.2.3-70-g09d2 From 390fd3107a84277151ceb63255c859307221a290 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 18:48:25 -0500 Subject: local files local files --- keyboard/planck/config.h | 2 +- keyboard/planck/keymaps/pc.c | 40 +++++++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 8 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index d435cc795..7d64f0977 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -73,7 +73,7 @@ along with this program. If not, see . */ /* disable debug print */ -#define NO_DEBUG +//#define NO_DEBUG /* disable print */ //#define NO_PRINT diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c index 0adee8b2e..ed062609f 100644 --- a/keyboard/planck/keymaps/pc.c +++ b/keyboard/planck/keymaps/pc.c @@ -15,6 +15,14 @@ #define _DV 2 #define _LW 3 #define _RS 4 +#define _FN 5 + +#define XXXXXXX KC_NO +#define _______ KC_TRNS + +#define ASFT(kc) LSFT(RSFT(kc)) +#define MG_B ASFT(KC_B) +#define MG_H ASFT(KC_H) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -26,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | |Raise | Space |Lower | / | Left | Down |Right | + * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | * `-----------------------------------------------------------------------------------' */ [_QW] = { @@ -85,9 +93,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RS] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, + {_______, _______, _______, _______, MO(_FN), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Lower @@ -103,9 +111,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_LW] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, + {_______, _______, _______, _______, _______, _______, _______, MO(_FN), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} } }; -- cgit v1.2.3-70-g09d2 From 9ff9317720d4fcee6b35800f71d598f9a59de661 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 21:55:04 -0500 Subject: Corrected spacing. --- keyboard/planck/Makefile | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 17e5cd45c..ae637fc29 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -130,20 +130,22 @@ 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 +# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +# MIDI_ENABLE = yes # MIDI controls +# AUDIO_ENABLE = yes # Audio output on port C6 +# UNICODE_ENABLE = yes # Unicode +# BLUETOOTH_ENABLE = ye # Enable Bluetooth with the Adafruit EZ-Key HID +# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -# AUDIO_ENABLE = YES # Audio output on port C6 -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend + ifdef BACKLIGHT_ENABLE SRC += backlight.c -- cgit v1.2.3-70-g09d2 From 95a44cdf01a98180363e8039d769fa7be92b0194 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 22:00:36 -0500 Subject: Disabled print. --- keyboard/planck/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index 7d64f0977..d3719e0cb 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -73,10 +73,10 @@ along with this program. If not, see . */ /* disable debug print */ -//#define NO_DEBUG +#define NO_DEBUG /* disable print */ -//#define NO_PRINT +#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER -- cgit v1.2.3-70-g09d2 From 44e4320b2ea508d75f28cb6796f6cf414164564b Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 06:34:56 -0500 Subject: Nightly --- keyboard/planck/keymaps/pc.c | 71 +++++++++++++++++++++++++++++++++----------- 1 file changed, 53 insertions(+), 18 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c index ed062609f..20bb5d86d 100644 --- a/keyboard/planck/keymaps/pc.c +++ b/keyboard/planck/keymaps/pc.c @@ -2,6 +2,8 @@ // this is the style you want to emulate. #include "planck.h" +#include "print.h" +#include "action_layer.h" #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif @@ -38,10 +40,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_QW] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {RESET, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, - {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, M(_LW), KC_SPC, KC_SPC, M(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} }, /* Colemak @@ -95,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, - {_______, _______, _______, _______, MO(_FN), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Lower @@ -113,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, - {_______, _______, _______, _______, _______, _______, _______, MO(_FN), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Function @@ -139,20 +141,53 @@ const uint16_t PROGMEM fn_actions[] = { }; + +int tri_layer = 0; +void update_tri_layer(int layer) { + if (tri_layer > 1) { + layer_on(layer); + } else { + layer_off(layer); + } +} + + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; + // MACRODOWN only works in this function + switch(id) + { + case _RS: + if (record->event.pressed) { + print("RS_DN"); + layer_on(_RS); + tri_layer++; + update_tri_layer(_FN); + } else { + print("RS_UP"); + layer_off(_RS); + tri_layer--; + update_tri_layer(_FN); + phex(layer_state); + } + break; + + case _LW: + if (record->event.pressed) { + print("LW_DN"); + layer_on(_LW); + tri_layer++; + update_tri_layer(_FN); + } else { + print("LW_UP"); + layer_off(_LW); + tri_layer--; + update_tri_layer(_FN); + } + break; + + default: + break; + } + return MACRO_NONE; }; -- cgit v1.2.3-70-g09d2 From 3d601c1bce23cf31052b9a61818fd1343970499b Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 08:56:27 -0500 Subject: Rename pc.c to pvc_planck.c --- keyboard/planck/keymaps/pc.c | 193 ----------------------------------- keyboard/planck/keymaps/pvc_planck.c | 193 +++++++++++++++++++++++++++++++++++ 2 files changed, 193 insertions(+), 193 deletions(-) delete mode 100644 keyboard/planck/keymaps/pc.c create mode 100644 keyboard/planck/keymaps/pvc_planck.c (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c deleted file mode 100644 index 20bb5d86d..000000000 --- a/keyboard/planck/keymaps/pc.c +++ /dev/null @@ -1,193 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#include "print.h" -#include "action_layer.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _DV 2 -#define _LW 3 -#define _RS 4 -#define _FN 5 - -#define XXXXXXX KC_NO -#define _______ KC_TRNS - -#define ASFT(kc) LSFT(RSFT(kc)) -#define MG_B ASFT(KC_B) -#define MG_H ASFT(KC_H) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QW] = { - {RESET, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, - {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, M(_LW), KC_SPC, KC_SPC, M(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} -}, - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_CM] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DV] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RS] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LW] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Function - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_FN] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - - -int tri_layer = 0; -void update_tri_layer(int layer) { - if (tri_layer > 1) { - layer_on(layer); - } else { - layer_off(layer); - } -} - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) - { - case _RS: - if (record->event.pressed) { - print("RS_DN"); - layer_on(_RS); - tri_layer++; - update_tri_layer(_FN); - } else { - print("RS_UP"); - layer_off(_RS); - tri_layer--; - update_tri_layer(_FN); - phex(layer_state); - } - break; - - case _LW: - if (record->event.pressed) { - print("LW_DN"); - layer_on(_LW); - tri_layer++; - update_tri_layer(_FN); - } else { - print("LW_UP"); - layer_off(_LW); - tri_layer--; - update_tri_layer(_FN); - } - break; - - default: - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/pvc_planck.c b/keyboard/planck/keymaps/pvc_planck.c new file mode 100644 index 000000000..20bb5d86d --- /dev/null +++ b/keyboard/planck/keymaps/pvc_planck.c @@ -0,0 +1,193 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "print.h" +#include "action_layer.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _FN 5 + +#define XXXXXXX KC_NO +#define _______ KC_TRNS + +#define ASFT(kc) LSFT(RSFT(kc)) +#define MG_B ASFT(KC_B) +#define MG_H ASFT(KC_H) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {RESET, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, M(_LW), KC_SPC, KC_SPC, M(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + + +int tri_layer = 0; +void update_tri_layer(int layer) { + if (tri_layer > 1) { + layer_on(layer); + } else { + layer_off(layer); + } +} + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) + { + case _RS: + if (record->event.pressed) { + print("RS_DN"); + layer_on(_RS); + tri_layer++; + update_tri_layer(_FN); + } else { + print("RS_UP"); + layer_off(_RS); + tri_layer--; + update_tri_layer(_FN); + phex(layer_state); + } + break; + + case _LW: + if (record->event.pressed) { + print("LW_DN"); + layer_on(_LW); + tri_layer++; + update_tri_layer(_FN); + } else { + print("LW_UP"); + layer_off(_LW); + tri_layer--; + update_tri_layer(_FN); + } + break; + + default: + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3-70-g09d2 From 3dd20f2b6c16ea56bacc5e1581db3fbc1cfc5444 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 11:35:49 -0500 Subject: Rename pc.c to pvc_planck.c --- keyboard/planck/keymaps/pc.c | 158 ----------------------------------- keyboard/planck/keymaps/pvc_planck.c | 158 +++++++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+), 158 deletions(-) delete mode 100644 keyboard/planck/keymaps/pc.c create mode 100644 keyboard/planck/keymaps/pvc_planck.c (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c deleted file mode 100644 index ed062609f..000000000 --- a/keyboard/planck/keymaps/pc.c +++ /dev/null @@ -1,158 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _DV 2 -#define _LW 3 -#define _RS 4 -#define _FN 5 - -#define XXXXXXX KC_NO -#define _______ KC_TRNS - -#define ASFT(kc) LSFT(RSFT(kc)) -#define MG_B ASFT(KC_B) -#define MG_H ASFT(KC_H) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QW] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, - {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} -}, - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_CM] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DV] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RS] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, - {_______, _______, _______, _______, MO(_FN), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LW] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, - {_______, _______, _______, _______, _______, _______, _______, MO(_FN), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Function - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_FN] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/pvc_planck.c b/keyboard/planck/keymaps/pvc_planck.c new file mode 100644 index 000000000..ed062609f --- /dev/null +++ b/keyboard/planck/keymaps/pvc_planck.c @@ -0,0 +1,158 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _FN 5 + +#define XXXXXXX KC_NO +#define _______ KC_TRNS + +#define ASFT(kc) LSFT(RSFT(kc)) +#define MG_B ASFT(KC_B) +#define MG_H ASFT(KC_H) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, + {_______, _______, _______, _______, MO(_FN), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, + {_______, _______, _______, _______, _______, _______, _______, MO(_FN), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3-70-g09d2 From cf17687f29820b6bf9b8feb3b23dec6e271572c5 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 12:59:16 -0500 Subject: Adding personal build file settings --- keyboard/atomic/Makefile | 4 ++-- keyboard/planck/Makefile | 4 ++-- keyboard/planck/config.h | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 20cf4fff1..f95b2350c 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -119,8 +119,8 @@ 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 -#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA +#BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality #MIDI_ENABLE = yes # MIDI controls #UNICODE_ENABLE = yes # Unicode #BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index ae637fc29..5271c2795 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -135,8 +135,8 @@ 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 -# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # MIDI_ENABLE = yes # MIDI controls # AUDIO_ENABLE = yes # Audio output on port C6 # UNICODE_ENABLE = yes # Unicode diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index d3719e0cb..7d64f0977 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -73,10 +73,10 @@ along with this program. If not, see . */ /* disable debug print */ -#define NO_DEBUG +//#define NO_DEBUG /* disable print */ -#define NO_PRINT +//#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER -- cgit v1.2.3-70-g09d2 From ddbe4307789b6087c3e6f146a5e02f1084f3cecc Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 14 Apr 2016 19:13:24 -0400 Subject: new defaults --- keyboard/planck/Makefile | 2 +- keyboard/planck/keymaps/default/keymap.c | 146 ++++++++++++++++++++++++++++--- 2 files changed, 133 insertions(+), 15 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index ae637fc29..ee1c60fed 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -138,7 +138,7 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # MIDI_ENABLE = yes # MIDI controls -# AUDIO_ENABLE = yes # Audio output on port C6 +AUDIO_ENABLE = yes # Audio output on port C6 # UNICODE_ENABLE = yes # Unicode # BLUETOOTH_ENABLE = ye # Enable Bluetooth with the Adafruit EZ-Key HID # RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 30ad87760..e06567339 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -5,6 +5,10 @@ #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -15,6 +19,15 @@ #define _DV 2 #define _LW 3 #define _RS 4 +#define _AD 5 + +// Macro name shortcuts +#define M_QW 0 +#define M_CM 1 +#define M_DV 2 +#define M_LW 3 +#define M_RS 4 +#define M_BL 5 // Fillers to make layering more clear #define _______ KC_TRNS @@ -37,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -55,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -73,24 +86,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Raise * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play | + * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_RS] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, _______}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -98,18 +111,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play | + * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_LW] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, _______}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_AD] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, _______, _______, _______, _______, M(M_QW), M(M_CM), M(M_DV), _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } }; @@ -117,11 +148,85 @@ const uint16_t PROGMEM fn_actions[] = { }; +float tone_qw[][2] = { + {440.0*pow(2.0,(67)/12.0), 400}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 400}, + {440.0*pow(2.0,(67)/12.0), 1600} +}; + +float tone_cm[][2] = { + {440.0*pow(2.0,(67)/12.0), 400}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 400}, + {440.0*pow(2.0,(67)/12.0), 1000}, + {0, 200}, + {440.0*pow(2.0,(67)/12.0), 1000} +}; + +float tone_dv[][2] = { + {440.0*pow(2.0,(67)/12.0), 400}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 400}, + {440.0*pow(2.0,(67)/12.0), 800}, + {0, 200}, + {440.0*pow(2.0,(67)/12.0), 800}, + {0, 200}, + {440.0*pow(2.0,(67)/12.0), 800} +}; + + +#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) +#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) + +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + layer_on(layer3); + } else { + layer_off(layer3); + } +} const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { - case 0: + case M_QW: + if (record->event.pressed) { + play_notes(&tone_qw, 4, false); + default_layer_set(1UL<<_QW); + } + break; + case M_CM: + if (record->event.pressed) { + play_notes(&tone_cm, 6, false); + default_layer_set(1UL<<_CM); + } + break; + case M_DV: + if (record->event.pressed) { + play_notes(&tone_dv, 8, false); + default_layer_set(1UL<<_DV); + } + break; + case M_LW: + if (record->event.pressed) { + layer_on(_LW); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_LW); + update_tri_layer(_LW, _RS, _AD); + } + break; + case M_RS: + if (record->event.pressed) { + layer_on(_RS); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_RS); + update_tri_layer(_LW, _RS, _AD); + } + break; + case M_BL: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -134,3 +239,16 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } return MACRO_NONE; }; + +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 650}, + {440.0*pow(2.0,(64)/12.0), 450}, + {440.0*pow(2.0,(55)/12.0), 450}, + {440.0*pow(2.0,(60)/12.0), 450}, + {440.0*pow(2.0,(64)/12.0), 1000} +}; + +void matrix_init_user(void) { + init_notes(); + play_notes(&start_up, 5, false); +} -- cgit v1.2.3-70-g09d2 From 63462bf8c12cea1c13ca1bd1f105fe53f556806e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 14 Apr 2016 20:42:14 -0400 Subject: changing up the makefile a bit --- keyboard/planck/Makefile | 56 +++++++++++++++++------------ keyboard/planck/keymaps/default/keymap.c | 49 +++++++++++++++---------- keyboard/planck/keymaps/default/makefile.mk | 1 + quantum/quantum.mk | 8 ++--- tmk_core/common.mk | 26 +++++++------- tmk_core/protocol/lufa.mk | 4 +-- 6 files changed, 84 insertions(+), 60 deletions(-) create mode 100644 keyboard/planck/keymaps/default/makefile.mk (limited to 'keyboard/planck') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index ee1c60fed..dc6e46df2 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -38,6 +38,27 @@ # To rebuild project do "make clean" then "make all". #---------------------------------------------------------------------------- +# Build Options +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically +# +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 +NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: + # https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + # Target file name (without extension). TARGET = planck @@ -62,17 +83,28 @@ ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") else ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","") KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif else $(error Keymap file does not exist) +endif endif -endif + else + ifneq ("$(wildcard keymaps/default.c)","") KEYMAP_FILE = keymaps/default.c else KEYMAP_FILE = keymaps/default/keymap.c endif + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk endif + +endif + SRC := $(KEYMAP_FILE) $(SRC) CONFIG_H = config.h @@ -127,27 +159,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT 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 -# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = yes # MIDI controls -AUDIO_ENABLE = yes # Audio output on port C6 -# UNICODE_ENABLE = yes # Unicode -# BLUETOOTH_ENABLE = ye # Enable Bluetooth with the Adafruit EZ-Key HID -# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend - - -ifdef BACKLIGHT_ENABLE +ifeq ($(BACKLIGHT_ENABLE), yes) SRC += backlight.c endif diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index e06567339..97ba5d285 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -89,38 +89,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -/* Raise +/* Lower * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RS] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -/* Lower +/* Raise * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LW] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, +[_RS] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -148,17 +148,18 @@ const uint16_t PROGMEM fn_actions[] = { }; +#ifdef AUDIO_ENABLE float tone_qw[][2] = { {440.0*pow(2.0,(67)/12.0), 400}, {440.0*pow(2.0,(60)/12.0), 400}, - {0, 400}, + {0, 800}, {440.0*pow(2.0,(67)/12.0), 1600} }; float tone_cm[][2] = { {440.0*pow(2.0,(67)/12.0), 400}, {440.0*pow(2.0,(60)/12.0), 400}, - {0, 400}, + {0, 800}, {440.0*pow(2.0,(67)/12.0), 1000}, {0, 200}, {440.0*pow(2.0,(67)/12.0), 1000} @@ -167,14 +168,14 @@ float tone_cm[][2] = { float tone_dv[][2] = { {440.0*pow(2.0,(67)/12.0), 400}, {440.0*pow(2.0,(60)/12.0), 400}, - {0, 400}, + {0, 800}, {440.0*pow(2.0,(67)/12.0), 800}, {0, 200}, {440.0*pow(2.0,(67)/12.0), 800}, {0, 200}, {440.0*pow(2.0,(67)/12.0), 800} }; - +#endif #define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) #define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) @@ -192,19 +193,25 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) switch(id) { case M_QW: if (record->event.pressed) { - play_notes(&tone_qw, 4, false); + #ifdef AUDIO_ENABLE + play_notes(&tone_qw, 4, false); + #endif default_layer_set(1UL<<_QW); } break; case M_CM: if (record->event.pressed) { - play_notes(&tone_cm, 6, false); + #ifdef AUDIO_ENABLE + play_notes(&tone_cm, 6, false); + #endif default_layer_set(1UL<<_CM); } break; case M_DV: if (record->event.pressed) { - play_notes(&tone_dv, 8, false); + #ifdef AUDIO_ENABLE + play_notes(&tone_dv, 8, false); + #endif default_layer_set(1UL<<_DV); } break; @@ -240,6 +247,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; +#ifdef AUDIO_ENABLE float start_up[][2] = { {440.0*pow(2.0,(67)/12.0), 650}, {440.0*pow(2.0,(64)/12.0), 450}, @@ -247,8 +255,11 @@ float start_up[][2] = { {440.0*pow(2.0,(60)/12.0), 450}, {440.0*pow(2.0,(64)/12.0), 1000} }; +#endif void matrix_init_user(void) { + #ifdef AUDIO_ENABLE init_notes(); play_notes(&start_up, 5, false); + #endif } diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk new file mode 100644 index 000000000..628167ff6 --- /dev/null +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes \ No newline at end of file diff --git a/quantum/quantum.mk b/quantum/quantum.mk index de93af7e8..3069f582c 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -23,19 +23,19 @@ ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c endif -ifdef MIDI_ENABLE +ifeq ($(MIDI_ENABLE), yes) SRC += $(QUANTUM_DIR)/keymap_midi.c endif -ifdef AUDIO_ENABLE +ifeq ($(AUDIO_ENABLE), yes) SRC += $(QUANTUM_DIR)/audio.c endif -ifdef UNICODE_ENABLE +ifeq ($(UNICODE_ENABLE), yes) SRC += $(QUANTUM_DIR)/keymap_unicode.c endif -ifdef RGBLIGHT_ENABLE +ifeq ($(RGBLIGHT_ENABLE), yes) SRC += $(QUANTUM_DIR)/light_ws2812.c SRC += $(QUANTUM_DIR)/rgblight.c OPT_DEFS += -DRGBLIGHT_ENABLE diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 89c366f55..8d028d52a 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -17,66 +17,66 @@ SRC += $(COMMON_DIR)/host.c \ # Option modules -ifdef BOOTMAGIC_ENABLE +ifeq ($(BOOTMAGIC_ENABLE), yes) SRC += $(COMMON_DIR)/bootmagic.c SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBOOTMAGIC_ENABLE endif -ifdef MOUSEKEY_ENABLE +ifeq ($(MOUSEKEY_ENABLE), yes) SRC += $(COMMON_DIR)/mousekey.c OPT_DEFS += -DMOUSEKEY_ENABLE OPT_DEFS += -DMOUSE_ENABLE endif -ifdef EXTRAKEY_ENABLE +ifeq ($(EXTRAKEY_ENABLE), yes) OPT_DEFS += -DEXTRAKEY_ENABLE endif -ifdef CONSOLE_ENABLE +ifeq ($(CONSOLE_ENABLE), yes) OPT_DEFS += -DCONSOLE_ENABLE else OPT_DEFS += -DNO_PRINT OPT_DEFS += -DNO_DEBUG endif -ifdef COMMAND_ENABLE +ifeq ($(COMMAND_ENABLE), yes) SRC += $(COMMON_DIR)/command.c OPT_DEFS += -DCOMMAND_ENABLE endif -ifdef NKRO_ENABLE +ifeq ($(NKRO_ENABLE), yes) OPT_DEFS += -DNKRO_ENABLE endif -ifdef MIDI_ENABLE +ifeq ($(MIDI_ENABLE), yes) OPT_DEFS += -DMIDI_ENABLE endif -ifdef AUDIO_ENABLE +ifeq ($(AUDIO_ENABLE), yes) OPT_DEFS += -DAUDIO_ENABLE endif -ifdef USB_6KRO_ENABLE +ifeq ($(USB_6KRO_ENABLE), yes) OPT_DEFS += -DUSB_6KRO_ENABLE endif -ifdef SLEEP_LED_ENABLE +ifeq ($(SLEEP_LED_ENABLE), yes) SRC += $(COMMON_DIR)/sleep_led.c OPT_DEFS += -DSLEEP_LED_ENABLE OPT_DEFS += -DNO_SUSPEND_POWER_DOWN endif -ifdef BACKLIGHT_ENABLE +ifeq ($(BACKLIGHT_ENABLE), yes) SRC += $(COMMON_DIR)/backlight.c OPT_DEFS += -DBACKLIGHT_ENABLE endif -ifdef BLUETOOTH_ENABLE +ifeq ($(BLUETOOTH_ENABLE), yes) OPT_DEFS += -DBLUETOOTH_ENABLE endif -ifdef KEYMAP_SECTION_ENABLE +ifeq ($(KEYMAP_SECTION_ENABLE), yes) OPT_DEFS += -DKEYMAP_SECTION_ENABLE ifeq ($(strip $(MCU)),atmega32u2) diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index 4905760bb..f3209c227 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -17,7 +17,7 @@ LUFA_SRC = $(LUFA_DIR)/lufa.c \ $(LUFA_DIR)/descriptor.c \ $(LUFA_SRC_USB) -ifdef MIDI_ENABLE +ifeq ($(MIDI_ENABLE), yes) LUFA_SRC += $(LUFA_DIR)/midi/midi.c \ $(LUFA_DIR)/midi/midi_device.c \ $(LUFA_DIR)/midi/bytequeue/bytequeue.c \ @@ -25,7 +25,7 @@ ifdef MIDI_ENABLE $(LUFA_SRC_USBCLASS) endif -ifdef BLUETOOTH_ENABLE +ifeq ($(BLUETOOTH_ENABLE), yes) LUFA_SRC += $(LUFA_DIR)/bluetooth.c \ $(TMK_DIR)/protocol/serial_uart.c endif -- cgit v1.2.3-70-g09d2 From 2597fb7c508cf36704291cd48b2c752dd21f2b0d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 14 Apr 2016 23:33:46 -0400 Subject: might have broken something --- keyboard/planck/config.h | 4 ++-- keyboard/planck/keymaps/default/makefile.mk | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index d3719e0cb..7d64f0977 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -73,10 +73,10 @@ along with this program. If not, see . */ /* disable debug print */ -#define NO_DEBUG +//#define NO_DEBUG /* disable print */ -#define NO_PRINT +//#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk index 628167ff6..e1c5bd2e8 100644 --- a/keyboard/planck/keymaps/default/makefile.mk +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -1 +1,2 @@ -AUDIO_ENABLE = yes \ No newline at end of file +AUDIO_ENABLE = yes +BACKLIGHT_ENABLE = yes \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 43a4ffc25971b2aea94b65ca1db66371e653ec5f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 14 Apr 2016 23:53:35 -0400 Subject: bootmagic somehow not getting enabled, so adding eeconfig to backlight src include cond --- keyboard/planck/Makefile | 11 ++++------- keyboard/planck/keymaps/default/keymap.c | 3 --- tmk_core/common.mk | 1 + 3 files changed, 5 insertions(+), 10 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index dc6e46df2..693e9c8aa 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -107,6 +107,10 @@ endif SRC := $(KEYMAP_FILE) $(SRC) +ifeq ($(BACKLIGHT_ENABLE), yes) + SRC := backlight.c $(SRC) +endif + CONFIG_H = config.h # MCU name @@ -126,7 +130,6 @@ MCU = atmega32u4 # software delays. F_CPU = 16000000 - # # LUFA specific # @@ -158,12 +161,6 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 - -ifeq ($(BACKLIGHT_ENABLE), yes) - SRC += backlight.c -endif - - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 97ba5d285..151a6b4f4 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -2,9 +2,6 @@ // this is the style you want to emulate. #include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif #include "action_layer.h" #ifdef AUDIO_ENABLE #include "audio.h" diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 8d028d52a..030767cc3 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -69,6 +69,7 @@ endif ifeq ($(BACKLIGHT_ENABLE), yes) SRC += $(COMMON_DIR)/backlight.c + SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBACKLIGHT_ENABLE endif -- cgit v1.2.3-70-g09d2 From bb0836c62016f482f517771a9f5a8dbc68bd0a1c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 15 Apr 2016 00:26:22 -0400 Subject: the spacessss --- keyboard/planck/Makefile | 66 +++++++++++++++++------------ keyboard/planck/keymaps/default/makefile.mk | 3 +- quantum/quantum.mk | 8 ++-- tmk_core/common.mk | 26 ++++++------ tmk_core/protocol/lufa.mk | 4 +- 5 files changed, 60 insertions(+), 47 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 693e9c8aa..8d4e7787a 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -38,31 +38,9 @@ # To rebuild project do "make clean" then "make all". #---------------------------------------------------------------------------- -# Build Options -# change to "no" to disable the options, or define them in the makefile.mk in -# the appropriate keymap folder that will get included automatically -# -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 -NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: - # https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - # Target file name (without extension). TARGET = planck - # Directory common source filess exist TOP_DIR = ../.. TMK_DIR = ../../tmk_core @@ -107,10 +85,6 @@ endif SRC := $(KEYMAP_FILE) $(SRC) -ifeq ($(BACKLIGHT_ENABLE), yes) - SRC := backlight.c $(SRC) -endif - CONFIG_H = config.h # MCU name @@ -161,6 +135,46 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 +# Build Options +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically +# +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 +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) + SRC := backlight.c $(SRC) +endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk index e1c5bd2e8..8cbec4a1f 100644 --- a/keyboard/planck/keymaps/default/makefile.mk +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -1,2 +1 @@ -AUDIO_ENABLE = yes -BACKLIGHT_ENABLE = yes \ No newline at end of file +AUDIO_ENABLE = yes \ No newline at end of file diff --git a/quantum/quantum.mk b/quantum/quantum.mk index 3069f582c..17bb50171 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -23,19 +23,19 @@ ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c endif -ifeq ($(MIDI_ENABLE), yes) +ifeq ($(strip $(MIDI_ENABLE)), yes) SRC += $(QUANTUM_DIR)/keymap_midi.c endif -ifeq ($(AUDIO_ENABLE), yes) +ifeq ($(strip $(AUDIO_ENABLE)), yes) SRC += $(QUANTUM_DIR)/audio.c endif -ifeq ($(UNICODE_ENABLE), yes) +ifeq ($(strip $(UNICODE_ENABLE)), yes) SRC += $(QUANTUM_DIR)/keymap_unicode.c endif -ifeq ($(RGBLIGHT_ENABLE), yes) +ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) SRC += $(QUANTUM_DIR)/light_ws2812.c SRC += $(QUANTUM_DIR)/rgblight.c OPT_DEFS += -DRGBLIGHT_ENABLE diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 030767cc3..f8006c670 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -17,67 +17,67 @@ SRC += $(COMMON_DIR)/host.c \ # Option modules -ifeq ($(BOOTMAGIC_ENABLE), yes) +ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) SRC += $(COMMON_DIR)/bootmagic.c SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBOOTMAGIC_ENABLE endif -ifeq ($(MOUSEKEY_ENABLE), yes) +ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) SRC += $(COMMON_DIR)/mousekey.c OPT_DEFS += -DMOUSEKEY_ENABLE OPT_DEFS += -DMOUSE_ENABLE endif -ifeq ($(EXTRAKEY_ENABLE), yes) +ifeq ($(strip $(EXTRAKEY_ENABLE)), yes) OPT_DEFS += -DEXTRAKEY_ENABLE endif -ifeq ($(CONSOLE_ENABLE), yes) +ifeq ($(strip $(CONSOLE_ENABLE)), yes) OPT_DEFS += -DCONSOLE_ENABLE else OPT_DEFS += -DNO_PRINT OPT_DEFS += -DNO_DEBUG endif -ifeq ($(COMMAND_ENABLE), yes) +ifeq ($(strip $(COMMAND_ENABLE)), yes) SRC += $(COMMON_DIR)/command.c OPT_DEFS += -DCOMMAND_ENABLE endif -ifeq ($(NKRO_ENABLE), yes) +ifeq ($(strip $(NKRO_ENABLE)), yes) OPT_DEFS += -DNKRO_ENABLE endif -ifeq ($(MIDI_ENABLE), yes) +ifeq ($(strip $(MIDI_ENABLE)), yes) OPT_DEFS += -DMIDI_ENABLE endif -ifeq ($(AUDIO_ENABLE), yes) +ifeq ($(strip $(AUDIO_ENABLE)), yes) OPT_DEFS += -DAUDIO_ENABLE endif -ifeq ($(USB_6KRO_ENABLE), yes) +ifeq ($(strip $(USB_6KRO_ENABLE)), yes) OPT_DEFS += -DUSB_6KRO_ENABLE endif -ifeq ($(SLEEP_LED_ENABLE), yes) +ifeq ($(strip $(SLEEP_LED_ENABLE)), yes) SRC += $(COMMON_DIR)/sleep_led.c OPT_DEFS += -DSLEEP_LED_ENABLE OPT_DEFS += -DNO_SUSPEND_POWER_DOWN endif -ifeq ($(BACKLIGHT_ENABLE), yes) +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) SRC += $(COMMON_DIR)/backlight.c SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBACKLIGHT_ENABLE endif -ifeq ($(BLUETOOTH_ENABLE), yes) +ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) OPT_DEFS += -DBLUETOOTH_ENABLE endif -ifeq ($(KEYMAP_SECTION_ENABLE), yes) +ifeq ($(strip $(KEYMAP_SECTION_ENABLE)), yes) OPT_DEFS += -DKEYMAP_SECTION_ENABLE ifeq ($(strip $(MCU)),atmega32u2) diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index f3209c227..9ac6298f1 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -17,7 +17,7 @@ LUFA_SRC = $(LUFA_DIR)/lufa.c \ $(LUFA_DIR)/descriptor.c \ $(LUFA_SRC_USB) -ifeq ($(MIDI_ENABLE), yes) +ifeq ($(strip $(MIDI_ENABLE)), yes) LUFA_SRC += $(LUFA_DIR)/midi/midi.c \ $(LUFA_DIR)/midi/midi_device.c \ $(LUFA_DIR)/midi/bytequeue/bytequeue.c \ @@ -25,7 +25,7 @@ ifeq ($(MIDI_ENABLE), yes) $(LUFA_SRC_USBCLASS) endif -ifeq ($(BLUETOOTH_ENABLE), yes) +ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) LUFA_SRC += $(LUFA_DIR)/bluetooth.c \ $(TMK_DIR)/protocol/serial_uart.c endif -- cgit v1.2.3-70-g09d2 From ee2ee7f4f049dda385a9db7dddd8e7e91681315b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 15 Apr 2016 13:44:07 -0400 Subject: audio note length fixes --- keyboard/planck/keymaps/default/keymap.c | 46 ++++++++++++++++---------------- quantum/audio.c | 7 ++++- quantum/keymap_common.c | 10 +++---- 3 files changed, 33 insertions(+), 30 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 151a6b4f4..dee2840f2 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -147,30 +147,30 @@ const uint16_t PROGMEM fn_actions[] = { #ifdef AUDIO_ENABLE float tone_qw[][2] = { - {440.0*pow(2.0,(67)/12.0), 400}, - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 800}, - {440.0*pow(2.0,(67)/12.0), 1600} + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} }; float tone_cm[][2] = { - {440.0*pow(2.0,(67)/12.0), 400}, - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 800}, - {440.0*pow(2.0,(67)/12.0), 1000}, - {0, 200}, - {440.0*pow(2.0,(67)/12.0), 1000} + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(71)/12.0), 16} }; float tone_dv[][2] = { - {440.0*pow(2.0,(67)/12.0), 400}, - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 800}, - {440.0*pow(2.0,(67)/12.0), 800}, - {0, 200}, - {440.0*pow(2.0,(67)/12.0), 800}, - {0, 200}, - {440.0*pow(2.0,(67)/12.0), 800} + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(69)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} }; #endif @@ -246,11 +246,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 650}, - {440.0*pow(2.0,(64)/12.0), 450}, - {440.0*pow(2.0,(55)/12.0), 450}, - {440.0*pow(2.0,(60)/12.0), 450}, - {440.0*pow(2.0,(64)/12.0), 1000} + {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 20} }; #endif diff --git a/quantum/audio.c b/quantum/audio.c index f29d941d7..50e5505fe 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -255,7 +255,12 @@ ISR(TIMER3_COMPA_vect) { note_position++; - if (note_position >= note_length) { + bool end_of_note = false; + if (ICR3 > 0) + end_of_note = (note_position >= (note_length / ICR3 * 0xFFFF)); + else + end_of_note = (note_position >= (note_length * 0x7FF)); + if (end_of_note) { current_note++; if (current_note >= notes_length) { if (notes_repeat) { diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index ae6cddb34..e3030a886 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -33,11 +33,9 @@ along with this program. If not, see . #include "audio.h" float goodbye[][2] = { - {440.0*pow(2.0,(67)/12.0), 400}, - {0, 50}, - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 50}, - {440.0*pow(2.0,(55)/12.0), 600}, + {440.0*pow(2.0,(67)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 12}, }; #endif @@ -90,7 +88,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) action_t action; clear_keyboard(); #ifdef AUDIO_ENABLE - play_notes(&goodbye, 5, false); + play_notes(&goodbye, 3, false); #endif _delay_ms(250); #ifdef ATREUS_ASTAR -- cgit v1.2.3-70-g09d2 From 8f85117aa9e060371177e3b523bc89dc7aad19e8 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Fri, 15 Apr 2016 14:42:50 -0500 Subject: Added Audio to my Atomic --- keyboard/atomic/Makefile | 67 ++++++---- keyboard/atomic/keymaps/pvc/config.h | 157 ++++++++++++++++++++++ keyboard/atomic/keymaps/pvc/keymap.c | 202 ++++++++++++++++++++++++++++ keyboard/atomic/keymaps/pvc/makefile.mk | 6 +- keyboard/atomic/keymaps/pvc/pvc_atomic.c | 221 ------------------------------- keyboard/planck/Makefile | 31 +---- quantum/audio.h | 4 +- 7 files changed, 405 insertions(+), 283 deletions(-) create mode 100644 keyboard/atomic/keymaps/pvc/config.h create mode 100644 keyboard/atomic/keymaps/pvc/keymap.c delete mode 100644 keyboard/atomic/keymaps/pvc/pvc_atomic.c (limited to 'keyboard/planck') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 364efa3fa..1203cf6a3 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -38,31 +38,9 @@ # To rebuild project do "make clean" then "make all". #---------------------------------------------------------------------------- -# Build Options -# change to "no" to disable the options, or define them in the makefile.mk in -# the appropriate keymap folder that will get included automatically -# -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 -NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: - # https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - # Target file name (without extension). TARGET = atomic - # Directory common source filess exist TOP_DIR = ../.. TMK_DIR = ../../tmk_core @@ -73,6 +51,8 @@ TARGET_DIR = . # # project specific files SRC = atomic.c +CONFIG_H = config.h + ifdef keymap KEYMAP = $(keymap) endif @@ -88,7 +68,7 @@ ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") endif else $(error Keymap file does not exist) -endif +endif endif else @@ -107,8 +87,6 @@ endif SRC := $(KEYMAP_FILE) $(SRC) -CONFIG_H = config.h - # MCU name #MCU = at90usb1287 MCU = atmega32u4 @@ -126,7 +104,6 @@ MCU = atmega32u4 # software delays. F_CPU = 16000000 - # # LUFA specific # @@ -158,11 +135,45 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 +# Build Options +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically +# +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 +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif -ifeq ($(BACKLIGHT_ENABLE), yes) - SRC += backlight.c endif +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) + SRC := backlight.c $(SRC) +endif # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/atomic/keymaps/pvc/config.h b/keyboard/atomic/keymaps/pvc/config.h new file mode 100644 index 000000000..8449fa06d --- /dev/null +++ b/keyboard/atomic/keymaps/pvc/config.h @@ -0,0 +1,157 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Atomic Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } +#define ROWS (int []){ D0, D5, B5, B6, B3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c new file mode 100644 index 000000000..627f57ff7 --- /dev/null +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -0,0 +1,202 @@ +#include "atomic.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 + +#define M_QW 0 +#define M_LW 1 +#define M_RS 2 +#define M_FN 3 + + +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +/* + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* QWERTY */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX }, + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, M(M_FN), KC_LALT, M(M_RS), KC_SPC, XXXXXXX, M(M_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [_LW] = { /* LOWERED */ + { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_RS] = { /* RAISED */ + { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_FN] = { /* FUNCTION */ + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, + { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, +}; + +#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) +#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) + + +#ifdef AUDIO_ENABLE +float tone_lw[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} +}; + +float tone_rs[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(71)/12.0), 16} +}; + +float tone_fn[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(69)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} +}; +#endif + + +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) +{ + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + #ifdef AUDIO_ENABLE + println("PlayNotes FN"); + play_notes(&tone_fn, 8, false); + #endif + layer_on(layer3); + } + else + { + layer_off(layer3); + } +} + +void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) +{ + if (order) + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer3); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } + else + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer4); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } +} + + +const uint16_t PROGMEM fn_actions[] = { +}; + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case M_LW: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + println("PlayNotes LW"); + play_notes(&tone_lw, 4, false); + #endif + layer_on(_LW); + update_tri_layer(_LW, _RS, _FN); + } else { + layer_off(_LW); + update_tri_layer(_LW, _RS, _FN); + } + break; + case M_RS: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + println("PlayNotes RS"); + play_notes(&tone_rs, 6, false); + #endif + layer_on(_RS); + update_tri_layer(_LW, _RS, _FN); + } else { + layer_off(_RS); + update_tri_layer(_LW, _RS, _FN); + } + break; + default: + break; + } + return MACRO_NONE; +}; + +#ifdef AUDIO_ENABLE +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 20} +}; +#endif + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + init_notes(); + play_notes(&start_up, 5, false); + println("Matrix Init"); + #endif +} diff --git a/keyboard/atomic/keymaps/pvc/makefile.mk b/keyboard/atomic/keymaps/pvc/makefile.mk index ff0a9c338..c41102f5d 100644 --- a/keyboard/atomic/keymaps/pvc/makefile.mk +++ b/keyboard/atomic/keymaps/pvc/makefile.mk @@ -1,16 +1,18 @@ 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 = no # Console for debug(+400) +CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: # https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 +AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +CONFIG_H = keymaps/$(KEYMAP)/config.h \ No newline at end of file diff --git a/keyboard/atomic/keymaps/pvc/pvc_atomic.c b/keyboard/atomic/keymaps/pvc/pvc_atomic.c deleted file mode 100644 index 3ddd3e329..000000000 --- a/keyboard/atomic/keymaps/pvc/pvc_atomic.c +++ /dev/null @@ -1,221 +0,0 @@ -#include "atomic.h" -#include "action_layer.h" - -#define _QW 0 -#define _LW 1 -#define _RS 2 -#define _FN 3 -#define _F1 4 -#define _F2 5 - -#define _______ KC_TRNS -#define ___T___ KC_TRNS -#define XXXXXXX KC_NO - -/* - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | - * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* QWERTY */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX }, - { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, - { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M(_FN), KC_LALT, M(_RS), KC_SPC, XXXXXXX, M(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, - }, - [_LW] = { /* LOWERED */ - { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_RS] = { /* RAISED */ - { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_FN] = { /* FUNCTION */ - { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, - { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, - [_F1] = { /* FUNCTION */ - { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, - { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, - [_F2] = { /* FUNCTION */ - { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, - { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, -}; - -#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) -#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) - -void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) -{ - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - } -} - -void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) -{ - if (order) - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } -} - -/* ignore me -void change_quad_layer(uint8_t focus_layer, bool desired_focus_layer_state, uint8_t pair_layer, uint8_t layer3, uint8_t layer4) -{ - - // If desired focus layer state == 1 and current focus layer state == 1 - if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) - { - // Do Nothing - } - // If desired focus layer state == 0 and current focus layer state == 1 - else if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) - { - // If - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } -} -*/ - -const uint16_t PROGMEM fn_actions[] = { -}; - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - - // MACRODOWN only works in this function - switch(id) - { - case _FN: - if (record->event.pressed) { - print("FN_DN\n"); - print_val_bin32(layer_state); - layer_on(_FN); - print_val_bin32(layer_state); - } else { - print("FN_UP\n"); - print_val_bin32(layer_state); - layer_off(_FN); - print_val_bin32(layer_state); - } - break; - - case _RS: - if (record->event.pressed) { - print("RS_DN\n"); - print_val_bin32(layer_state); - layer_on(_RS); - //tri_layer++; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 0); - print_val_bin32(layer_state); - } else { - print("RS_UP\n"); - print_val_bin32(layer_state); - layer_off(_RS); - //tri_layer--; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 0); - print_val_bin32(layer_state); - } - break; - - case _LW: - if (record->event.pressed) { - print("LW_DN\n"); - print_val_bin32(layer_state); - layer_on(_LW); - //tri_layer++; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 1); - print_val_bin32(layer_state); - } else { - print("LW_UP\n"); - print_val_bin32(layer_state); - layer_off(_LW); - //tri_layer--; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 1); - print_val_bin32(layer_state); - } - break; - - default: - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index c8517e756..83b8303b0 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -157,39 +157,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifdef KEYMAP -<<<<<<< HEAD -<<<<<<< HEAD -# 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 -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = yes # MIDI controls -# AUDIO_ENABLE = yes # Audio output on port C6 -# UNICODE_ENABLE = yes # Unicode -# BLUETOOTH_ENABLE = ye # Enable Bluetooth with the Adafruit EZ-Key HID -# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend - - -ifdef BACKLIGHT_ENABLE -======= -ifeq ($(BACKLIGHT_ENABLE), yes) ->>>>>>> master - SRC += backlight.c -======= ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") include keymaps/$(KEYMAP)/makefile.mk endif ->>>>>>> remotes/jackhumbert/new_defaults endif else @@ -212,4 +183,4 @@ VPATH += $(TARGET_DIR) VPATH += $(TOP_DIR) VPATH += $(TMK_DIR) -include $(TOP_DIR)/quantum/quantum.mk +include $(TOP_DIR)/quantum/quantum.mk \ No newline at end of file diff --git a/quantum/audio.h b/quantum/audio.h index 99203cea7..31f9a3579 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -6,6 +6,6 @@ void play_sample(uint8_t * s, uint16_t l, bool r); void play_note(double freq, int vol); void stop_note(double freq); -void stop_all_notes(); -void init_notes(); +void stop_all_notes(void); +void init_notes(void); void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 549b797ad1ebb30ebaa19af2cf3b7cc2a2c055bc Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Sat, 16 Apr 2016 01:36:18 +0200 Subject: My Attempt at adapting the Bone2 layout with Neo2 navigation cluster & number block to the Planck. Very much a WIP, will most likely start tweaking further once my Planck kit has dropped --- keyboard/planck/keymaps/bone2planck.c | 112 ++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 keyboard/planck/keymaps/bone2planck.c (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/bone2planck.c b/keyboard/planck/keymaps/bone2planck.c new file mode 100644 index 000000000..a99e7719f --- /dev/null +++ b/keyboard/planck/keymaps/bone2planck.c @@ -0,0 +1,112 @@ + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE +#include "backlight.h" +#endif +#include "..\..\quantum\keymap_extras\keymap_german.h" + +/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. + It has Umlauts and "ß" as it is optimized for a mix of German & English. + My favourite features are the placement of the special characters often used for programming right on the home row + and the number & navigation block combo, so you never have to move your hands from their home position. + + Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Bone2 + * ,-----------------------------------------------------------------------------------. + * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | C | T | I | E | O | B | N | R | S | G | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [0] = { + { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, + { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) }, + { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S }, + { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT } + }, + + /* M1 Special Characters + * ,-----------------------------------------------------------------------------------. + * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | # | $ | | | ~ | € | + | % | " | ' | ; | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [1] = { + { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO }, + { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS }, + { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Navigation & Number Blocks + * ,-----------------------------------------------------------------------------------. + * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [2] = { + { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, + { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO }, + { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Function & Media Keys + * ,-----------------------------------------------------------------------------------. + * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [3] = { + { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, + { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, + { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS}, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } + else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3-70-g09d2 From 0faa18eab996c2cfcc5da0b60b702f52335c5854 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 15 Apr 2016 23:38:21 -0400 Subject: audio enable stored in eeprom --- keyboard/planck/keymaps/default/keymap.c | 7 ++++- keyboard/preonic/Makefile | 4 +-- keyboard/preonic/keymaps/default/keymap.c | 12 ++++---- quantum/audio.c | 48 ++++++++++++++++++++++++++++++- quantum/audio.h | 14 ++++++++- tmk_core/common/avr/eeconfig.c | 8 ++++++ tmk_core/common/eeconfig.h | 6 ++++ 7 files changed, 89 insertions(+), 10 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 56092d04f..3f34ba412 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -135,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_AD] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, _______, _______, _______, _______, M(M_QW), M(M_CM), M(M_DV), _______, _______}, + {_______, _______, _______, _______, M(6), _______, _______, M(M_QW), M(M_CM), M(M_DV), _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -231,6 +231,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; + case 6: + if (record->event.pressed) { + audio_toggle(); + } + break; } return MACRO_NONE; }; diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 664aff732..e48052c82 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -139,8 +139,8 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = YES # MIDI controls -AUDIO_ENABLE = YES # Audio output on port C6 +MIDI_ENABLE = yes # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID # RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 784670784..3da69c215 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -59,11 +59,11 @@ const uint16_t PROGMEM fn_actions[] = { }; float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 600}, - {440.0*pow(2.0,(64)/12.0), 400}, - {440.0*pow(2.0,(55)/12.0), 400}, - {440.0*pow(2.0,(60)/12.0), 400}, - {440.0*pow(2.0,(64)/12.0), 1000}, + {440.0*pow(2.0,(67)/12.0), 4}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 10}, }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -76,8 +76,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef BACKLIGHT_ENABLE backlight_step(); #endif + audio_toggle(); } else { unregister_code(KC_RSFT); + play_notes(&start_up, 5, false); } break; } diff --git a/quantum/audio.c b/quantum/audio.c index 50e5505fe..73985479c 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -8,6 +8,8 @@ #include "audio.h" #include "keymap_common.h" +#include "eeconfig.h" + #define PI 3.14159265 // #define PWM_AUDIO @@ -57,6 +59,25 @@ uint8_t notes_length; bool notes_repeat; uint8_t current_note = 0; +audio_config_t audio_config; + + +void audio_toggle(void) { + audio_config.enable ^= 1; + eeconfig_write_audio(audio_config.raw); +} + +void audio_on(void) { + audio_config.enable = 1; + eeconfig_write_audio(audio_config.raw); +} + +void audio_off(void) { + audio_config.enable = 0; + eeconfig_write_audio(audio_config.raw); +} + + void stop_all_notes() { voices = 0; #ifdef PWM_AUDIO @@ -129,6 +150,12 @@ void stop_note(double freq) { void init_notes() { + /* check signature */ + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + audio_config.raw = eeconfig_read_audio(); + #ifdef PWM_AUDIO PLLFRQ = _BV(PDIV2); PLLCSR = _BV(PLLE); @@ -160,7 +187,6 @@ void init_notes() { ISR(TIMER3_COMPA_vect) { - if (note) { #ifdef PWM_AUDIO if (voices == 1) { @@ -288,9 +314,16 @@ ISR(TIMER3_COMPA_vect) { } + if (!audio_config.enable) { + notes = false; + note = false; + } } void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { + +if (audio_config.enable) { + if (note) stop_all_notes(); notes = true; @@ -319,7 +352,12 @@ void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { #endif } +} + void play_sample(uint8_t * s, uint16_t l, bool r) { + +if (audio_config.enable) { + stop_all_notes(); place_int = 0; sample = s; @@ -330,9 +368,15 @@ void play_sample(uint8_t * s, uint16_t l, bool r) { TIMSK3 |= _BV(OCIE3A); #else #endif + +} + } void play_note(double freq, int vol) { + +if (audio_config.enable) { + if (notes) stop_all_notes(); note = true; @@ -367,4 +411,6 @@ void play_note(double freq, int vol) { TCCR3A |= _BV(COM3A1); #endif +} + } \ No newline at end of file diff --git a/quantum/audio.h b/quantum/audio.h index 99203cea7..58270015d 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -3,9 +3,21 @@ #include #include +typedef union { + uint8_t raw; + struct { + bool enable :1; + uint8_t level :7; + }; +} audio_config_t; + +void audio_toggle(void); +void audio_on(void); +void audio_off(void); + void play_sample(uint8_t * s, uint16_t l, bool r); void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(); void init_notes(); -void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); \ No newline at end of file +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); diff --git a/tmk_core/common/avr/eeconfig.c b/tmk_core/common/avr/eeconfig.c index 5bd47dc6a..d0c3f4f57 100644 --- a/tmk_core/common/avr/eeconfig.c +++ b/tmk_core/common/avr/eeconfig.c @@ -13,6 +13,9 @@ void eeconfig_init(void) #ifdef BACKLIGHT_ENABLE eeprom_write_byte(EECONFIG_BACKLIGHT, 0); #endif +#ifdef AUDIO_ENABLE + eeprom_write_byte(EECONFIG_AUDIO, 0); +#endif } void eeconfig_enable(void) @@ -43,3 +46,8 @@ void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); } void eeconfig_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); } #endif + +#ifdef AUDIO_ENABLE +uint8_t eeconfig_read_audio(void) { return eeprom_read_byte(EECONFIG_AUDIO); } +void eeconfig_write_audio(uint8_t val) { eeprom_write_byte(EECONFIG_AUDIO, val); } +#endif \ No newline at end of file diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index 3cd1a174f..ddefca134 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h @@ -31,6 +31,7 @@ along with this program. If not, see . #define EECONFIG_KEYMAP (uint8_t *)4 #define EECONFIG_MOUSEKEY_ACCEL (uint8_t *)5 #define EECONFIG_BACKLIGHT (uint8_t *)6 +#define EECONFIG_AUDIO (uint8_t *)7 /* debug bit */ @@ -72,4 +73,9 @@ uint8_t eeconfig_read_backlight(void); void eeconfig_write_backlight(uint8_t val); #endif +#ifdef AUDIO_ENABLE +uint8_t eeconfig_read_audio(void); +void eeconfig_write_audio(uint8_t val); +#endif + #endif -- cgit v1.2.3-70-g09d2 From d81ef5b7eb888ae2878e60d548854413ee3023c6 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 01:19:37 -0400 Subject: new defaults for planck and preonic --- keyboard/planck/keymaps/default/keymap.c | 74 ++++---- keyboard/preonic/Makefile | 55 ++++-- keyboard/preonic/keymaps/default/README.md | 35 +--- keyboard/preonic/keymaps/default/keymap.c | 260 +++++++++++++++++++++++---- keyboard/preonic/keymaps/default/makefile.mk | 1 + 5 files changed, 308 insertions(+), 117 deletions(-) create mode 100644 keyboard/preonic/keymaps/default/makefile.mk (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 3f34ba412..ede08ad7f 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -19,12 +19,16 @@ #define _AD 5 // Macro name shortcuts -#define M_QW 0 -#define M_CM 1 -#define M_DV 2 -#define M_LW 3 -#define M_RS 4 +#define QWERTY M(_QW) +#define COLEMAK M(_CM) +#define DVORAK M(_DV) +#define LOWER M(_LW) +#define RAISE M(_RS) #define M_BL 5 +#ifdef AUDIO_ENABLE + #define AUD_OFF M(6) + #define AUD_ON M(7) +#endif // Fillers to make layering more clear #define _______ KC_TRNS @@ -47,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -65,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -83,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -126,7 +130,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | |Qwerty|Colemk|Dvorak| | | + * | | | |Aud on|Audoff| | |Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -135,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_AD] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, _______, M(6), _______, _______, M(M_QW), M(M_CM), M(M_DV), _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -146,6 +150,14 @@ const uint16_t PROGMEM fn_actions[] = { }; #ifdef AUDIO_ENABLE +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 20} +}; + float tone_qw[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, @@ -157,20 +169,20 @@ float tone_cm[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16}, + {440.0*pow(2.0,(67)/12.0), 12}, {0, 4}, - {440.0*pow(2.0,(71)/12.0), 16} + {440.0*pow(2.0,(71)/12.0), 12} }; float tone_dv[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16}, + {440.0*pow(2.0,(67)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(69)/12.0), 16}, + {440.0*pow(2.0,(69)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16} + {440.0*pow(2.0,(67)/12.0), 8} }; #endif @@ -179,7 +191,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { - case M_QW: + case _QW: if (record->event.pressed) { #ifdef AUDIO_ENABLE play_notes(&tone_qw, 4, false); @@ -187,7 +199,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) default_layer_set(1UL<<_QW); } break; - case M_CM: + case _CM: if (record->event.pressed) { #ifdef AUDIO_ENABLE play_notes(&tone_cm, 6, false); @@ -195,7 +207,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) default_layer_set(1UL<<_CM); } break; - case M_DV: + case _DV: if (record->event.pressed) { #ifdef AUDIO_ENABLE play_notes(&tone_dv, 8, false); @@ -203,7 +215,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) default_layer_set(1UL<<_DV); } break; - case M_LW: + case _LW: if (record->event.pressed) { layer_on(_LW); update_tri_layer(_LW, _RS, _AD); @@ -212,7 +224,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LW, _RS, _AD); } break; - case M_RS: + case _RS: if (record->event.pressed) { layer_on(_RS); update_tri_layer(_LW, _RS, _AD); @@ -233,23 +245,23 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case 6: if (record->event.pressed) { - audio_toggle(); + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + play_notes(&start_up, 5, false); + #endif } break; } return MACRO_NONE; }; -#ifdef AUDIO_ENABLE -float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 12}, - {440.0*pow(2.0,(64)/12.0), 8}, - {440.0*pow(2.0,(55)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, - {440.0*pow(2.0,(64)/12.0), 20} -}; -#endif - void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index e48052c82..eaf9ef927 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -126,27 +126,44 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # USBaspLoader 2048 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 +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically +# +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 +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = yes # MIDI controls -AUDIO_ENABLE = yes # Audio output on port C6 -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. - -ifdef BACKLIGHT_ENABLE - SRC += backlight.c +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) + SRC := backlight.c $(SRC) endif diff --git a/keyboard/preonic/keymaps/default/README.md b/keyboard/preonic/keymaps/default/README.md index d2f43bbdb..e911968dd 100644 --- a/keyboard/preonic/keymaps/default/README.md +++ b/keyboard/preonic/keymaps/default/README.md @@ -1,34 +1 @@ -# The Default Planck Layout - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_CM] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_DV] = { /* Dvorak */ - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} - }, - [_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} - } - }; \ No newline at end of file +# The default Preonic layout - largely based on the Planck's \ No newline at end of file diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 3da69c215..c52d8472f 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -1,9 +1,7 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - #include "preonic.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" #endif // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -15,42 +13,150 @@ #define _DV 2 #define _LW 3 #define _RS 4 +#define _AD 5 + +// Macro name shortcuts +#define QWERTY M(_QW) +#define COLEMAK M(_CM) +#define DVORAK M(_DV) +#define LOWER M(_LW) +#define RAISE M(_RS) +#define M_BL 5 +#ifdef AUDIO_ENABLE + #define AUD_OFF M(6) + #define AUD_ON M(7) +#endif + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -[_CM] = { /* Colemak */ + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -[_DV] = { /* Dvorak */ + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -[_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -[_LW] = { /* LOWER */ + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Audoff|Aud on| | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_AD] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } }; @@ -58,28 +164,116 @@ const uint16_t PROGMEM fn_actions[] = { }; +#ifdef AUDIO_ENABLE float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 4}, + {440.0*pow(2.0,(55)/12.0), 12}, + {0, 2}, + {440.0*pow(2.0,(67)/12.0), 8}, {440.0*pow(2.0,(64)/12.0), 8}, {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(67)/12.0), 12}, + {0, 2}, + {440.0*pow(2.0,(67)/12.0), 12} +}; + +float tone_qw[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, - {440.0*pow(2.0,(64)/12.0), 10}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} }; +float tone_cm[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 12}, + {0, 4}, + {440.0*pow(2.0,(71)/12.0), 12} +}; + +float tone_dv[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(69)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 8} +}; +#endif + + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { - case 0: + case _QW: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_qw, 4, false); + #endif + default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_cm, 6, false); + #endif + default_layer_set(1UL<<_CM); + } + break; + case _DV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_dv, 8, false); + #endif + default_layer_set(1UL<<_DV); + } + break; + case _LW: + if (record->event.pressed) { + layer_on(_LW); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_LW); + update_tri_layer(_LW, _RS, _AD); + } + break; + case _RS: + if (record->event.pressed) { + layer_on(_RS); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_RS); + update_tri_layer(_LW, _RS, _AD); + } + break; + case M_BL: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE backlight_step(); #endif - audio_toggle(); } else { unregister_code(KC_RSFT); - play_notes(&start_up, 5, false); + } + break; + case 6: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + play_notes(&start_up, 7, false); + #endif } break; } @@ -87,8 +281,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; void matrix_init_user(void) { -#ifdef AUDIO_ENABLE + #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 5, false); -#endif + play_notes(&start_up, 7, false); + #endif } diff --git a/keyboard/preonic/keymaps/default/makefile.mk b/keyboard/preonic/keymaps/default/makefile.mk new file mode 100644 index 000000000..628167ff6 --- /dev/null +++ b/keyboard/preonic/keymaps/default/makefile.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes \ No newline at end of file -- cgit v1.2.3-70-g09d2 From ab19ebd08a8b955775e6fa94cdf6b8d128d8b43c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 18:51:58 -0400 Subject: MAGIC functionality, AG swap in default layout --- keyboard/planck/keymaps/default/README.md | 32 ---- keyboard/preonic/Makefile | 2 +- keyboard/preonic/keymaps/default/keymap.c | 19 +-- quantum/keymap_common.c | 250 +++++++++++++++++------------- quantum/keymap_common.h | 28 +++- tmk_core/common.mk | 3 + tmk_core/common/keyboard.c | 8 +- tmk_core/common/keymap.h | 3 - tmk_core/common/magic.c | 36 +++++ tmk_core/common/magic.h | 6 + 10 files changed, 226 insertions(+), 161 deletions(-) create mode 100644 tmk_core/common/magic.c create mode 100644 tmk_core/common/magic.h (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/README.md b/keyboard/planck/keymaps/default/README.md index d2f43bbdb..de9680b49 100644 --- a/keyboard/planck/keymaps/default/README.md +++ b/keyboard/planck/keymaps/default/README.md @@ -1,34 +1,2 @@ # The Default Planck Layout - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_CM] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_DV] = { /* Dvorak */ - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} - }, - [_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} - } - }; \ No newline at end of file diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index eaf9ef927..9199968c3 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -130,7 +130,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # change to "no" to disable the options, or define them in the makefile.mk in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = no # 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) diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 6824f68b6..e1f9b6202 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -153,9 +153,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Audoff|Aud on| | |Qwerty|Colemk|Dvorak| | | + * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | + * | | | |Musoff|Mus on| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -163,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -231,6 +231,10 @@ float tone_music[][2] = { }; #endif +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_write_default_layer(default_layer); + default_layer_set(default_layer); +} const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -240,8 +244,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE play_notes(&tone_qwerty, 4, false); #endif - eeconfig_write_default_layer(1UL<<_QWERTY); - default_layer_set(1UL<<_QWERTY); + persistant_default_layer_set(1UL<<_QWERTY); } break; case _COLEMAK: @@ -249,8 +252,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE play_notes(&tone_colemak, 6, false); #endif - eeconfig_write_default_layer(1UL<<_COLEMAK); - default_layer_set(1UL<<_COLEMAK); + persistant_default_layer_set(1UL<<_COLEMAK); } break; case _DVORAK: @@ -258,8 +260,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE play_notes(&tone_dvorak, 8, false); #endif - eeconfig_write_default_layer(1UL<<_DVORAK); - default_layer_set(1UL<<_DVORAK); + persistant_default_layer_set(1UL<<_DVORAK); } break; case _LOWER: diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 3a00d36f0..b91916685 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -27,6 +27,8 @@ along with this program. If not, see . #include "keymap_midi.h" #include "bootloader.h" +extern keymap_config_t keymap_config; + #include #include #ifdef AUDIO_ENABLE @@ -47,120 +49,9 @@ action_t action_for_key(uint8_t layer, keypos_t key) // 16bit keycodes - important uint16_t keycode = keymap_key_to_keycode(layer, key); - if (keycode >= 0x0100 && keycode < 0x2000) { - // Has a modifier - action_t action; - // Split it up - action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key - return action; - } else if (keycode >= 0x2000 && keycode < 0x3000) { - // Is a shortcut for function layer, pull last 12bits - // This means we have 4,096 FN macros at our disposal - return keymap_func_to_action(keycode & 0xFFF); - } else if (keycode >= 0x3000 && keycode < 0x4000) { - // When the code starts with 3, it's an action macro. - action_t action; - action.code = ACTION_MACRO(keycode & 0xFF); - return action; -#ifdef BACKLIGHT_ENABLE - } else if (keycode >= BL_0 && keycode <= BL_15) { - action_t action; - action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F); - return action; - } else if (keycode == BL_DEC) { - action_t action; - action.code = ACTION_BACKLIGHT_DECREASE(); - return action; - } else if (keycode == BL_INC) { - action_t action; - action.code = ACTION_BACKLIGHT_INCREASE(); - return action; - } else if (keycode == BL_TOGG) { - action_t action; - action.code = ACTION_BACKLIGHT_TOGGLE(); - return action; - } else if (keycode == BL_STEP) { - action_t action; - action.code = ACTION_BACKLIGHT_STEP(); - return action; -#endif - } else if (keycode == RESET) { // RESET is 0x5000, which is why this is here - action_t action; - clear_keyboard(); - #ifdef AUDIO_ENABLE - play_notes(&goodbye, 3, false); - #endif - _delay_ms(250); - #ifdef ATREUS_ASTAR - *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific - #endif - bootloader_jump(); - return action; - } else if (keycode == DEBUG) { // DEBUG is 0x5001 - // TODO: Does this actually work? - action_t action; - print("\nDEBUG: enabled.\n"); - debug_enable = true; - return action; - } else if (keycode >= 0x5000 && keycode < 0x6000) { - // Layer movement shortcuts - // See .h to see constraints/usage - int type = (keycode >> 0x8) & 0xF; - if (type == 0x1) { - // Layer set "GOTO" - int when = (keycode >> 0x4) & 0x3; - int layer = keycode & 0xF; - action_t action; - action.code = ACTION_LAYER_SET(layer, when); - return action; - } else if (type == 0x2) { - // Momentary layer - int layer = keycode & 0xFF; - action_t action; - action.code = ACTION_LAYER_MOMENTARY(layer); - return action; - } else if (type == 0x3) { - // Set default layer - int layer = keycode & 0xFF; - action_t action; - action.code = ACTION_DEFAULT_LAYER_SET(layer); - return action; - } else if (type == 0x4) { - // Set default layer - int layer = keycode & 0xFF; - action_t action; - action.code = ACTION_LAYER_TOGGLE(layer); - return action; - } -#ifdef MIDI_ENABLE - } else if (keycode >= 0x6000 && keycode < 0x7000) { - action_t action; - action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8); - return action; -#endif - } else if (keycode >= 0x7000 && keycode < 0x8000) { - action_t action; - action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); - return action; - } else if (keycode >= 0x8000 && keycode < 0x9000) { - action_t action; - action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); - return action; -#ifdef UNICODE_ENABLE - } else if (keycode >= 0x8000000) { - action_t action; - uint16_t unicode = keycode & ~(0x8000); - action.code = ACTION_FUNCTION_OPT(unicode & 0xFF, (unicode & 0xFF00) >> 8); - return action; -#endif - } else { - - } - switch (keycode) { case KC_FN0 ... KC_FN31: return keymap_fn_to_action(keycode); -#ifdef BOOTMAGIC_ENABLE case KC_CAPSLOCK: case KC_LOCKING_CAPS: if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) { @@ -224,7 +115,6 @@ action_t action_for_key(uint8_t layer, keypos_t key) return keycode_to_action(KC_BSLASH); } return keycode_to_action(KC_BSPACE); -#endif default: return keycode_to_action(keycode); } @@ -265,6 +155,142 @@ static action_t keycode_to_action(uint16_t keycode) case KC_TRNS: action.code = ACTION_TRANSPARENT; break; + case 0x0100 ... 0x1FFF: ; + // Has a modifier + // Split it up + action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key + break; + case 0x2000 ... 0x2FFF: + // Is a shortcut for function layer, pull last 12bits + // This means we have 4,096 FN macros at our disposal + return keymap_func_to_action(keycode & 0xFFF); + break; + case 0x3000 ... 0x3FFF: ; + // When the code starts with 3, it's an action macro. + action.code = ACTION_MACRO(keycode & 0xFF); + break; + #ifdef BACKLIGHT_ENABLE + case BL_0 ... BL_15: + action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F); + break; + case BL_DEC: + action.code = ACTION_BACKLIGHT_DECREASE(); + break; + case BL_INC: + action.code = ACTION_BACKLIGHT_INCREASE(); + break; + case BL_TOGG: + action.code = ACTION_BACKLIGHT_TOGGLE(); + break; + case BL_STEP: + action.code = ACTION_BACKLIGHT_STEP(); + break; + #endif + case RESET: ; // RESET is 0x5000, which is why this is here + clear_keyboard(); + #ifdef AUDIO_ENABLE + play_notes(&goodbye, 3, false); + #endif + _delay_ms(250); + #ifdef ATREUS_ASTAR + *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific + #endif + bootloader_jump(); + break; + case DEBUG: ; // DEBUG is 0x5001 + print("\nDEBUG: enabled.\n"); + debug_enable = true; + break; + case 0x5002 ... 0x50FF: + // MAGIC actions (BOOTMAGIC without the boot) + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + /* keymap config */ + keymap_config.raw = eeconfig_read_keymap(); + if (keycode == MAGIC_SWAP_CONTROL_CAPSLOCK) { + keymap_config.swap_control_capslock = 1; + } else if (keycode == MAGIC_CAPSLOCK_TO_CONTROL) { + keymap_config.capslock_to_control = 1; + } else if (keycode == MAGIC_SWAP_LALT_LGUI) { + keymap_config.swap_lalt_lgui = 1; + } else if (keycode == MAGIC_SWAP_RALT_RGUI) { + keymap_config.swap_ralt_rgui = 1; + } else if (keycode == MAGIC_NO_GUI) { + keymap_config.no_gui = 1; + } else if (keycode == MAGIC_SWAP_GRAVE_ESC) { + keymap_config.swap_grave_esc = 1; + } else if (keycode == MAGIC_SWAP_BACKSLASH_BACKSPACE) { + keymap_config.swap_backslash_backspace = 1; + } else if (keycode == MAGIC_HOST_NKRO) { + keymap_config.nkro = 1; + } else if (keycode == MAGIC_SWAP_ALT_GUI) { + keymap_config.swap_lalt_lgui = 1; + keymap_config.swap_ralt_rgui = 1; + } + /* UNs */ + else if (keycode == MAGIC_UNSWAP_CONTROL_CAPSLOCK) { + keymap_config.swap_control_capslock = 0; + } else if (keycode == MAGIC_UNCAPSLOCK_TO_CONTROL) { + keymap_config.capslock_to_control = 0; + } else if (keycode == MAGIC_UNSWAP_LALT_LGUI) { + keymap_config.swap_lalt_lgui = 0; + } else if (keycode == MAGIC_UNSWAP_RALT_RGUI) { + keymap_config.swap_ralt_rgui = 0; + } else if (keycode == MAGIC_UNNO_GUI) { + keymap_config.no_gui = 0; + } else if (keycode == MAGIC_UNSWAP_GRAVE_ESC) { + keymap_config.swap_grave_esc = 0; + } else if (keycode == MAGIC_UNSWAP_BACKSLASH_BACKSPACE) { + keymap_config.swap_backslash_backspace = 0; + } else if (keycode == MAGIC_UNHOST_NKRO) { + keymap_config.nkro = 0; + } else if (keycode == MAGIC_UNSWAP_ALT_GUI) { + keymap_config.swap_lalt_lgui = 0; + keymap_config.swap_ralt_rgui = 0; + } + eeconfig_write_keymap(keymap_config.raw); + break; + case 0x5100 ... 0x5FFF: ; + // Layer movement shortcuts + // See .h to see constraints/usage + int type = (keycode >> 0x8) & 0xF; + if (type == 0x1) { + // Layer set "GOTO" + int when = (keycode >> 0x4) & 0x3; + int layer = keycode & 0xF; + action.code = ACTION_LAYER_SET(layer, when); + } else if (type == 0x2) { + // Momentary layer + int layer = keycode & 0xFF; + action.code = ACTION_LAYER_MOMENTARY(layer); + } else if (type == 0x3) { + // Set default layer + int layer = keycode & 0xFF; + action.code = ACTION_DEFAULT_LAYER_SET(layer); + } else if (type == 0x4) { + // Set default layer + int layer = keycode & 0xFF; + action.code = ACTION_LAYER_TOGGLE(layer); + } + break; + #ifdef MIDI_ENABLE + case 0x6000 ... 0x6FFF: + action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8); + break; + #endif + case 0x7000 ... 0x7FFF: + action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); + break; + case 0x8000 ... 0x8FFF: + action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); + break; + #ifdef UNICODE_ENABLE + case 0x8000000 ... 0x8FFFFFF: + uint16_t unicode = keycode & ~(0x8000); + action.code = ACTION_FUNCTION_OPT(unicode & 0xFF, (unicode & 0xFF00) >> 8); + break; + #endif default: action.code = ACTION_NO; break; diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index 7452a1ff3..ce87e4770 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -30,7 +30,6 @@ along with this program. If not, see . // #include "print.h" #include "debug.h" -#ifdef BOOTMAGIC_ENABLE /* NOTE: Not portable. Bit field order depends on implementation */ typedef union { uint16_t raw; @@ -45,8 +44,6 @@ typedef union { bool nkro:1; }; } keymap_config_t; -keymap_config_t keymap_config; -#endif /* translates key to keycode */ @@ -168,6 +165,30 @@ extern const uint16_t fn_actions[]; #define RESET 0x5000 #define DEBUG 0x5001 +// MAGIC keycodes +#define MAGIC_SWAP_CONTROL_CAPSLOCK 0x5002 +#define MAGIC_UNSWAP_CONTROL_CAPSLOCK 0x5003 +#define MAGIC_CAPSLOCK_TO_CONTROL 0x5004 +#define MAGIC_UNCAPSLOCK_TO_CONTROL 0x5005 +#define MAGIC_SWAP_LALT_LGUI 0x5006 +#define MAGIC_UNSWAP_LALT_LGUI 0x5007 +#define MAGIC_SWAP_RALT_RGUI 0x5008 +#define MAGIC_UNSWAP_RALT_RGUI 0x5009 +#define MAGIC_NO_GUI 0x500a +#define MAGIC_UNNO_GUI 0x500b +#define MAGIC_SWAP_GRAVE_ESC 0x500c +#define MAGIC_UNSWAP_GRAVE_ESC 0x500d +#define MAGIC_SWAP_BACKSLASH_BACKSPACE 0x500e +#define MAGIC_UNSWAP_BACKSLASH_BACKSPACE 0x500f +#define MAGIC_HOST_NKRO 0x5010 +#define MAGIC_UNHOST_NKRO 0x5011 +#define MAGIC_SWAP_ALT_GUI 0x5012 +#define MAGIC_UNSWAP_ALT_GUI 0x5013 + +#define AG_SWAP MAGIC_SWAP_ALT_GUI +#define AG_NORM MAGIC_UNSWAP_ALT_GUI + + // GOTO layer - 16 layers max // when: // ON_PRESS = 1 @@ -213,4 +234,5 @@ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); #define IS_LAYER_ON(layer) ((layer_state) & (1UL<<(layer))) #define IS_LAYER_OFF(layer) ((!layer_state) & (1UL<<(layer))) + #endif diff --git a/tmk_core/common.mk b/tmk_core/common.mk index f8006c670..9cb2eb8ec 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -21,6 +21,9 @@ ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) SRC += $(COMMON_DIR)/bootmagic.c SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBOOTMAGIC_ENABLE +else + SRC += $(COMMON_DIR)/magic.c + SRC += $(COMMON_DIR)/avr/eeconfig.c endif ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index 302b3ec87..1d9981848 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -27,7 +27,11 @@ along with this program. If not, see . #include "command.h" #include "util.h" #include "sendchar.h" -#include "bootmagic.h" +#ifdef BOOTMAGIC_ENABLE + #include "bootmagic.h" +#else + #include "magic.h" +#endif #include "eeconfig.h" #include "backlight.h" #ifdef MOUSEKEY_ENABLE @@ -86,6 +90,8 @@ void keyboard_init(void) #ifdef BOOTMAGIC_ENABLE bootmagic(); +#else + magic(); #endif #ifdef BACKLIGHT_ENABLE diff --git a/tmk_core/common/keymap.h b/tmk_core/common/keymap.h index e1a6f992e..abc9bdb32 100644 --- a/tmk_core/common/keymap.h +++ b/tmk_core/common/keymap.h @@ -22,8 +22,6 @@ along with this program. If not, see . #include #include "action.h" - -#ifdef BOOTMAGIC_ENABLE /* NOTE: Not portable. Bit field order depends on implementation */ typedef union { uint8_t raw; @@ -39,7 +37,6 @@ typedef union { }; } keymap_config_t; keymap_config_t keymap_config; -#endif /* translates key to keycode */ diff --git a/tmk_core/common/magic.c b/tmk_core/common/magic.c new file mode 100644 index 000000000..f21d1346c --- /dev/null +++ b/tmk_core/common/magic.c @@ -0,0 +1,36 @@ +#include +#include +#include +#include "matrix.h" +#include "bootloader.h" +#include "debug.h" +#include "keymap.h" +#include "host.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "magic.h" + +keymap_config_t keymap_config; + +void magic(void) +{ + /* check signature */ + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + + /* debug enable */ + debug_config.raw = eeconfig_read_debug(); + + /* keymap config */ + keymap_config.raw = eeconfig_read_keymap(); + +#ifdef NKRO_ENABLE + keyboard_nkro = keymap_config.nkro; +#endif + + uint8_t default_layer = 0; + default_layer = eeconfig_read_default_layer(); + default_layer_set((uint32_t)default_layer); + +} \ No newline at end of file diff --git a/tmk_core/common/magic.h b/tmk_core/common/magic.h new file mode 100644 index 000000000..3fa2d8b81 --- /dev/null +++ b/tmk_core/common/magic.h @@ -0,0 +1,6 @@ +#ifndef MAGIC_H +#define MAGIC_H + +void magic(void); + +#endif -- cgit v1.2.3-70-g09d2 From 41cc35425ab32c9a9492006da8b667d01d32dfa6 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 21:31:40 -0400 Subject: rests between notes as an argument --- keyboard/planck/keymaps/default/keymap.c | 10 +++++----- keyboard/preonic/keymaps/default/keymap.c | 16 ++++++++-------- quantum/audio.c | 29 +++++++++++++++++++++-------- quantum/audio.h | 3 ++- quantum/keymap_common.c | 2 +- 5 files changed, 37 insertions(+), 23 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index ede08ad7f..a6edefefd 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -194,7 +194,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _QW: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_qw, 4, false); + play_notes(&tone_qw, 4, false, 0); #endif default_layer_set(1UL<<_QW); } @@ -202,7 +202,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _CM: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_cm, 6, false); + play_notes(&tone_cm, 6, false, 0); #endif default_layer_set(1UL<<_CM); } @@ -210,7 +210,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _DV: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_dv, 8, false); + play_notes(&tone_dv, 8, false, 0); #endif default_layer_set(1UL<<_DV); } @@ -254,7 +254,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - play_notes(&start_up, 5, false); + play_notes(&start_up, 5, false, 0); #endif } break; @@ -265,6 +265,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 5, false); + play_notes(&start_up, 5, false, 0); #endif } diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 6b6262318..1223793cf 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -242,7 +242,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_qwerty, 4, false); + play_notes(&tone_qwerty, 4, false, 0); #endif persistant_default_layer_set(1UL<<_QWERTY); } @@ -250,7 +250,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_colemak, 6, false); + play_notes(&tone_colemak, 6, false, 1); #endif persistant_default_layer_set(1UL<<_COLEMAK); } @@ -258,7 +258,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_dvorak, 8, false); + play_notes(&tone_dvorak, 8, false, 10); #endif persistant_default_layer_set(1UL<<_DVORAK); } @@ -302,7 +302,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - play_notes(&start_up, 4, false); + play_notes(&start_up, 4, false, 0); #endif } break; @@ -317,7 +317,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_music, 8, false); + play_notes(&tone_music, 8, false, 0); layer_on(_MUSIC); #endif } @@ -333,9 +333,9 @@ void process_action_user(keyrecord_t *record) { if (IS_LAYER_ON(_MUSIC)) { if (record->event.pressed) { - play_note(((double)261.626)*pow(2.0, -3.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); } else { - stop_note(((double)261.626)*pow(2.0, -3.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); } } @@ -344,6 +344,6 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 4, false); + play_notes(&start_up, 4, false, 0); #endif } diff --git a/quantum/audio.c b/quantum/audio.c index 470dc8e0c..40d09d62f 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -61,7 +61,11 @@ uint16_t note_position = 0; float (* notes_pointer)[][2]; uint8_t notes_length; bool notes_repeat; +float notes_rest; +bool note_resting = false; + uint8_t current_note = 0; +uint8_t rest_counter = 0; audio_config_t audio_config; @@ -314,13 +318,21 @@ ISR(TIMER3_COMPA_vect) { return; } } - #ifdef PWM_AUDIO - note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; - note_length = (*notes_pointer)[current_note][1]; - #else - note_frequency = (*notes_pointer)[current_note][0]; - note_length = (*notes_pointer)[current_note][1] / 4; - #endif + if (!note_resting && ((int)notes_rest != 0)) { + note_resting = true; + note_frequency = 0; + note_length = notes_rest; + current_note--; + } else { + note_resting = false; + #ifdef PWM_AUDIO + note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; + note_length = (*notes_pointer)[current_note][1]; + #else + note_frequency = (*notes_pointer)[current_note][0]; + note_length = (*notes_pointer)[current_note][1] / 4; + #endif + } note_position = 0; } @@ -332,7 +344,7 @@ ISR(TIMER3_COMPA_vect) { } } -void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat, float n_rest) { if (audio_config.enable) { @@ -343,6 +355,7 @@ if (audio_config.enable) { notes_pointer = np; notes_length = n_length; notes_repeat = n_repeat; + notes_rest = n_rest; place = 0; current_note = 0; diff --git a/quantum/audio.h b/quantum/audio.h index 58270015d..65a6f9434 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -2,6 +2,7 @@ #include #include #include +#include "musical_notes.h" typedef union { uint8_t raw; @@ -20,4 +21,4 @@ void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(); void init_notes(); -void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat, float n_rest); diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 899437f44..457f70a44 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -189,7 +189,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE - play_notes(&goodbye, 3, false); + play_notes(&goodbye, 3, false, 0); #endif _delay_ms(250); #ifdef ATREUS_ASTAR -- cgit v1.2.3-70-g09d2 From 8bbd064cf52a76508589579f19595607a1f3af21 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 23:07:50 -0400 Subject: changes to play_notes, goodbye --- keyboard/planck/keymaps/default/keymap.c | 10 +++++----- keyboard/preonic/Makefile | 2 +- keyboard/preonic/config.h | 4 ++-- keyboard/preonic/keymaps/default/keymap.c | 12 ++++++------ quantum/audio.c | 2 +- quantum/keymap_common.c | 16 +++++++++------- 6 files changed, 24 insertions(+), 22 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index a6edefefd..5591b337d 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -194,7 +194,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _QW: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_qw, 4, false, 0); + play_notes(&tone_qw, false, 0); #endif default_layer_set(1UL<<_QW); } @@ -202,7 +202,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _CM: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_cm, 6, false, 0); + play_notes(&tone_cm, false, 0); #endif default_layer_set(1UL<<_CM); } @@ -210,7 +210,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _DV: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_dv, 8, false, 0); + play_notes(&tone_dv, false, 0); #endif default_layer_set(1UL<<_DV); } @@ -254,7 +254,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - play_notes(&start_up, 5, false, 0); + play_notes(&start_up, false, 0); #endif } break; @@ -265,6 +265,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 5, false, 0); + play_notes(&start_up, false, 0); #endif } diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 9199968c3..3504e2720 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -133,7 +133,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 BOOTMAGIC_ENABLE = no # 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) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality diff --git a/keyboard/preonic/config.h b/keyboard/preonic/config.h index 5528667fa..bb9d29dab 100644 --- a/keyboard/preonic/config.h +++ b/keyboard/preonic/config.h @@ -73,10 +73,10 @@ along with this program. If not, see . */ /* disable debug print */ -#define NO_DEBUG +// #define NO_DEBUG /* disable print */ -#define NO_PRINT +// #define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 1223793cf..c7b6b89f2 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -242,7 +242,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_qwerty, 4, false, 0); + play_notes(&tone_qwerty, false, 0); #endif persistant_default_layer_set(1UL<<_QWERTY); } @@ -250,7 +250,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_colemak, 6, false, 1); + play_notes(&tone_colemak, false, 0); #endif persistant_default_layer_set(1UL<<_COLEMAK); } @@ -258,7 +258,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_dvorak, 8, false, 10); + play_notes(&tone_dvorak, false, 0); #endif persistant_default_layer_set(1UL<<_DVORAK); } @@ -302,7 +302,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - play_notes(&start_up, 4, false, 0); + play_notes(&start_up, false, 0); #endif } break; @@ -317,7 +317,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_music, 8, false, 0); + play_notes(&tone_music, false, 0); layer_on(_MUSIC); #endif } @@ -344,6 +344,6 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 4, false, 0); + play_notes(&start_up, false, 0); #endif } diff --git a/quantum/audio.c b/quantum/audio.c index 40d09d62f..773edfd8e 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -318,7 +318,7 @@ ISR(TIMER3_COMPA_vect) { return; } } - if (!note_resting && ((int)notes_rest != 0)) { + if (!note_resting && (notes_rest > 0)) { note_resting = true; note_frequency = 0; note_length = notes_rest; diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 457f70a44..8f35521a2 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -33,12 +33,14 @@ extern keymap_config_t keymap_config; #include #ifdef AUDIO_ENABLE #include "audio.h" - - float goodbye[][2] = { - {440.0*pow(2.0,(31)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 12}, - }; + #ifndef GOODBYE_TUNE + #define GOODBYE_TUNE { \ + {440.0*pow(2.0,(31)/12.0), 8}, \ + {440.0*pow(2.0,(24)/12.0), 8}, \ + {440.0*pow(2.0,(19)/12.0), 12}, \ + } + #endif + float goodbye_tune[][2] = GOODBYE_TUNE; #endif static action_t keycode_to_action(uint16_t keycode); @@ -189,7 +191,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE - play_notes(&goodbye, 3, false, 0); + play_notes(&goodbye_tune, false, 0); #endif _delay_ms(250); #ifdef ATREUS_ASTAR -- cgit v1.2.3-70-g09d2 From a67d425f4d5278595e7ab785a0f246b83fb1a09f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 17 Apr 2016 01:00:39 -0400 Subject: planck default layout updates --- keyboard/planck/Makefile | 4 +- keyboard/planck/keymaps/default/keymap.c | 183 ++++++++++++++++++++----------- quantum/audio.c | 5 +- quantum/keymap_common.c | 8 +- 4 files changed, 130 insertions(+), 70 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 83b8303b0..01d9e3ce9 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -139,10 +139,10 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # change to "no" to disable the options, or define them in the makefile.mk in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = no # 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) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 207af2a1d..aecddec4a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -11,24 +11,27 @@ // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _DV 2 -#define _LW 3 -#define _RS 4 -#define _AD 5 +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 5 +#define _MUSIC 6 // Macro name shortcuts -#define QWERTY M(_QW) -#define COLEMAK M(_CM) -#define DVORAK M(_DV) -#define LOWER M(_LW) -#define RAISE M(_RS) +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) #define M_BL 5 #ifdef AUDIO_ENABLE #define AUD_OFF M(6) #define AUD_ON M(7) #endif +#define MUS_OFF M(8) +#define MUS_ON M(9) // Fillers to make layering more clear #define _______ KC_TRNS @@ -47,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QW] = { +[_QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, @@ -65,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_CM] = { +[_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, @@ -83,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DV] = { +[_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, @@ -101,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LW] = { +[_LOWER] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, @@ -119,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RS] = { +[_RAISE] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, @@ -130,16 +133,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff| | |Qwerty|Colemk|Dvorak| | | + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_AD] = { +[_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -150,87 +163,102 @@ const uint16_t PROGMEM fn_actions[] = { }; #ifdef AUDIO_ENABLE -float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 12}, - {440.0*pow(2.0,(64)/12.0), 8}, - {440.0*pow(2.0,(55)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, - {440.0*pow(2.0,(64)/12.0), 20} +float tone_startup[][2] = { + {440.0*pow(2.0,(31)/12.0), 12}, + {440.0*pow(2.0,(28)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, + {440.0*pow(2.0,(28)/12.0), 20} }; -float tone_qw[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, +float tone_qwerty[][2] = { + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16} + {440.0*pow(2.0,(31)/12.0), 16} }; -float tone_cm[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, +float tone_colemak[][2] = { + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(31)/12.0), 12}, {0, 4}, - {440.0*pow(2.0,(71)/12.0), 12} + {440.0*pow(2.0,(35)/12.0), 12} }; -float tone_dv[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, +float tone_dvorak[][2] = { + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 8}, + {440.0*pow(2.0,(31)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(69)/12.0), 8}, + {440.0*pow(2.0,(33)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 8} + {440.0*pow(2.0,(31)/12.0), 8} +}; + +float tone_music[][2] = { + {440.0*pow(2.0,(12)/12.0), 8}, + {440.0*pow(2.0,(14)/12.0), 8}, + {440.0*pow(2.0,(16)/12.0), 8}, + {440.0*pow(2.0,(17)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(21)/12.0), 8}, + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8} }; #endif +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_write_default_layer(default_layer); + default_layer_set(default_layer); +} + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function switch(id) { - case _QW: + case _QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qw, false, 0); + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); #endif - default_layer_set(1UL<<_QW); + persistant_default_layer_set(1UL<<_QWERTY); } break; - case _CM: + case _COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_cm, false, 0); + PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif - default_layer_set(1UL<<_CM); + persistant_default_layer_set(1UL<<_COLEMAK); } break; - case _DV: + case _DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dv, false, 0); + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); #endif - default_layer_set(1UL<<_DV); + persistant_default_layer_set(1UL<<_DVORAK); } break; - case _LW: + case _LOWER: if (record->event.pressed) { - layer_on(_LW); - update_tri_layer(_LW, _RS, _AD); + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { - layer_off(_LW); - update_tri_layer(_LW, _RS, _AD); + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case _RS: + case _RAISE: if (record->event.pressed) { - layer_on(_RS); - update_tri_layer(_LW, _RS, _AD); + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { - layer_off(_RS); - update_tri_layer(_LW, _RS, _AD); + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; case M_BL: @@ -254,7 +282,23 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - PLAY_NOTE_ARRAY(start_up, false, 0); + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + } + break; + case 8: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + layer_off(_MUSIC); + stop_all_notes(); + #endif + } + break; + case 9: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_music, false, 0); + layer_on(_MUSIC); #endif } break; @@ -262,9 +306,24 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; +uint8_t starting_note = 0x0C; +int offset = 7; + +void process_action_user(keyrecord_t *record) { + + if (IS_LAYER_ON(_MUSIC)) { + if (record->event.pressed) { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } else { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } + +} + void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - PLAY_NOTE_ARRAY(start_up, false, 0); + PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } diff --git a/quantum/audio.c b/quantum/audio.c index 90f3c5a13..6bd6532a3 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -350,7 +350,6 @@ if (audio_config.enable) { if (note) stop_all_notes(); - notes = true; notes_pointer = np; notes_length = n_length; @@ -375,6 +374,8 @@ if (audio_config.enable) { TIMSK3 |= _BV(OCIE3A); TCCR3A |= _BV(COM3A1); #endif + + notes = true; } } @@ -404,7 +405,6 @@ if (audio_config.enable && voices < 8) { if (notes) stop_all_notes(); - note = true; #ifdef PWM_AUDIO freq = freq / SAMPLE_RATE; #endif @@ -436,6 +436,7 @@ if (audio_config.enable && voices < 8) { TCCR3A |= _BV(COM3A1); #endif + note = true; } } \ No newline at end of file diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 02d3c74be..d38e6fdb2 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -33,14 +33,14 @@ extern keymap_config_t keymap_config; #include #ifdef AUDIO_ENABLE #include "audio.h" - #ifndef GOODBYE_TUNE - #define GOODBYE_TUNE { \ + #ifndef TONE_GOODBYE + #define TONE_GOODBYE { \ {440.0*pow(2.0,(31)/12.0), 8}, \ {440.0*pow(2.0,(24)/12.0), 8}, \ {440.0*pow(2.0,(19)/12.0), 12}, \ } #endif - float goodbye_tune[][2] = GOODBYE_TUNE; + float tone_goodbye[][2] = TONE_GOODBYE; #endif static action_t keycode_to_action(uint16_t keycode); @@ -191,7 +191,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(goodbye_tune, false, 0); + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); #endif _delay_ms(250); #ifdef ATREUS_ASTAR -- cgit v1.2.3-70-g09d2 From 5c98ad59606ee95b82c27bf2525383a9ec88542b Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 17 Apr 2016 20:14:37 -0500 Subject: Added extra songs, LED indicator notes --- keyboard/atomic/atomic.c | 31 +++- keyboard/atomic/keymaps/pvc/config.h | 10 +- keyboard/atomic/keymaps/pvc/keymap.c | 292 ++++++++++++++++++-------------- keyboard/atomic/keymaps/pvc/makefile.mk | 2 +- keyboard/planck/keymaps/pvc_planck.c | 24 +-- keyboard/retro_refit/retro_refit.c | 32 ++-- quantum/audio.c | 17 +- quantum/audio.h | 2 + quantum/keymap_common.c | 14 +- quantum/musical_notes.h | 5 + quantum/song_list.h | 104 ++++++++++-- tmk_core/common/command.c | 7 + 12 files changed, 346 insertions(+), 194 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/atomic/atomic.c b/keyboard/atomic/atomic.c index 30e812289..5e31264e6 100644 --- a/keyboard/atomic/atomic.c +++ b/keyboard/atomic/atomic.c @@ -2,12 +2,22 @@ __attribute__ ((weak)) void matrix_init_user(void) { - // leave these blank -} + // leave this function blank - it can be defined in a keymap file +}; __attribute__ ((weak)) void matrix_scan_user(void) { - // leave these blank + // leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) { + // leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file } void matrix_init_kb(void) { @@ -33,4 +43,17 @@ void matrix_scan_kb(void) { // runs every cycle (a lot) matrix_scan_user(); -} \ No newline at end of file +} + +void process_action_kb(keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + process_action_user(record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboard/atomic/keymaps/pvc/config.h b/keyboard/atomic/keymaps/pvc/config.h index 8449fa06d..cb0b78e44 100644 --- a/keyboard/atomic/keymaps/pvc/config.h +++ b/keyboard/atomic/keymaps/pvc/config.h @@ -41,7 +41,7 @@ along with this program. If not, see . * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * -*/ +*/ #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } #define ROWS (int []){ D0, D5, B5, B6, B3 } @@ -62,17 +62,17 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* +/* * Force NKRO * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the * makefile for this to work.) * * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) * until the next keyboard reset. * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is * fully operational during normal computer usage. * * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) @@ -90,7 +90,7 @@ along with this program. If not, see . * the keyboard. They are best used in combination with the HID Listen program, * found here: https://www.pjrc.com/teensy/hid_listen.html * - * The options below allow the magic key functionality to be changed. This is + * The options below allow the magic key functionality to be changed. This is * useful if your keyboard/keypad is missing keys and you want magic key support. * */ diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index aaef6b041..563519e4c 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -1,17 +1,18 @@ #include "atomic.h" #include "action_layer.h" +#include "led.h" #ifdef AUDIO_ENABLE #include "audio.h" #include "song_list.h" #endif - #define _QW 0 #define _LW 1 #define _RS 2 #define _AD 3 #define _FN 4 +#define _MUSIC 4 #define M_QW 0 #define M_LW 1 @@ -24,6 +25,24 @@ #define M_TU 8 #define M_TD 9 #define M_DF 10 +#define M_MUSIC_ON 11 +#define M_MUSIC_OFF 12 +#define M_AUDIO_ON 13 +#define M_AUDIO_OFF 14 + +#define TIMBR_1 M(M_T1) +#define TIMBR_2 M(M_T2) +#define TIMBR_3 M(M_T3) +#define TIMBR_4 M(M_T4) +#define TMPO_UP M(M_TU) +#define TMPO_DN M(M_TD) +#define TMPO_DF M(M_DF) + + +#define MUS_ON M(M_MUSIC_ON) +#define MUS_OFF M(M_MUSIC_OFF) +#define AUD_OFF M(M_AUDIO_OFF) +#define AUD_ON M(M_AUDIO_ON) #define _______ KC_TRNS @@ -70,135 +89,40 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, - { _______, M(M_T1), M(M_T2), M(M_T3), M(M_T4), M(M_TU), M(M_TD), M(M_DF), _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, [_AD] = { /* ADJUST */ + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, +[_MUSIC] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, -}; - - - -#ifdef AUDIO_ENABLE +} -float start_up[][2] = SONG(ODE_TO_JOY); - -float tone_lw[][2] = { - - Q__NOTE(_C4 ) , - Q__NOTE(_CS4 ) , - Q__NOTE(_D4 ) , - Q__NOTE(_DS4 ) , - Q__NOTE(_E4 ) , - Q__NOTE(_F4 ) , - Q__NOTE(_FS4 ) , - Q__NOTE(_G4 ) , - Q__NOTE(_GS4 ) , - Q__NOTE(_A4 ) , - Q__NOTE(_AS4 ) , - - Q__NOTE(_B1 ) , - - Q__NOTE(_C2 ) , - Q__NOTE(_CS2 ) , - Q__NOTE(_D2 ) , - Q__NOTE(_DS2 ) , - Q__NOTE(_E2 ) , - Q__NOTE(_F2 ) , - Q__NOTE(_FS2 ) , - Q__NOTE(_G2 ) , - Q__NOTE(_GS2 ) , - Q__NOTE(_A2 ) , - Q__NOTE(_AS2 ) , - Q__NOTE(_B2 ) , - Q__NOTE(_C3 ) , - Q__NOTE(_CS3 ) , - Q__NOTE(_D3 ) , - Q__NOTE(_DS3 ) , - Q__NOTE(_E3 ) , - Q__NOTE(_F3 ) , - Q__NOTE(_FS3 ) , - Q__NOTE(_G3 ) , - Q__NOTE(_GS3 ) , - Q__NOTE(_A3 ) , - Q__NOTE(_AS3 ) , - Q__NOTE(_B3 ) , - Q__NOTE(_C4 ) , - Q__NOTE(_CS4 ) , - Q__NOTE(_D4 ) , - Q__NOTE(_DS4 ) , - Q__NOTE(_E4 ) , - Q__NOTE(_F4 ) , - Q__NOTE(_FS4 ) , - Q__NOTE(_G4 ) , - Q__NOTE(_GS4 ) , - Q__NOTE(_A4 ) , - Q__NOTE(_AS4 ) , - Q__NOTE(_B4 ) , - Q__NOTE(_C5 ) , - Q__NOTE(_CS5 ) , - Q__NOTE(_D5 ) , - Q__NOTE(_DS5 ) , - Q__NOTE(_E5 ) , - Q__NOTE(_F5 ) , - Q__NOTE(_FS5 ) , - Q__NOTE(_G5 ) , - Q__NOTE(_GS5 ) , - Q__NOTE(_A5 ) , - Q__NOTE(_AS5 ) , - Q__NOTE(_B5 ) , - Q__NOTE(_C6 ) , - Q__NOTE(_CS6 ) , - Q__NOTE(_D6 ) , - Q__NOTE(_DS6 ) , - Q__NOTE(_E6 ) , - Q__NOTE(_F6 ) , - Q__NOTE(_FS6 ) , - Q__NOTE(_G6 ) , - Q__NOTE(_GS6 ) , - Q__NOTE(_A6 ) , - Q__NOTE(_AS6 ) , - Q__NOTE(_B6 ) , - Q__NOTE(_C7 ) , - Q__NOTE(_CS7 ) , - Q__NOTE(_D7 ) , - Q__NOTE(_DS7 ) , - Q__NOTE(_E7 ) , - Q__NOTE(_F7 ) , - Q__NOTE(_FS7 ) , - Q__NOTE(_G7 ) , - Q__NOTE(_GS7 ) , - Q__NOTE(_A7 ) , - Q__NOTE(_AS7 ) , - Q__NOTE(_B7 ) , - Q__NOTE(_C8 ) , - Q__NOTE(_CS8 ) , - Q__NOTE(_D8 ) , - Q__NOTE(_DS8 ) , - Q__NOTE(_E8 ) , - Q__NOTE(_F8 ) , - Q__NOTE(_FS8 ) , - Q__NOTE(_G8 ) , - Q__NOTE(_GS8 ) , - Q__NOTE(_A8 ) , - Q__NOTE(_AS8 ) , - Q__NOTE(_B8 ) , }; -float tone_rs[][2] = SONG(ROCK_A_BYE_BABY); +#ifdef AUDIO_ENABLE -void matrix_init_user(void) { - init_notes(); - PLAY_NOTE_ARRAY(start_up, false, STACCATO); - println("Matrix Init"); -} +float tone_my_startup[][2] = SONG(ODE_TO_JOY); +float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); +float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); +float tone_music_on[][2] = SONG(DOE_A_DEER); +float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); +float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); +float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); +float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); -#endif +#endif /* AUDIO_ENABLE */ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) @@ -242,9 +166,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case M_LW: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_lw, false, STACCATO); - #endif layer_on(_LW); update_tri_layer(_LW, _RS, _AD); } else { @@ -254,9 +175,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case M_RS: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_rs, false, LEGATO); - #endif layer_on(_RS); update_tri_layer(_LW, _RS, _AD); } else { @@ -306,9 +224,135 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; + case M_AUDIO_OFF: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + + case M_AUDIO_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); + #endif + } + break; + + case M_MUSIC_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); + layer_on(_MUSIC); + #endif + } + break; + + case M_MUSIC_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + layer_off(_MUSIC); + stop_all_notes(); + #endif + } + break; + default: break; } return MACRO_NONE; -}; \ No newline at end of file +}; + + +#ifdef AUDIO_ENABLE + +uint8_t starting_note = 0x0C; +int offset = 7; + + +void process_action_user(keyrecord_t *record) +{ + if (IS_LAYER_ON(_MUSIC)) + { + if (record->event.pressed) + { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } + else + { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } +} + + +void matrix_init_user(void) +{ + init_notes(); + play_startup_tone(); + println("Matrix Init"); +} + +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + static bool first_run = true; + + // Skip first execution to avoid beeps caused by LED states being detected on power-up + if (!first_run) + { + + if ((usb_led & (1< 1) { - layer_on(layer); - } else { - layer_off(layer); - } -} - - const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function @@ -161,13 +151,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { print("RS_DN"); layer_on(_RS); - tri_layer++; - update_tri_layer(_FN); + update_tri_layer(_RS, _LW, _FN); } else { print("RS_UP"); layer_off(_RS); - tri_layer--; - update_tri_layer(_FN); + update_tri_layer(_RS, _LW, _FN); phex(layer_state); } break; @@ -176,13 +164,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { print("LW_DN"); layer_on(_LW); - tri_layer++; - update_tri_layer(_FN); + update_tri_layer(_RS, _LW, _FN); } else { print("LW_UP"); layer_off(_LW); - tri_layer--; - update_tri_layer(_FN); + update_tri_layer(_RS, _LW, _FN); } break; diff --git a/keyboard/retro_refit/retro_refit.c b/keyboard/retro_refit/retro_refit.c index 0b13eb830..78b6edca7 100644 --- a/keyboard/retro_refit/retro_refit.c +++ b/keyboard/retro_refit/retro_refit.c @@ -2,39 +2,39 @@ __attribute__ ((weak)) void matrix_init_user(void) { - // leave this function blank - it can be defined in a keymap file + // leave this function blank - it can be defined in a keymap file }; __attribute__ ((weak)) void matrix_scan_user(void) { - // leave this function blank - it can be defined in a keymap file + // leave this function blank - it can be defined in a keymap file }; __attribute__ ((weak)) void led_set_user(uint8_t usb_led) { - // leave this function blank - it can be defined in a keymap file + // leave this function blank - it can be defined in a keymap file }; void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - // Disable status LED on KB, enable status LED on Teensy (KB_STATUS = !TEENSY_STATUS) - DDRD |= (1<<6); - PORTD |= (1<<6); - - matrix_init_user(); + // put your keyboard start-up code here + // runs once when the firmware starts up + + // Disable status LED on KB, enable status LED on Teensy (KB_STATUS = !TEENSY_STATUS) + DDRD |= (1<<6); + PORTD |= (1<<6); + + matrix_init_user(); }; void amatrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) - matrix_scan_user(); + matrix_scan_user(); }; void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here if (usb_led & (1< #ifdef AUDIO_ENABLE #include "audio.h" - - #ifndef TONE_GOODBYE - #define TONE_GOODBYE OLKB_GOODBYE - #endif /*! TONE_GOODBYE */ - - float tone_goodbye[][2] = SONG(TONE_GOODBYE); #endif /* AUDIO_ENABLE */ static action_t keycode_to_action(uint16_t keycode); @@ -47,7 +41,7 @@ static action_t keycode_to_action(uint16_t keycode); /* converts key to action */ action_t action_for_key(uint8_t layer, keypos_t key) { - // 16bit keycodes - important + // 16bit keycodes - important uint16_t keycode = keymap_key_to_keycode(layer, key); switch (keycode) { @@ -190,7 +184,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + play_goodbye_tone(); #endif _delay_ms(250); #ifdef ATREUS_ASTAR @@ -303,7 +297,7 @@ static action_t keycode_to_action(uint16_t keycode) /* translates key to keycode */ uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) { - // Read entire word (16bits) + // Read entire word (16bits) return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]); } @@ -315,7 +309,7 @@ action_t keymap_fn_to_action(uint16_t keycode) action_t keymap_func_to_action(uint16_t keycode) { - // For FUNC without 8bit limit + // For FUNC without 8bit limit return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) }; } diff --git a/quantum/musical_notes.h b/quantum/musical_notes.h index ccdc34f27..b08d16a6f 100644 --- a/quantum/musical_notes.h +++ b/quantum/musical_notes.h @@ -51,7 +51,10 @@ // Notes - # = Octave + #define NOTE_REST 0.00 + +/* These notes are currently bugged #define NOTE_C0 16.35 #define NOTE_CS0 17.32 #define NOTE_D0 18.35 @@ -75,6 +78,8 @@ #define NOTE_GS1 51.91 #define NOTE_A1 55.00 #define NOTE_AS1 58.27 +*/ + #define NOTE_B1 61.74 #define NOTE_C2 65.41 #define NOTE_CS2 69.30 diff --git a/quantum/song_list.h b/quantum/song_list.h index b626c3fa6..e992bd18a 100644 --- a/quantum/song_list.h +++ b/quantum/song_list.h @@ -4,20 +4,98 @@ #define SONG_LIST_H #define ODE_TO_JOY \ - Q__NOTE(_E4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_G4), \ - Q__NOTE(_G4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_D4), \ - Q__NOTE(_C4), Q__NOTE(_C4), Q__NOTE(_D4), Q__NOTE(_E4), \ - QD_NOTE(_E4), E__NOTE(_D4), H__NOTE(_D4), + Q__NOTE(_E4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_G4), \ + Q__NOTE(_G4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_D4), \ + Q__NOTE(_C4), Q__NOTE(_C4), Q__NOTE(_D4), Q__NOTE(_E4), \ + QD_NOTE(_E4), E__NOTE(_D4), H__NOTE(_D4), #define ROCK_A_BYE_BABY \ - QD_NOTE(_B4), E__NOTE(_D4), Q__NOTE(_B5), \ - H__NOTE(_A5), Q__NOTE(_G5), \ - QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \ - H__NOTE(_FS5), - -#define OLKB_GOODBYE \ - E__NOTE(_E7), \ - E__NOTE(_A6), \ - ED_NOTE(_E6), + QD_NOTE(_B4), E__NOTE(_D4), Q__NOTE(_B5), \ + H__NOTE(_A5), Q__NOTE(_G5), \ + QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \ + H__NOTE(_FS5), + +#define CLOSE_ENCOUNTERS_5_NOTE \ + Q__NOTE(_D5), \ + Q__NOTE(_E5), \ + Q__NOTE(_C5), \ + Q__NOTE(_C4), \ + Q__NOTE(_G4), + +#define DOE_A_DEER \ + QD_NOTE(_C4), E__NOTE(_D4), \ + QD_NOTE(_E4), E__NOTE(_C4), \ + Q__NOTE(_E4), Q__NOTE(_C4), \ + Q__NOTE(_E4), + +#define GOODBYE_SOUND \ + E__NOTE(_E7), \ + E__NOTE(_A6), \ + ED_NOTE(_E6), + +#define STARTUP_SOUND \ + ED_NOTE(_E7 ), \ + E__NOTE(_CS7), \ + E__NOTE(_E6 ), \ + E__NOTE(_A6 ), \ + M__NOTE(_CS7, 20), + +#define QWERTY_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + Q__NOTE(_E7 ), + +#define COLEMAK_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + ED_NOTE(_E7 ), \ + S__NOTE(_REST), \ + ED_NOTE(_GS7 ), + +#define DVORAK_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + E__NOTE(_E7 ), \ + S__NOTE(_REST), \ + E__NOTE(_FS7 ), \ + S__NOTE(_REST), \ + E__NOTE(_E7 ), + +#define MUSIC_SCALE_SOUND \ + E__NOTE(_A5 ), \ + E__NOTE(_B5 ), \ + E__NOTE(_CS6), \ + E__NOTE(_D6 ), \ + E__NOTE(_E6 ), \ + E__NOTE(_FS6), \ + E__NOTE(_GS6), \ + E__NOTE(_A6 ), + +#define CAPS_LOCK_ON_SOUND \ + E__NOTE(_A3), \ + E__NOTE(_B3), + +#define CAPS_LOCK_OFF_SOUND \ + E__NOTE(_B3), \ + E__NOTE(_A3), + +#define SCROLL_LOCK_ON_SOUND \ + E__NOTE(_D4), \ + E__NOTE(_E4), + +#define SCROLL_LOCK_OFF_SOUND \ + E__NOTE(_E4), \ + E__NOTE(_D4), + +#define NUM_LOCK_ON_SOUND \ + E__NOTE(_D5), \ + E__NOTE(_E5), + +#define NUM_LOCK_OFF_SOUND \ + E__NOTE(_E5), \ + E__NOTE(_D5), #endif diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index 7572b9597..f06abaf7f 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -49,6 +49,10 @@ along with this program. If not, see . # include "usbdrv.h" #endif +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif /* AUDIO_ENABLE */ + static bool command_common(uint8_t code); static void command_common_help(void); @@ -352,6 +356,9 @@ static bool command_common(uint8_t code) case MAGIC_KC(MAGIC_KEY_BOOTLOADER): clear_keyboard(); // clear to prevent stuck keys print("\n\nJumping to bootloader... "); + #ifdef AUDIO_ENABLE + play_goodbye_tone(); + #endif _delay_ms(1000); bootloader_jump(); // not return break; -- cgit v1.2.3-70-g09d2 From 6ae34f20aa04c3f4c274c268679674ba2288a1aa Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 17:01:04 -0400 Subject: added plover to default layout --- keyboard/planck/keymaps/default/keymap.c | 73 ++++++++++++++++++++++++----- keyboard/planck/keymaps/default/makefile.mk | 3 +- 2 files changed, 62 insertions(+), 14 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index aecddec4a..619112546 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -6,6 +6,9 @@ #ifdef AUDIO_ENABLE #include "audio.h" #endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -16,8 +19,9 @@ #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _ADJUST 5 -#define _MUSIC 6 +#define _MUSIC 5 +#define _PLOVER 6 +#define _ADJUST 16 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -32,6 +36,8 @@ #endif #define MUS_OFF M(8) #define MUS_ON M(9) +#define PLOVER M(10) +#define EXT_PLV M(11) // Fillers to make layering more clear #define _______ KC_TRNS @@ -129,6 +135,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Plover layer (http://openstenoproject.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | C | V | | N | M | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | @@ -142,20 +177,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } + + }; const uint16_t PROGMEM fn_actions[] = { @@ -302,6 +329,26 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #endif } break; + case 10: + if (record->event.pressed) { + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_write_keymap(keymap_config.raw); + } + break; + case 11: + if (record->event.pressed) { + layer_off(_PLOVER); + } + break; + } return MACRO_NONE; }; diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk index 8cbec4a1f..99fbfbd0b 100644 --- a/keyboard/planck/keymaps/default/makefile.mk +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -1 +1,2 @@ -AUDIO_ENABLE = yes \ No newline at end of file +AUDIO_ENABLE = yes +NKRO_ENABLE = yes \ No newline at end of file -- cgit v1.2.3-70-g09d2 From a2ee27715880616a15756e1b9f42183d9fb08051 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 17:03:43 -0400 Subject: updated comments about plover --- keyboard/planck/keymaps/default/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 619112546..25a0d78f3 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -168,9 +168,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | + * | | | |Mus on|Musoff| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' -- cgit v1.2.3-70-g09d2 From 462601f5e8de3476963c6fef44a88653e19fc3fd Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 21:25:48 -0400 Subject: breaking changes - restructuring audio.c a little --- keyboard/planck/keymaps/default/keymap.c | 24 +++---- keyboard/preonic/keymaps/default/keymap.c | 37 +++++----- quantum/audio.c | 108 +++++++++++++++++------------- quantum/audio.h | 1 - 4 files changed, 94 insertions(+), 76 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 25a0d78f3..ccf9c7ade 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} }, -/* Plover layer (http://openstenoproject.org) +/* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | * |------+------+------+------+------+-------------+------+------+------+------+------| @@ -225,16 +225,10 @@ float tone_dvorak[][2] = { {440.0*pow(2.0,(31)/12.0), 8} }; -float tone_music[][2] = { - {440.0*pow(2.0,(12)/12.0), 8}, - {440.0*pow(2.0,(14)/12.0), 8}, - {440.0*pow(2.0,(16)/12.0), 8}, - {440.0*pow(2.0,(17)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(21)/12.0), 8}, - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8} -}; + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); + #endif @@ -324,7 +318,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_music, false, 0); + PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif } @@ -374,3 +368,9 @@ void matrix_init_user(void) { PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } + +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 144e9c308..ecf3400f8 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -15,7 +15,7 @@ #define _LOWER 3 #define _RAISE 4 #define _MUSIC 5 -#define _ADJUST 6 +#define _ADJUST 16 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -142,6 +142,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | @@ -161,19 +172,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} } + }; const uint16_t PROGMEM fn_actions[] = { @@ -315,7 +316,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - init_notes(); PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif @@ -341,11 +341,12 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - init_notes(); - _delay_ms(10); - PLAY_NOTE_ARRAY(start_up, false, 0); - #endif + play_startup_tone(); +} + +void play_startup_tone() +{ + PLAY_NOTE_ARRAY(start_up, false, 0); } void play_goodbye_tone() diff --git a/quantum/audio.c b/quantum/audio.c index 8ea1bf6ff..bbdbc824c 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -74,7 +74,9 @@ float vibrato_counter = 0; float vibrato_strength = .5; float vibrato_rate = 0.125; -float polyphony_rate = .5; +float polyphony_rate = 0; + +bool inited = false; audio_config_t audio_config; @@ -170,7 +172,49 @@ void increase_tempo(uint8_t tempo_change) { } } +void audio_init() { + + /* check signature */ + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + audio_config.raw = eeconfig_read_audio(); + + #ifdef PWM_AUDIO + PLLFRQ = _BV(PDIV2); + PLLCSR = _BV(PLLE); + while(!(PLLCSR & _BV(PLOCK))); + PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ + + /* Init a fast PWM on Timer4 */ + TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ + TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ + OCR4A = 0; + + /* Enable the OC4A output */ + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = 0x0; // Options not needed + TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC + OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback + #else + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); + TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); + #endif + + inited = true; +} + void stop_all_notes() { + if (!inited) { + audio_init(); + } voices = 0; #ifdef PWM_AUDIO TIMSK3 &= ~_BV(OCIE3A); @@ -191,7 +235,9 @@ void stop_all_notes() { void stop_note(double freq) { if (note) { - cli(); + if (!inited) { + audio_init(); + } #ifdef PWM_AUDIO freq = freq / SAMPLE_RATE; #endif @@ -225,47 +271,9 @@ void stop_note(double freq) { volume = 0; note = false; } - sei(); } } -void init_notes() { - - /* check signature */ - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - audio_config.raw = eeconfig_read_audio(); - - #ifdef PWM_AUDIO - PLLFRQ = _BV(PDIV2); - PLLCSR = _BV(PLLE); - while(!(PLLCSR & _BV(PLOCK))); - PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ - - /* Init a fast PWM on Timer4 */ - TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ - TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ - OCR4A = 0; - - /* Enable the OC4A output */ - DDRC |= _BV(PORTC6); - - TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs - - TCCR3A = 0x0; // Options not needed - TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC - OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback - #else - DDRC |= _BV(PORTC6); - - TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs - - TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); - #endif -} - float mod(float a, int b) { float r = fmod(a, b); @@ -456,7 +464,10 @@ ISR(TIMER3_COMPA_vect) { void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest) { if (audio_config.enable) { - cli(); + TIMSK3 &= ~_BV(OCIE3A); + if (!inited) { + audio_init(); + } // Cancel note if a note is playing if (note) stop_all_notes(); @@ -485,7 +496,6 @@ if (audio_config.enable) { TIMSK3 |= _BV(OCIE3A); TCCR3A |= _BV(COM3A1); #endif - sei(); } } @@ -493,7 +503,10 @@ if (audio_config.enable) { void play_sample(uint8_t * s, uint16_t l, bool r) { if (audio_config.enable) { - + TIMSK3 &= ~_BV(OCIE3A); + if (!inited) { + audio_init(); + } stop_all_notes(); place_int = 0; sample = s; @@ -512,7 +525,10 @@ if (audio_config.enable) { void play_note(double freq, int vol) { if (audio_config.enable && voices < 8) { - cli(); + TIMSK3 &= ~_BV(OCIE3A); + if (!inited) { + audio_init(); + } // Cancel notes if notes are playing if (notes) stop_all_notes(); @@ -532,7 +548,6 @@ if (audio_config.enable && voices < 8) { TIMSK3 |= _BV(OCIE3A); TCCR3A |= _BV(COM3A1); #endif - sei(); } } @@ -545,8 +560,11 @@ void play_startup_tone() { } + + __attribute__ ((weak)) void play_goodbye_tone() { + } //------------------------------------------------------------------------------ diff --git a/quantum/audio.h b/quantum/audio.h index 85756af9d..0fe3eac9a 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -55,7 +55,6 @@ void play_sample(uint8_t * s, uint16_t l, bool r); void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(void); -void init_notes(void); void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest); #define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ -- cgit v1.2.3-70-g09d2 From de4690593cec908b19f97509f45c78534fd5440f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 01:08:17 -0400 Subject: fixed startup audio with a 500ms delay --- keyboard/planck/keymaps/default/keymap.c | 1 - keyboard/preonic/Makefile | 2 +- keyboard/preonic/keymaps/default/keymap.c | 43 ++-------- quantum/audio.c | 136 +++++++++++++++++------------- quantum/audio.h | 21 ++++- quantum/vibrato_lut.h | 82 +----------------- 6 files changed, 104 insertions(+), 181 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index ccf9c7ade..29a3ccf6a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -364,7 +364,6 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE - init_notes(); PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 3504e2720..c2648d229 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -133,7 +133,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) +CONSOLE_ENABLE = on # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index ecf3400f8..9ee803b06 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -3,6 +3,7 @@ #include "eeconfig.h" #ifdef AUDIO_ENABLE #include "audio.h" + #include "song_list.h" #endif // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -189,43 +190,10 @@ float start_up[][2] = { {440.0*pow(2.0,(26)/12.0), 8} }; -float tone_qwerty[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 16} -}; - -float tone_colemak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 12}, - {0, 4}, - {440.0*pow(2.0,(35)/12.0), 12} -}; +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_dvorak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(33)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8} -}; - -float tone_music[][2] = { - {440.0*pow(2.0,(12)/12.0), 8}, - {440.0*pow(2.0,(14)/12.0), 8}, - {440.0*pow(2.0,(16)/12.0), 8}, - {440.0*pow(2.0,(17)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(21)/12.0), 8}, - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8} -}; float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -341,12 +309,13 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { + // audio_init(); play_startup_tone(); } void play_startup_tone() { - PLAY_NOTE_ARRAY(start_up, false, 0); + PLAY_NOTE_ARRAY(music_scale, false, 0); } void play_goodbye_tone() diff --git a/quantum/audio.c b/quantum/audio.c index bbdbc824c..ab3444bc9 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -10,20 +10,23 @@ #include "eeconfig.h" -#include "vibrato_lut.h" +#ifdef VIBRATO_ENABLE + #include "vibrato_lut.h" +#endif #define PI 3.14159265 #define CPU_PRESCALER 8 -// Largely untested PWM audio mode (doesn't sound as good) -// #define PWM_AUDIO - #ifdef PWM_AUDIO #include "wave.h" #define SAMPLE_DIVIDER 39 #define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/2048) // Resistor value of 1/ (2 * PI * 10nF * (2000000 hertz / SAMPLE_DIVIDER / 10)) for 10nF cap + + float places[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + uint16_t place_int = 0; + bool repeat = true; #endif void delay_us(int count) { @@ -34,25 +37,21 @@ void delay_us(int count) { int voices = 0; int voice_place = 0; -double frequency = 0; +float frequency = 0; int volume = 0; long position = 0; -double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +float frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; bool sliding = false; int max = 0xFF; float sum = 0; -int value = 128; float place = 0; -float places[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -uint16_t place_int = 0; -bool repeat = true; uint8_t * sample; uint16_t sample_length = 0; -double freq = 0; +// float freq = 0; bool notes = false; bool note = false; @@ -62,7 +61,7 @@ float note_tempo = TEMPO_DEFAULT; float note_timbre = TIMBRE_DEFAULT; uint16_t note_position = 0; float (* notes_pointer)[][2]; -uint8_t notes_count; +uint16_t notes_count; bool notes_repeat; float notes_rest; bool note_resting = false; @@ -70,9 +69,11 @@ bool note_resting = false; uint8_t current_note = 0; uint8_t rest_counter = 0; +#ifdef VIBRATO_ENABLE float vibrato_counter = 0; float vibrato_strength = .5; float vibrato_rate = 0.125; +#endif float polyphony_rate = 0; @@ -96,6 +97,7 @@ void audio_off(void) { eeconfig_write_audio(audio_config.raw); } +#ifdef VIBRATO_ENABLE // Vibrato rate functions void set_vibrato_rate(float rate) { @@ -126,6 +128,8 @@ void decrease_vibrato_strength(float change) { #endif +#endif + // Polyphony functions void set_polyphony_rate(float rate) { @@ -209,6 +213,7 @@ void audio_init() { #endif inited = true; + _delay_ms(500); } void stop_all_notes() { @@ -233,7 +238,7 @@ void stop_all_notes() { } } -void stop_note(double freq) { +void stop_note(float freq) { if (note) { if (!inited) { audio_init(); @@ -274,6 +279,8 @@ void stop_note(double freq) { } } +#ifdef VIBRATO_ENABLE + float mod(float a, int b) { float r = fmod(a, b); @@ -290,6 +297,8 @@ float vibrato(float average_freq) { return vibrated_freq; } +#endif + ISR(TIMER3_COMPA_vect) { if (note) { #ifdef PWM_AUDIO @@ -341,6 +350,7 @@ ISR(TIMER3_COMPA_vect) { } #else if (voices > 0) { + float freq; if (polyphony_rate > 0) { if (voices > 1) { voice_place %= voices; @@ -349,9 +359,13 @@ ISR(TIMER3_COMPA_vect) { place = 0.0; } } + #ifdef VIBRATO_ENABLE if (vibrato_strength > 0) { freq = vibrato(frequencies[voice_place]); } else { + #else + { + #endif freq = frequencies[voice_place]; } } else { @@ -363,9 +377,14 @@ ISR(TIMER3_COMPA_vect) { frequency = frequencies[voices - 1]; } + + #ifdef VIBRATO_ENABLE if (vibrato_strength > 0) { freq = vibrato(frequency); } else { + #else + { + #endif freq = frequency; } } @@ -398,9 +417,13 @@ ISR(TIMER3_COMPA_vect) { if (note_frequency > 0) { float freq; + #ifdef VIBRATO_ENABLE if (vibrato_strength > 0) { freq = vibrato(note_frequency); } else { + #else + { + #endif freq = note_frequency; } @@ -461,13 +484,45 @@ ISR(TIMER3_COMPA_vect) { } } -void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest) { +void play_note(float freq, int vol) { -if (audio_config.enable) { + if (!inited) { + audio_init(); + } + +if (audio_config.enable && voices < 8) { TIMSK3 &= ~_BV(OCIE3A); + // Cancel notes if notes are playing + if (notes) + stop_all_notes(); + note = true; + #ifdef PWM_AUDIO + freq = freq / SAMPLE_RATE; + #endif + if (freq > 0) { + frequencies[voices] = freq; + volumes[voices] = vol; + voices++; + } + + #ifdef PWM_AUDIO + TIMSK3 |= _BV(OCIE3A); + #else + TIMSK3 |= _BV(OCIE3A); + TCCR3A |= _BV(COM3A1); + #endif +} + +} + +void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat, float n_rest) { + if (!inited) { audio_init(); } + +if (audio_config.enable) { + TIMSK3 &= ~_BV(OCIE3A); // Cancel note if a note is playing if (note) stop_all_notes(); @@ -500,57 +555,24 @@ if (audio_config.enable) { } +#ifdef PWM_AUDIO void play_sample(uint8_t * s, uint16_t l, bool r) { - -if (audio_config.enable) { - TIMSK3 &= ~_BV(OCIE3A); if (!inited) { audio_init(); } - stop_all_notes(); - place_int = 0; - sample = s; - sample_length = l; - repeat = r; - #ifdef PWM_AUDIO - TIMSK3 |= _BV(OCIE3A); - #else - #endif - -} - -} - -void play_note(double freq, int vol) { - -if (audio_config.enable && voices < 8) { - TIMSK3 &= ~_BV(OCIE3A); - if (!inited) { - audio_init(); - } - // Cancel notes if notes are playing - if (notes) + if (audio_config.enable) { + TIMSK3 &= ~_BV(OCIE3A); stop_all_notes(); - note = true; - #ifdef PWM_AUDIO - freq = freq / SAMPLE_RATE; - #endif - if (freq > 0) { - frequencies[voices] = freq; - volumes[voices] = vol; - voices++; - } + place_int = 0; + sample = s; + sample_length = l; + repeat = r; - #ifdef PWM_AUDIO TIMSK3 |= _BV(OCIE3A); - #else - TIMSK3 |= _BV(OCIE3A); - TCCR3A |= _BV(COM3A1); - #endif -} - + } } +#endif //------------------------------------------------------------------------------ // Override these functions in your keymap file to play different tunes on diff --git a/quantum/audio.h b/quantum/audio.h index 0fe3eac9a..2d4d303ce 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -8,6 +8,11 @@ #ifndef AUDIO_H #define AUDIO_H +// Largely untested PWM audio mode (doesn't sound as good) +// #define PWM_AUDIO + +// #define VIBRATO_ENABLE + // Enable vibrato strength/amplitude - slows down ISR too much // #define VIBRATO_STRENGTH_ENABLE @@ -25,6 +30,8 @@ void audio_off(void); // Vibrato rate functions +#ifdef VIBRATO_ENABLE + void set_vibrato_rate(float rate); void increase_vibrato_rate(float change); void decrease_vibrato_rate(float change); @@ -37,6 +44,8 @@ void decrease_vibrato_strength(float change); #endif +#endif + // Polyphony functions void set_polyphony_rate(float rate); @@ -51,11 +60,15 @@ void set_tempo(float tempo); void increase_tempo(uint8_t tempo_change); void decrease_tempo(uint8_t tempo_change); +void audio_init(); + +#ifdef PWM_AUDIO void play_sample(uint8_t * s, uint16_t l, bool r); -void play_note(double freq, int vol); -void stop_note(double freq); +#endif +void play_note(float freq, int vol); +void stop_note(float freq); void stop_all_notes(void); -void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest); +void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat, float n_rest); #define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ @@ -66,7 +79,7 @@ void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest); // These macros are used to allow play_notes to play an array of indeterminate // length. This works around the limitation of C's sizeof operation on pointers. // The global float array for the song must be used here. -#define NOTE_ARRAY_SIZE(x) ((int)(sizeof(x) / (sizeof(x[0])))) +#define NOTE_ARRAY_SIZE(x) ((int16_t)(sizeof(x) / (sizeof(x[0])))) #define PLAY_NOTE_ARRAY(note_array, note_repeat, note_rest_style) play_notes(¬e_array, NOTE_ARRAY_SIZE((note_array)), (note_repeat), (note_rest_style)); void play_goodbye_tone(void); diff --git a/quantum/vibrato_lut.h b/quantum/vibrato_lut.h index 4c267a626..a2b1f3e5c 100644 --- a/quantum/vibrato_lut.h +++ b/quantum/vibrato_lut.h @@ -2,107 +2,27 @@ #include #include -#define VIBRATO_LUT_LENGTH 100 +#define VIBRATO_LUT_LENGTH 20 const float VIBRATO_LUT[VIBRATO_LUT_LENGTH] = { \ -1.00045346811453, -1.00090535101508, -1.00135386178926, -1.00179722447259, 1.00223368114872, -1.0026614990145, -1.00307897737994, -1.00348445457284, -1.00387631471807, 1.00425299436105, -1.00461298890553, -1.00495485883603, -1.00527723569589, -1.00557882779254, 1.00585842560279, -1.00611490685176, -1.00634724124066, -1.00655449479987, -1.00673583384565, 1.00689052852052, -1.00701795589922, -1.00711760264454, -1.0071890671992, -1.00723206150266, 1.0072464122237, -1.00723206150266, -1.0071890671992, -1.00711760264454, -1.00701795589922, 1.00689052852052, -1.00673583384565, -1.00655449479987, -1.00634724124066, -1.00611490685176, 1.00585842560279, -1.00557882779254, -1.00527723569589, -1.00495485883603, -1.00461298890553, 1.00425299436105, -1.00387631471807, -1.00348445457284, -1.00307897737994, -1.0026614990145, 1.00223368114872, -1.00179722447259, -1.00135386178926, -1.00090535101508, -1.00045346811453, 1, -0.999546737425598, -0.999095467903976, -0.998647968674285, -0.998205999748565, 0.99777129706302, -0.997345565759612, -0.996930473622346, -0.996527644691494, -0.996138653077835, 0.99576501699778, -0.995408193048995, -0.995069570744927, -0.994750467325326, -0.994452122858643, 0.994175695650927, -0.993922257974591, -0.99369279212925, -0.993488186845591, -0.993309234042139, 0.993156625943589, -0.993030952568311, -0.99293269959154, -0.992862246589715, -0.992819865670409, 0.992805720491269, -0.992819865670409, -0.992862246589715, -0.99293269959154, -0.993030952568311, 0.993156625943589, -0.993309234042139, -0.993488186845591, -0.99369279212925, -0.993922257974591, 0.994175695650927, -0.994452122858643, -0.994750467325326, -0.995069570744927, -0.995408193048995, 0.99576501699778, -0.996138653077835, -0.996527644691494, -0.996930473622346, -0.997345565759612, 0.99777129706302, -0.998205999748565, -0.998647968674285, -0.999095467903976, -0.999546737425598, 1 }; \ No newline at end of file -- cgit v1.2.3-70-g09d2 From b8c932f9aa3ad0a255c00dc9d2acf2b19c102fee Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 18:39:17 -0400 Subject: makes the plover keymap correct --- keyboard/planck/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 29a3ccf6a..5f8a86c50 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -153,7 +153,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | S | K | W | R | * | * | R | B | G | S | Z | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Exit | | | C | V | | N | M | | | | + * | Exit | | | A | O | | E | U | | | | * `-----------------------------------------------------------------------------------' */ -- cgit v1.2.3-70-g09d2 From 7d1a683607a95aa9715b5decb1013f3e644b96c9 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 22:28:47 -0400 Subject: sounds for plover layout --- keyboard/planck/keymaps/default/keymap.c | 39 ++++++++++---------------------- quantum/song_list.h | 16 +++++++++++++ 2 files changed, 28 insertions(+), 27 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 5f8a86c50..3239dda71 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -198,33 +198,11 @@ float tone_startup[][2] = { {440.0*pow(2.0,(28)/12.0), 20} }; -float tone_qwerty[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 16} -}; - -float tone_colemak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 12}, - {0, 4}, - {440.0*pow(2.0,(35)/12.0), 12} -}; - -float tone_dvorak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(33)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8} -}; - +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); @@ -325,6 +303,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case 10: if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); @@ -339,6 +320,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case 11: if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif layer_off(_PLOVER); } break; @@ -364,6 +348,7 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE + _delay_ms(10); // stops the tick PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } diff --git a/quantum/song_list.h b/quantum/song_list.h index e992bd18a..fc6fcdeef 100644 --- a/quantum/song_list.h +++ b/quantum/song_list.h @@ -64,6 +64,22 @@ S__NOTE(_REST), \ E__NOTE(_E7 ), +#define PLOVER_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + ED_NOTE(_E7 ), \ + S__NOTE(_REST), \ + ED_NOTE(_A7 ), + +#define PLOVER_GOODBYE_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + ED_NOTE(_A7 ), \ + S__NOTE(_REST), \ + ED_NOTE(_E7 ), + #define MUSIC_SCALE_SOUND \ E__NOTE(_A5 ), \ E__NOTE(_B5 ), \ -- cgit v1.2.3-70-g09d2 From 620ac4b260fa663d12b11a0b15ac50379523c125 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Thu, 21 Apr 2016 19:35:18 -0700 Subject: Update functions used to write to EEPROM --- keyboard/atomic/keymaps/pvc/keymap.c | 2 +- keyboard/hhkb/rn42/rn42_task.c | 2 +- keyboard/planck/keymaps/default/keymap.c | 4 +-- keyboard/preonic/keymaps/default/keymap.c | 2 +- quantum/audio/audio.c | 6 ++--- quantum/keymap_common.c | 2 +- quantum/rgblight.c | 20 +++++++-------- quantum/rgblight.h | 4 +-- tmk_core/common/avr/eeconfig.c | 30 +++++++++++----------- tmk_core/common/backlight.c | 10 ++++---- tmk_core/common/bootmagic.c | 6 ++--- tmk_core/common/eeconfig.h | 10 ++++---- .../lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c | 4 +-- .../lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c | 2 +- 14 files changed, 52 insertions(+), 52 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 36098f1eb..95a26c5b4 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -233,7 +233,7 @@ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t l void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } diff --git a/keyboard/hhkb/rn42/rn42_task.c b/keyboard/hhkb/rn42/rn42_task.c index 5107fef48..84001b3f1 100644 --- a/keyboard/hhkb/rn42/rn42_task.c +++ b/keyboard/hhkb/rn42/rn42_task.c @@ -219,7 +219,7 @@ static void store_link(uint8_t *eeaddr) xprintf("%s(%d)\r\n", s, strlen(s)); if (strlen(s) == 12) { for (int i = 0; i < 12; i++) { - eeprom_write_byte(eeaddr+i, *(s+i)); + eeprom_update_byte(eeaddr+i, *(s+i)); dprintf("%c ", *(s+i)); } dprint("\r\n"); diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 3239dda71..19d24f6a0 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -211,7 +211,7 @@ float goodbye[][2] = SONG(GOODBYE_SOUND); void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } @@ -315,7 +315,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_write_keymap(keymap_config.raw); + eeconfig_update_keymap(keymap_config.raw); } break; case 11: diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index f0d5ed603..3a6dfa31a 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -200,7 +200,7 @@ float goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 3225557ba..e85370d95 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -85,17 +85,17 @@ uint16_t envelope_index = 0; void audio_toggle(void) { audio_config.enable ^= 1; - eeconfig_write_audio(audio_config.raw); + eeconfig_update_audio(audio_config.raw); } void audio_on(void) { audio_config.enable = 1; - eeconfig_write_audio(audio_config.raw); + eeconfig_update_audio(audio_config.raw); } void audio_off(void) { audio_config.enable = 0; - eeconfig_write_audio(audio_config.raw); + eeconfig_update_audio(audio_config.raw); } #ifdef VIBRATO_ENABLE diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 43debf4ef..4b4bd6210 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -245,7 +245,7 @@ static action_t keycode_to_action(uint16_t keycode) keymap_config.swap_lalt_lgui = 0; keymap_config.swap_ralt_rgui = 0; } - eeconfig_write_keymap(keymap_config.raw); + eeconfig_update_keymap(keymap_config.raw); break; case 0x5100 ... 0x5FFF: ; // Layer movement shortcuts diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 2215cf5cd..5623c65de 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -107,17 +107,17 @@ void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1) { uint32_t eeconfig_read_rgblight(void) { return eeprom_read_dword(EECONFIG_RGBLIGHT); } -void eeconfig_write_rgblight(uint32_t val) { - eeprom_write_dword(EECONFIG_RGBLIGHT, val); +void eeconfig_update_rgblight(uint32_t val) { + eeprom_update_dword(EECONFIG_RGBLIGHT, val); } -void eeconfig_write_rgblight_default(void) { - dprintf("eeconfig_write_rgblight_default\n"); +void eeconfig_update_rgblight_default(void) { + dprintf("eeconfig_update_rgblight_default\n"); rgblight_config.enable = 1; rgblight_config.mode = 1; rgblight_config.hue = 200; rgblight_config.sat = 204; rgblight_config.val = 204; - eeconfig_write_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(rgblight_config.raw); } void eeconfig_debug_rgblight(void) { dprintf("rgblight_config eprom\n"); @@ -136,12 +136,12 @@ void rgblight_init(void) { if (!eeconfig_is_enabled()) { dprintf("rgblight_init eeconfig is not enabled.\n"); eeconfig_init(); - eeconfig_write_rgblight_default(); + eeconfig_update_rgblight_default(); } rgblight_config.raw = eeconfig_read_rgblight(); if (!rgblight_config.mode) { dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n"); - eeconfig_write_rgblight_default(); + eeconfig_update_rgblight_default(); rgblight_config.raw = eeconfig_read_rgblight(); } eeconfig_debug_rgblight(); // display current eeprom values @@ -189,7 +189,7 @@ void rgblight_mode(uint8_t mode) { } else { rgblight_config.mode = mode; } - eeconfig_write_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight mode: %u\n", rgblight_config.mode); if (rgblight_config.mode == 1) { rgblight_timer_disable(); @@ -206,7 +206,7 @@ void rgblight_mode(uint8_t mode) { void rgblight_toggle(void) { rgblight_config.enable ^= 1; - eeconfig_write_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight toggle: rgblight_config.enable = %u\n", rgblight_config.enable); if (rgblight_config.enable) { rgblight_mode(rgblight_config.mode); @@ -299,7 +299,7 @@ void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val){ rgblight_config.hue = hue; rgblight_config.sat = sat; rgblight_config.val = val; - eeconfig_write_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); } } diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 9e1562328..37e207578 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -66,8 +66,8 @@ void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); #define EECONFIG_RGBLIGHT (uint8_t *)7 uint32_t eeconfig_read_rgblight(void); -void eeconfig_write_rgblight(uint32_t val); -void eeconfig_write_rgblight_default(void); +void eeconfig_update_rgblight(uint32_t val); +void eeconfig_update_rgblight_default(void); void eeconfig_debug_rgblight(void); void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1); diff --git a/tmk_core/common/avr/eeconfig.c b/tmk_core/common/avr/eeconfig.c index 25bb9e849..c5391f5cf 100644 --- a/tmk_core/common/avr/eeconfig.c +++ b/tmk_core/common/avr/eeconfig.c @@ -5,27 +5,27 @@ void eeconfig_init(void) { - eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); - eeprom_write_byte(EECONFIG_DEBUG, 0); - eeprom_write_byte(EECONFIG_DEFAULT_LAYER, 0); - eeprom_write_byte(EECONFIG_KEYMAP, 0); - eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0); + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); + eeprom_update_byte(EECONFIG_DEBUG, 0); + eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); + eeprom_update_byte(EECONFIG_KEYMAP, 0); + eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); #ifdef BACKLIGHT_ENABLE - eeprom_write_byte(EECONFIG_BACKLIGHT, 0); + eeprom_update_byte(EECONFIG_BACKLIGHT, 0); #endif #ifdef AUDIO_ENABLE - eeprom_write_byte(EECONFIG_AUDIO, 0xFF); // On by default + eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default #endif } void eeconfig_enable(void) { - eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); } void eeconfig_disable(void) { - eeprom_write_word(EECONFIG_MAGIC, 0xFFFF); + eeprom_update_word(EECONFIG_MAGIC, 0xFFFF); } bool eeconfig_is_enabled(void) @@ -34,20 +34,20 @@ bool eeconfig_is_enabled(void) } uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); } -void eeconfig_write_debug(uint8_t val) { eeprom_write_byte(EECONFIG_DEBUG, val); } +void eeconfig_update_debug(uint8_t val) { eeprom_update_byte(EECONFIG_DEBUG, val); } uint8_t eeconfig_read_default_layer(void) { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); } -void eeconfig_write_default_layer(uint8_t val) { eeprom_write_byte(EECONFIG_DEFAULT_LAYER, val); } +void eeconfig_update_default_layer(uint8_t val) { eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); } uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMAP); } -void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val); } +void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } #ifdef BACKLIGHT_ENABLE uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); } -void eeconfig_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); } +void eeconfig_update_backlight(uint8_t val) { eeprom_update_byte(EECONFIG_BACKLIGHT, val); } #endif #ifdef AUDIO_ENABLE uint8_t eeconfig_read_audio(void) { return eeprom_read_byte(EECONFIG_AUDIO); } -void eeconfig_write_audio(uint8_t val) { eeprom_write_byte(EECONFIG_AUDIO, val); } -#endif \ No newline at end of file +void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); } +#endif diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c index 558ad9b01..2f6fc1cd6 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c @@ -37,7 +37,7 @@ void backlight_increase(void) { backlight_config.level++; backlight_config.enable = 1; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); } dprintf("backlight increase: %u\n", backlight_config.level); backlight_set(backlight_config.level); @@ -49,7 +49,7 @@ void backlight_decrease(void) { backlight_config.level--; backlight_config.enable = !!backlight_config.level; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); } dprintf("backlight decrease: %u\n", backlight_config.level); backlight_set(backlight_config.level); @@ -58,7 +58,7 @@ void backlight_decrease(void) void backlight_toggle(void) { backlight_config.enable ^= 1; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight toggle: %u\n", backlight_config.enable); backlight_set(backlight_config.enable ? backlight_config.level : 0); } @@ -71,7 +71,7 @@ void backlight_step(void) backlight_config.level = 0; } backlight_config.enable = !!backlight_config.level; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight step: %u\n", backlight_config.level); backlight_set(backlight_config.level); } @@ -80,6 +80,6 @@ void backlight_level(uint8_t level) { backlight_config.level ^= level; backlight_config.enable = !!backlight_config.level; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); backlight_set(backlight_config.level); } diff --git a/tmk_core/common/bootmagic.c b/tmk_core/common/bootmagic.c index b002a5856..2c1b1adfc 100644 --- a/tmk_core/common/bootmagic.c +++ b/tmk_core/common/bootmagic.c @@ -52,7 +52,7 @@ void bootmagic(void) debug_config.enable = !debug_config.enable; } } - eeconfig_write_debug(debug_config.raw); + eeconfig_update_debug(debug_config.raw); /* keymap config */ keymap_config.raw = eeconfig_read_keymap(); @@ -80,7 +80,7 @@ void bootmagic(void) if (bootmagic_scan_keycode(BOOTMAGIC_HOST_NKRO)) { keymap_config.nkro = !keymap_config.nkro; } - eeconfig_write_keymap(keymap_config.raw); + eeconfig_update_keymap(keymap_config.raw); #ifdef NKRO_ENABLE keyboard_nkro = keymap_config.nkro; @@ -97,7 +97,7 @@ void bootmagic(void) if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_6)) { default_layer |= (1<<6); } if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_7)) { default_layer |= (1<<7); } if (default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set((uint32_t)default_layer); } else { default_layer = eeconfig_read_default_layer(); diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index ddefca134..ca47e0d2f 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h @@ -60,22 +60,22 @@ void eeconfig_enable(void); void eeconfig_disable(void); uint8_t eeconfig_read_debug(void); -void eeconfig_write_debug(uint8_t val); +void eeconfig_update_debug(uint8_t val); uint8_t eeconfig_read_default_layer(void); -void eeconfig_write_default_layer(uint8_t val); +void eeconfig_update_default_layer(uint8_t val); uint8_t eeconfig_read_keymap(void); -void eeconfig_write_keymap(uint8_t val); +void eeconfig_update_keymap(uint8_t val); #ifdef BACKLIGHT_ENABLE uint8_t eeconfig_read_backlight(void); -void eeconfig_write_backlight(uint8_t val); +void eeconfig_update_backlight(uint8_t val); #endif #ifdef AUDIO_ENABLE uint8_t eeconfig_read_audio(void); -void eeconfig_write_audio(uint8_t val); +void eeconfig_update_audio(uint8_t val); #endif #endif diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c index f66a483e6..58bb33892 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c @@ -327,7 +327,7 @@ static void ReadWriteMemoryBlock(const uint8_t Command) else { /* Write the next EEPROM byte from the endpoint */ - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); + eeprom_update_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); /* Increment the address counter after use */ CurrAddress += 2; @@ -581,7 +581,7 @@ static void CDC_Task(void) else if (Command == AVR109_COMMAND_WriteEEPROM) { /* Read the byte from the endpoint and write it to the EEPROM */ - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); + eeprom_update_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); /* Increment the address after use */ CurrAddress += 2; diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c index 0385bfc49..00e673268 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c @@ -370,7 +370,7 @@ void EVENT_USB_Device_ControlRequest(void) } /* Read the byte from the USB interface and write to to the EEPROM */ - eeprom_write_byte((uint8_t*)StartAddr, Endpoint_Read_8()); + eeprom_update_byte((uint8_t*)StartAddr, Endpoint_Read_8()); /* Adjust counters */ StartAddr++; -- cgit v1.2.3-70-g09d2 From def68535322956f4d3fd8e96c565ef75f35b4da6 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 23 Apr 2016 23:30:09 -0400 Subject: adds voice iteration to planck default --- keyboard/planck/keymaps/default/keymap.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 19d24f6a0..92396d0ce 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -36,8 +36,10 @@ extern keymap_config_t keymap_config; #endif #define MUS_OFF M(8) #define MUS_ON M(9) -#define PLOVER M(10) -#define EXT_PLV M(11) +#define VC_IN M(10) +#define VC_DE M(11) +#define PLOVER M(12) +#define EXT_PLV M(13) // Fillers to make layering more clear #define _______ KC_TRNS @@ -178,7 +180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -302,6 +304,22 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 12: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_plover, false, 0); @@ -309,6 +327,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); + layer_off(_MUSIC); + stop_all_notes(); layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); @@ -318,7 +338,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) eeconfig_update_keymap(keymap_config.raw); } break; - case 11: + case 13: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); -- cgit v1.2.3-70-g09d2 From 130a485bf79c4d7b700793a3f21e8527f07e0bb3 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 00:15:21 -0400 Subject: updates planck default keymap --- keyboard/planck/keymaps/default/keymap.c | 37 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 19 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 92396d0ce..fa9c3915a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -30,10 +30,8 @@ extern keymap_config_t keymap_config; #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#ifdef AUDIO_ENABLE - #define AUD_OFF M(6) - #define AUD_ON M(7) -#endif +#define AUD_OFF M(6) +#define AUD_ON M(7) #define MUS_OFF M(8) #define MUS_ON M(9) #define VC_IN M(10) @@ -172,7 +170,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | |Mus on|Musoff| | | | | | | | + * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -208,7 +206,6 @@ float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); - #endif @@ -351,6 +348,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // stops the tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} + uint8_t starting_note = 0x0C; int offset = 7; @@ -365,16 +376,4 @@ void process_action_user(keyrecord_t *record) { } } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - _delay_ms(10); // stops the tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif -} - -void play_goodbye_tone() -{ - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); -} +#endif -- cgit v1.2.3-70-g09d2 From 0889cc0d9adc1a69136acd28e880089c05a75778 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 01:00:34 -0400 Subject: removes old .hex files --- keyboard/planck/planck_pcb.hex | 1544 ------------------------ keyboard/planck/planck_with_bootloader.hex | 1796 ---------------------------- keyboard/preonic/preonic_music.hex | 1713 -------------------------- keyboard/preonic/preonic_pcb.hex | 1702 -------------------------- keyboard/preonic/preonic_pcb_silent.hex | 1189 ------------------ 5 files changed, 7944 deletions(-) delete mode 100644 keyboard/planck/planck_pcb.hex delete mode 100755 keyboard/planck/planck_with_bootloader.hex delete mode 100644 keyboard/preonic/preonic_music.hex delete mode 100644 keyboard/preonic/preonic_pcb.hex delete mode 100644 keyboard/preonic/preonic_pcb_silent.hex (limited to 'keyboard/planck') diff --git a/keyboard/planck/planck_pcb.hex b/keyboard/planck/planck_pcb.hex deleted file mode 100644 index 11f523c05..000000000 --- a/keyboard/planck/planck_pcb.hex +++ /dev/null @@ -1,1544 +0,0 @@ -:100000000C949D020C94E1020C94E1020C94E10228 -:100010000C94E1020C94E1020C94E1020C94E102D4 -:100020000C94E1020C94E1020C941C120C94EE125C -:100030000C948D240C94E1020C94E1020C94E102E6 -:100040000C94E1020C94E1020C94E1020C94E102A4 -:100050000C94E1020C94FA240C94E1020C94E10259 -:100060000C94E1020C94E1020C94E1020C94E10284 -:100070000C94E1020C94E1020C94E1020C94E10274 -:100080000C94860A0C94E1020C94E1020C94E102B7 -:100090000C94E1020C94E1020C94E1020C94E10254 -:1000A0000C94E1020C94E1020C94E10207634236E5 -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F0000000000000021 -:10013000F1A4F1A3018C028C048C2B0014001A0092 -:100140000800150017001C0018000C001200130016 -:100150002A00290004001600070009000A000B000D -:100160000D000E000F0033003400E1001D001B00E5 -:100170000600190005001100100036003700380095 -:1001800028000030E000E200E30002202C002C00F8 -:1001900001205000510052004F002B0014001A00A3 -:1001A000090013000A000D000F0018001C003300A6 -:1001B0002A002900040015001600170007000B0094 -:1001C000110008000C0012003400E1001D001B00AB -:1001D0000600190005000E00100036003700380038 -:1001E00028000030E000E200E30002202C002C0098 -:1001F00001205000510052004F002B003400360007 -:10020000370013001C0009000A00060015000F004B -:100210002A00290004001200080018000C00070042 -:100220000B001700110016003800E1003300140025 -:100230000D000E001B00050010001A0019001D0023 -:1002400028000030E000E200E30002202C002C0037 -:1002500001205000510052004F0035021E021F02C3 -:100260002002210222022302240225022602270262 -:100270002A0001003A003B003C003D003E003F00E8 -:100280002D022E022F0230023102010040004100F7 -:100290004200430044004500032004200520005094 -:1002A0000100010001000100010002200100010025 -:1002B0000100AB00AA00A900AE0035001E001F001F -:1002C0002000210022002300240025002600270012 -:1002D0002A0001003A003B003C003D003E003F0088 -:1002E0002D002E002F0030003100010040004100A1 -:1002F0004200430044004500032004200520005034 -:1003000001000100010001000100010001000100E5 -:100310000120AB00AA00A900AE0028035400680029 -:100320006500200050006C0061006E0063006B00EF -:1003300020004B006500790062006F0061007200D0 -:10034000640000002C034F007200740068006F000E -:100350006C0069006E0065006100720020004B00B7 -:100360006500790062006F00610072006400730034 -:100370000000040309040902D000060100A03209AC -:100380000400000103010100092111010001223FC5 -:10039000000705810308000A0904010001030102A6 -:1003A00000092111010001224D0007058203080008 -:1003B0000A090402000103000000092111010001E3 -:1003C0002236000705830308000A0904030002031C -:1003D000000000092111010001222000070584030B -:1003E00020000107050403200001090404000001A6 -:1003F00001000009240100010900010509040500AC -:10040000020103000007240100014100062402014B -:100410000100062402020200092403010301020173 -:10042000000924030204010101000905060240003D -:1004300005000005250101010905850240000500B0 -:100440000005250101031201100100000008EDFE66 -:1004500060600100010200010631FF0974A1010979 -:1004600075150025FF952075088102097615002570 -:10047000FF952075089102C005010980A101850240 -:1004800016010026B7001A01002AB7007510950161 -:100490008100C0050C0901A1018503160100269CFD -:1004A000021A01002A9C02751095018100C0050105 -:1004B0000902A1010901A100050919012905150079 -:1004C00025019505750181029501750381010501DD -:1004D000093009311581257F950275088106093893 -:1004E0001581257F950175088106050C0A380215CE -:1004F00081257F950175088106C0C005010906A107 -:1005000001050719E029E715002501950875018106 -:1005100002950175088101050819012905950575E0 -:100520000191029501750391010507190029FF1535 -:100530000025FF950675088100C011241FBECFEF6E -:10054000DAE0DEBFCDBF04B603FE24C0809178039D -:1005500090917903A0917A03B0917B038730904BFF -:10056000A740B04BB9F4109278031092790310921F -:100570007A0310927B0314BE84B7877F84BF88E11F -:100580000FB6F89480936000109260000FBEE0E018 -:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E -:1005A00005900D92A63BB107D9F713E0A6EBB1E099 -:1005B00001C01D92A837B107E1F70E94F90E0C9413 -:1005C000CF2F0C9400000895089561110DC0FC0117 -:1005D0008281882331F085EE0E949D190E94B62BFE -:1005E00003C085EE0E94651A80E090E008958B3B81 -:1005F000910568F4883A910530F5853A9105C0F483 -:100600008430910598F4019709F06FC071C0803E65 -:10061000910508F46AC0883E910540F09C01205F76 -:1006200031092031310508F060C05CC09C01A1C0D7 -:10063000853A910509F45FC0863A910509F45EC0D8 -:1006400023E830E496C0883A910509F45AC0893A03 -:10065000910509F459C08A3A910509F458C08B3ABA -:10066000910509F457C08C3A910509F456C08D3AAA -:10067000910509F455C0803B910509F454C08E3AA8 -:10068000910509F453C08F3A910509F452C0813B9A -:10069000910509F451C0823B910509F450C0833B98 -:1006A000910509F44FC0843B910509F44EC0853B88 -:1006B000910509F44DC0863B910509F44CC0873B78 -:1006C000910509F44BC0883B910509F44AC0893B68 -:1006D000910509F449C08A3B910509F048C02AE216 -:1006E00036E447C09C01306544C020E030E041C0A2 -:1006F00021E030E03EC021E830E43BC022E830E4B5 -:1007000038C022EE34E435C029EE34E432C02AEE9B -:1007100034E42FC025EB34E42CC026EB34E429C0AC -:1007200027EB34E426C02CEC34E423C02DEC34E475 -:1007300020C023E835E41DC02AE835E41AC022E9C8 -:1007400035E417C024E935E414C021E236E411C0D1 -:1007500023E236E40EC024E236E40BC025E236E4A0 -:1007600008C026E236E405C027E236E402C020E0F5 -:1007700034E4C90108959CE0799FF001112490E3CD -:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3 -:10079000E65CFE4F25913491C9010895880F991F99 -:1007A00082559040FC0125913491C9010895880F2C -:1007B000991F825D9E4FFC0125913491C9010895D6 -:1007C0000E94BB039C013A9521153F4108F4DFC00C -:1007D0009C0130522115304120F49F700E94D703B4 -:1007E00008959C0130532115304118F49927906CDD -:1007F00008959C0130542031310520F48F709927E1 -:10080000946D0895803120E4920719F480E091ED11 -:100810000895813140E4940719F480E090ED089543 -:10082000823120E4920719F480E092ED089583313B -:1008300040E4940719F480E093ED0895811520E5D4 -:10084000920711F40C941F25813040E5940731F490 -:100850008091680281608093680208959C013056FF -:100860002115304108F402C097FF02C0906F08952F -:10087000803E9105E0F4803C910568F58133910557 -:1008800009F474C048F48932910509F46AC08A32C7 -:10089000910509F07AC074C089339105F9F0823866 -:1008A0009105E1F08533910509F06FC050C0833E9A -:1008B0009105A9F140F4803E9105C9F0823E910571 -:1008C00009F063C01BC0863E910571F1873E91051A -:1008D00009F05BC037C00E94CE03089520917B02CF -:1008E00020FD02C021FF51C080EE90E04EC08091FB -:1008F0007B0280FFF9CF89E390E047C080917B02C3 -:1009000082FF0AC080917B0284FF03C080E090E0F8 -:100910003CC083EE90E039C082EE90E036C080911A -:100920007B0282FFEFCFF8CF80917B0283FF07C06D -:1009300080917B0284FDEACF87EE90E026C086EEB0 -:1009400090E023C080917B0283FFF2CFF8CF8091AB -:100950007B0285FF03C089E290E017C085E390E049 -:1009600014C080917B0285FDF9CFF5CF80917B0289 -:1009700086FF03C08AE290E008C081E390E005C0F2 -:1009800080917B0286FDF9CFF5CF0E94F702089592 -:100990005F926F927F928F929F92AF92BF92CF920F -:1009A000DF92EF92FF920F931F93CF93DF93CDB718 -:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD -:1009C0002F5F3F4F4E0189E0880E911C60E070E080 -:1009D00000E010E0E12CF12CC12CD12CA12CB12C89 -:1009E00088E0782E622E532E41E050E0E3E2F1E001 -:1009F000A62DB52D872D01900D928A95E1F7F9016D -:100A0000819191919F01FC01E07FFF27E032F10588 -:100A100059F48F709927FA0102C0EE0FFF1F8A95D3 -:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0 -:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E -:100A4000DF2A29C0E034F10559F48F709927FA01A3 -:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5 -:100A6000E035F10559F48F709927FA0102C0EE0FB5 -:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504 -:100A800051F48F709927FA0102C0EE0FFF1F8A956B -:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B -:100AA0008A2D8095892384B985B18A2985B997B122 -:100AB0008C2D8095892387B988B18C2988B99AB102 -:100AC0008E2D809589238AB98BB18E298BB99DB1E2 -:100AD000802F809589238DB98EB1802B8EB990B3EC -:100AE000862F8095892380BB81B3862B81BB289676 -:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F -:100B00000F91FF90EF90DF90CF90BF90AF909F90AC -:100B10008F907F906F905F9008955F926F927F9219 -:100B20008F929F92AF92BF92CF92DF92EF92FF92FD -:100B30000F931F93CF93DF93CDB7DEB768970FB6B0 -:100B4000F894DEBF0FBECDBF85B7806885BF85B77F -:100B5000806885BF0E94CF076E9A769A0E94C8046B -:100B60009E012F5F3F4F4E0189E1880E911C60E08E -:100B700070E000E010E0E12CF12CC12CD12CA12C74 -:100B8000B12C98E1792E622E532E41E050E0EBE239 -:100B9000F1E0A62DB52D872D01900D928A95E1F7F4 -:100BA000F901819191919F01FC01E07FFF27E032E3 -:100BB000F10559F48F709927FA0102C0EE0FFF1F5B -:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F -:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786 -:100BE000CE2ADF2A29C0E034F10559F48F70992705 -:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4 -:100C00001BC0E035F10559F48F709927FA0102C035 -:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B -:100C2000F10551F48F709927FA0102C0EE0FFF1FF2 -:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F -:100C400094B18A2D8095892384B985B18A2985B983 -:100C500097B18C2D8095892387B988B18C2988B963 -:100C60009AB18E2D809589238AB98BB18E298BB943 -:100C70009DB1802F809589238DB98EB1802B8EB93F -:100C800090B3862F8095892380BB81B3862B81BB4F -:100C90001092B7011092B6011092BF011092BE01DE -:100CA0001092B9011092B8011092C1011092C001C6 -:100CB0001092BB011092BA011092C3011092C201AE -:100CC0001092BD011092BC011092C5011092C40196 -:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF -:100CE0001F910F91FF90EF90DF90CF90BF90AF904A -:100CF0009F908F907F906F905F9008955F926F921A -:100D00007F928F929F92AF92BF92CF92DF92EF929B -:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA -:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1 -:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57 -:100D4000B11C38E0532E470101E010E048E1642E69 -:100D500055E0752EE3E2F1E0D401852D01900D926E -:100D60008A95E1F7F701819191917F019C01207FA4 -:100D700033272032310589F424B18F709927A801D7 -:100D800002C0440F551F8A95E2F7CA01242B24B9EB -:100D900095B18095892385B94FC02033310589F4F9 -:100DA00027B18F709927F80102C0EE0FFF1F8A95B7 -:100DB000E2F7CF012E2B27B998B18095892388B906 -:100DC0003BC02034310589F42AB18F709927A801DE -:100DD00002C0440F551F8A95E2F7CA01242B2AB995 -:100DE0009BB1809589238BB927C02035310589F4C3 -:100DF0002DB18F709927F80102C0EE0FFF1F8A9561 -:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3 -:100E100013C02036310581F420B38F709927A801C3 -:100E200002C0440F551F8A95E2F7CA01242B20BB4C -:100E300091B38095892381BB50EA5A95F1F7BE01A1 -:100E40006F5F7F4F80E090E020E030E0EBE2F1E088 -:100E5000DE011196462D01900D924A95E1F7FB01B6 -:100E600041915191BF01FA01E07FFF27E032F10586 -:100E700011F4E3B113C0E033F10511F4E6B10EC093 -:100E8000E034F10511F4E9B109C0E035F10511F4E0 -:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009 -:100EA000552702C0F595E7954A95E2F7E0FD08C0A1 -:100EB000A801022E02C0440F551F0A94E2F702C097 -:100EC00040E050E0842B952B2F5F3F4F2C303105B5 -:100ED00009F0BCCFF601208131812817390721F0B4 -:100EE00091838083709200010E94C804F2E0CF0ECB -:100EF000D11CEA14FB0409F02DCF80910001882356 -:100F000061F1815080930001811121C08091BE0167 -:100F10009091BF019093B7018093B6018091C00179 -:100F20009091C1019093B9018093B8018091C20161 -:100F30009091C3019093BB018093BA018091C40149 -:100F40009091C5019093BD018093BC0106C08FE9CB -:100F50009FE00197F1F700C0000081E0A0960FB676 -:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF -:100F7000FF90EF90DF90CF90BF90AF909F908F90B9 -:100F80007F906F905F900895E82FF0E0EE0FFF1FC5 -:100F9000EA54FE4F80819181089508950895279A1B -:100FA0002F988FEF9FEF90938700809386008AE0C1 -:100FB0008093800089E1809381000C945F2B8111E4 -:100FC0000BC080918000877F8093800010928D00FD -:100FD00010928C002F9808952F98833041F48091BF -:100FE00080008860809380008FEF9FEF12C0909107 -:100FF000800098609093800023E030E0281B310946 -:10100000220F331F8FEF9FEF02C0969587952A9589 -:10101000E2F790938D0080938C0008950F931F93B7 -:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484 -:10103000DEBF0FBECDBF8C01862F642F882379F0D1 -:10104000F80192812FE7482F992329F08DE792E04C -:101050000E94F81404C08DE792E00E940815F80180 -:1010600080818B3061F49181933009F068C0828176 -:10107000882309F4CDC0809103018F5F0EC08A30B0 -:10108000E1F5F8019181933009F059C082818823FC -:1010900009F4BEC08091030181508093030120E0D8 -:1010A0004BE760E08DE792E00E94E81420E04BE718 -:1010B00061E08DE792E00E94E81420E04BE762E0F7 -:1010C0008DE792E00E94E81420E04BE763E08DE7B3 -:1010D00092E00E94E81420E04BE764E08DE792E0A4 -:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100 -:1010F000CF911F910F910C94E814893069F4F80195 -:1011000091819330E1F492819923C9F0809101019A -:101110009091020101960EC0883089F4F801918106 -:10112000933069F49281992351F08091010190915B -:10113000020101979093020180930101B0CFF80161 -:10114000928140910301992391F196E4E3E4F1E067 -:10115000DE01A95BBF4F01900D929A95E1F7405DCA -:10116000F8019181FCE09F9F40191124E091010159 -:10117000F0910201E80FF11DEE0FFF1F87E490E0F0 -:101180008C0F9D1FE80FF91F8081480F2FE760E04B -:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65 -:1011A000CDBFDF91CF911F910F910C94F81496E46D -:1011B000E3E4F1E0DE01119601900D929A95E1F7DA -:1011C000405DF8019181FCE09F9F40191124E0915E -:1011D0000101F0910201E80FF11DEE0FFF1F81E008 -:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB -:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92 -:101200000FBECDBFDF91CF911F910F910C940815A8 -:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE -:10122000CF911F910F910895CF93DF93EA019B0116 -:10123000AC0160E074E284E79BE40E945F2C0E94B2 -:10124000C72C709397006093960020E130E02C1B30 -:101250003D0B02C0759567952A95E2F7709399004A -:1012600060939800DF91CF9108951092020210923E -:10127000010210929000109291001092FD011092C4 -:10128000FE011092FF01109200021092FC011092D8 -:10129000FB01E9EDF1E0A9ECB1E01192119211929C -:1012A00011921D921D9281E0E93FF807B1F7089570 -:1012B000AF92BF92CF92DF92EF92FF920F931F9364 -:1012C000CF93DF936B017C0109EF11E047EDA42E72 -:1012D00041E0B42EC7E0D0E0A7019601F801929159 -:1012E0008291729162918F010E945B2C882349F058 -:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F -:1013000034C0F8011082118212821382F501118219 -:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80 -:10132000DE01AA0FBB1FA753BE4FCE011AC0019604 -:1013300044815581668177814083518362837383C1 -:10134000148215821682178212962D913C91139762 -:1013500011963C932E9313961C921E9212973496DC -:1013600012968730910519F7C3CF809101029091B1 -:101370000202019797FD05C090930202809301023B -:1013800004C01092020210920102E0910102F09159 -:101390000202309789F410929000109291001092FE -:1013A000FD011092FE011092FF01109200021092B6 -:1013B000FC011092FB019EC03197DF01AA0FBB1FF9 -:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1 -:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA -:1013E000B090FE010091FF0110910002A70196014B -:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1 -:1014000081E08093C801AE016A2D7B2D802F912F42 -:101410000E9414092091FD013091FE014091FF01CD -:1014200050910002C701B6010E94F62B20E030E087 -:101430004AEF53E40E945F2C9B01AC016A2D7B2D87 -:10144000802F912F0E94F72B5B018C01A701960141 -:101450007B2D912F0E945B2C1816ACF638C0A7018B -:1014600096016A2D7B2D802F912F0E94AA2D181690 -:1014700084F581E08093C801AE016A2D7B2D802F19 -:10148000912F0E941409A70196016091FD017091AE -:10149000FE018091FF01909100020E94F62B20E056 -:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF -:1014B0007B2D802F912F0E94F62B5B018C01A701C1 -:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8 -:1014D000C801AE01C701B6010E941409C092FD0106 -:1014E000D092FE01E092FF01F0920002D093FC0145 -:1014F000C093FB01DF91CF911F910F91FF90EF906F -:10150000DF90CF90BF90AF90089508951F920F92F3 -:101510000FB60F9211242F933F934F935F936F93C6 -:101520007F938F939F93AF93BF93EF93FF9380919C -:10153000960090919700892B09F455C08091C801BD -:10154000811151C08091F9019091FA01813091058A -:1015500071F082309105C1F0892BC1F52091FD0118 -:101560003091FE014091FF01509100021DC0609139 -:10157000FD017091FE018091FF01909100029B019D -:10158000AC010E94F72B0EC020E030E040E450E4B4 -:101590006091FD017091FE018091FF019091000228 -:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5 -:1015B0000E945F2C0E94C72C709397006093960046 -:1015C0007595679570939900609398008091F901E3 -:1015D0009091FA01019663E070E00E948A2F909347 -:1015E000FA018093F901FF91EF91BF91AF919F9123 -:1015F0008F917F916F915F914F913F912F910F90BC -:101600000FBE0F901F901895AF92BF92CF92DF92AE -:10161000EF92FF920F931F93CF93DF936B017C01A7 -:10162000EA0120E030E0A9010E94AA2D18160CF072 -:10163000B4C03E9A82E8809390008AE18093910042 -:10164000A090FD01B090FE010091FF0110910002F9 -:1016500020E030E0A9016A2D7B2D802F912F0E9480 -:101660005B2C81112DC0AE01C701B6010E94140987 -:10167000C092FD01D092FE01E092FF01F0920002C3 -:10168000D093FC01C093FB01809101029091020272 -:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F -:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F -:1016B000D183C083019690930202809301026DC092 -:1016C000A70196016A2D7B2D802F912F0E945B2C04 -:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499 -:1016E00014092091FD013091FE014091FF015091BC -:1016F0000002C701B6010E94F62B20E030E04AEF5D -:1017000053E40E945F2C9B01AC016A2D7B2D802F3E -:10171000912F0E94F72B5B018C01A70196017B2D75 -:10172000912F0E945B2C1816ACF69DCFA701960155 -:101730006A2D7B2D802F912F0E94AA2D18160CF058 -:1017400092CFAE016A2D7B2D802F912F0E9414091C -:10175000A70196016091FD017091FE018091FF014A -:10176000909100020E94F62B20E030E04AEF53E413 -:101770000E945F2C9B01AC016A2D7B2D802F912F45 -:101780000E94F62B5B018C01A70196017B2D912F06 -:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1 -:1017A0000F91FF90EF90DF90CF90BF90AF90089592 -:1017B00080910C020895CF93DF9300D01F92CDB794 -:1017C000DEB720916E03243021F523E029839B832B -:1017D0008A832093E9008FEF06C095ED9A95F1F783 -:1017E0000000882329F09091E800815095FFF5CF03 -:1017F0008091E80085FF0DC040E050E063E070E0BC -:10180000CE0101960E94BA0F8091E8008E778093F6 -:10181000E8000F900F900F90DF91CF910895CF9334 -:10182000DF9300D01F92CDB7DEB720916E03243036 -:1018300029F522E029839B838A8383E08093E90052 -:101840008FEF06C095ED9A95F1F70000882329F0F7 -:101850009091E800815095FFF5CF8091E80085FFD9 -:101860000DC040E050E063E070E0CE0101960E94C0 -:10187000BA0F8091E8008E778093E8000F900F9068 -:101880000F90DF91CF91089520916E032430F9F4E9 -:1018900022E02093E9002FEF06C035ED3A95F1F7ED -:1018A0000000222329F03091E800215035FFF5CFC8 -:1018B0002091E80025FF0BC040E050E065E070E0BB -:1018C0000E94BA0F8091E8008E778093E800089517 -:1018D000CF93DF93EC0180916E03843041F581E07A -:1018E0008093E9008FEF06C095ED9A95F1F700001F -:1018F000882329F09091E800815095FFF5CF8091E1 -:10190000E80085FF14C040E050E068E070E0CE01E0 -:101910000E94BA0F8091E8008E778093E80088E0FB -:10192000FE01A4E0B2E001900D928A95E1F7DF910B -:10193000CF910895BF92CF92DF92EF92FF920F93D3 -:101940001F93CF93DF937C01B62EE90100E010E0F6 -:10195000C42ED12C0BC04991202F2B0D2F774F7700 -:101960006FE0C7010E94E8140F5F1F4F0C151D05A3 -:1019700094F3DF91CF911F910F91FF90EF90DF9043 -:10198000CF90BF90089570E06F5F7F4F6F707727A3 -:101990000C94E8140F931F93CF93C42F63307105F9 -:1019A00009F04AC0842F807F803849F1803909F0DE -:1019B00043C0622F6F7770E080E090E00E94FA2CC5 -:1019C00020E030E040E451E40E945F2C9B01AC0138 -:1019D00060E070E080E090E40E94112E0F7710E04C -:1019E00023E0159507952A95E1F72DEC3CEC42E0B4 -:1019F00053E40E94AE2DA8010E94040B1DC0622F6B -:101A00006F7770E080E090E00E94FA2C20E030E0F8 -:101A100040E451E40E945F2C9B01AC0160E070E067 -:101A200080E090E40E94112E2DEC3CEC42E053E467 -:101A30000E94AE2D0E945809CC3F29F4CF911F91EE -:101A40000F910C943509CF911F910F9108950F9329 -:101A50001F93CF93DF93CDB7DEB727970FB6F894D8 -:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C -:101A70009A819D839B819E839C819F8381111EC03F -:101A800089818430B1F08730A1F08630A1F08530B3 -:101A9000A1F0BE016F5F7F4F84E091E00E942F189C -:101AA0008111E3CF84E091E00E9420180E949B14F2 -:101AB0000DC083E003C082E001C081E0AE014B5F56 -:101AC0005F4F682FC8010E945515E3CF27960FB6C8 -:101AD000F894DEBF0FBECDBFDF91CF911F910F9164 -:101AE0000895EF92FF920F93CF93DF9300D000D031 -:101AF00000D0CDB7DEB77B014A832B830C83842FC4 -:101B00002E834D830E94C2142E814D8181111BC0F2 -:101B100082E0E816F10479F083E0E816F10421F0A0 -:101B2000EA94EF2821F50BC0073F11F487E001C0CC -:101B300084E089830BC0273FD9F786E0FACF473F7F -:101B4000B9F785E0F6CF42954F704983BE016F5FCC -:101B50007F4F84E091E00E94E51784E091E00E94CD -:101B6000031884E091E00E9420180E949B1426969E -:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE -:101B8000FF90EF90089580916D03811109C00E942C -:101B9000A1110E94FE118091E20084608093E20016 -:101BA000089510926D03089508950C94E4020C9426 -:101BB000892480916E03843049F58091E9008F700B -:101BC0009091EC0090FF02C090E801C090E0982B4B -:101BD00084E08093E9008091EB0080FF14C0809145 -:101BE000EE0087FD03C00FC01092F1008091E80065 -:101BF00085FDFACF8091E80080FF05C08091E80064 -:101C00008E778093E8009F709093E900089542E0FA -:101C100061EC81E00E94171142E061EC82E00E94D9 -:101C2000171142E061EC83E00E94171146E261EC7B -:101C300084E00E94171142E361E885E00E941711D9 -:101C400042E360E886E00C941711809170038330C2 -:101C500009F454C030F4813071F0823009F0AAC028 -:101C600091C08A3009F47EC08B3009F45FC089309E -:101C700009F0A0C020C080916F03813A09F09AC09A -:101C80008091E800877F8093E800809173039091B2 -:101C90007403892B21F060E080E090E003C068E0ED -:101CA00084E092E070E00E9458108091E8008B7709 -:101CB0008093E800089580916F03813209F07AC023 -:101CC0008091730390917403892B09F073C0809104 -:101CD000E800877F8093E80005C080916E03882329 -:101CE00009F468C08091E80082FFF7CF8091F1008D -:101CF00080930C028091E8008B7758C080916F032D -:101D0000813A09F057C08091730390917403892B35 -:101D100009F050C08091E800877F8093E8008091AF -:101D2000E80080FFFCCF80911A013BC080916F03D7 -:101D3000813209F03FC08091730390917403892B25 -:101D4000C9F58091E800877F8093E8000E944E11DA -:101D50009091710381E0911101C080E080931A019C -:101D60000C948C1E80916F03813221F58091E800E4 -:101D7000877F8093E8000E944E11809172038093C8 -:101D80000302089580916F03813AA1F48091E800E5 -:101D9000877F8093E8008091E80080FFFCCF8091EE -:101DA00003028093F1008091E8008E778093E80031 -:101DB0000C944E11089584B7877F84BF88E10FB6D5 -:101DC000F89480936000109260000FBE90E080E86D -:101DD0000FB6F89480936100909361000FBE0E944B -:101DE000A1110E94FE11E2EEF0E080818460808308 -:101DF00008958DE792E00E94241561E77DE08DE76C -:101E000092E00E947A1567E27DE08DE792E00E9401 -:101E10007E150E94DB0E78946AEC7CE08DE792E000 -:101E20000E94201563EC7CE08DE792E00E9418157B -:101E30006AE97CE08DE792E00E941C150E94850A09 -:101E40000E949B140E94AC1880E191E00E945418FB -:101E50000BC00E944E2480916C03882329F00E94BD -:101E6000742481110E94A40F80916E03853089F340 -:101E70008DE792E00E942D170E94B618F5CF292F0A -:101E8000332723303105B1F04CF42130310509F40A -:101E90004DC02230310509F04EC007C02132310556 -:101EA00041F12232310591F146C0E0EDF0E086E7E4 -:101EB00093E045C099278130910569F08230910502 -:101EC00089F0892B09F037C0E2E7F3E0E491F0E014 -:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA -:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1 -:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735 -:101F0000FE4F80819181E9E0F0E019C0643098F4DF -:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139 -:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D -:101F300086E494E004C0E0E0F0E080E090E0DA01C4 -:101F40008D939C93CF01089580E189BD82E189BD85 -:101F500009B400FEFDCF8091D8008F7D8093D8001A -:101F60008091E00082608093E0008091E00081FD3C -:101F7000FCCF0895BF92CF92DF92EF92FF920F9322 -:101F80001F93CF93DF937C018B01EA010E946F11B5 -:101F9000B82E811133C0209731F028813981021B7E -:101FA000130BE20EF31EC12CD12C23C08091E8004C -:101FB00085FD15C08091E8008E778093E80020971A -:101FC00049F0888199818C0D9D1D9983888325E036 -:101FD000B22E14C00E946F11882359F00EC0F70171 -:101FE00081917F018093F10001501109FFEFCF1A19 -:101FF000DF0A01151105D1F601C0B82E8B2DDF9136 -:10200000CF911F910F91FF90EF90DF90CF90BF90F5 -:102010000895BF92CF92DF92EF92FF920F931F939A -:10202000CF93DF937C018B01EA010E946F11B82EE0 -:10203000811133C0209731F028813981021B130BA5 -:10204000E20EF31EC12CD12C23C08091E80085FD47 -:1020500015C08091E8008B778093E800209749F0C5 -:10206000888199818C0D9D1D9983888345E0B42ECC -:1020700014C00E946F11882359F00EC08091F100A6 -:10208000F70181937F0101501109FFEFCF1ADF0A99 -:1020900001151105D1F601C0B82E8B2DDF91CF911E -:1020A0001F910F91FF90EF90DF90CF90BF90089518 -:1020B00040917503509176034617570748F0611514 -:1020C000710539F44091E8004E774093E80001C073 -:1020D000BA01FC0140E033C080916E03882309F40B -:1020E00042C0853009F441C08091E80083FD39C0C9 -:1020F0008091E80082FD2FC08091E80080FF1FC022 -:102100009091F3008091F200392F20E0A901482B33 -:10211000CA0106C041914093F100615071090196D6 -:102120006115710519F088309105A0F341E0089719 -:1021300009F040E08091E8008E778093E800611517 -:10214000710551F64111C8CF06C080916E038823F6 -:1021500051F0853051F08091E80082FFF6CF80E0A9 -:10216000089581E0089582E0089583E00895409104 -:102170007503509176034617570748F061157105AE -:1021800039F44091E8004E774093E80001C0BA016D -:10219000FC0140E034C080916E03882309F443C001 -:1021A000853009F442C08091E80083FD3AC08091F7 -:1021B000E80082FD30C08091E80080FF20C090914F -:1021C000F3008091F200392F20E0A901482BCA01C9 -:1021D00007C044914093F100319661507109019616 -:1021E0006115710519F08830910598F341E0089761 -:1021F00009F040E08091E8008E778093E800611557 -:10220000710549F64111C7CF06C080916E0388233E -:1022100051F0853051F08091E80082FFF6CF80E0E8 -:10222000089581E0089582E0089583E00895982F4D -:102230002CC09093E900981739F07091EC00209130 -:10224000ED005091F00003C0242F762F50E021FDC7 -:1022500002C09F5F1AC03091EB003E7F3093EB00CD -:102260003091ED003D7F3093ED003091EB00316017 -:102270003093EB007093EC002093ED005093F0004E -:102280002091EE0027FDE5CF07C0973090F28F70C8 -:102290008093E90081E0089580E0089580916F03C4 -:1022A00087FD05C08091E80080FF0EC012C08091BC -:1022B000E80082FD05C080916E038111F8CF08957A -:1022C0008091E8008B7708C080916E038111EACF7E -:1022D00008958091E8008E778093E80008958091BA -:1022E000E4009091E50045E62091EC0020FD1FC040 -:1022F00023C020916E03222391F0253091F020918C -:10230000EB0025FD10C02091E4003091E500281776 -:10231000390751F34150C90139F784E0089582E04B -:10232000089583E0089581E0089580E00895209164 -:10233000E80020FFDECFF9CF2091E80022FFD9CFBF -:10234000F4CF0E940F120E941712E0EEF0E080819D -:1023500081608083E8EDF0E080818F77808319BC15 -:10236000A7EDB0E08C918E7F8C9380818F7E8083EF -:1023700010926D0308950F931F93CF93DF930E94E4 -:102380000F120E941712C8EDD0E088818F778883E2 -:1023900088818068888388818F7D888319BC1092AA -:1023A0006E0310926A0310926C0310926B0300EE9E -:1023B00010E0F80180818B7F808388818160888331 -:1023C00042E060E080E00E941711E1EEF0E08081E1 -:1023D0008E7F8083E2EEF0E0808181608083808167 -:1023E00088608083F80180818E7F8083888180610E -:1023F0008883DF91CF911F910F910895E8EDF0E070 -:1024000080818F7E8083E7EDF0E080818160808332 -:1024100084E082BF81E080936D030C94BB11E8EDF2 -:10242000F0E080818E7F80831092E2000895109208 -:10243000DA001092E10008951F920F920FB60F92EA -:1024400011242F933F934F935F936F937F938F93B9 -:102450009F93AF93BF93EF93FF938091E10082FF2F -:102460000BC08091E20082FF07C08091E1008B7F6A -:102470008093E1000E94D90D8091DA0080FF1FC097 -:102480008091D80080FF1BC08091DA008E7F8093FE -:10249000DA008091D90080FF0DC080E189BD82E122 -:1024A00089BD09B400FEFDCF81E080936E030E94D8 -:1024B000C30D05C019BC10926E030E94D10D80910E -:1024C000E10080FF19C08091E20080FF15C080917B -:1024D000E2008E7F8093E2008091E2008061809331 -:1024E000E2008091D80080628093D80019BC85E01A -:1024F00080936E030E94D50D8091E10084FF30C06F -:102500008091E20084FF2CC080E189BD82E189BD19 -:1025100009B400FEFDCF8091D8008F7D8093D80054 -:102520008091E1008F7E8093E1008091E2008F7EB8 -:102530008093E2008091E20081608093E2008091CC -:102540006A03882311F084E007C08091E30087FFCD -:1025500002C083E001C081E080936E030E94D70D2A -:102560008091E10083FF29C08091E20083FF25C0B4 -:102570008091E100877F8093E10082E080936E0389 -:1025800010926A038091E1008E7F8093E100809138 -:10259000E2008E7F8093E2008091E2008061809370 -:1025A000E20042E060E080E00E9417118091F000BC -:1025B00088608093F0000E94D40DFF91EF91BF914D -:1025C000AF919F918F917F916F915F914F913F91CB -:1025D0002F910F900FBE0F901F9018951F920F9282 -:1025E0000FB60F9211242F933F934F935F936F93E6 -:1025F0007F938F939F93AF93BF93CF93EF93FF936B -:102600008091E9008F709091EC0090FF02C090E8FB -:1026100001C090E0C92FC82B1092E9008091F00012 -:10262000877F8093F00078940E9432131092E90023 -:102630008091F00088608093F000CF70C093E90033 -:10264000FF91EF91CF91BF91AF919F918F917F912A -:102650006F915F914F913F912F910F900FBE0F900F -:102660001F9018951F93CF93DF93CDB7DEB7AC972C -:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A -:10268000F100819323E0E737F207C9F70E94250E96 -:102690008091E80083FF37C180916F0390917003B0 -:1026A000953009F488C038F49130B1F170F093306E -:1026B00009F029C131C0983009F4F8C0993009F403 -:1026C00004C1963009F01FC19DC0803821F08238C6 -:1026D00009F019C108C080916B0390916C03992394 -:1026E00089F082600FC080917303909174038F70A2 -:1026F00099278093E9008091EB0085FB882780F97A -:102700001092E9009091E800977F9093E800809301 -:10271000F1001092F100D5C0882319F0823009F041 -:10272000F2C08F7121F0823009F0EDC00BC08091B2 -:102730007103813009F0E7C0933009F080E08093A5 -:102740006C032FC08091710381112BC080917303A2 -:10275000909174038F709927009709F4D4C08093E7 -:10276000E9002091EB0020FF1CC020917003233072 -:1027700021F48091EB00806212C09091EB00906197 -:102780009093EB0021E030E001C0220F8A95EAF738 -:102790002093EA001092EA008091EB008860809319 -:1027A000EB001092E9008091E800877F8093E800B9 -:1027B0000E944E11A8C08111A6C080917103909112 -:1027C00072038F779927182F9091E3009078982BB8 -:1027D0009093E3008091E800877F8093E8000E9457 -:1027E0004E118091E80080FFFCCF8091E30080686B -:1027F0008093E300112311F083E001C082E0809315 -:102800006E0381C08058823008F07DC080917103D2 -:10281000909172038C3D23E0920779F583E08A83DF -:102820008AE289834FB7F894DE01139620E03EE0F8 -:1028300051E2E32FF0E050935700E49120FF03C0F2 -:10284000E295EF703F5FEF708E2F90E0EA3010F06E -:10285000C79601C0C0968D939D932F5F243149F791 -:102860004FBF8091E800877F8093E8006AE270E0C4 -:10287000CE0101960E94581013C0AE01455D5F4F16 -:10288000609173030E943F0F0097E9F12091E800E7 -:10289000277F2093E800BC018BA59CA50E94B71060 -:1028A0008091E8008B778093E8002DC0803859F53F -:1028B0008091E800877F8093E80080916A0380938D -:1028C000F1008091E8008E7771CF81111CC090914A -:1028D00071039230C0F48091E800877F8093E80014 -:1028E00090936A030E944E1180916A03811104C083 -:1028F0008091E30087FF02C084E001C081E0809303 -:102900006E030E94070E8091E80083FF0AC0809149 -:10291000E800877F8093E8008091EB0080628093DD -:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3 -:10293000CF911F910895CF9380916E038823B1F0BA -:102940008091E9008F709091EC0090FF02C090E8B8 -:1029500001C090E0C92FC82B1092E9008091E800D7 -:1029600083FD0E943213CF70C093E900CF91089588 -:10297000881F8827881F089591E0883F08F490E019 -:10298000892F0895982F907F903B99F038F49039D3 -:1029900081F0903A71F09038C9F40BC0903DA1F0ED -:1029A00018F4903C99F410C0903E19F0903F71F4E7 -:1029B00002C083E00895E82FE15FEF3038F4F0E0E3 -:1029C000E356FE4F8081089582E0089580E00895E7 -:1029D0000F932F774F776F70606BDC01ED91FC9157 -:1029E000022F242F462F63E070E009950F91089580 -:1029F0000F932F774F776F706069DC01ED91FC9139 -:102A0000022F242F462F63E070E009950F9108955F -:102A10000F932F774F776F706068DC01ED91FC9119 -:102A2000022F242F462F63E070E009950F9108953F -:102A3000FC01738362830895FC01738F628F089594 -:102A4000FC01758F648F0895CF93DF93EC011DA275 -:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2 -:102A60000E9461171B821A821D821C821F821E8295 -:102A7000198618861B861A861D861C861F861E864A -:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A -:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA -:102AA00019A218A2DF91CF910895CF92DF92FF92E1 -:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00 -:102AC0006A018C0108511F4F08C0F60161916F0126 -:102AD000C80149830E94681749818C2D841B8F157A -:102AE000A0F30F90DF91CF911F910F91FF90DF9096 -:102AF000CF900895FC01718360830895FC0171A358 -:102B000060A30895AF92BF92CF92DF92EF92FF92AF -:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3 -:102B20007C016B01142FB22EA02EDC0195968C91A6 -:102B300095978430F1F45A96ED91FC915B9730971C -:102B400009F4D8C0CB01019763E070E00E94762FB2 -:102B5000DB01AA0FBB1FA60FB71F49832A830B8374 -:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8 -:102B7000B1C06230710509F453C06330710529F0AA -:102B80006130710509F09CC083C0842F807F803A3A -:102B900001F130F48038B9F0803909F0ABC00DC0D4 -:102BA000803EE9F0803F09F1803B09F0A3C0D701E6 -:102BB0001296ED91FC91139723C0D7011496ED91D5 -:102BC000FC9115971DC0D7011696ED91FC911797B2 -:102BD00017C0D7011896ED91FC91199711C0D70134 -:102BE0001A96ED91FC911B970BC0423F09F082C0F1 -:102BF000D7011C96ED91FC911D97309731F47AC066 -:102C0000309709F477C0123F21F42A2D4B2D62EF43 -:102C100004C0612F6F702A2D4B2DC70109955AC032 -:102C2000842F807F803D59F0803F79F0803C09F00F -:102C300061C0D7011E96ED91FC911F9719C0D70175 -:102C40005096ED91FC91519713C0433F31F4D70159 -:102C50005296ED91FC91539708C0413F09F04AC04C -:102C6000D7015496ED91FC915597309741F442C0AD -:102C7000309709F43FC0133F11F0113F19F44B2D69 -:102C8000612F03C0612F6F704B2DC701099522C0C2 -:102C9000842F0E94BC14882331F0D7015696ED9101 -:102CA000FC91579707C0163F29F5D7015896ED912B -:102CB000FC9159973097F1F0612FC70109950AC02F -:102CC00064307105A8F416C00A2D2B2D412FB601D2 -:102CD000C7010995D7015E96ED91FC915F973097FA -:102CE00089F00A2D2B2D412FB601C70109950AC085 -:102CF000C12CD12CD7015C96ED91FC915D9730975A -:102D000019F7E8CF0F900F900F90DF91CF911F919F -:102D10000F91FF90EF90DF90CF90BF90AF9008950C -:102D2000EF92FF920F931F93CF93DF93EC01162F37 -:102D3000862F0E94BC14882369F0FDA081E08DA33A -:102D400000E020E0412F61E070E0CE010E9482159A -:102D5000FDA27CC0812F0E94B8144DA1882309F4E4 -:102D600040C0443029F01AA321E030E03FA32EA355 -:102D7000812F0E94C214813031F070F0823051F006 -:102D8000833059F507C08DA300E020E0412F61E0BA -:102D900070E01EC08DA35AC0103F19F0173FE9F430 -:102DA00004C084E08DA31AA33FC02EA13FA1C90196 -:102DB00063E070E00E94762F8C0F9D1FFC0112A330 -:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116 -:102DD000CE010E9482151DA239C01DA21FA21EA2F3 -:102DE00035C0442399F12EA13FA1C90163E070E0F1 -:102DF0000E94762F7C01FE01E80FF91F12A3B90192 -:102E00006F5F7F4F7FA36EA38130910591F082E0C9 -:102E1000E816F104D9F40CA12BA14AA1CE010E941D -:102E200082158DA1843091F081E090E09FA38EA364 -:102E30000DC0423059F400E02BA14AA1CE010E94FE -:102E400082158DA1843011F0FFA2EEA2DF91CF9107 -:102E50001F910F91FF90EF900895CF92DF92EF9224 -:102E6000FF920F931F93CF93DF93EC01E8A1F9A199 -:102E7000309709F009958E0108511F4FC8010E9433 -:102E80009A17E12CF12CC82ED12C0FC060E0C8019C -:102E90000E94AE17682FCE010E94901661E0C80113 -:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4 -:102EB000DF91CF911F910F91FF90EF90DF90CF9016 -:102EC0000895FC0142837483638311821082089504 -:102ED0000F931F93CF93DF93EC01062F0E94E0170F -:102EE000182F298130E0C90101966A8170E00E94A3 -:102EF0008A2F488150E08417950729F4812F0E947A -:102F0000E31780E012C0EB81FC81E20FF31F008326 -:102F10002981822F90E001966A8170E00E948A2FB9 -:102F20008983812F0E94E31781E0DF91CF911F9168 -:102F30000F910895CF93DF93EC010E94E017298150 -:102F40009881291710F0C22F02C0CA81C20FC91B75 -:102F50000E94E3178C2FDF91CF910895FC0120810F -:102F6000862F90E0820F911D628170E00E948A2F6F -:102F70000380F481E02DE80FF91F808108950F93FD -:102F80001F93CF93DF931F92CDB7DEB78C01698378 -:102F90000E94E017482FF80180816981262F30E0D8 -:102FA000280F311D6281C90170E00E948A2F808341 -:102FB000842F0F90DF91CF911F910F910C94E31705 -:102FC0008FB7F89408958FBF0895FC01CB0120912D -:102FD0006E032430B1F421812F702093E90040E08A -:102FE00050E064E070E00E94BA0F81110BC0909134 -:102FF000E80095FD07C09091E8009E779093E80067 -:10300000089582E0089520916E032430A9F4FC0114 -:1030100081818F708093E9003091F3002091F2005C -:10302000932F80E0822B892B49F08091E8008E77E6 -:103030008093E8000C946F1182E0089580E0089579 -:1030400020916E03243051F4FC0121812F702093D4 -:10305000E9002091E80020FD0C9403180895FC017C -:10306000CB0120916E03243011F080E00895268179 -:103070002F702093E9002091E80022FFF6CF2091E5 -:10308000E80025FFF2CF40E050E064E070E00E94ED -:1030900009108091E80085FD05C08091E8008B77DC -:1030A0008093E80081E0089590930F0280930E02D0 -:1030B000089580910E0290910F020895E0910E0202 -:1030C000F0910F02309721F00190F081E02D0994EA -:1030D00080E00895E0910E02F0910F02309721F008 -:1030E0000280F381E02D09940895E0910E02F091A1 -:1030F0000F02309721F00480F581E02D09940895A6 -:1031000020911002309111028217930771F0909371 -:10311000110280931002E0910E02F0910F0230979D -:1031200021F00680F781E02D099408952091120284 -:10313000309113028217930771F0909313028093DA -:103140001202E0910E02F0910F02309721F00084FC -:10315000F185E02D099408950E94B6240E948D0502 -:103160000E948A250C945F2B0C94CE075F926F927D -:103170007F928F929F92AF92BF92CF92DF92EF9207 -:10318000FF920F931F93CF93DF93CDB7DEB72A97AC -:103190000FB6F894DEBF0FBECDBF0E947E0694E14D -:1031A000C92E92E0D92E00E010E0AA24A394B12CFD -:1031B000502E802F0E94C4073C01F601E190F1904F -:1031C0006F01E826F926E114F10431F40F5F1F4F77 -:1031D0000430110569F73AC08091680281FD0E94B0 -:1031E000CD0720E030E04501022E02C0880C991C7A -:1031F0000A94E2F7C4018E219F21892B09F12E83C5 -:103200005F826820792081E0672809F480E0888760 -:103210000E94BF248160782F9A8789874E815F81C1 -:1032200068858A850E946F19F801EE0FFF1FEC5E1A -:10323000FD4F80819181882599259183808316C0D7 -:103240002F5F3F4F2C30310571F6C0CF8FEF898350 -:103250008A831B820E94BF248160782F9D838C8388 -:1032600049815A816B818D810E946F190E94772854 -:1032700010911C020E945E181817D9F00E945E1867 -:1032800080931C022A960FB6F894DEBF0FBECDBF06 -:10329000DF91CF911F910F91FF90EF90DF90CF9032 -:1032A000BF90AF909F908F907F906F905F900C94A5 -:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB -:1032C000CF911F910F91FF90EF90DF90CF90BF9023 -:1032D000AF909F908F907F906F905F900895CF9365 -:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6 -:1032F000CDBF4F83588769877A878B87DE01119608 -:1033000086E0FD0111928A95E9F785E0FE01379686 -:1033100001900D928A95E1F749815A816B817C81F8 -:103320008D819E810E9447212B960FB6F894DEBFB7 -:103330000FBECDBFDF91CF910895CF93C82F8823C3 -:1033400009F4C1C0823859F40E945E1881FDBBC0E7 -:1033500089E30E94AC230E94282489E30CC08338AF -:1033600079F40E945E1880FDAEC083E50E94AC2314 -:103370000E94282483E50E94CE23CF910C94282418 -:10338000843859F40E945E1882FD9DC087E40E9433 -:10339000AC230E94282487E4EECF8450813A48F47D -:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3 -:1033B000E4CF8C2F805E883050F4C77081E090E0BD -:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51 -:1033D000855A833078F4C53A29F0C63A31F482E848 -:1033E00090E005C081E890E002C083E890E0CF91D2 -:1033F0000C9480188C2F885A833108F064C0C83A26 -:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2 -:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41 -:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE -:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E -:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083 -:1034500082EE90E035C089EE90E032C08AEE90E0D6 -:103460002FC085EB90E02CC086EB90E029C087EB65 -:1034700090E026C08CEC90E023C08DEC90E020C062 -:1034800083E891E01DC08AE891E01AC082E991E0EA -:1034900017C084E991E014C081E292E011C083E298 -:1034A00092E00EC084E292E00BC085E292E008C098 -:1034B00086E292E005C087E292E002C080E090E000 -:1034C000CF910C949618CF910895882309F44DC09C -:1034D000823859F40E945E1881FF47C089E30E9438 -:1034E000AC230E94282489E30CC0833871F40E9425 -:1034F0005E1880FF3AC083E50E94AC230E94282416 -:1035000083E50E94CE230C942824843859F40E9429 -:103510005E1882FF2AC087E40E94AC230E94282400 -:1035200087E4EFCF982F9450913A08F4EACF982F80 -:10353000905E983058F4282F277081E090E001C009 -:10354000880F2A95EAF70E94F523DDCF982F955A28 -:10355000933020F480E090E00C948018885A8331F6 -:1035600020F480E090E00C9496180895882321F0D0 -:103570000E94EF230C9428240895882321F00E94B0 -:10358000F5230C9428240895BF92CF92DF92EF92F6 -:10359000FF920F931F93CF93DF93CDB7DEB727979B -:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9 -:1035B000DE01119601900D928A95E1F7F8013081B4 -:1035C0002181F280558152955F7083819481892B8E -:1035D00039F02F3F41F481E090E03F3F31F003C0EC -:1035E00081E090E002C080E090E080FD73C3398309 -:1035F0002A8389819A815E830E946923B92E8F83F1 -:103600000E9468230E9490222B2D22952F7030E07B -:103610005E816F812530310509F4E6C06CF42430F9 -:1036200031050CF0A2C04B2D407F8B2D8F702230C6 -:1036300031050CF045C017C02C3031054CF42A3050 -:1036400031050CF0E7C12830310509F043C3E5C06E -:103650002D30310509F4BAC20CF4A2C22F30310565 -:1036600009F038C323C3182F411101C002C01295BD -:10367000107FFF2059F0112309F46BC2812F6F8353 -:103680000E94FF230E9428246F8163C2862F0E941C -:10369000651A112309F41EC3812F0E940524279661 -:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153 -:1036B0000F91FF90EF90DF90CF90BF900C94282453 -:1036C000403211F08295807F662319F0613071F5E8 -:1036D00023C0FF20B1F0511101C032C0513081F53B -:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106 -:1036F0001F910F91FF90EF90DF90CF90BF900C94AF -:103700000F24511101C003C0513009F4E3C28E836C -:103710000E9412248E819AC1FF2021F0563008F0B9 -:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3 -:10373000552331F0F801958190FF0BC29F7095835E -:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5 -:103750001F910F91FF90EF90DF90CF90BF900C944E -:10376000B61A552309F472C109C22B2D2695269548 -:10377000237030E02115310529F02130310509F0A1 -:10378000A9C219C0FF2021F0862F9B2D937002C083 -:1037900080E090E027960FB6F894DEBF0FBECDBF55 -:1037A000DF91CF911F910F91FF90EF90DF90CF901D -:1037B000BF900C948018FF2021F0862F9B2D9370D2 -:1037C00002C080E090E027960FB6F894DEBF0FBEEF -:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0 -:1037E000CF90BF900C949618862FFF2019F00E945E -:1037F0007D2702C00E94E52727960FB6F894DEBF0A -:103800000FBECDBFDF91CF911F910F91FF90EF9031 -:10381000DF90CF90BF900C946C288B2D837009F0B3 -:1038200079C0F11057C2262F229526952770220FB6 -:10383000220F862F8F70C82ED12CE12CF12C022E56 -:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4 -:1038500010C06FE070E080E090E004C0660F771F5A -:10386000881F991F2A95D2F760957095809590953D -:1038700003C060E070E0CB012B2D269526952370C8 -:10388000422F50E042305105D9F04330510569F1E3 -:103890006C297D298E299F294130510551F12796A8 -:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151 -:1038B0000F91FF90EF90DF90CF90BF900C94A522D6 -:1038C0006C297D298E299F2927960FB6F894DEBF93 -:1038D0000FBECDBFDF91CF911F910F91FF90EF9061 -:1038E000DF90CF90BF900C94B7220E94A522C70111 -:1038F000B60127960FB6F894DEBF0FBECDBFDF919D -:10390000CF911F910F91FF90EF90DF90CF90BF90DC -:103910000C949322FF2019F08B2D817001C08695A5 -:10392000882309F4D7C1262F229526952770220FC8 -:10393000220F862F8F70C82ED12CE12CF12C022E55 -:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3 -:1039500010C06FE070E080E090E004C0660F771F59 -:10396000881F991F2A95D2F760957095809590953C -:1039700003C060E070E0CB012B2D269526952370C7 -:10398000422F50E042305105D9F04330510569F1E2 -:103990006C297D298E299F294130510551F12796A7 -:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150 -:1039B0000F91FF90EF90DF90CF90BF900C94442335 -:1039C0006C297D298E299F2927960FB6F894DEBF92 -:1039D0000FBECDBFDF91CF911F910F91FF90EF9060 -:1039E000DF90CF90BF900C9456230E944423C701D0 -:1039F000B60127960FB6F894DEBF0FBECDBFDF919C -:103A0000CF911F910F91FF90EF90DF90CF90BF90DB -:103A10000C943223603F59F120F4603E08F494C0C6 -:103A200008C0623F09F467C0F0F1633F09F08CC041 -:103A300065C0162F1F708B2D8F71FF2021F00E9403 -:103A4000DD22812F7DCE0E94F822812F27960FB68E -:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4 -:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095 -:103A7000B1F0553008F02EC18B2D8F7127960FB6FF -:103A8000F894DEBF0FBECDBFDF91CF911F910F9194 -:103A9000FF90EF90DF90CF90BF900C94172356309B -:103AA00008F018C1E9CFFF2099F08B2D8F71279670 -:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F -:103AC0000F91FF90EF90DF90CF90BF900C94DD228C -:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A -:103AE000DF91CF911F910F91FF90EF90DF90CF90DA -:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4 -:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9 -:103B1000DF91CF911F910F91FF90EF90DF90CF90A9 -:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E -:103B3000CDBFDF91CF911F910F91FF90EF90DF905C -:103B4000CF90BF900C94C922FF20A9F0552309F40F -:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31 -:103B6000DF91CF911F910F91FF90EF90DF90CF9059 -:103B7000BF900C949D19552309F4AACF862F279640 -:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E -:103B90000F91FF90EF90DF90CF90BF900C94651A3B -:103BA0004B2D4F70C8010E94E50227960FB6F8947E -:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060 -:103BC000EF90DF90CF90BF900C94FD21F11082C058 -:103BD0009B2D9F70492F50E04230510599F144F4DC -:103BE0004115510569F04130510509F073C019C004 -:103BF00043305105C1F14430510509F06BC044C058 -:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0 -:103C10001F910F91FF90EF90DF90CF90BF900C9489 -:103C2000702B27960FB6F894DEBF0FBECDBFDF9185 -:103C3000CF911F910F91FF90EF90DF90CF90BF90A9 -:103C40000C94872B27960FB6F894DEBF0FBECDBF1E -:103C5000DF91CF911F910F91FF90EF90DF90CF9068 -:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F -:103C7000CDBFDF91CF911F910F91FF90EF90DF901B -:103C8000CF90BF900C94B62B862F27960FB6F89442 -:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F -:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C -:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7 -:103CC000CF911F910F91FF90EF90DF90CF90BF9019 -:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A -:103CE000DF91CF911F910F91FF90EF90DF90CF90D8 -:103CF000BF9008950E940C240E94E1230E94282472 -:103D00000E9418290E946C2880E090E00E94801890 -:103D100080E090E00C9496180E94FC230C947A1E8C -:103D20000E946923292F22952F7030E02C30310515 -:103D30004CF42A3031056CF422503109223031051F -:103D400070F407C02C30310531F02F30310539F4D3 -:103D500002C081E0089593FB882780F9089580E0F0 -:103D60000895CF93DF9300D000D01F92CDB7DEB778 -:103D70000F900F900F900F900F90DF91CF910895BB -:103D8000CF93DF9300D000D000D0CDB7DEB726961A -:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F -:103DA0001F93CF93DF93C091530216E012C0D0E06F -:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112 -:103DC000518162817381848195810E94C01E2196F8 -:103DD000C77080915402C813EACFDF91CF911F9131 -:103DE000089540911D0250911E0260911F02709132 -:103DF000200280912102909122020C94C01E0F9308 -:103E00001F93CF93DF938091220282958F7009F0E8 -:103E100069C080911F02882309F464C0A0915302F5 -:103E2000D0915402B0911D02C0911E0280912002D7 -:103E30009091210221E030E0BF3F11F020E030E01E -:103E4000122FBC016095709506E04AC0009721F0E2 -:103E5000CF3F29F4212F05C021E030E002C020E04F -:103E600030E020FD3BC04A2F50E0049FF001059F49 -:103E7000F00D1124ED5DFD4F2181C2132FC0208173 -:103E8000B2132CC02281211129C02381348128172B -:103E9000390718F0281B390B02C0260F371F283CA2 -:103EA0003105E0F4809122028F70806180932202BC -:103EB00086E0849FF001859FF00D1124E85DFD4FA1 -:103EC00080818F70806180838DE192E00E94C41AAE -:103ED000DF91CF911F910F910C94D01EAF5FA7700F -:103EE000AD13B4CFDF91CF911F910F910895EF9251 -:103EF000FF920F931F93CF93DF93CDB7DEB76297F7 -:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F -:103F1000DE011D9601900D928A95E1F7D8014C9132 -:103F200011965C91119712966C9112971396ED90E1 -:103F3000FC90149770911D02E0911E028091200266 -:103F400090912102009739F0EF3F41F421E030E0F9 -:103F50007F3F31F003C021E030E002C020E030E0DC -:103F600020FD5CC120911F02222309F4F1C0E81654 -:103F7000F90628F09701281B390BC90104C0809568 -:103F800090958E0D9F1D883C910508F098C08091FA -:103F90002202982F907F09F064C0E51314C07413B7 -:103FA00012C0611110C08F708061809322020E9444 -:103FB000F11E8DE192E00E94C41A80912202D80184 -:103FC00015968C9343C1EF2839F05F3F41F481E0AF -:103FD00090E04F3F31F003C081E090E002C080E00C -:103FE00090E080FD03C081E0862702C080E090E081 -:103FF00080FF2EC0809153022091540236E013C0FE -:1040000090E0389FF001399FF00D1124ED5DFD4FD8 -:104010007181571306C07081471303C07281671303 -:1040200017C0019687708213EBCF12C19F7059F0B1 -:10403000882309F40BC107C09F7029F0F80195810E -:10404000907F09F403C1805E883008F4FFC0D2C0BD -:10405000662309F4FBC080912202816080932202D2 -:10406000F5C0E51308C0741306C0611104C0D8017F -:1040700015968C939DC04D875E878D859E856A8B36 -:104080000E94901E6A89882309F4B4C0662309F44B -:10409000B1C020912202822F82958F7090E002970A -:1040A0000CF4C6C080911D0290911E0298878F83E8 -:1040B0001986FB86EA862C87CE01079646C080913A -:1040C0002202982F907F59F47E2DF98AE88A8989F7 -:1040D0000E94B11E8DE192E00E94C41A95C0E513C2 -:1040E00011C074130FC061110DC0F8018583C801A0 -:1040F0000E94C41AEDE1F2E086E0DF011D928A958C -:10410000E9F7A2C04D875E878D859E856A8B0E94E8 -:10411000901E6A89882309F46DC0662309F46AC079 -:1041200020912202822F82958F7090E002970CF4EA -:104130007FC080911D0290911E029A8389831B8209 -:10414000FD82EC822E83CE0101960E94C41A70C0BB -:10415000E816F90628F09701281B390BC90104C09D -:10416000809590958E0D9F1D883C910508F046C066 -:10417000662309F43FC0E51330C074132EC02091AC -:10418000220220FD21C0322F32953F70832F90E014 -:104190000097D1F0D80115962C9315970F9741F001 -:1041A000832F8F5F8295807F2F70282B15962C93FD -:1041B000C8010E94C41A86E0F801ADE1B2E00190A6 -:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC -:1041D00001900D928A95E1F737C04D875E878D85F6 -:1041E0009E850E94901E811123C0809122028160D1 -:1041F00080932202C8010E94C41A26C07E2DF98A2B -:10420000E88A89890E94B11EEDE1F2E086E0DF01D3 -:104210001D928A95E9F70E94F11E18C0662351F39A -:104220004D875E878D859E850E94901E882311F3A1 -:1042300086E0F801ADE1B2E001900D928A95E1F7D8 -:104240000E94FF1E0E94F11E81E014C080E012C097 -:104250004D875E878D859E850E946923292F229533 -:104260002F7030E0223031050CF4E0CE24303105DF -:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D -:10428000DF91CF911F910F91FF90EF9008951F93B1 -:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80 -:1042A0000FBECDBF4F83588769877A878B879C87DE -:1042B000CE0107960E94771F8823D9F02F81388579 -:1042C0008A859B85892B39F03F3F19F080E090E08B -:1042D00004C02F3FD9F781E090E0892B09F06DC031 -:1042E0004F81588569857A858B859C850E94C01E83 -:1042F00064C086E0FE013796DE01119601900D92B2 -:104300008A95E1F7FF81E8854A855B85411551056E -:1043100039F0EF3F41F481E090E0FF3F31F003C01E -:1043200081E090E002C080E090E080FD46C02091F6 -:10433000540230E0C90101968770992760915302B9 -:1043400070E08617970709F440C0F983EA835D831C -:104350004C8396E0929FD001939FB00D1124AD5DE8 -:10436000BD4FFE01319601900D929A95E1F7809331 -:1043700054020E94D01E21C0189FC00111248D5DDF -:104380009D4F0E94771F882371F1E09153021E9F79 -:10439000F0011124ED5DFD4F4081518162817381F7 -:1043A000848195810E94C01E8091530290E0019605 -:1043B000877099278093530201C016E080915302C1 -:1043C000909154028913D8CF0EC00E948C1E109277 -:1043D000540210925302EDE1F2E086E0DF011D92FB -:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98 -:1043F000CDBFDF91CF911F910895DF92EF92FF9291 -:104400000F931F93CF93DF93EC01009709F46CC0D7 -:10441000D12CEE24E394F12C8E010F5F1F4FFE018F -:104420008491843748F4843008F04AC0813071F0B8 -:10443000823009F059C01EC0853709F43DC070F1C3 -:10444000982F9458903708F04FC03DC02296F8013D -:104450008491982F905E983050F48770FE2D01C0A3 -:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A -:104470009D192DC02296F8018491982F905E983056 -:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39 -:104490000E9405241CC00E94651A19C02296F801CA -:1044A000049107C08FE99FE00197F1F700C0000079 -:1044B00001500111F7CF0BC02296F801D49007C02C -:1044C0000E949D1903C08F770E94651AE8018D2D07 -:1044D00007C08150EFE9FFE03197F1F700C000001D -:1044E000882309F499CFF5CFDF91CF911F910F91D8 -:1044F000FF90EF90DF9008956093590270935A02F5 -:1045000080935B0290935C020C947A1E6093550238 -:104510007093560280935702909358020C947A1E1F -:1045200008950C947C220F931F93009159021091CF -:104530005A0220915B0230915C02602B712B822B1E -:10454000932B1F910F910C947C220F931F9300913A -:10455000590210915A0220915B0230915C02602353 -:104560007123822393231F910F910C947C220F932C -:104570001F930091590210915A0220915B023091D1 -:104580005C0260277127822793271F910F910C945B -:104590007C2260E070E0CB010C94862241E050E088 -:1045A00060E070E004C0440F551F661F771F8A95B6 -:1045B000D2F7CB01BA010C94862241E050E060E0D2 -:1045C00070E004C0440F551F661F771F8A95D2F70D -:1045D0008091550290915602A0915702B0915802D5 -:1045E000482B592B6A2B7B2BCB01BA010C948622CA -:1045F00041E050E060E070E004C0440F551F661FCA -:10460000771F8A95D2F74095509560957095809167 -:10461000550290915602A0915702B091580248233A -:1046200059236A237B23CB01BA010C94862241E0F3 -:1046300050E060E070E004C0440F551F661F771F14 -:104640008A95D2F78091550290915602A091570217 -:10465000B0915802482759276A277B27CB01BA0116 -:104660000C9486220F931F930091550210915602CD -:104670002091570230915802602B712B822B932B83 -:104680001F910F910C9486220F931F930091550256 -:1046900010915602209157023091580260237123E5 -:1046A000822393231F910F910C9486220F931F93C3 -:1046B00000915502109156022091570230915802F4 -:1046C00060277127822793271F910F910C948622D0 -:1046D0000895CF92DF92EF92FF920F931F93CF93A3 -:1046E000DF93EC01C0905902D0905A02E0905B0237 -:1046F000F0905C028091550290915602A091570271 -:10470000B0915802C82AD92AEA2AFB2A0FE110E000 -:10471000B701A601002E04C0769567955795479579 -:104720000A94D2F740FF08C0BE01802F0E94E00328 -:104730008130910509F007C00150110948F7BE0109 -:1047400080E00E94E003DF91CF911F910F91FF90D5 -:10475000EF90DF90CF90089540911B0150911C0184 -:1047600020E030E09FEFFA01E20FF31F628168174B -:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD -:104780002630310581F707C0FA01E90FF11D97FDC9 -:10479000FA95828308959F3FB9F7089540911B01D0 -:1047A00050911C0120E030E0FA01E20FF31F9281EA -:1047B000981301C012822F5F3F4F26303105A1F7B9 -:1047C000089581E090E0E0911B01F0911C01E80F59 -:1047D000F91F1082019688309105A9F708959091EC -:1047E0005D02982B90935D020895809590915D02F3 -:1047F000982390935D02089510925D020895909120 -:104800005E02982B90935E020895809590915E02CF -:10481000982390935E02089510925E02089580930B -:104820005F02089510925F02089540911B0150911C -:104830001C0120E030E080E0FA01E20FF31F9181DB -:1048400091118F5F2F5F3F4F27303105A9F70895F2 -:10485000E0911B01F0911C0180915D028083E09149 -:104860001B01F0911C01808190915E02892B808355 -:1048700090915F02992361F0E0911B01F0911C017E -:104880008081892B80830E94152481110E9412242B -:1048900080911B0190911C010C946A1880916E0309 -:1048A000843009F11092690220E488E190E00FB6AB -:1048B000F894A895809360000FBE2093600083B7A2 -:1048C000817F846083BF83B7816083BF789488953C -:1048D00083B78E7F83BF88E10FB6F8948093600022 -:1048E000109260000FBE0895CF930E94E3020E94D1 -:1048F0007E060E94E402C0E08C2F0E94C407892B30 -:1049000029F4CF5FC430C1F780E001C081E0CF91CE -:1049100008950E948C1E0C945F2B1F920F920FB66D -:104920000F9211248F939F93AF93BF93809169024D -:10493000811113C080916A0290916B02A0916C0268 -:10494000B0916D024196A11DB11D80936A029093B2 -:104950006B02A0936C02B0936D02BF91AF919F91D7 -:104960008F910F900FBE0F901F90189582E084BD1D -:1049700093E095BD9AEF97BD80936E0008958FB731 -:10498000F89440916A0250916B0260916C027091B0 -:104990006D028FBFCA010895CF92DF92EF92FF920E -:1049A0000F931F932FB7F89440916A0250916B02B6 -:1049B00060916C0270916D022FBF6A017B01EE2441 -:1049C000FF248C0120E030E0C016D106E206F30699 -:1049D00020F09A01281B390B05C09C0120953095C9 -:1049E000240F351FC9011F910F91FF90EF90DF90A9 -:1049F000CF9008951F920F920FB60F9211248F93AC -:104A00009F93AF93BF9380916A0290916B02A091A4 -:104A10006C02B0916D020196A11DB11D80936A02D6 -:104A200090936B02A0936C02B0936D02BF91AF9113 -:104A30009F918F910F900FBE0F901F9018950E941D -:104A4000A111F8942FEF87EA91E621508040904021 -:104A5000E1F700C0000087E090EBDC018093780371 -:104A600090937903A0937A03B0937B032CE088E1C1 -:104A700090E00FB6F894A895809360000FBE209345 -:104A80006000FFCFCF92DF92EF92FF920F931F93C0 -:104A9000CF93DF93C82ED12C01E010E08D2D0E9422 -:104AA000C4077C01C0E0D0E098010C2E02C0220FA8 -:104AB000331F0A94E2F72E213F21232B29F421965C -:104AC000CC30D10589F708C06C2F7D2D80E00E9485 -:104AD000BB03C812F4CF06C0D39484E0D812DECF53 -:104AE00080E001C081E0DF91CF911F910F91FF9095 -:104AF000EF90DF90CF900895CF93C82F8CE20E9463 -:104B00004225882321F08C2FCF910C94422580E000 -:104B1000CF910895CF930E94CD26811102C00E94AB -:104B2000AE26C5E608C00E947E068FE39CE9019789 -:104B3000F1F700C00000C150B1F789E20E947C2566 -:104B400081110AC18AE20E947C2581110E94AE2651 -:104B500085E00E947C2581110E941F250E94D82695 -:104B60008093680287E00E947C25882399F18BE17D -:104B70000E947C25882351F09091680291FB882740 -:104B800080F921E0822780FB91F922C08EE00E940B -:104B90007C25882351F09091680292FB882780F948 -:104BA00021E0822780FB92F913C080E10E947C25DE -:104BB00090916802882341F093FB882780F921E0D7 -:104BC000822780FB93F904C0892F809580FB90F9A0 -:104BD00090936802809168020E94DC260E94EA2677 -:104BE00080937B0280EE0E947C25882341F0809197 -:104BF0007B02982F909590FB80F980937B0289E34C -:104C00000E947C25882359F090917B0291FB882794 -:104C100080F921E0822780FB91F990937B0282EE5C -:104C20000E947C25882359F090917B0292FB882773 -:104C300080F921E0822780FB92F990937B0286EE37 -:104C40000E947C25882359F090917B0293FB882752 -:104C500080F921E0822780FB93F990937B0283EE19 -:104C60000E947C25882359F090917B0294FB882731 -:104C700080F921E0822780FB94F990937B0285E301 -:104C80000E947C25882359F090917B0295FB882710 -:104C900080F921E0822780FB95F990937B0281E3E4 -:104CA0000E947C25882359F090917B0296FB8827EF -:104CB00080F921E0822780FB96F990937B0281E1C5 -:104CC0000E947C25882359F090917B0297FB8827CE -:104CD00080F921E0822780FB97F990937B028091F5 -:104CE0007B020E94EE2687E20E947C25C82F8EE17F -:104CF0000E947C258111C2608FE10E947C25811178 -:104D0000C46080E20E947C258111C86081E20E941B -:104D10007C258111C06182E20E947C258111C062E4 -:104D200083E20E947C258111C06484E20E947C257C -:104D3000882311F0C06802C0CC2329F08C2F0E9478 -:104D4000E5266C2F03C00E94E126682F70E080E00A -:104D500090E0CF910C949122CF9108956DEE7EEF6B -:104D600080E090E00E94BA2F60E082E090E00E9434 -:104D7000AC2F60E083E090E00E94AC2F60E084E024 -:104D800090E00E94AC2F60E085E090E00E94AC2FA4 -:104D900060E086E090E00C94AC2F80E090E00E9410 -:104DA000A62F21E08D3E9E4F09F020E0822F08952E -:104DB00082E090E00C949E2F682F82E090E00C94AB -:104DC000AC2F83E090E00C949E2F682F83E090E05E -:104DD0000C94AC2F84E090E00C949E2F682F84E01C -:104DE00090E00C94AC2F86E090E00C949E2F682FFE -:104DF00086E090E00C94AC2F8091760280FF0BC08F -:104E00006091200185E0689FB00111247595679538 -:104E1000759567952AC081FF09C06091200185E0E2 -:104E2000689FB0011124759567951FC082FF07C068 -:104E30006091200185E0689FB001112416C0409167 -:104E400070024423C9F060911F01461788F7209132 -:104E5000200185E0289F90011124429FC001439FBB -:104E6000900D112470E00E948A2F6038710540F483 -:104E70006115710539F002C065E070E0862F089574 -:104E80008FE7089581E008958091760280FF08C041 -:104E900060911E0170E0759567957595679521C0C5 -:104EA00081FF06C060911E0170E07595679519C07D -:104EB00082FF04C060911E0170E010C080917002FA -:104EC0008823C1F060911D018617A0F790911E0103 -:104ED000989FC001112470E00E948A2F60387105EC -:104EE00028F46115710521F0862F08958FE7089544 -:104EF00081E0089561E070E0F4CF803F21F40E94EA -:104F0000FC26819504C0813F29F40E94FC268093F1 -:104F100073020895823F21F40E94FC26819504C00B -:104F2000833F29F40E94FC26809372020895893FF2 -:104F300019F40E94442705C08A3F31F40E94442797 -:104F400081958093740208958B3F21F40E94442739 -:104F5000819504C08C3F29F40E94442780937502F8 -:104F60000895843F21F480917102816017C0853FCC -:104F700021F480917102826011C0863F21F48091FA -:104F8000710284600BC0873F21F4809171028860B8 -:104F900005C0883F31F48091710280618093710275 -:104FA00008958D3F21F48091760281600BC08E3F81 -:104FB00021F480917602826005C08F3F29F48091B0 -:104FC00076028460809376020895803F29F4809170 -:104FD000730287FF6EC007C0813F41F48091730266 -:104FE00018160CF066C01092730263C090917202A2 -:104FF000823F19F497FF5DC005C0833F31F4191655 -:105000000CF057C01092720254C0893F31F4809165 -:10501000740218160CF04DC006C08A3F39F4809116 -:10502000740287FF46C01092740243C08B3F29F47C -:105030008091750287FF3DC006C08C3F39F4809196 -:1050400075021816B4F51092750233C0843F21F42E -:10505000809171028E7F05C0853F31F4809171028D -:105060008D7F8093710225C0863F21F4809171026B -:105070008B7FF7CF873F21F480917102877FF1CF3B -:10508000883F21F4809171028F7EEBCF8D3F21F418 -:10509000809176028E7F0BC08E3F21F48091760244 -:1050A0008D7F05C08F3F29F4809176028B7F80939E -:1050B00076028091720281110EC08091730281117B -:1050C0000AC080917402811106C08091750281111D -:1050D00002C010927002089581E792E00E94751854 -:1050E0000E94BF2490936F0280936E020895CF9325 -:1050F00080916E0290916F020E94CC2440917002C8 -:10510000442321F02091210130E006C020912201AA -:105110005AE0259F900111248217930708F486C056 -:105120008091720281110DC090917302911109C09A -:1051300090917402911105C090917502992309F420 -:1051400075C04F3F19F04F5F40937002181624F45A -:105150000E94FC26809372028091720287FF05C034 -:105160000E94FC268195809372028091730218162A -:1051700024F40E94FC26809373028091730287FFBF -:1051800005C00E94FC268195809373026091720293 -:10519000662339F1C0917302CC2319F1772767FD9B -:1051A0007095872F972F0E94FA2C23E333E343E374 -:1051B0005FE30E94AE2D0E94C72C609372026C2F99 -:1051C000772767FD7095872F972F0E94FA2C23E38E -:1051D00033E343E35FE30E94AE2D0E94C72C60934C -:1051E000730280917402181624F40E94442780935D -:1051F00074028091740287FF05C00E944427819544 -:105200008093740280917502181624F40E9444273A -:10521000809375028091750287FF05C00E94442724 -:10522000819580937502CF910C946C28CF9108954D -:10523000E1E7F2E085E0DF011D928A95E9F710923F -:105240007002109276020895833089F130F4813033 -:1052500061F0823009F06EC019C0853009F449C090 -:10526000B8F1863009F066C055C020912201862F22 -:1052700090E0820F911D8F3F910520F4620F6093A3 -:10528000220108958FEF809322010895209121013A -:10529000862F90E0820F911D8F3F910520F4620FC1 -:1052A0006093210108958FEF80932101089520914B -:1052B0002001862F90E0820F911D8F3F910520F4F1 -:1052C000620F6093200108958FEF8093200108956D -:1052D00020911F01862F90E0820F911D8F3F910535 -:1052E00020F4620F60931F0108958FEF80931F01D8 -:1052F000089520911E01862F90E0820F911D8F3F0F -:10530000910520F4620F60931E0108958FEF809342 -:105310001E01089520911D01862F90E0820F911D9E -:105320008F3F910520F4620F60931D0108958FEF68 -:1053300080931D010895833021F130F4813059F0BC -:10534000823009F049C012C0853089F128F18630D9 -:1053500009F042C037C080912201681720F4861BF3 -:1053600080932201089510922201089580912101D5 -:10537000681720F4861B8093210108951092210163 -:10538000089580912001681720F4861B80932001E6 -:10539000089510922001089580911F01681720F44C -:1053A000861B80931F01089510921F01089580911C -:1053B0001E01681720F4861B80931E010895109229 -:1053C0001E01089580911D01681720F4861B8093AB -:1053D0001D01089510921D01089541E050E060E024 -:1053E00070E004C0440F551F661F771F8A95D2F7DF -:1053F000CB01BA010E9491220C948C1E873208F5D1 -:105400008E3108F0B9C08E3009F47EC060F4873068 -:1054100009F465C018F4863059F549C0883051F157 -:105420008B3031F5AEC0883130F4863108F0A9C038 -:105430008031F1F473C0893109F4A3C08B31C1F418 -:1054400059C08933F1F068F4893209F493C018F433 -:10545000873271F48FC0853309F48CC0883341F4EE -:1054600090C0863409F46BC008F488C0883449F1D0 -:1054700080E008950E94D8260E94EA260E94F32622 -:1054800080C00E945918892B59F00E945918909396 -:105490007902809378020E948C1E80E090E004C024 -:1054A00080917802909179020E9454186AC080918C -:1054B0006802817F8E7F8093680281E0809377020B -:1054C00008950E948C1E2FEF83ED90E321508040C1 -:1054D0009040E1F700C000000E941F2552C080915B -:1054E000680280FF03C0817F8E7F01C0816080934E -:1054F000680247C09091680291FB882780F921E0FB -:10550000822780FB91F913C09091680292FB882753 -:1055100080F921E0822780FB92F909C0909168020E -:1055200093FB882780F921E0822780FB93F99093F1 -:105530006802882331F191609093680222C081E86B -:1055400090E00E9480182FEF81EE94E0215080407F -:105550009040E1F700C0000080E090E00E948018D9 -:105560002FEF89E698E1215080409040E1F700C09C -:10557000000007C080E003C08D5101C089530E9424 -:10558000ED2981E0089580E0089580E00895CF93AB -:10559000C82F80917702813071F020F0823009F0BD -:1055A00083C037C0A0911B01B0911C018C91823245 -:1055B00009F07CC007C0A0911B01B0911C018C9127 -:1055C000823249F48C2F0E94C32A81111EC08C2F75 -:1055D0000E94FE291CC08C2F0E94C52A811115C073 -:1055E000C43169F030F4CB3081F0C03109F062C0D1 -:1055F00009C0C93221F0C83309F05CC006C010925E -:10560000770258C082E08093770281E090E0817059 -:1056100054C0C932C1F060F4C431A9F020F4C730DD -:1056200009F046C02EC0CE51CA3008F041C011C0AA -:10563000CE3409F118F4CB34D9F517C0C13599F03F -:10564000C235B1F50EC010927A0281E080937702E4 -:1056500034C0EC2FF0E0E455FE4F808180937A0255 -:1056600027C061E003C061E007C06AE080917A0270 -:105670000E9424291DC06AE080917A020E949B2921 -:1056800017C08EE18093220182E3809321018AE09A -:105690008093200184E180931F0188E080931E01A4 -:1056A00088E280931D0104C01092770280E005C05B -:1056B00081E003C080E090E0AACFCF9108950E94DE -:1056C000CD26811102C00E94AE260E94F32680934F -:1056D000770380FF02C0869501C080E00C94DF074D -:1056E00080917703982F9695292F30E0233031054C -:1056F0004CF49F5F990F8170892B816080937703B1 -:105700000E94F7268091770386950C94DF0780919D -:105710007703982F969591F09158990F8170892B66 -:10572000809377038E7F91E009F490E08091770376 -:1057300090FB80F9809377030E94F726809177038E -:1057400086950C94DF0780917703982F909590FBB6 -:1057500080F9809377030E94F7268091770380FF7A -:1057600002C0869501C080E00C94DF07309177037A -:10577000232F26952F5F2F77822F90E0317004978B -:105780002CF4220F232B2093770302C0309377034E -:1057900080917703282F2E7F91E009F490E090FB11 -:1057A00080F9809377030E94F7268091770386958E -:1057B0000C94DF0720917703922F96959827990FE5 -:1057C000822F8170892B809377038E7F91E009F47B -:1057D00090E08091770390FB80F9809377030E949B -:1057E000F7268091770386950C94DF075058BB27E6 -:1057F000AA270ED075C166D130F06BD120F031F4FC -:105800009F3F11F41EF45BC10EF4E095E7FB51C11C -:10581000E92F77D180F3BA176207730784079507DA -:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F -:10583000A02D0B01B90190010C01CA01A001112496 -:10584000FF27591B99F0593F50F4503E68F11A1642 -:10585000F040A22F232F342F4427585FF3CF4695D3 -:1058600037952795A795F0405395C9F77EF41F16F5 -:10587000BA0B620B730B840BBAF09150A1F0FF0FBF -:10588000BB1F661F771F881FC2F70EC0BA0F621FAB -:10589000731F841F48F4879577956795B795F7959B -:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D -:1058B000979587950895D9D008F481E008950CD084 -:1058C0000FC107D140F0FED030F021F45F3F19F056 -:1058D000F0C0511139C1F3C014D198F39923C9F321 -:1058E0005523B1F3951B550BBB27AA2762177307E6 -:1058F000840738F09F5F5F4F220F331F441FAA1F9A -:10590000A9F333D00E2E3AF0E0E830D09150504059 -:10591000E695001CCAF729D0FE2F27D0660F771F07 -:10592000881FBB1F261737074807AB07B0E809F0E9 -:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E -:10594000510568F0B6C000C15F3FECF3983EDCF350 -:10595000869577956795B795F7959F5FC9F7880FF7 -:10596000911D9695879597F90895E1E0660F771F49 -:10597000881FBB1F621773078407BA0720F0621BDA -:10598000730B840BBA0BEE1F88F7E095089504D0D3 -:105990006894B111D9C00895BCD088F09F5790F099 -:1059A000B92F9927B751A0F0D1F0660F771F881F44 -:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F -:1059C000B1E00895C0C0672F782F8827B85F39F0FD -:1059D000B93FCCF3869577956795B395D9F73EF4A3 -:1059E00090958095709561957F4F8F4F9F4F08954B -:1059F000E89409C097FB3EF4909580957095619569 -:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E -:105A10009395F695879577956795B795F111F8CF9A -:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 -:105A30009F4F16C0882311F096E911C0772321F0FB -:105A40009EE8872F762F05C0662371F096E8862F93 -:105A500070E060E02AF09A95660F771F881FDAF7EA -:105A6000880F9695879597F90895990F0008550F17 -:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4 -:105A800012161306E407F50798F0621B730B840BDC -:105A9000950B39F40A2661F0232B242B252B21F4B6 -:105AA00008950A2609F4A140A6958FEF811D811D56 -:105AB000089597F99F6780E870E060E008959FEF90 -:105AC00080EC089500240A94161617061806090695 -:105AD000089500240A941216130614060506089564 -:105AE000092E0394000C11F4882352F0BB0F40F4EC -:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C -:105B0000089557FD9058440F551F59F05F3F71F0AD -:105B10004795880F97FB991F61F09F3F79F0879514 -:105B20000895121613061406551FF2CF4695F1DF9D -:105B300008C0161617061806991FF1CF869571052D -:105B4000610508940895E894BB2766277727CB0161 -:105B500097F908958ADF08F48FEF08950BD0C0CF2E -:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58 -:105B70001124EACFC6DFA0F3959FD1F3950F50E033 -:105B8000551F629FF001729FBB27F00DB11D639FEF -:105B9000AA27F00DB11DAA1F649F6627B00DA11D95 -:105BA000661F829F2227B00DA11D621F739FB00D3B -:105BB000A11D621F839FA00D611D221F749F3327AB -:105BC000A00D611D231F849F600D211D822F762F44 -:105BD0006A2F11249F5750408AF0E1F088234AF041 -:105BE000EE0FFF1FBB1F661F771F881F915050408D -:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355 -:105C0000983EDCF3869577956795B795F795E79578 -:105C10009F5FC1F7FE2B880F911D9695879597F989 -:105C20000895FA01EE0FFF1F30962105310599F115 -:105C30006115710561F48038BFE39B0749F16894F1 -:105C40009038810561F08038BFEF9B0741F09923C0 -:105C500042F5FF3FE1053105210511F1E894089473 -:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313 -:105C700010C0FF5F70F4A695E0F7F73950F019F007 -:105C8000FF3A38F49F779F930CD00F9007FC905801 -:105C900008953EF014CF60E070E080E89FE308953F -:105CA0004FE79F775F934F933F932F939ED02F9112 -:105CB0003F914F915F9152DF05C019F40EF0F9CE7C -:105CC00042CFFDCE26DFC8F39638C0F707F80F9213 -:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E -:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D -:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6 -:105D0000FE57E0684427EE0F441FFA95E1F74195EE -:105D1000550B32D00F9007FE26C00895DF93CF9326 -:105D20001F930F93FF92EF92DF927B018C01689497 -:105D300005C0DA2EEF011EDFFE01E894A591259142 -:105D4000359145915591AEF3EF0162DDFE0197016A -:105D5000A801DA9479F7DF90EF90FF900F911F91EF -:105D6000CF91DF9108959B01AC0160E070E080E885 -:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A -:105D8000940F511DBBF39150504094F059F088236B -:105D900032F0660F771F881F91505040C1F79E3F29 -:105DA000510544F7880F911D9695879597F90895A9 -:105DB0005F3FACF0983E9CF0BB2786957795679542 -:105DC000B79508F4B1609395C1F7BB0F58F711F47C -:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11 -:105DE0000EF076C06CCE689464CE93DEC8F399232F -:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75 -:105E0000DD2788232AF02197660F771F881FDAF78E -:105E100020E030E040E85FEB9FE3883920F0803EEF -:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7 -:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757 -:105E400071097595771F880B990BD4DD28E132E72E -:105E500041E35FE38FDEAF2D9801AE01FF900F911C -:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68 -:105E7000BB1F9B01AC01BF5728F4222733274427BF -:105E800050781FC0B75188F4AB2F00244695379542 -:105E90002795011CA395D2F3002069F0220F331F30 -:105EA000441FB395DAF30DD0A1CC61307105A0E8A1 -:105EB0008A07B94630F49B01AC016627772788270B -:105EC0009078309621F02083318342835383089564 -:105ED0009F3F31F0915020F4879577956795B7955E -:105EE000880F911D9695879597F90895AA1BBB1B5E -:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA -:105F0000B70B881F991F5A95A9F780959095BC01EA -:105F1000CD01089597FB072E16F4009407D077FD66 -:105F200009D00E94762F07FC05D03EF4909581950C -:105F30009F4F0895709561957F4F0895F999FECF11 -:105F400092BD81BDF89A992780B50895A8E1B0E087 -:105F500042E050E00C94C12F262FF999FECF1FBAD2 -:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82 -:105F7000019608950E94AC2F272F0C94AD2FDC01C1 -:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44 -:105F9000319600B40D9241505040B8F70895F894EE -:025FA000FFCF31 -:105FA2000507000C058540000001064000000100C5 -:105FB200D80B680C440C0F0CDB0B01600228081490 -:105FC2000A321E40004500250026006100600020C4 -:105FD2000037006400650066006700440046002444 -:105FE2000047000000020004000500070009000B42 -:105FF200000C000E0010001100130015001700180D -:10600200001A001C001D001F00210023002400268E -:1060120000280029002B002D002F00300032003410 -:10602200003500370039003B008803A103BA03D3CF -:1060320003FB04AE04780458043F4D3620020302E9 -:10604200000001000101010101000101010203043C -:0660520005060708090025 -:00000001FF diff --git a/keyboard/planck/planck_with_bootloader.hex b/keyboard/planck/planck_with_bootloader.hex deleted file mode 100755 index c61dfb743..000000000 --- a/keyboard/planck/planck_with_bootloader.hex +++ /dev/null @@ -1,1796 +0,0 @@ -:020000020000FC -:047000000C948D3E21 -:047028000C94B73DD0 -:10702F0012010002FF010020EB03F42F0000010208 -:10703F00030109021200010100803209040000005F -:10704F00000000000C03410054004D0045004C00AF -:10705F001603410054006D00330032005500340018 -:10706F004400460055000C0331002E0030002E0066 -:10707F0030000403090416010C0100000C0000018C -:02708F006C7F14 -:1070920012BD01BDF89A00B5089501E00895F9996D -:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929 -:1070B200FECF0C944938F80104910895F8013491F7 -:1070C20031962491890108950091610000930C0189 -:1070D20000E80093610001E00093610005BF02E057 -:1070E20005BF0C9486380091D70001600093D70049 -:1070F200A89507EF04BF0091600000610093600053 -:1071020000E00093600001E008950E94AA3D0E9401 -:10711200B53DFDCF0CD00F7708D0006806D00061D6 -:1071220004D0016028D0789408950093D80000918B -:10713200D8000895FCDF00621ED04CD009B500FFD4 -:10714200FDCFF5DF0F7D17D00091E0000E7F009399 -:10715200E0000091E000077F0093E0000091E20070 -:1071620001600093E2000091E20008600093E200F7 -:1071720078940C94743B0093D800089500910D010B -:10718200002359F40091D90000FF07C0D0DF006846 -:10719200F2DF01E000930D01CDDFE0E2F2E00081D9 -:1071A200018100FF0DC0008111811E7F11830083C8 -:1071B20001E00093EA0000E00093EA0000931E025F -:1071C20000E00093E9000091E80003FF02C00E9482 -:1071D200F23B0895A89539D000E40093600000E0E6 -:1071E200009381000093800010E0009385000093DB -:1071F200840001E006BB00918100036000938100DE -:107202000091600007FFFCCF00E80093600010933C -:107212008100A89507EF04BF18D010936000209159 -:1072220084003091850010938100109380001093A8 -:1072320085001093840001E006BB2D3D354010F01F -:1072420002E101C002E009BD089500916000006101 -:107252000093600008950E94AD3E239741D100E063 -:1072620000930901B5D104811581012B51F437D165 -:1072720000910701002309F4B9C000E0009307015F -:10728200B5C058D102FFFDCF37D1068335D1009367 -:107292000F0132D1009310012FD1009311012CD193 -:1072A2000093120129D10093130102852091130149 -:1072B20030911201409111015091100116811A95DD -:1072C20041F01250A9F01A9599F11A9509F473C078 -:1072D2008BC010910F01113011F411E001C010E0C8 -:1072E200138799D00C3F11F414D17FC077D17DC0A0 -:1072F20092D010910F01112329F01A9549F01A9595 -:10730200A9F073C010E013870C3F09F06EC0ECCFF8 -:1073120056D103C04CD109F468C00D911C9144D1DF -:107322000F3FC1F305E0009309015FC011E0EBCF0D -:10733200D2D029F00250E1F10A9541F056C0FDD0B9 -:107342000E94A33F0FEF00930A014FC0552319F08B -:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE -:1073620003FFFDCF67D051D04AD008E00093600000 -:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F -:1073820044D00FEF1FE004C009811A810150104060 -:1073920009831A8309811A81012BB1F700E800934E -:1073A200610000910C01009361000C940000FFCF7A -:1073B20001E003871AC08FD019F00A9539F015C081 -:1073C200535098F4BAD002E000870FC0505339F0FE -:1073D2005A9541F05F52B1F35A95A1F306C002E00B -:1073E2000883F0CF01E0FCCFA8D079D02396E4E067 -:1073F2000C94BA3E01E005BF00E005BF089500917C -:10740200D8000F770093D800089509B50D7F09BD04 -:1074120000E009BD08955183408333832283109194 -:10742200E8001B7F1093E8001091E8001F7710938B -:10743200E80008955DD053D0F8940091E000016017 -:107442000093E000089579D04AC0219749D0009175 -:107452000601035019F00250B9F00BC03CD021F0E4 -:107462000A9559F00A9529F400910A010C3F19F482 -:1074720050D02196089567D0FCCF0091010100936E -:10748200F100009100010AC01091100124D019F0FE -:107492000A9549F0EECF135018F400E00093F10082 -:1074A2001ED044D0E6CF105339F01A9539F01F524E -:1074B20041F01A9541F0F4CF08E5F0CF00E006D094 -:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5 -:1074D20030E00C94113F00910F010023089521C068 -:1074E2000BD008D007D00093040106D00093050109 -:1074F20021D00BC000D008830091F10008950091C3 -:10750200EB0000620093EB0015D0077F0093E800C8 -:107512000895F5DF02E00093080103E000930901FA -:10752200089559D007D000FFFDCF089503D002FF80 -:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A -:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD -:107552002BD00093F1002BD059F43DD0082F092BEA -:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1 -:10757200042D4394003289F300910B0100230D91F5 -:107582001C9131F311970E945838E3CFD3DF00FFEB -:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B -:1075A200CCDFE5E00C94B93E11970C945C380D9158 -:1075B2001C910F5F1F4F1C930E93019708958281B8 -:1075C200938100811181801B910B0196DF01089547 -:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71 -:1075E200F7DF80819181A081B181AF710481158122 -:1075F20000521040048315830AC000910B0100233E -:1076020031F4A301920103E911E00E943B3F47D00C -:10761200B8F1662477242C0111C06EDFF301ED5618 -:10762200FE4F008301E0600E00E0701E01960091A3 -:10763200F200002311F033D0B8F47FDF30D0E8F24B -:10764200F301B096E238F040C0F674DF02FFFDCFDE -:107652000091F200BDDF24813581201B304024835C -:107662003583E5CF49DFAA95AA23E1F700910B0103 -:10767200013099F62091F1008C010E945038D6CF4A -:1076820004811581012B21F055DF02FFFDCF55DF6B -:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051 -:1076A200F1E0028113810817190708952091EB0078 -:1076B20021602093EB000093EC000091ED0002703A -:1076C200012B0093ED000091ED0002600093ED00AC -:1076D2001091EE00012F000F00E0001F0895412FCE -:1076E2000093E900089500E009D000FD05C000E024 -:1076F200F7DF10E202E0DACF00E00895F1DF009157 -:10770200EB0008950F770132A9F5112369F11A955B -:1077120059F01A9561F01A9569F01A95F9F01A95CF -:10772200C1F01A95D9F024C00E942C3920C00E94C1 -:10773200263A1DC029D00091090123D001E01FD0B3 -:1077420020D0009108011BD00E94923A0E94973AE1 -:107752000EC01AD00091080114D007C002E00093B5 -:10776200080100E0009309010FD00E94923A03C081 -:107772000E94803A02C001E0089500E0089501D01D -:1077820000E00093F10008950091E800077F009364 -:10779200E800089508950350F9F4112339F01A9579 -:1077A20051F01A9581F01A9599F016C004E016D09E -:1077B20001E810E703C011D003E510E7E7E1F2E0CA -:1077C20000831183D8CF06E109D00FE510E7F6CF89 -:1077D20004D005E710E7F2CFD0CF0CE000931A02F5 -:1077E200089527D120D100931D02E1D0212F11232A -:1077F20029F12A95E9F02250F1F0225099F02A95C8 -:1078020049F0225061F02A9581F02A95E1F02A95FB -:10781200E9F023C0003809F44FC00C94833B0038D0 -:10782200E1F7C8C00023C9F71EC00023B1F72DC07D -:10783200033098F744C1033080F70BC1003868F376 -:10784200033858F7C9C0013841F77BC1013051F400 -:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA -:1078620009F41ED008951091E3001078DCD00F7750 -:10787200012B0093E300E9D0ACD000FFFDCF0091D3 -:10788200E30000680093E300089591D0123040F4C1 -:107892000FD010931E02DAD000911E020C94CB3B43 -:1078A2000091EB0001D004C000620093EB00089548 -:1078B2000091E800077FC0C0BA93AA93229700E024 -:1078C2000093190274D0AFD0202F2A9519F02A956F -:1078D200E9F022C002E100931A020FE210E7E7E1A9 -:1078E200F2E0008311839DD008839DD00983E0DFFD -:1078F20000911A0210E02881398102171307A8F4B7 -:107902000F7181F401E00093190211C002E10093AA -:107912001A0201E410E7E3CF0E94CC3B002319F7DF -:107922008ED040C01093190202C020931A027ED05A -:10793200A7E1B2E001C08AD000911A02002309F146 -:1079420048D004FD1EC045D000FD03C042D004FF54 -:10795200FACF10E0012F1395003281F0ED91FC91E6 -:107962001197049133D02D913C912F5F3F4F3C935F -:107972002E93FD0103810A95038361F72AD004FF48 -:10798200DACF00911902013039F423D004FD04C08A -:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F -:1079A20018D00B7F49D02296A991B99108951091D0 -:1079B200F10008957DDF00911E0208D047D009D062 -:1079C2000F773AD006D002FFFDCFBFC00093F1007F -:1079D20008950091E800089524D010911D021058D6 -:1079E20029F01A9589F01A9591F019C061DF00917A -:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63 -:107A020018D0E7DF0F770CC053DF00E0F2CF51D080 -:107A12000F7710E0F801E55EFD4F0081EACF0FD04D -:107A22000BC001D000D00091F1000895D2DF0F7E8B -:107A320003C00091E8000B7F0093E80008950091D5 -:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31 -:107A5200F3CF00911D02002329F00A9509F10A953E -:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE -:107A7200B9F4D9DF0F7711F416D01BD00093E900C7 -:107A82001091EB0010FF0BC00ED010E01093E90034 -:107A920021E0F801E55EFD4F20834FD003C042D0C4 -:107AA20045D0CFDFC9CF1091EB0010621093EB00ED -:107AB20008951091E800177F1093E800089500914F -:107AC2001D02002311F4AFDF02C0013011F4B7DF51 -:107AD200B3CF023031F52DD019F52091F1002F7777 -:107AE2002093E90023D000FF19C081F01FD000616C -:107AF200DCDE01E010E0422F0E949F3E0093EA008C -:107B020000E00093EA0012D00860CFDE0BD030E034 -:107B1200F901E55EFD4F008310D0DACF03D0D7CF55 -:107B2200BFDE089500E00093E90008950091EB00A4 -:107B3200089579DF3CDF00230895BADE4ADF0E7F25 -:107B4200089583DF46DF02FFFDCF73DF42DF0F7749 -:107B520073CF0091D70001600093D7000E948B3849 -:107B620000E000931F0208950C94BF388A93FA93A1 -:107B7200EA933A922A921A920A927A936A935A93BF -:107B82004A933A932A931A930A938FB70091DA0091 -:107B920000FF24C00091D80000FF20C00EEF009328 -:107BA200DA000091D90000FF11C001E000930D013D -:107BB200ABD0026096D09AD00860A2D00E949B38C7 -:107BC2000091E0000E7F0093E00008C000E0009307 -:107BD2000D0100931E0298D0046083D07FD002FF73 -:107BE20005C084D002FF02C00BEF75D077D000FF32 -:107BF2001BC07CD000FF18C001E000930E016AD0C8 -:107C020083D000626ED00EEF6FD0006179D06ED05B -:107C12000F7D76D00091D80000620093D80009B59C -:107C22000D7F09BD00E009BD59D004FF20C05ED020 -:107C320004FF1DC009B500FD05C00E94EB3809B55F -:107C420000FFFDCF0091D8000F7D0093D80042D0F5 -:107C520000910E01002359F04CD00FEE45D00F7E5B -:107C620052D000643ED042D001604AD042D036D0D9 -:107C720005FF0FC03BD005FF0CC000E000930E01D2 -:107C820035D00F7E3DD00FED2FD00F7D3CD0006858 -:107C920028D024D003FF0DC029D003FF0AC000E082 -:107CA20000931F0207EF17D00E94743B2DD0116082 -:107CB20018D08FBF09911991299139914991599100 -:107CC200699179910990199029903990E991F991E6 -:107CD200899118950FEE0093E10008950091E1005B -:107CE20008951183008308950093E1000091E2005A -:107CF20008950091E200006203D00091E200086062 -:107D02000093E2000895FCDFE0E2F2E000811181DD -:107D1200089500008895FECF01E60DBF02E00EBF78 -:107D2200C2EED2E00E947438002311F00E94D33ECA -:107D32000E9465380E948A3E0C948A3E4A951AF047 -:107D4200000F111FFBCF0895BA92AA929A928A92BB -:107D52007A926A925A924A92BA93AA939A938A937D -:107D62000895BB84AA84998488847F806E805D8014 -:107D72004C80BB81AA8199818881F0E00FB6F8948A -:107D8200CE0FDF1F0FBE089520E006D0E9F7089559 -:107D9200259102D0E9F708952D9301501040202F2C -:107DA200212B089585E890E7FC0105911491FC01CF -:107DB2003296A591B491FC01349625913491422FCB -:107DC200432B19F0F901E4DF01C0DEDF069610E76C -:107DD2008139910748F308952F930CD02F9101D048 -:107DE20008953CD0F12FE02F45E047BFE89536D00B -:107DF20012D0089533D0F12FE02F43E047BFE8952A -:107E02002DD008952BD0F12FE02F43E047BFE89506 -:107E120025D001D0089522D041E147BFE8951EC088 -:107E22001DD0F12FE02F41E247BFC895002D16C0AB -:107E320015D0F12FE02F49E047BFC895002D0EC0A5 -:107E4200F32FE22F012E102E41E047BFE89506C026 -:107E520005D0002E29E027BFE89500C0022E27B7E3 -:107E620020FDFCCF202D0895022E27B726FDFCCF42 -:107E7200202D08950E94A53E22974801C901DA01EA -:107E820010C05BD001E0A00E00E0B01E00E4A0161E -:107E920000E0B00608F440C0830120E030E00E9418 -:107EA200F23E0A2F0B2B09F440C0082F0F7710E087 -:107EB2002C01401A510A320100E4A02E03C00A2FFD -:107EC2000B2BE1F04816590680F0F40101914F01A5 -:107ED2000983119729F001914F010883119711C06D -:107EE200F2013196049108830CC0F20104910983D6 -:107EF2003196E817F907A1F7F401EDCF1BD00883FB -:107F020019839201088119810E94213F16D0AA94F7 -:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE -:107F220009F4AFCF83011DD0B7CF01E02296ECE078 -:107F32000C94B23E82010C945F3802E0400E00E0E5 -:107F4200501E08959A938A9380E090E08C0109D0A4 -:107F520080589F4F8F3F0FE69007C0F38991999108 -:107F6200089520E030E00C94FB3E00000000000089 -:067F720000000000FC000D -:107FE4000C94ED3E0C94113F0C94193F0C94213FDA -:0C7FF4000C94F23E0C94033F0C94293FC7 -:040000030000700089 -:100000000C949D020C94E1020C94E1020C94E10228 -:100010000C94E1020C94E1020C94E1020C94E102D4 -:100020000C94E1020C94E1020C941C120C94EE125C -:100030000C948D240C94E1020C94E1020C94E102E6 -:100040000C94E1020C94E1020C94E1020C94E102A4 -:100050000C94E1020C94FA240C94E1020C94E10259 -:100060000C94E1020C94E1020C94E1020C94E10284 -:100070000C94E1020C94E1020C94E1020C94E10274 -:100080000C94860A0C94E1020C94E1020C94E102B7 -:100090000C94E1020C94E1020C94E1020C94E10254 -:1000A0000C94E1020C94E1020C94E10207634236E5 -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F0000000000000021 -:10013000F1A4F1A3018C028C048C2B0014001A0092 -:100140000800150017001C0018000C001200130016 -:100150002A00290004001600070009000A000B000D -:100160000D000E000F0033003400E1001D001B00E5 -:100170000600190005001100100036003700380095 -:1001800028000030E000E200E30002202C002C00F8 -:1001900001205000510052004F002B0014001A00A3 -:1001A000090013000A000D000F0018001C003300A6 -:1001B0002A002900040015001600170007000B0094 -:1001C000110008000C0012003400E1001D001B00AB -:1001D0000600190005000E00100036003700380038 -:1001E00028000030E000E200E30002202C002C0098 -:1001F00001205000510052004F002B003400360007 -:10020000370013001C0009000A00060015000F004B -:100210002A00290004001200080018000C00070042 -:100220000B001700110016003800E1003300140025 -:100230000D000E001B00050010001A0019001D0023 -:1002400028000030E000E200E30002202C002C0037 -:1002500001205000510052004F0035021E021F02C3 -:100260002002210222022302240225022602270262 -:100270002A0001003A003B003C003D003E003F00E8 -:100280002D022E022F0230023102010040004100F7 -:100290004200430044004500032004200520005094 -:1002A0000100010001000100010002200100010025 -:1002B0000100AB00AA00A900AE0035001E001F001F -:1002C0002000210022002300240025002600270012 -:1002D0002A0001003A003B003C003D003E003F0088 -:1002E0002D002E002F0030003100010040004100A1 -:1002F0004200430044004500032004200520005034 -:1003000001000100010001000100010001000100E5 -:100310000120AB00AA00A900AE0028035400680029 -:100320006500200050006C0061006E0063006B00EF -:1003300020004B006500790062006F0061007200D0 -:10034000640000002C034F007200740068006F000E -:100350006C0069006E0065006100720020004B00B7 -:100360006500790062006F00610072006400730034 -:100370000000040309040902D000060100A03209AC -:100380000400000103010100092111010001223FC5 -:10039000000705810308000A0904010001030102A6 -:1003A00000092111010001224D0007058203080008 -:1003B0000A090402000103000000092111010001E3 -:1003C0002236000705830308000A0904030002031C -:1003D000000000092111010001222000070584030B -:1003E00020000107050403200001090404000001A6 -:1003F00001000009240100010900010509040500AC -:10040000020103000007240100014100062402014B -:100410000100062402020200092403010301020173 -:10042000000924030204010101000905060240003D -:1004300005000005250101010905850240000500B0 -:100440000005250101031201100100000008EDFE66 -:1004500060600100010200010631FF0974A1010979 -:1004600075150025FF952075088102097615002570 -:10047000FF952075089102C005010980A101850240 -:1004800016010026B7001A01002AB7007510950161 -:100490008100C0050C0901A1018503160100269CFD -:1004A000021A01002A9C02751095018100C0050105 -:1004B0000902A1010901A100050919012905150079 -:1004C00025019505750181029501750381010501DD -:1004D000093009311581257F950275088106093893 -:1004E0001581257F950175088106050C0A380215CE -:1004F00081257F950175088106C0C005010906A107 -:1005000001050719E029E715002501950875018106 -:1005100002950175088101050819012905950575E0 -:100520000191029501750391010507190029FF1535 -:100530000025FF950675088100C011241FBECFEF6E -:10054000DAE0DEBFCDBF04B603FE24C0809178039D -:1005500090917903A0917A03B0917B038730904BFF -:10056000A740B04BB9F4109278031092790310921F -:100570007A0310927B0314BE84B7877F84BF88E11F -:100580000FB6F89480936000109260000FBEE0E018 -:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E -:1005A00005900D92A63BB107D9F713E0A6EBB1E099 -:1005B00001C01D92A837B107E1F70E94F90E0C9413 -:1005C000CF2F0C9400000895089561110DC0FC0117 -:1005D0008281882331F085EE0E949D190E94B62BFE -:1005E00003C085EE0E94651A80E090E008958B3B81 -:1005F000910568F4883A910530F5853A9105C0F483 -:100600008430910598F4019709F06FC071C0803E65 -:10061000910508F46AC0883E910540F09C01205F76 -:1006200031092031310508F060C05CC09C01A1C0D7 -:10063000853A910509F45FC0863A910509F45EC0D8 -:1006400023E830E496C0883A910509F45AC0893A03 -:10065000910509F459C08A3A910509F458C08B3ABA -:10066000910509F457C08C3A910509F456C08D3AAA -:10067000910509F455C0803B910509F454C08E3AA8 -:10068000910509F453C08F3A910509F452C0813B9A -:10069000910509F451C0823B910509F450C0833B98 -:1006A000910509F44FC0843B910509F44EC0853B88 -:1006B000910509F44DC0863B910509F44CC0873B78 -:1006C000910509F44BC0883B910509F44AC0893B68 -:1006D000910509F449C08A3B910509F048C02AE216 -:1006E00036E447C09C01306544C020E030E041C0A2 -:1006F00021E030E03EC021E830E43BC022E830E4B5 -:1007000038C022EE34E435C029EE34E432C02AEE9B -:1007100034E42FC025EB34E42CC026EB34E429C0AC -:1007200027EB34E426C02CEC34E423C02DEC34E475 -:1007300020C023E835E41DC02AE835E41AC022E9C8 -:1007400035E417C024E935E414C021E236E411C0D1 -:1007500023E236E40EC024E236E40BC025E236E4A0 -:1007600008C026E236E405C027E236E402C020E0F5 -:1007700034E4C90108959CE0799FF001112490E3CD -:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3 -:10079000E65CFE4F25913491C9010895880F991F99 -:1007A00082559040FC0125913491C9010895880F2C -:1007B000991F825D9E4FFC0125913491C9010895D6 -:1007C0000E94BB039C013A9521153F4108F4DFC00C -:1007D0009C0130522115304120F49F700E94D703B4 -:1007E00008959C0130532115304118F49927906CDD -:1007F00008959C0130542031310520F48F709927E1 -:10080000946D0895803120E4920719F480E091ED11 -:100810000895813140E4940719F480E090ED089543 -:10082000823120E4920719F480E092ED089583313B -:1008300040E4940719F480E093ED0895811520E5D4 -:10084000920711F40C941F25813040E5940731F490 -:100850008091680281608093680208959C013056FF -:100860002115304108F402C097FF02C0906F08952F -:10087000803E9105E0F4803C910568F58133910557 -:1008800009F474C048F48932910509F46AC08A32C7 -:10089000910509F07AC074C089339105F9F0823866 -:1008A0009105E1F08533910509F06FC050C0833E9A -:1008B0009105A9F140F4803E9105C9F0823E910571 -:1008C00009F063C01BC0863E910571F1873E91051A -:1008D00009F05BC037C00E94CE03089520917B02CF -:1008E00020FD02C021FF51C080EE90E04EC08091FB -:1008F0007B0280FFF9CF89E390E047C080917B02C3 -:1009000082FF0AC080917B0284FF03C080E090E0F8 -:100910003CC083EE90E039C082EE90E036C080911A -:100920007B0282FFEFCFF8CF80917B0283FF07C06D -:1009300080917B0284FDEACF87EE90E026C086EEB0 -:1009400090E023C080917B0283FFF2CFF8CF8091AB -:100950007B0285FF03C089E290E017C085E390E049 -:1009600014C080917B0285FDF9CFF5CF80917B0289 -:1009700086FF03C08AE290E008C081E390E005C0F2 -:1009800080917B0286FDF9CFF5CF0E94F702089592 -:100990005F926F927F928F929F92AF92BF92CF920F -:1009A000DF92EF92FF920F931F93CF93DF93CDB718 -:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD -:1009C0002F5F3F4F4E0189E0880E911C60E070E080 -:1009D00000E010E0E12CF12CC12CD12CA12CB12C89 -:1009E00088E0782E622E532E41E050E0E3E2F1E001 -:1009F000A62DB52D872D01900D928A95E1F7F9016D -:100A0000819191919F01FC01E07FFF27E032F10588 -:100A100059F48F709927FA0102C0EE0FFF1F8A95D3 -:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0 -:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E -:100A4000DF2A29C0E034F10559F48F709927FA01A3 -:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5 -:100A6000E035F10559F48F709927FA0102C0EE0FB5 -:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504 -:100A800051F48F709927FA0102C0EE0FFF1F8A956B -:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B -:100AA0008A2D8095892384B985B18A2985B997B122 -:100AB0008C2D8095892387B988B18C2988B99AB102 -:100AC0008E2D809589238AB98BB18E298BB99DB1E2 -:100AD000802F809589238DB98EB1802B8EB990B3EC -:100AE000862F8095892380BB81B3862B81BB289676 -:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F -:100B00000F91FF90EF90DF90CF90BF90AF909F90AC -:100B10008F907F906F905F9008955F926F927F9219 -:100B20008F929F92AF92BF92CF92DF92EF92FF92FD -:100B30000F931F93CF93DF93CDB7DEB768970FB6B0 -:100B4000F894DEBF0FBECDBF85B7806885BF85B77F -:100B5000806885BF0E94CF076E9A769A0E94C8046B -:100B60009E012F5F3F4F4E0189E1880E911C60E08E -:100B700070E000E010E0E12CF12CC12CD12CA12C74 -:100B8000B12C98E1792E622E532E41E050E0EBE239 -:100B9000F1E0A62DB52D872D01900D928A95E1F7F4 -:100BA000F901819191919F01FC01E07FFF27E032E3 -:100BB000F10559F48F709927FA0102C0EE0FFF1F5B -:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F -:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786 -:100BE000CE2ADF2A29C0E034F10559F48F70992705 -:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4 -:100C00001BC0E035F10559F48F709927FA0102C035 -:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B -:100C2000F10551F48F709927FA0102C0EE0FFF1FF2 -:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F -:100C400094B18A2D8095892384B985B18A2985B983 -:100C500097B18C2D8095892387B988B18C2988B963 -:100C60009AB18E2D809589238AB98BB18E298BB943 -:100C70009DB1802F809589238DB98EB1802B8EB93F -:100C800090B3862F8095892380BB81B3862B81BB4F -:100C90001092B7011092B6011092BF011092BE01DE -:100CA0001092B9011092B8011092C1011092C001C6 -:100CB0001092BB011092BA011092C3011092C201AE -:100CC0001092BD011092BC011092C5011092C40196 -:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF -:100CE0001F910F91FF90EF90DF90CF90BF90AF904A -:100CF0009F908F907F906F905F9008955F926F921A -:100D00007F928F929F92AF92BF92CF92DF92EF929B -:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA -:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1 -:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57 -:100D4000B11C38E0532E470101E010E048E1642E69 -:100D500055E0752EE3E2F1E0D401852D01900D926E -:100D60008A95E1F7F701819191917F019C01207FA4 -:100D700033272032310589F424B18F709927A801D7 -:100D800002C0440F551F8A95E2F7CA01242B24B9EB -:100D900095B18095892385B94FC02033310589F4F9 -:100DA00027B18F709927F80102C0EE0FFF1F8A95B7 -:100DB000E2F7CF012E2B27B998B18095892388B906 -:100DC0003BC02034310589F42AB18F709927A801DE -:100DD00002C0440F551F8A95E2F7CA01242B2AB995 -:100DE0009BB1809589238BB927C02035310589F4C3 -:100DF0002DB18F709927F80102C0EE0FFF1F8A9561 -:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3 -:100E100013C02036310581F420B38F709927A801C3 -:100E200002C0440F551F8A95E2F7CA01242B20BB4C -:100E300091B38095892381BB50EA5A95F1F7BE01A1 -:100E40006F5F7F4F80E090E020E030E0EBE2F1E088 -:100E5000DE011196462D01900D924A95E1F7FB01B6 -:100E600041915191BF01FA01E07FFF27E032F10586 -:100E700011F4E3B113C0E033F10511F4E6B10EC093 -:100E8000E034F10511F4E9B109C0E035F10511F4E0 -:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009 -:100EA000552702C0F595E7954A95E2F7E0FD08C0A1 -:100EB000A801022E02C0440F551F0A94E2F702C097 -:100EC00040E050E0842B952B2F5F3F4F2C303105B5 -:100ED00009F0BCCFF601208131812817390721F0B4 -:100EE00091838083709200010E94C804F2E0CF0ECB -:100EF000D11CEA14FB0409F02DCF80910001882356 -:100F000061F1815080930001811121C08091BE0167 -:100F10009091BF019093B7018093B6018091C00179 -:100F20009091C1019093B9018093B8018091C20161 -:100F30009091C3019093BB018093BA018091C40149 -:100F40009091C5019093BD018093BC0106C08FE9CB -:100F50009FE00197F1F700C0000081E0A0960FB676 -:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF -:100F7000FF90EF90DF90CF90BF90AF909F908F90B9 -:100F80007F906F905F900895E82FF0E0EE0FFF1FC5 -:100F9000EA54FE4F80819181089508950895279A1B -:100FA0002F988FEF9FEF90938700809386008AE0C1 -:100FB0008093800089E1809381000C945F2B8111E4 -:100FC0000BC080918000877F8093800010928D00FD -:100FD00010928C002F9808952F98833041F48091BF -:100FE00080008860809380008FEF9FEF12C0909107 -:100FF000800098609093800023E030E0281B310946 -:10100000220F331F8FEF9FEF02C0969587952A9589 -:10101000E2F790938D0080938C0008950F931F93B7 -:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484 -:10103000DEBF0FBECDBF8C01862F642F882379F0D1 -:10104000F80192812FE7482F992329F08DE792E04C -:101050000E94F81404C08DE792E00E940815F80180 -:1010600080818B3061F49181933009F068C0828176 -:10107000882309F4CDC0809103018F5F0EC08A30B0 -:10108000E1F5F8019181933009F059C082818823FC -:1010900009F4BEC08091030181508093030120E0D8 -:1010A0004BE760E08DE792E00E94E81420E04BE718 -:1010B00061E08DE792E00E94E81420E04BE762E0F7 -:1010C0008DE792E00E94E81420E04BE763E08DE7B3 -:1010D00092E00E94E81420E04BE764E08DE792E0A4 -:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100 -:1010F000CF911F910F910C94E814893069F4F80195 -:1011000091819330E1F492819923C9F0809101019A -:101110009091020101960EC0883089F4F801918106 -:10112000933069F49281992351F08091010190915B -:10113000020101979093020180930101B0CFF80161 -:10114000928140910301992391F196E4E3E4F1E067 -:10115000DE01A95BBF4F01900D929A95E1F7405DCA -:10116000F8019181FCE09F9F40191124E091010159 -:10117000F0910201E80FF11DEE0FFF1F87E490E0F0 -:101180008C0F9D1FE80FF91F8081480F2FE760E04B -:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65 -:1011A000CDBFDF91CF911F910F910C94F81496E46D -:1011B000E3E4F1E0DE01119601900D929A95E1F7DA -:1011C000405DF8019181FCE09F9F40191124E0915E -:1011D0000101F0910201E80FF11DEE0FFF1F81E008 -:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB -:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92 -:101200000FBECDBFDF91CF911F910F910C940815A8 -:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE -:10122000CF911F910F910895CF93DF93EA019B0116 -:10123000AC0160E074E284E79BE40E945F2C0E94B2 -:10124000C72C709397006093960020E130E02C1B30 -:101250003D0B02C0759567952A95E2F7709399004A -:1012600060939800DF91CF9108951092020210923E -:10127000010210929000109291001092FD011092C4 -:10128000FE011092FF01109200021092FC011092D8 -:10129000FB01E9EDF1E0A9ECB1E01192119211929C -:1012A00011921D921D9281E0E93FF807B1F7089570 -:1012B000AF92BF92CF92DF92EF92FF920F931F9364 -:1012C000CF93DF936B017C0109EF11E047EDA42E72 -:1012D00041E0B42EC7E0D0E0A7019601F801929159 -:1012E0008291729162918F010E945B2C882349F058 -:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F -:1013000034C0F8011082118212821382F501118219 -:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80 -:10132000DE01AA0FBB1FA753BE4FCE011AC0019604 -:1013300044815581668177814083518362837383C1 -:10134000148215821682178212962D913C91139762 -:1013500011963C932E9313961C921E9212973496DC -:1013600012968730910519F7C3CF809101029091B1 -:101370000202019797FD05C090930202809301023B -:1013800004C01092020210920102E0910102F09159 -:101390000202309789F410929000109291001092FE -:1013A000FD011092FE011092FF01109200021092B6 -:1013B000FC011092FB019EC03197DF01AA0FBB1FF9 -:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1 -:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA -:1013E000B090FE010091FF0110910002A70196014B -:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1 -:1014000081E08093C801AE016A2D7B2D802F912F42 -:101410000E9414092091FD013091FE014091FF01CD -:1014200050910002C701B6010E94F62B20E030E087 -:101430004AEF53E40E945F2C9B01AC016A2D7B2D87 -:10144000802F912F0E94F72B5B018C01A701960141 -:101450007B2D912F0E945B2C1816ACF638C0A7018B -:1014600096016A2D7B2D802F912F0E94AA2D181690 -:1014700084F581E08093C801AE016A2D7B2D802F19 -:10148000912F0E941409A70196016091FD017091AE -:10149000FE018091FF01909100020E94F62B20E056 -:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF -:1014B0007B2D802F912F0E94F62B5B018C01A701C1 -:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8 -:1014D000C801AE01C701B6010E941409C092FD0106 -:1014E000D092FE01E092FF01F0920002D093FC0145 -:1014F000C093FB01DF91CF911F910F91FF90EF906F -:10150000DF90CF90BF90AF90089508951F920F92F3 -:101510000FB60F9211242F933F934F935F936F93C6 -:101520007F938F939F93AF93BF93EF93FF9380919C -:10153000960090919700892B09F455C08091C801BD -:10154000811151C08091F9019091FA01813091058A -:1015500071F082309105C1F0892BC1F52091FD0118 -:101560003091FE014091FF01509100021DC0609139 -:10157000FD017091FE018091FF01909100029B019D -:10158000AC010E94F72B0EC020E030E040E450E4B4 -:101590006091FD017091FE018091FF019091000228 -:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5 -:1015B0000E945F2C0E94C72C709397006093960046 -:1015C0007595679570939900609398008091F901E3 -:1015D0009091FA01019663E070E00E948A2F909347 -:1015E000FA018093F901FF91EF91BF91AF919F9123 -:1015F0008F917F916F915F914F913F912F910F90BC -:101600000FBE0F901F901895AF92BF92CF92DF92AE -:10161000EF92FF920F931F93CF93DF936B017C01A7 -:10162000EA0120E030E0A9010E94AA2D18160CF072 -:10163000B4C03E9A82E8809390008AE18093910042 -:10164000A090FD01B090FE010091FF0110910002F9 -:1016500020E030E0A9016A2D7B2D802F912F0E9480 -:101660005B2C81112DC0AE01C701B6010E94140987 -:10167000C092FD01D092FE01E092FF01F0920002C3 -:10168000D093FC01C093FB01809101029091020272 -:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F -:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F -:1016B000D183C083019690930202809301026DC092 -:1016C000A70196016A2D7B2D802F912F0E945B2C04 -:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499 -:1016E00014092091FD013091FE014091FF015091BC -:1016F0000002C701B6010E94F62B20E030E04AEF5D -:1017000053E40E945F2C9B01AC016A2D7B2D802F3E -:10171000912F0E94F72B5B018C01A70196017B2D75 -:10172000912F0E945B2C1816ACF69DCFA701960155 -:101730006A2D7B2D802F912F0E94AA2D18160CF058 -:1017400092CFAE016A2D7B2D802F912F0E9414091C -:10175000A70196016091FD017091FE018091FF014A -:10176000909100020E94F62B20E030E04AEF53E413 -:101770000E945F2C9B01AC016A2D7B2D802F912F45 -:101780000E94F62B5B018C01A70196017B2D912F06 -:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1 -:1017A0000F91FF90EF90DF90CF90BF90AF90089592 -:1017B00080910C020895CF93DF9300D01F92CDB794 -:1017C000DEB720916E03243021F523E029839B832B -:1017D0008A832093E9008FEF06C095ED9A95F1F783 -:1017E0000000882329F09091E800815095FFF5CF03 -:1017F0008091E80085FF0DC040E050E063E070E0BC -:10180000CE0101960E94BA0F8091E8008E778093F6 -:10181000E8000F900F900F90DF91CF910895CF9334 -:10182000DF9300D01F92CDB7DEB720916E03243036 -:1018300029F522E029839B838A8383E08093E90052 -:101840008FEF06C095ED9A95F1F70000882329F0F7 -:101850009091E800815095FFF5CF8091E80085FFD9 -:101860000DC040E050E063E070E0CE0101960E94C0 -:10187000BA0F8091E8008E778093E8000F900F9068 -:101880000F90DF91CF91089520916E032430F9F4E9 -:1018900022E02093E9002FEF06C035ED3A95F1F7ED -:1018A0000000222329F03091E800215035FFF5CFC8 -:1018B0002091E80025FF0BC040E050E065E070E0BB -:1018C0000E94BA0F8091E8008E778093E800089517 -:1018D000CF93DF93EC0180916E03843041F581E07A -:1018E0008093E9008FEF06C095ED9A95F1F700001F -:1018F000882329F09091E800815095FFF5CF8091E1 -:10190000E80085FF14C040E050E068E070E0CE01E0 -:101910000E94BA0F8091E8008E778093E80088E0FB -:10192000FE01A4E0B2E001900D928A95E1F7DF910B -:10193000CF910895BF92CF92DF92EF92FF920F93D3 -:101940001F93CF93DF937C01B62EE90100E010E0F6 -:10195000C42ED12C0BC04991202F2B0D2F774F7700 -:101960006FE0C7010E94E8140F5F1F4F0C151D05A3 -:1019700094F3DF91CF911F910F91FF90EF90DF9043 -:10198000CF90BF90089570E06F5F7F4F6F707727A3 -:101990000C94E8140F931F93CF93C42F63307105F9 -:1019A00009F04AC0842F807F803849F1803909F0DE -:1019B00043C0622F6F7770E080E090E00E94FA2CC5 -:1019C00020E030E040E451E40E945F2C9B01AC0138 -:1019D00060E070E080E090E40E94112E0F7710E04C -:1019E00023E0159507952A95E1F72DEC3CEC42E0B4 -:1019F00053E40E94AE2DA8010E94040B1DC0622F6B -:101A00006F7770E080E090E00E94FA2C20E030E0F8 -:101A100040E451E40E945F2C9B01AC0160E070E067 -:101A200080E090E40E94112E2DEC3CEC42E053E467 -:101A30000E94AE2D0E945809CC3F29F4CF911F91EE -:101A40000F910C943509CF911F910F9108950F9329 -:101A50001F93CF93DF93CDB7DEB727970FB6F894D8 -:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C -:101A70009A819D839B819E839C819F8381111EC03F -:101A800089818430B1F08730A1F08630A1F08530B3 -:101A9000A1F0BE016F5F7F4F84E091E00E942F189C -:101AA0008111E3CF84E091E00E9420180E949B14F2 -:101AB0000DC083E003C082E001C081E0AE014B5F56 -:101AC0005F4F682FC8010E945515E3CF27960FB6C8 -:101AD000F894DEBF0FBECDBFDF91CF911F910F9164 -:101AE0000895EF92FF920F93CF93DF9300D000D031 -:101AF00000D0CDB7DEB77B014A832B830C83842FC4 -:101B00002E834D830E94C2142E814D8181111BC0F2 -:101B100082E0E816F10479F083E0E816F10421F0A0 -:101B2000EA94EF2821F50BC0073F11F487E001C0CC -:101B300084E089830BC0273FD9F786E0FACF473F7F -:101B4000B9F785E0F6CF42954F704983BE016F5FCC -:101B50007F4F84E091E00E94E51784E091E00E94CD -:101B6000031884E091E00E9420180E949B1426969E -:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE -:101B8000FF90EF90089580916D03811109C00E942C -:101B9000A1110E94FE118091E20084608093E20016 -:101BA000089510926D03089508950C94E4020C9426 -:101BB000892480916E03843049F58091E9008F700B -:101BC0009091EC0090FF02C090E801C090E0982B4B -:101BD00084E08093E9008091EB0080FF14C0809145 -:101BE000EE0087FD03C00FC01092F1008091E80065 -:101BF00085FDFACF8091E80080FF05C08091E80064 -:101C00008E778093E8009F709093E900089542E0FA -:101C100061EC81E00E94171142E061EC82E00E94D9 -:101C2000171142E061EC83E00E94171146E261EC7B -:101C300084E00E94171142E361E885E00E941711D9 -:101C400042E360E886E00C941711809170038330C2 -:101C500009F454C030F4813071F0823009F0AAC028 -:101C600091C08A3009F47EC08B3009F45FC089309E -:101C700009F0A0C020C080916F03813A09F09AC09A -:101C80008091E800877F8093E800809173039091B2 -:101C90007403892B21F060E080E090E003C068E0ED -:101CA00084E092E070E00E9458108091E8008B7709 -:101CB0008093E800089580916F03813209F07AC023 -:101CC0008091730390917403892B09F073C0809104 -:101CD000E800877F8093E80005C080916E03882329 -:101CE00009F468C08091E80082FFF7CF8091F1008D -:101CF00080930C028091E8008B7758C080916F032D -:101D0000813A09F057C08091730390917403892B35 -:101D100009F050C08091E800877F8093E8008091AF -:101D2000E80080FFFCCF80911A013BC080916F03D7 -:101D3000813209F03FC08091730390917403892B25 -:101D4000C9F58091E800877F8093E8000E944E11DA -:101D50009091710381E0911101C080E080931A019C -:101D60000C948C1E80916F03813221F58091E800E4 -:101D7000877F8093E8000E944E11809172038093C8 -:101D80000302089580916F03813AA1F48091E800E5 -:101D9000877F8093E8008091E80080FFFCCF8091EE -:101DA00003028093F1008091E8008E778093E80031 -:101DB0000C944E11089584B7877F84BF88E10FB6D5 -:101DC000F89480936000109260000FBE90E080E86D -:101DD0000FB6F89480936100909361000FBE0E944B -:101DE000A1110E94FE11E2EEF0E080818460808308 -:101DF00008958DE792E00E94241561E77DE08DE76C -:101E000092E00E947A1567E27DE08DE792E00E9401 -:101E10007E150E94DB0E78946AEC7CE08DE792E000 -:101E20000E94201563EC7CE08DE792E00E9418157B -:101E30006AE97CE08DE792E00E941C150E94850A09 -:101E40000E949B140E94AC1880E191E00E945418FB -:101E50000BC00E944E2480916C03882329F00E94BD -:101E6000742481110E94A40F80916E03853089F340 -:101E70008DE792E00E942D170E94B618F5CF292F0A -:101E8000332723303105B1F04CF42130310509F40A -:101E90004DC02230310509F04EC007C02132310556 -:101EA00041F12232310591F146C0E0EDF0E086E7E4 -:101EB00093E045C099278130910569F08230910502 -:101EC00089F0892B09F037C0E2E7F3E0E491F0E014 -:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA -:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1 -:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735 -:101F0000FE4F80819181E9E0F0E019C0643098F4DF -:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139 -:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D -:101F300086E494E004C0E0E0F0E080E090E0DA01C4 -:101F40008D939C93CF01089580E189BD82E189BD85 -:101F500009B400FEFDCF8091D8008F7D8093D8001A -:101F60008091E00082608093E0008091E00081FD3C -:101F7000FCCF0895BF92CF92DF92EF92FF920F9322 -:101F80001F93CF93DF937C018B01EA010E946F11B5 -:101F9000B82E811133C0209731F028813981021B7E -:101FA000130BE20EF31EC12CD12C23C08091E8004C -:101FB00085FD15C08091E8008E778093E80020971A -:101FC00049F0888199818C0D9D1D9983888325E036 -:101FD000B22E14C00E946F11882359F00EC0F70171 -:101FE00081917F018093F10001501109FFEFCF1A19 -:101FF000DF0A01151105D1F601C0B82E8B2DDF9136 -:10200000CF911F910F91FF90EF90DF90CF90BF90F5 -:102010000895BF92CF92DF92EF92FF920F931F939A -:10202000CF93DF937C018B01EA010E946F11B82EE0 -:10203000811133C0209731F028813981021B130BA5 -:10204000E20EF31EC12CD12C23C08091E80085FD47 -:1020500015C08091E8008B778093E800209749F0C5 -:10206000888199818C0D9D1D9983888345E0B42ECC -:1020700014C00E946F11882359F00EC08091F100A6 -:10208000F70181937F0101501109FFEFCF1ADF0A99 -:1020900001151105D1F601C0B82E8B2DDF91CF911E -:1020A0001F910F91FF90EF90DF90CF90BF90089518 -:1020B00040917503509176034617570748F0611514 -:1020C000710539F44091E8004E774093E80001C073 -:1020D000BA01FC0140E033C080916E03882309F40B -:1020E00042C0853009F441C08091E80083FD39C0C9 -:1020F0008091E80082FD2FC08091E80080FF1FC022 -:102100009091F3008091F200392F20E0A901482B33 -:10211000CA0106C041914093F100615071090196D6 -:102120006115710519F088309105A0F341E0089719 -:1021300009F040E08091E8008E778093E800611517 -:10214000710551F64111C8CF06C080916E038823F6 -:1021500051F0853051F08091E80082FFF6CF80E0A9 -:10216000089581E0089582E0089583E00895409104 -:102170007503509176034617570748F061157105AE -:1021800039F44091E8004E774093E80001C0BA016D -:10219000FC0140E034C080916E03882309F443C001 -:1021A000853009F442C08091E80083FD3AC08091F7 -:1021B000E80082FD30C08091E80080FF20C090914F -:1021C000F3008091F200392F20E0A901482BCA01C9 -:1021D00007C044914093F100319661507109019616 -:1021E0006115710519F08830910598F341E0089761 -:1021F00009F040E08091E8008E778093E800611557 -:10220000710549F64111C7CF06C080916E0388233E -:1022100051F0853051F08091E80082FFF6CF80E0E8 -:10222000089581E0089582E0089583E00895982F4D -:102230002CC09093E900981739F07091EC00209130 -:10224000ED005091F00003C0242F762F50E021FDC7 -:1022500002C09F5F1AC03091EB003E7F3093EB00CD -:102260003091ED003D7F3093ED003091EB00316017 -:102270003093EB007093EC002093ED005093F0004E -:102280002091EE0027FDE5CF07C0973090F28F70C8 -:102290008093E90081E0089580E0089580916F03C4 -:1022A00087FD05C08091E80080FF0EC012C08091BC -:1022B000E80082FD05C080916E038111F8CF08957A -:1022C0008091E8008B7708C080916E038111EACF7E -:1022D00008958091E8008E778093E80008958091BA -:1022E000E4009091E50045E62091EC0020FD1FC040 -:1022F00023C020916E03222391F0253091F020918C -:10230000EB0025FD10C02091E4003091E500281776 -:10231000390751F34150C90139F784E0089582E04B -:10232000089583E0089581E0089580E00895209164 -:10233000E80020FFDECFF9CF2091E80022FFD9CFBF -:10234000F4CF0E940F120E941712E0EEF0E080819D -:1023500081608083E8EDF0E080818F77808319BC15 -:10236000A7EDB0E08C918E7F8C9380818F7E8083EF -:1023700010926D0308950F931F93CF93DF930E94E4 -:102380000F120E941712C8EDD0E088818F778883E2 -:1023900088818068888388818F7D888319BC1092AA -:1023A0006E0310926A0310926C0310926B0300EE9E -:1023B00010E0F80180818B7F808388818160888331 -:1023C00042E060E080E00E941711E1EEF0E08081E1 -:1023D0008E7F8083E2EEF0E0808181608083808167 -:1023E00088608083F80180818E7F8083888180610E -:1023F0008883DF91CF911F910F910895E8EDF0E070 -:1024000080818F7E8083E7EDF0E080818160808332 -:1024100084E082BF81E080936D030C94BB11E8EDF2 -:10242000F0E080818E7F80831092E2000895109208 -:10243000DA001092E10008951F920F920FB60F92EA -:1024400011242F933F934F935F936F937F938F93B9 -:102450009F93AF93BF93EF93FF938091E10082FF2F -:102460000BC08091E20082FF07C08091E1008B7F6A -:102470008093E1000E94D90D8091DA0080FF1FC097 -:102480008091D80080FF1BC08091DA008E7F8093FE -:10249000DA008091D90080FF0DC080E189BD82E122 -:1024A00089BD09B400FEFDCF81E080936E030E94D8 -:1024B000C30D05C019BC10926E030E94D10D80910E -:1024C000E10080FF19C08091E20080FF15C080917B -:1024D000E2008E7F8093E2008091E2008061809331 -:1024E000E2008091D80080628093D80019BC85E01A -:1024F00080936E030E94D50D8091E10084FF30C06F -:102500008091E20084FF2CC080E189BD82E189BD19 -:1025100009B400FEFDCF8091D8008F7D8093D80054 -:102520008091E1008F7E8093E1008091E2008F7EB8 -:102530008093E2008091E20081608093E2008091CC -:102540006A03882311F084E007C08091E30087FFCD -:1025500002C083E001C081E080936E030E94D70D2A -:102560008091E10083FF29C08091E20083FF25C0B4 -:102570008091E100877F8093E10082E080936E0389 -:1025800010926A038091E1008E7F8093E100809138 -:10259000E2008E7F8093E2008091E2008061809370 -:1025A000E20042E060E080E00E9417118091F000BC -:1025B00088608093F0000E94D40DFF91EF91BF914D -:1025C000AF919F918F917F916F915F914F913F91CB -:1025D0002F910F900FBE0F901F9018951F920F9282 -:1025E0000FB60F9211242F933F934F935F936F93E6 -:1025F0007F938F939F93AF93BF93CF93EF93FF936B -:102600008091E9008F709091EC0090FF02C090E8FB -:1026100001C090E0C92FC82B1092E9008091F00012 -:10262000877F8093F00078940E9432131092E90023 -:102630008091F00088608093F000CF70C093E90033 -:10264000FF91EF91CF91BF91AF919F918F917F912A -:102650006F915F914F913F912F910F900FBE0F900F -:102660001F9018951F93CF93DF93CDB7DEB7AC972C -:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A -:10268000F100819323E0E737F207C9F70E94250E96 -:102690008091E80083FF37C180916F0390917003B0 -:1026A000953009F488C038F49130B1F170F093306E -:1026B00009F029C131C0983009F4F8C0993009F403 -:1026C00004C1963009F01FC19DC0803821F08238C6 -:1026D00009F019C108C080916B0390916C03992394 -:1026E00089F082600FC080917303909174038F70A2 -:1026F00099278093E9008091EB0085FB882780F97A -:102700001092E9009091E800977F9093E800809301 -:10271000F1001092F100D5C0882319F0823009F041 -:10272000F2C08F7121F0823009F0EDC00BC08091B2 -:102730007103813009F0E7C0933009F080E08093A5 -:102740006C032FC08091710381112BC080917303A2 -:10275000909174038F709927009709F4D4C08093E7 -:10276000E9002091EB0020FF1CC020917003233072 -:1027700021F48091EB00806212C09091EB00906197 -:102780009093EB0021E030E001C0220F8A95EAF738 -:102790002093EA001092EA008091EB008860809319 -:1027A000EB001092E9008091E800877F8093E800B9 -:1027B0000E944E11A8C08111A6C080917103909112 -:1027C00072038F779927182F9091E3009078982BB8 -:1027D0009093E3008091E800877F8093E8000E9457 -:1027E0004E118091E80080FFFCCF8091E30080686B -:1027F0008093E300112311F083E001C082E0809315 -:102800006E0381C08058823008F07DC080917103D2 -:10281000909172038C3D23E0920779F583E08A83DF -:102820008AE289834FB7F894DE01139620E03EE0F8 -:1028300051E2E32FF0E050935700E49120FF03C0F2 -:10284000E295EF703F5FEF708E2F90E0EA3010F06E -:10285000C79601C0C0968D939D932F5F243149F791 -:102860004FBF8091E800877F8093E8006AE270E0C4 -:10287000CE0101960E94581013C0AE01455D5F4F16 -:10288000609173030E943F0F0097E9F12091E800E7 -:10289000277F2093E800BC018BA59CA50E94B71060 -:1028A0008091E8008B778093E8002DC0803859F53F -:1028B0008091E800877F8093E80080916A0380938D -:1028C000F1008091E8008E7771CF81111CC090914A -:1028D00071039230C0F48091E800877F8093E80014 -:1028E00090936A030E944E1180916A03811104C083 -:1028F0008091E30087FF02C084E001C081E0809303 -:102900006E030E94070E8091E80083FF0AC0809149 -:10291000E800877F8093E8008091EB0080628093DD -:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3 -:10293000CF911F910895CF9380916E038823B1F0BA -:102940008091E9008F709091EC0090FF02C090E8B8 -:1029500001C090E0C92FC82B1092E9008091E800D7 -:1029600083FD0E943213CF70C093E900CF91089588 -:10297000881F8827881F089591E0883F08F490E019 -:10298000892F0895982F907F903B99F038F49039D3 -:1029900081F0903A71F09038C9F40BC0903DA1F0ED -:1029A00018F4903C99F410C0903E19F0903F71F4E7 -:1029B00002C083E00895E82FE15FEF3038F4F0E0E3 -:1029C000E356FE4F8081089582E0089580E00895E7 -:1029D0000F932F774F776F70606BDC01ED91FC9157 -:1029E000022F242F462F63E070E009950F91089580 -:1029F0000F932F774F776F706069DC01ED91FC9139 -:102A0000022F242F462F63E070E009950F9108955F -:102A10000F932F774F776F706068DC01ED91FC9119 -:102A2000022F242F462F63E070E009950F9108953F -:102A3000FC01738362830895FC01738F628F089594 -:102A4000FC01758F648F0895CF93DF93EC011DA275 -:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2 -:102A60000E9461171B821A821D821C821F821E8295 -:102A7000198618861B861A861D861C861F861E864A -:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A -:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA -:102AA00019A218A2DF91CF910895CF92DF92FF92E1 -:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00 -:102AC0006A018C0108511F4F08C0F60161916F0126 -:102AD000C80149830E94681749818C2D841B8F157A -:102AE000A0F30F90DF91CF911F910F91FF90DF9096 -:102AF000CF900895FC01718360830895FC0171A358 -:102B000060A30895AF92BF92CF92DF92EF92FF92AF -:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3 -:102B20007C016B01142FB22EA02EDC0195968C91A6 -:102B300095978430F1F45A96ED91FC915B9730971C -:102B400009F4D8C0CB01019763E070E00E94762FB2 -:102B5000DB01AA0FBB1FA60FB71F49832A830B8374 -:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8 -:102B7000B1C06230710509F453C06330710529F0AA -:102B80006130710509F09CC083C0842F807F803A3A -:102B900001F130F48038B9F0803909F0ABC00DC0D4 -:102BA000803EE9F0803F09F1803B09F0A3C0D701E6 -:102BB0001296ED91FC91139723C0D7011496ED91D5 -:102BC000FC9115971DC0D7011696ED91FC911797B2 -:102BD00017C0D7011896ED91FC91199711C0D70134 -:102BE0001A96ED91FC911B970BC0423F09F082C0F1 -:102BF000D7011C96ED91FC911D97309731F47AC066 -:102C0000309709F477C0123F21F42A2D4B2D62EF43 -:102C100004C0612F6F702A2D4B2DC70109955AC032 -:102C2000842F807F803D59F0803F79F0803C09F00F -:102C300061C0D7011E96ED91FC911F9719C0D70175 -:102C40005096ED91FC91519713C0433F31F4D70159 -:102C50005296ED91FC91539708C0413F09F04AC04C -:102C6000D7015496ED91FC915597309741F442C0AD -:102C7000309709F43FC0133F11F0113F19F44B2D69 -:102C8000612F03C0612F6F704B2DC701099522C0C2 -:102C9000842F0E94BC14882331F0D7015696ED9101 -:102CA000FC91579707C0163F29F5D7015896ED912B -:102CB000FC9159973097F1F0612FC70109950AC02F -:102CC00064307105A8F416C00A2D2B2D412FB601D2 -:102CD000C7010995D7015E96ED91FC915F973097FA -:102CE00089F00A2D2B2D412FB601C70109950AC085 -:102CF000C12CD12CD7015C96ED91FC915D9730975A -:102D000019F7E8CF0F900F900F90DF91CF911F919F -:102D10000F91FF90EF90DF90CF90BF90AF9008950C -:102D2000EF92FF920F931F93CF93DF93EC01162F37 -:102D3000862F0E94BC14882369F0FDA081E08DA33A -:102D400000E020E0412F61E070E0CE010E9482159A -:102D5000FDA27CC0812F0E94B8144DA1882309F4E4 -:102D600040C0443029F01AA321E030E03FA32EA355 -:102D7000812F0E94C214813031F070F0823051F006 -:102D8000833059F507C08DA300E020E0412F61E0BA -:102D900070E01EC08DA35AC0103F19F0173FE9F430 -:102DA00004C084E08DA31AA33FC02EA13FA1C90196 -:102DB00063E070E00E94762F8C0F9D1FFC0112A330 -:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116 -:102DD000CE010E9482151DA239C01DA21FA21EA2F3 -:102DE00035C0442399F12EA13FA1C90163E070E0F1 -:102DF0000E94762F7C01FE01E80FF91F12A3B90192 -:102E00006F5F7F4F7FA36EA38130910591F082E0C9 -:102E1000E816F104D9F40CA12BA14AA1CE010E941D -:102E200082158DA1843091F081E090E09FA38EA364 -:102E30000DC0423059F400E02BA14AA1CE010E94FE -:102E400082158DA1843011F0FFA2EEA2DF91CF9107 -:102E50001F910F91FF90EF900895CF92DF92EF9224 -:102E6000FF920F931F93CF93DF93EC01E8A1F9A199 -:102E7000309709F009958E0108511F4FC8010E9433 -:102E80009A17E12CF12CC82ED12C0FC060E0C8019C -:102E90000E94AE17682FCE010E94901661E0C80113 -:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4 -:102EB000DF91CF911F910F91FF90EF90DF90CF9016 -:102EC0000895FC0142837483638311821082089504 -:102ED0000F931F93CF93DF93EC01062F0E94E0170F -:102EE000182F298130E0C90101966A8170E00E94A3 -:102EF0008A2F488150E08417950729F4812F0E947A -:102F0000E31780E012C0EB81FC81E20FF31F008326 -:102F10002981822F90E001966A8170E00E948A2FB9 -:102F20008983812F0E94E31781E0DF91CF911F9168 -:102F30000F910895CF93DF93EC010E94E017298150 -:102F40009881291710F0C22F02C0CA81C20FC91B75 -:102F50000E94E3178C2FDF91CF910895FC0120810F -:102F6000862F90E0820F911D628170E00E948A2F6F -:102F70000380F481E02DE80FF91F808108950F93FD -:102F80001F93CF93DF931F92CDB7DEB78C01698378 -:102F90000E94E017482FF80180816981262F30E0D8 -:102FA000280F311D6281C90170E00E948A2F808341 -:102FB000842F0F90DF91CF911F910F910C94E31705 -:102FC0008FB7F89408958FBF0895FC01CB0120912D -:102FD0006E032430B1F421812F702093E90040E08A -:102FE00050E064E070E00E94BA0F81110BC0909134 -:102FF000E80095FD07C09091E8009E779093E80067 -:10300000089582E0089520916E032430A9F4FC0114 -:1030100081818F708093E9003091F3002091F2005C -:10302000932F80E0822B892B49F08091E8008E77E6 -:103030008093E8000C946F1182E0089580E0089579 -:1030400020916E03243051F4FC0121812F702093D4 -:10305000E9002091E80020FD0C9403180895FC017C -:10306000CB0120916E03243011F080E00895268179 -:103070002F702093E9002091E80022FFF6CF2091E5 -:10308000E80025FFF2CF40E050E064E070E00E94ED -:1030900009108091E80085FD05C08091E8008B77DC -:1030A0008093E80081E0089590930F0280930E02D0 -:1030B000089580910E0290910F020895E0910E0202 -:1030C000F0910F02309721F00190F081E02D0994EA -:1030D00080E00895E0910E02F0910F02309721F008 -:1030E0000280F381E02D09940895E0910E02F091A1 -:1030F0000F02309721F00480F581E02D09940895A6 -:1031000020911002309111028217930771F0909371 -:10311000110280931002E0910E02F0910F0230979D -:1031200021F00680F781E02D099408952091120284 -:10313000309113028217930771F0909313028093DA -:103140001202E0910E02F0910F02309721F00084FC -:10315000F185E02D099408950E94B6240E948D0502 -:103160000E948A250C945F2B0C94CE075F926F927D -:103170007F928F929F92AF92BF92CF92DF92EF9207 -:10318000FF920F931F93CF93DF93CDB7DEB72A97AC -:103190000FB6F894DEBF0FBECDBF0E947E0694E14D -:1031A000C92E92E0D92E00E010E0AA24A394B12CFD -:1031B000502E802F0E94C4073C01F601E190F1904F -:1031C0006F01E826F926E114F10431F40F5F1F4F77 -:1031D0000430110569F73AC08091680281FD0E94B0 -:1031E000CD0720E030E04501022E02C0880C991C7A -:1031F0000A94E2F7C4018E219F21892B09F12E83C5 -:103200005F826820792081E0672809F480E0888760 -:103210000E94BF248160782F9A8789874E815F81C1 -:1032200068858A850E946F19F801EE0FFF1FEC5E1A -:10323000FD4F80819181882599259183808316C0D7 -:103240002F5F3F4F2C30310571F6C0CF8FEF898350 -:103250008A831B820E94BF248160782F9D838C8388 -:1032600049815A816B818D810E946F190E94772854 -:1032700010911C020E945E181817D9F00E945E1867 -:1032800080931C022A960FB6F894DEBF0FBECDBF06 -:10329000DF91CF911F910F91FF90EF90DF90CF9032 -:1032A000BF90AF909F908F907F906F905F900C94A5 -:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB -:1032C000CF911F910F91FF90EF90DF90CF90BF9023 -:1032D000AF909F908F907F906F905F900895CF9365 -:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6 -:1032F000CDBF4F83588769877A878B87DE01119608 -:1033000086E0FD0111928A95E9F785E0FE01379686 -:1033100001900D928A95E1F749815A816B817C81F8 -:103320008D819E810E9447212B960FB6F894DEBFB7 -:103330000FBECDBFDF91CF910895CF93C82F8823C3 -:1033400009F4C1C0823859F40E945E1881FDBBC0E7 -:1033500089E30E94AC230E94282489E30CC08338AF -:1033600079F40E945E1880FDAEC083E50E94AC2314 -:103370000E94282483E50E94CE23CF910C94282418 -:10338000843859F40E945E1882FD9DC087E40E9433 -:10339000AC230E94282487E4EECF8450813A48F47D -:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3 -:1033B000E4CF8C2F805E883050F4C77081E090E0BD -:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51 -:1033D000855A833078F4C53A29F0C63A31F482E848 -:1033E00090E005C081E890E002C083E890E0CF91D2 -:1033F0000C9480188C2F885A833108F064C0C83A26 -:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2 -:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41 -:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE -:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E -:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083 -:1034500082EE90E035C089EE90E032C08AEE90E0D6 -:103460002FC085EB90E02CC086EB90E029C087EB65 -:1034700090E026C08CEC90E023C08DEC90E020C062 -:1034800083E891E01DC08AE891E01AC082E991E0EA -:1034900017C084E991E014C081E292E011C083E298 -:1034A00092E00EC084E292E00BC085E292E008C098 -:1034B00086E292E005C087E292E002C080E090E000 -:1034C000CF910C949618CF910895882309F44DC09C -:1034D000823859F40E945E1881FF47C089E30E9438 -:1034E000AC230E94282489E30CC0833871F40E9425 -:1034F0005E1880FF3AC083E50E94AC230E94282416 -:1035000083E50E94CE230C942824843859F40E9429 -:103510005E1882FF2AC087E40E94AC230E94282400 -:1035200087E4EFCF982F9450913A08F4EACF982F80 -:10353000905E983058F4282F277081E090E001C009 -:10354000880F2A95EAF70E94F523DDCF982F955A28 -:10355000933020F480E090E00C948018885A8331F6 -:1035600020F480E090E00C9496180895882321F0D0 -:103570000E94EF230C9428240895882321F00E94B0 -:10358000F5230C9428240895BF92CF92DF92EF92F6 -:10359000FF920F931F93CF93DF93CDB7DEB727979B -:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9 -:1035B000DE01119601900D928A95E1F7F8013081B4 -:1035C0002181F280558152955F7083819481892B8E -:1035D00039F02F3F41F481E090E03F3F31F003C0EC -:1035E00081E090E002C080E090E080FD73C3398309 -:1035F0002A8389819A815E830E946923B92E8F83F1 -:103600000E9468230E9490222B2D22952F7030E07B -:103610005E816F812530310509F4E6C06CF42430F9 -:1036200031050CF0A2C04B2D407F8B2D8F702230C6 -:1036300031050CF045C017C02C3031054CF42A3050 -:1036400031050CF0E7C12830310509F043C3E5C06E -:103650002D30310509F4BAC20CF4A2C22F30310565 -:1036600009F038C323C3182F411101C002C01295BD -:10367000107FFF2059F0112309F46BC2812F6F8353 -:103680000E94FF230E9428246F8163C2862F0E941C -:10369000651A112309F41EC3812F0E940524279661 -:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153 -:1036B0000F91FF90EF90DF90CF90BF900C94282453 -:1036C000403211F08295807F662319F0613071F5E8 -:1036D00023C0FF20B1F0511101C032C0513081F53B -:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106 -:1036F0001F910F91FF90EF90DF90CF90BF900C94AF -:103700000F24511101C003C0513009F4E3C28E836C -:103710000E9412248E819AC1FF2021F0563008F0B9 -:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3 -:10373000552331F0F801958190FF0BC29F7095835E -:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5 -:103750001F910F91FF90EF90DF90CF90BF900C944E -:10376000B61A552309F472C109C22B2D2695269548 -:10377000237030E02115310529F02130310509F0A1 -:10378000A9C219C0FF2021F0862F9B2D937002C083 -:1037900080E090E027960FB6F894DEBF0FBECDBF55 -:1037A000DF91CF911F910F91FF90EF90DF90CF901D -:1037B000BF900C948018FF2021F0862F9B2D9370D2 -:1037C00002C080E090E027960FB6F894DEBF0FBEEF -:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0 -:1037E000CF90BF900C949618862FFF2019F00E945E -:1037F0007D2702C00E94E52727960FB6F894DEBF0A -:103800000FBECDBFDF91CF911F910F91FF90EF9031 -:10381000DF90CF90BF900C946C288B2D837009F0B3 -:1038200079C0F11057C2262F229526952770220FB6 -:10383000220F862F8F70C82ED12CE12CF12C022E56 -:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4 -:1038500010C06FE070E080E090E004C0660F771F5A -:10386000881F991F2A95D2F760957095809590953D -:1038700003C060E070E0CB012B2D269526952370C8 -:10388000422F50E042305105D9F04330510569F1E3 -:103890006C297D298E299F294130510551F12796A8 -:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151 -:1038B0000F91FF90EF90DF90CF90BF900C94A522D6 -:1038C0006C297D298E299F2927960FB6F894DEBF93 -:1038D0000FBECDBFDF91CF911F910F91FF90EF9061 -:1038E000DF90CF90BF900C94B7220E94A522C70111 -:1038F000B60127960FB6F894DEBF0FBECDBFDF919D -:10390000CF911F910F91FF90EF90DF90CF90BF90DC -:103910000C949322FF2019F08B2D817001C08695A5 -:10392000882309F4D7C1262F229526952770220FC8 -:10393000220F862F8F70C82ED12CE12CF12C022E55 -:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3 -:1039500010C06FE070E080E090E004C0660F771F59 -:10396000881F991F2A95D2F760957095809590953C -:1039700003C060E070E0CB012B2D269526952370C7 -:10398000422F50E042305105D9F04330510569F1E2 -:103990006C297D298E299F294130510551F12796A7 -:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150 -:1039B0000F91FF90EF90DF90CF90BF900C94442335 -:1039C0006C297D298E299F2927960FB6F894DEBF92 -:1039D0000FBECDBFDF91CF911F910F91FF90EF9060 -:1039E000DF90CF90BF900C9456230E944423C701D0 -:1039F000B60127960FB6F894DEBF0FBECDBFDF919C -:103A0000CF911F910F91FF90EF90DF90CF90BF90DB -:103A10000C943223603F59F120F4603E08F494C0C6 -:103A200008C0623F09F467C0F0F1633F09F08CC041 -:103A300065C0162F1F708B2D8F71FF2021F00E9403 -:103A4000DD22812F7DCE0E94F822812F27960FB68E -:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4 -:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095 -:103A7000B1F0553008F02EC18B2D8F7127960FB6FF -:103A8000F894DEBF0FBECDBFDF91CF911F910F9194 -:103A9000FF90EF90DF90CF90BF900C94172356309B -:103AA00008F018C1E9CFFF2099F08B2D8F71279670 -:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F -:103AC0000F91FF90EF90DF90CF90BF900C94DD228C -:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A -:103AE000DF91CF911F910F91FF90EF90DF90CF90DA -:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4 -:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9 -:103B1000DF91CF911F910F91FF90EF90DF90CF90A9 -:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E -:103B3000CDBFDF91CF911F910F91FF90EF90DF905C -:103B4000CF90BF900C94C922FF20A9F0552309F40F -:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31 -:103B6000DF91CF911F910F91FF90EF90DF90CF9059 -:103B7000BF900C949D19552309F4AACF862F279640 -:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E -:103B90000F91FF90EF90DF90CF90BF900C94651A3B -:103BA0004B2D4F70C8010E94E50227960FB6F8947E -:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060 -:103BC000EF90DF90CF90BF900C94FD21F11082C058 -:103BD0009B2D9F70492F50E04230510599F144F4DC -:103BE0004115510569F04130510509F073C019C004 -:103BF00043305105C1F14430510509F06BC044C058 -:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0 -:103C10001F910F91FF90EF90DF90CF90BF900C9489 -:103C2000702B27960FB6F894DEBF0FBECDBFDF9185 -:103C3000CF911F910F91FF90EF90DF90CF90BF90A9 -:103C40000C94872B27960FB6F894DEBF0FBECDBF1E -:103C5000DF91CF911F910F91FF90EF90DF90CF9068 -:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F -:103C7000CDBFDF91CF911F910F91FF90EF90DF901B -:103C8000CF90BF900C94B62B862F27960FB6F89442 -:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F -:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C -:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7 -:103CC000CF911F910F91FF90EF90DF90CF90BF9019 -:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A -:103CE000DF91CF911F910F91FF90EF90DF90CF90D8 -:103CF000BF9008950E940C240E94E1230E94282472 -:103D00000E9418290E946C2880E090E00E94801890 -:103D100080E090E00C9496180E94FC230C947A1E8C -:103D20000E946923292F22952F7030E02C30310515 -:103D30004CF42A3031056CF422503109223031051F -:103D400070F407C02C30310531F02F30310539F4D3 -:103D500002C081E0089593FB882780F9089580E0F0 -:103D60000895CF93DF9300D000D01F92CDB7DEB778 -:103D70000F900F900F900F900F90DF91CF910895BB -:103D8000CF93DF9300D000D000D0CDB7DEB726961A -:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F -:103DA0001F93CF93DF93C091530216E012C0D0E06F -:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112 -:103DC000518162817381848195810E94C01E2196F8 -:103DD000C77080915402C813EACFDF91CF911F9131 -:103DE000089540911D0250911E0260911F02709132 -:103DF000200280912102909122020C94C01E0F9308 -:103E00001F93CF93DF938091220282958F7009F0E8 -:103E100069C080911F02882309F464C0A0915302F5 -:103E2000D0915402B0911D02C0911E0280912002D7 -:103E30009091210221E030E0BF3F11F020E030E01E -:103E4000122FBC016095709506E04AC0009721F0E2 -:103E5000CF3F29F4212F05C021E030E002C020E04F -:103E600030E020FD3BC04A2F50E0049FF001059F49 -:103E7000F00D1124ED5DFD4F2181C2132FC0208173 -:103E8000B2132CC02281211129C02381348128172B -:103E9000390718F0281B390B02C0260F371F283CA2 -:103EA0003105E0F4809122028F70806180932202BC -:103EB00086E0849FF001859FF00D1124E85DFD4FA1 -:103EC00080818F70806180838DE192E00E94C41AAE -:103ED000DF91CF911F910F910C94D01EAF5FA7700F -:103EE000AD13B4CFDF91CF911F910F910895EF9251 -:103EF000FF920F931F93CF93DF93CDB7DEB76297F7 -:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F -:103F1000DE011D9601900D928A95E1F7D8014C9132 -:103F200011965C91119712966C9112971396ED90E1 -:103F3000FC90149770911D02E0911E028091200266 -:103F400090912102009739F0EF3F41F421E030E0F9 -:103F50007F3F31F003C021E030E002C020E030E0DC -:103F600020FD5CC120911F02222309F4F1C0E81654 -:103F7000F90628F09701281B390BC90104C0809568 -:103F800090958E0D9F1D883C910508F098C08091FA -:103F90002202982F907F09F064C0E51314C07413B7 -:103FA00012C0611110C08F708061809322020E9444 -:103FB000F11E8DE192E00E94C41A80912202D80184 -:103FC00015968C9343C1EF2839F05F3F41F481E0AF -:103FD00090E04F3F31F003C081E090E002C080E00C -:103FE00090E080FD03C081E0862702C080E090E081 -:103FF00080FF2EC0809153022091540236E013C0FE -:1040000090E0389FF001399FF00D1124ED5DFD4FD8 -:104010007181571306C07081471303C07281671303 -:1040200017C0019687708213EBCF12C19F7059F0B1 -:10403000882309F40BC107C09F7029F0F80195810E -:10404000907F09F403C1805E883008F4FFC0D2C0BD -:10405000662309F4FBC080912202816080932202D2 -:10406000F5C0E51308C0741306C0611104C0D8017F -:1040700015968C939DC04D875E878D859E856A8B36 -:104080000E94901E6A89882309F4B4C0662309F44B -:10409000B1C020912202822F82958F7090E002970A -:1040A0000CF4C6C080911D0290911E0298878F83E8 -:1040B0001986FB86EA862C87CE01079646C080913A -:1040C0002202982F907F59F47E2DF98AE88A8989F7 -:1040D0000E94B11E8DE192E00E94C41A95C0E513C2 -:1040E00011C074130FC061110DC0F8018583C801A0 -:1040F0000E94C41AEDE1F2E086E0DF011D928A958C -:10410000E9F7A2C04D875E878D859E856A8B0E94E8 -:10411000901E6A89882309F46DC0662309F46AC079 -:1041200020912202822F82958F7090E002970CF4EA -:104130007FC080911D0290911E029A8389831B8209 -:10414000FD82EC822E83CE0101960E94C41A70C0BB -:10415000E816F90628F09701281B390BC90104C09D -:10416000809590958E0D9F1D883C910508F046C066 -:10417000662309F43FC0E51330C074132EC02091AC -:10418000220220FD21C0322F32953F70832F90E014 -:104190000097D1F0D80115962C9315970F9741F001 -:1041A000832F8F5F8295807F2F70282B15962C93FD -:1041B000C8010E94C41A86E0F801ADE1B2E00190A6 -:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC -:1041D00001900D928A95E1F737C04D875E878D85F6 -:1041E0009E850E94901E811123C0809122028160D1 -:1041F00080932202C8010E94C41A26C07E2DF98A2B -:10420000E88A89890E94B11EEDE1F2E086E0DF01D3 -:104210001D928A95E9F70E94F11E18C0662351F39A -:104220004D875E878D859E850E94901E882311F3A1 -:1042300086E0F801ADE1B2E001900D928A95E1F7D8 -:104240000E94FF1E0E94F11E81E014C080E012C097 -:104250004D875E878D859E850E946923292F229533 -:104260002F7030E0223031050CF4E0CE24303105DF -:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D -:10428000DF91CF911F910F91FF90EF9008951F93B1 -:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80 -:1042A0000FBECDBF4F83588769877A878B879C87DE -:1042B000CE0107960E94771F8823D9F02F81388579 -:1042C0008A859B85892B39F03F3F19F080E090E08B -:1042D00004C02F3FD9F781E090E0892B09F06DC031 -:1042E0004F81588569857A858B859C850E94C01E83 -:1042F00064C086E0FE013796DE01119601900D92B2 -:104300008A95E1F7FF81E8854A855B85411551056E -:1043100039F0EF3F41F481E090E0FF3F31F003C01E -:1043200081E090E002C080E090E080FD46C02091F6 -:10433000540230E0C90101968770992760915302B9 -:1043400070E08617970709F440C0F983EA835D831C -:104350004C8396E0929FD001939FB00D1124AD5DE8 -:10436000BD4FFE01319601900D929A95E1F7809331 -:1043700054020E94D01E21C0189FC00111248D5DDF -:104380009D4F0E94771F882371F1E09153021E9F79 -:10439000F0011124ED5DFD4F4081518162817381F7 -:1043A000848195810E94C01E8091530290E0019605 -:1043B000877099278093530201C016E080915302C1 -:1043C000909154028913D8CF0EC00E948C1E109277 -:1043D000540210925302EDE1F2E086E0DF011D92FB -:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98 -:1043F000CDBFDF91CF911F910895DF92EF92FF9291 -:104400000F931F93CF93DF93EC01009709F46CC0D7 -:10441000D12CEE24E394F12C8E010F5F1F4FFE018F -:104420008491843748F4843008F04AC0813071F0B8 -:10443000823009F059C01EC0853709F43DC070F1C3 -:10444000982F9458903708F04FC03DC02296F8013D -:104450008491982F905E983050F48770FE2D01C0A3 -:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A -:104470009D192DC02296F8018491982F905E983056 -:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39 -:104490000E9405241CC00E94651A19C02296F801CA -:1044A000049107C08FE99FE00197F1F700C0000079 -:1044B00001500111F7CF0BC02296F801D49007C02C -:1044C0000E949D1903C08F770E94651AE8018D2D07 -:1044D00007C08150EFE9FFE03197F1F700C000001D -:1044E000882309F499CFF5CFDF91CF911F910F91D8 -:1044F000FF90EF90DF9008956093590270935A02F5 -:1045000080935B0290935C020C947A1E6093550238 -:104510007093560280935702909358020C947A1E1F -:1045200008950C947C220F931F93009159021091CF -:104530005A0220915B0230915C02602B712B822B1E -:10454000932B1F910F910C947C220F931F9300913A -:10455000590210915A0220915B0230915C02602353 -:104560007123822393231F910F910C947C220F932C -:104570001F930091590210915A0220915B023091D1 -:104580005C0260277127822793271F910F910C945B -:104590007C2260E070E0CB010C94862241E050E088 -:1045A00060E070E004C0440F551F661F771F8A95B6 -:1045B000D2F7CB01BA010C94862241E050E060E0D2 -:1045C00070E004C0440F551F661F771F8A95D2F70D -:1045D0008091550290915602A0915702B0915802D5 -:1045E000482B592B6A2B7B2BCB01BA010C948622CA -:1045F00041E050E060E070E004C0440F551F661FCA -:10460000771F8A95D2F74095509560957095809167 -:10461000550290915602A0915702B091580248233A -:1046200059236A237B23CB01BA010C94862241E0F3 -:1046300050E060E070E004C0440F551F661F771F14 -:104640008A95D2F78091550290915602A091570217 -:10465000B0915802482759276A277B27CB01BA0116 -:104660000C9486220F931F930091550210915602CD -:104670002091570230915802602B712B822B932B83 -:104680001F910F910C9486220F931F930091550256 -:1046900010915602209157023091580260237123E5 -:1046A000822393231F910F910C9486220F931F93C3 -:1046B00000915502109156022091570230915802F4 -:1046C00060277127822793271F910F910C948622D0 -:1046D0000895CF92DF92EF92FF920F931F93CF93A3 -:1046E000DF93EC01C0905902D0905A02E0905B0237 -:1046F000F0905C028091550290915602A091570271 -:10470000B0915802C82AD92AEA2AFB2A0FE110E000 -:10471000B701A601002E04C0769567955795479579 -:104720000A94D2F740FF08C0BE01802F0E94E00328 -:104730008130910509F007C00150110948F7BE0109 -:1047400080E00E94E003DF91CF911F910F91FF90D5 -:10475000EF90DF90CF90089540911B0150911C0184 -:1047600020E030E09FEFFA01E20FF31F628168174B -:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD -:104780002630310581F707C0FA01E90FF11D97FDC9 -:10479000FA95828308959F3FB9F7089540911B01D0 -:1047A00050911C0120E030E0FA01E20FF31F9281EA -:1047B000981301C012822F5F3F4F26303105A1F7B9 -:1047C000089581E090E0E0911B01F0911C01E80F59 -:1047D000F91F1082019688309105A9F708959091EC -:1047E0005D02982B90935D020895809590915D02F3 -:1047F000982390935D02089510925D020895909120 -:104800005E02982B90935E020895809590915E02CF -:10481000982390935E02089510925E02089580930B -:104820005F02089510925F02089540911B0150911C -:104830001C0120E030E080E0FA01E20FF31F9181DB -:1048400091118F5F2F5F3F4F27303105A9F70895F2 -:10485000E0911B01F0911C0180915D028083E09149 -:104860001B01F0911C01808190915E02892B808355 -:1048700090915F02992361F0E0911B01F0911C017E -:104880008081892B80830E94152481110E9412242B -:1048900080911B0190911C010C946A1880916E0309 -:1048A000843009F11092690220E488E190E00FB6AB -:1048B000F894A895809360000FBE2093600083B7A2 -:1048C000817F846083BF83B7816083BF789488953C -:1048D00083B78E7F83BF88E10FB6F8948093600022 -:1048E000109260000FBE0895CF930E94E3020E94D1 -:1048F0007E060E94E402C0E08C2F0E94C407892B30 -:1049000029F4CF5FC430C1F780E001C081E0CF91CE -:1049100008950E948C1E0C945F2B1F920F920FB66D -:104920000F9211248F939F93AF93BF93809169024D -:10493000811113C080916A0290916B02A0916C0268 -:10494000B0916D024196A11DB11D80936A029093B2 -:104950006B02A0936C02B0936D02BF91AF919F91D7 -:104960008F910F900FBE0F901F90189582E084BD1D -:1049700093E095BD9AEF97BD80936E0008958FB731 -:10498000F89440916A0250916B0260916C027091B0 -:104990006D028FBFCA010895CF92DF92EF92FF920E -:1049A0000F931F932FB7F89440916A0250916B02B6 -:1049B00060916C0270916D022FBF6A017B01EE2441 -:1049C000FF248C0120E030E0C016D106E206F30699 -:1049D00020F09A01281B390B05C09C0120953095C9 -:1049E000240F351FC9011F910F91FF90EF90DF90A9 -:1049F000CF9008951F920F920FB60F9211248F93AC -:104A00009F93AF93BF9380916A0290916B02A091A4 -:104A10006C02B0916D020196A11DB11D80936A02D6 -:104A200090936B02A0936C02B0936D02BF91AF9113 -:104A30009F918F910F900FBE0F901F9018950E941D -:104A4000A111F8942FEF87EA91E621508040904021 -:104A5000E1F700C0000087E090EBDC018093780371 -:104A600090937903A0937A03B0937B032CE088E1C1 -:104A700090E00FB6F894A895809360000FBE209345 -:104A80006000FFCFCF92DF92EF92FF920F931F93C0 -:104A9000CF93DF93C82ED12C01E010E08D2D0E9422 -:104AA000C4077C01C0E0D0E098010C2E02C0220FA8 -:104AB000331F0A94E2F72E213F21232B29F421965C -:104AC000CC30D10589F708C06C2F7D2D80E00E9485 -:104AD000BB03C812F4CF06C0D39484E0D812DECF53 -:104AE00080E001C081E0DF91CF911F910F91FF9095 -:104AF000EF90DF90CF900895CF93C82F8CE20E9463 -:104B00004225882321F08C2FCF910C94422580E000 -:104B1000CF910895CF930E94CD26811102C00E94AB -:104B2000AE26C5E608C00E947E068FE39CE9019789 -:104B3000F1F700C00000C150B1F789E20E947C2566 -:104B400081110AC18AE20E947C2581110E94AE2651 -:104B500085E00E947C2581110E941F250E94D82695 -:104B60008093680287E00E947C25882399F18BE17D -:104B70000E947C25882351F09091680291FB882740 -:104B800080F921E0822780FB91F922C08EE00E940B -:104B90007C25882351F09091680292FB882780F948 -:104BA00021E0822780FB92F913C080E10E947C25DE -:104BB00090916802882341F093FB882780F921E0D7 -:104BC000822780FB93F904C0892F809580FB90F9A0 -:104BD00090936802809168020E94DC260E94EA2677 -:104BE00080937B0280EE0E947C25882341F0809197 -:104BF0007B02982F909590FB80F980937B0289E34C -:104C00000E947C25882359F090917B0291FB882794 -:104C100080F921E0822780FB91F990937B0282EE5C -:104C20000E947C25882359F090917B0292FB882773 -:104C300080F921E0822780FB92F990937B0286EE37 -:104C40000E947C25882359F090917B0293FB882752 -:104C500080F921E0822780FB93F990937B0283EE19 -:104C60000E947C25882359F090917B0294FB882731 -:104C700080F921E0822780FB94F990937B0285E301 -:104C80000E947C25882359F090917B0295FB882710 -:104C900080F921E0822780FB95F990937B0281E3E4 -:104CA0000E947C25882359F090917B0296FB8827EF -:104CB00080F921E0822780FB96F990937B0281E1C5 -:104CC0000E947C25882359F090917B0297FB8827CE -:104CD00080F921E0822780FB97F990937B028091F5 -:104CE0007B020E94EE2687E20E947C25C82F8EE17F -:104CF0000E947C258111C2608FE10E947C25811178 -:104D0000C46080E20E947C258111C86081E20E941B -:104D10007C258111C06182E20E947C258111C062E4 -:104D200083E20E947C258111C06484E20E947C257C -:104D3000882311F0C06802C0CC2329F08C2F0E9478 -:104D4000E5266C2F03C00E94E126682F70E080E00A -:104D500090E0CF910C949122CF9108956DEE7EEF6B -:104D600080E090E00E94BA2F60E082E090E00E9434 -:104D7000AC2F60E083E090E00E94AC2F60E084E024 -:104D800090E00E94AC2F60E085E090E00E94AC2FA4 -:104D900060E086E090E00C94AC2F80E090E00E9410 -:104DA000A62F21E08D3E9E4F09F020E0822F08952E -:104DB00082E090E00C949E2F682F82E090E00C94AB -:104DC000AC2F83E090E00C949E2F682F83E090E05E -:104DD0000C94AC2F84E090E00C949E2F682F84E01C -:104DE00090E00C94AC2F86E090E00C949E2F682FFE -:104DF00086E090E00C94AC2F8091760280FF0BC08F -:104E00006091200185E0689FB00111247595679538 -:104E1000759567952AC081FF09C06091200185E0E2 -:104E2000689FB0011124759567951FC082FF07C068 -:104E30006091200185E0689FB001112416C0409167 -:104E400070024423C9F060911F01461788F7209132 -:104E5000200185E0289F90011124429FC001439FBB -:104E6000900D112470E00E948A2F6038710540F483 -:104E70006115710539F002C065E070E0862F089574 -:104E80008FE7089581E008958091760280FF08C041 -:104E900060911E0170E0759567957595679521C0C5 -:104EA00081FF06C060911E0170E07595679519C07D -:104EB00082FF04C060911E0170E010C080917002FA -:104EC0008823C1F060911D018617A0F790911E0103 -:104ED000989FC001112470E00E948A2F60387105EC -:104EE00028F46115710521F0862F08958FE7089544 -:104EF00081E0089561E070E0F4CF803F21F40E94EA -:104F0000FC26819504C0813F29F40E94FC268093F1 -:104F100073020895823F21F40E94FC26819504C00B -:104F2000833F29F40E94FC26809372020895893FF2 -:104F300019F40E94442705C08A3F31F40E94442797 -:104F400081958093740208958B3F21F40E94442739 -:104F5000819504C08C3F29F40E94442780937502F8 -:104F60000895843F21F480917102816017C0853FCC -:104F700021F480917102826011C0863F21F48091FA -:104F8000710284600BC0873F21F4809171028860B8 -:104F900005C0883F31F48091710280618093710275 -:104FA00008958D3F21F48091760281600BC08E3F81 -:104FB00021F480917602826005C08F3F29F48091B0 -:104FC00076028460809376020895803F29F4809170 -:104FD000730287FF6EC007C0813F41F48091730266 -:104FE00018160CF066C01092730263C090917202A2 -:104FF000823F19F497FF5DC005C0833F31F4191655 -:105000000CF057C01092720254C0893F31F4809165 -:10501000740218160CF04DC006C08A3F39F4809116 -:10502000740287FF46C01092740243C08B3F29F47C -:105030008091750287FF3DC006C08C3F39F4809196 -:1050400075021816B4F51092750233C0843F21F42E -:10505000809171028E7F05C0853F31F4809171028D -:105060008D7F8093710225C0863F21F4809171026B -:105070008B7FF7CF873F21F480917102877FF1CF3B -:10508000883F21F4809171028F7EEBCF8D3F21F418 -:10509000809176028E7F0BC08E3F21F48091760244 -:1050A0008D7F05C08F3F29F4809176028B7F80939E -:1050B00076028091720281110EC08091730281117B -:1050C0000AC080917402811106C08091750281111D -:1050D00002C010927002089581E792E00E94751854 -:1050E0000E94BF2490936F0280936E020895CF9325 -:1050F00080916E0290916F020E94CC2440917002C8 -:10510000442321F02091210130E006C020912201AA -:105110005AE0259F900111248217930708F486C056 -:105120008091720281110DC090917302911109C09A -:1051300090917402911105C090917502992309F420 -:1051400075C04F3F19F04F5F40937002181624F45A -:105150000E94FC26809372028091720287FF05C034 -:105160000E94FC268195809372028091730218162A -:1051700024F40E94FC26809373028091730287FFBF -:1051800005C00E94FC268195809373026091720293 -:10519000662339F1C0917302CC2319F1772767FD9B -:1051A0007095872F972F0E94FA2C23E333E343E374 -:1051B0005FE30E94AE2D0E94C72C609372026C2F99 -:1051C000772767FD7095872F972F0E94FA2C23E38E -:1051D00033E343E35FE30E94AE2D0E94C72C60934C -:1051E000730280917402181624F40E94442780935D -:1051F00074028091740287FF05C00E944427819544 -:105200008093740280917502181624F40E9444273A -:10521000809375028091750287FF05C00E94442724 -:10522000819580937502CF910C946C28CF9108954D -:10523000E1E7F2E085E0DF011D928A95E9F710923F -:105240007002109276020895833089F130F4813033 -:1052500061F0823009F06EC019C0853009F449C090 -:10526000B8F1863009F066C055C020912201862F22 -:1052700090E0820F911D8F3F910520F4620F6093A3 -:10528000220108958FEF809322010895209121013A -:10529000862F90E0820F911D8F3F910520F4620FC1 -:1052A0006093210108958FEF80932101089520914B -:1052B0002001862F90E0820F911D8F3F910520F4F1 -:1052C000620F6093200108958FEF8093200108956D -:1052D00020911F01862F90E0820F911D8F3F910535 -:1052E00020F4620F60931F0108958FEF80931F01D8 -:1052F000089520911E01862F90E0820F911D8F3F0F -:10530000910520F4620F60931E0108958FEF809342 -:105310001E01089520911D01862F90E0820F911D9E -:105320008F3F910520F4620F60931D0108958FEF68 -:1053300080931D010895833021F130F4813059F0BC -:10534000823009F049C012C0853089F128F18630D9 -:1053500009F042C037C080912201681720F4861BF3 -:1053600080932201089510922201089580912101D5 -:10537000681720F4861B8093210108951092210163 -:10538000089580912001681720F4861B80932001E6 -:10539000089510922001089580911F01681720F44C -:1053A000861B80931F01089510921F01089580911C -:1053B0001E01681720F4861B80931E010895109229 -:1053C0001E01089580911D01681720F4861B8093AB -:1053D0001D01089510921D01089541E050E060E024 -:1053E00070E004C0440F551F661F771F8A95D2F7DF -:1053F000CB01BA010E9491220C948C1E873208F5D1 -:105400008E3108F0B9C08E3009F47EC060F4873068 -:1054100009F465C018F4863059F549C0883051F157 -:105420008B3031F5AEC0883130F4863108F0A9C038 -:105430008031F1F473C0893109F4A3C08B31C1F418 -:1054400059C08933F1F068F4893209F493C018F433 -:10545000873271F48FC0853309F48CC0883341F4EE -:1054600090C0863409F46BC008F488C0883449F1D0 -:1054700080E008950E94D8260E94EA260E94F32622 -:1054800080C00E945918892B59F00E945918909396 -:105490007902809378020E948C1E80E090E004C024 -:1054A00080917802909179020E9454186AC080918C -:1054B0006802817F8E7F8093680281E0809377020B -:1054C00008950E948C1E2FEF83ED90E321508040C1 -:1054D0009040E1F700C000000E941F2552C080915B -:1054E000680280FF03C0817F8E7F01C0816080934E -:1054F000680247C09091680291FB882780F921E0FB -:10550000822780FB91F913C09091680292FB882753 -:1055100080F921E0822780FB92F909C0909168020E -:1055200093FB882780F921E0822780FB93F99093F1 -:105530006802882331F191609093680222C081E86B -:1055400090E00E9480182FEF81EE94E0215080407F -:105550009040E1F700C0000080E090E00E948018D9 -:105560002FEF89E698E1215080409040E1F700C09C -:10557000000007C080E003C08D5101C089530E9424 -:10558000ED2981E0089580E0089580E00895CF93AB -:10559000C82F80917702813071F020F0823009F0BD -:1055A00083C037C0A0911B01B0911C018C91823245 -:1055B00009F07CC007C0A0911B01B0911C018C9127 -:1055C000823249F48C2F0E94C32A81111EC08C2F75 -:1055D0000E94FE291CC08C2F0E94C52A811115C073 -:1055E000C43169F030F4CB3081F0C03109F062C0D1 -:1055F00009C0C93221F0C83309F05CC006C010925E -:10560000770258C082E08093770281E090E0817059 -:1056100054C0C932C1F060F4C431A9F020F4C730DD -:1056200009F046C02EC0CE51CA3008F041C011C0AA -:10563000CE3409F118F4CB34D9F517C0C13599F03F -:10564000C235B1F50EC010927A0281E080937702E4 -:1056500034C0EC2FF0E0E455FE4F808180937A0255 -:1056600027C061E003C061E007C06AE080917A0270 -:105670000E9424291DC06AE080917A020E949B2921 -:1056800017C08EE18093220182E3809321018AE09A -:105690008093200184E180931F0188E080931E01A4 -:1056A00088E280931D0104C01092770280E005C05B -:1056B00081E003C080E090E0AACFCF9108950E94DE -:1056C000CD26811102C00E94AE260E94F32680934F -:1056D000770380FF02C0869501C080E00C94DF074D -:1056E00080917703982F9695292F30E0233031054C -:1056F0004CF49F5F990F8170892B816080937703B1 -:105700000E94F7268091770386950C94DF0780919D -:105710007703982F969591F09158990F8170892B66 -:10572000809377038E7F91E009F490E08091770376 -:1057300090FB80F9809377030E94F726809177038E -:1057400086950C94DF0780917703982F909590FBB6 -:1057500080F9809377030E94F7268091770380FF7A -:1057600002C0869501C080E00C94DF07309177037A -:10577000232F26952F5F2F77822F90E0317004978B -:105780002CF4220F232B2093770302C0309377034E -:1057900080917703282F2E7F91E009F490E090FB11 -:1057A00080F9809377030E94F7268091770386958E -:1057B0000C94DF0720917703922F96959827990FE5 -:1057C000822F8170892B809377038E7F91E009F47B -:1057D00090E08091770390FB80F9809377030E949B -:1057E000F7268091770386950C94DF075058BB27E6 -:1057F000AA270ED075C166D130F06BD120F031F4FC -:105800009F3F11F41EF45BC10EF4E095E7FB51C11C -:10581000E92F77D180F3BA176207730784079507DA -:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F -:10583000A02D0B01B90190010C01CA01A001112496 -:10584000FF27591B99F0593F50F4503E68F11A1642 -:10585000F040A22F232F342F4427585FF3CF4695D3 -:1058600037952795A795F0405395C9F77EF41F16F5 -:10587000BA0B620B730B840BBAF09150A1F0FF0FBF -:10588000BB1F661F771F881FC2F70EC0BA0F621FAB -:10589000731F841F48F4879577956795B795F7959B -:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D -:1058B000979587950895D9D008F481E008950CD084 -:1058C0000FC107D140F0FED030F021F45F3F19F056 -:1058D000F0C0511139C1F3C014D198F39923C9F321 -:1058E0005523B1F3951B550BBB27AA2762177307E6 -:1058F000840738F09F5F5F4F220F331F441FAA1F9A -:10590000A9F333D00E2E3AF0E0E830D09150504059 -:10591000E695001CCAF729D0FE2F27D0660F771F07 -:10592000881FBB1F261737074807AB07B0E809F0E9 -:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E -:10594000510568F0B6C000C15F3FECF3983EDCF350 -:10595000869577956795B795F7959F5FC9F7880FF7 -:10596000911D9695879597F90895E1E0660F771F49 -:10597000881FBB1F621773078407BA0720F0621BDA -:10598000730B840BBA0BEE1F88F7E095089504D0D3 -:105990006894B111D9C00895BCD088F09F5790F099 -:1059A000B92F9927B751A0F0D1F0660F771F881F44 -:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F -:1059C000B1E00895C0C0672F782F8827B85F39F0FD -:1059D000B93FCCF3869577956795B395D9F73EF4A3 -:1059E00090958095709561957F4F8F4F9F4F08954B -:1059F000E89409C097FB3EF4909580957095619569 -:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E -:105A10009395F695879577956795B795F111F8CF9A -:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 -:105A30009F4F16C0882311F096E911C0772321F0FB -:105A40009EE8872F762F05C0662371F096E8862F93 -:105A500070E060E02AF09A95660F771F881FDAF7EA -:105A6000880F9695879597F90895990F0008550F17 -:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4 -:105A800012161306E407F50798F0621B730B840BDC -:105A9000950B39F40A2661F0232B242B252B21F4B6 -:105AA00008950A2609F4A140A6958FEF811D811D56 -:105AB000089597F99F6780E870E060E008959FEF90 -:105AC00080EC089500240A94161617061806090695 -:105AD000089500240A941216130614060506089564 -:105AE000092E0394000C11F4882352F0BB0F40F4EC -:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C -:105B0000089557FD9058440F551F59F05F3F71F0AD -:105B10004795880F97FB991F61F09F3F79F0879514 -:105B20000895121613061406551FF2CF4695F1DF9D -:105B300008C0161617061806991FF1CF869571052D -:105B4000610508940895E894BB2766277727CB0161 -:105B500097F908958ADF08F48FEF08950BD0C0CF2E -:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58 -:105B70001124EACFC6DFA0F3959FD1F3950F50E033 -:105B8000551F629FF001729FBB27F00DB11D639FEF -:105B9000AA27F00DB11DAA1F649F6627B00DA11D95 -:105BA000661F829F2227B00DA11D621F739FB00D3B -:105BB000A11D621F839FA00D611D221F749F3327AB -:105BC000A00D611D231F849F600D211D822F762F44 -:105BD0006A2F11249F5750408AF0E1F088234AF041 -:105BE000EE0FFF1FBB1F661F771F881F915050408D -:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355 -:105C0000983EDCF3869577956795B795F795E79578 -:105C10009F5FC1F7FE2B880F911D9695879597F989 -:105C20000895FA01EE0FFF1F30962105310599F115 -:105C30006115710561F48038BFE39B0749F16894F1 -:105C40009038810561F08038BFEF9B0741F09923C0 -:105C500042F5FF3FE1053105210511F1E894089473 -:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313 -:105C700010C0FF5F70F4A695E0F7F73950F019F007 -:105C8000FF3A38F49F779F930CD00F9007FC905801 -:105C900008953EF014CF60E070E080E89FE308953F -:105CA0004FE79F775F934F933F932F939ED02F9112 -:105CB0003F914F915F9152DF05C019F40EF0F9CE7C -:105CC00042CFFDCE26DFC8F39638C0F707F80F9213 -:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E -:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D -:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6 -:105D0000FE57E0684427EE0F441FFA95E1F74195EE -:105D1000550B32D00F9007FE26C00895DF93CF9326 -:105D20001F930F93FF92EF92DF927B018C01689497 -:105D300005C0DA2EEF011EDFFE01E894A591259142 -:105D4000359145915591AEF3EF0162DDFE0197016A -:105D5000A801DA9479F7DF90EF90FF900F911F91EF -:105D6000CF91DF9108959B01AC0160E070E080E885 -:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A -:105D8000940F511DBBF39150504094F059F088236B -:105D900032F0660F771F881F91505040C1F79E3F29 -:105DA000510544F7880F911D9695879597F90895A9 -:105DB0005F3FACF0983E9CF0BB2786957795679542 -:105DC000B79508F4B1609395C1F7BB0F58F711F47C -:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11 -:105DE0000EF076C06CCE689464CE93DEC8F399232F -:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75 -:105E0000DD2788232AF02197660F771F881FDAF78E -:105E100020E030E040E85FEB9FE3883920F0803EEF -:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7 -:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757 -:105E400071097595771F880B990BD4DD28E132E72E -:105E500041E35FE38FDEAF2D9801AE01FF900F911C -:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68 -:105E7000BB1F9B01AC01BF5728F4222733274427BF -:105E800050781FC0B75188F4AB2F00244695379542 -:105E90002795011CA395D2F3002069F0220F331F30 -:105EA000441FB395DAF30DD0A1CC61307105A0E8A1 -:105EB0008A07B94630F49B01AC016627772788270B -:105EC0009078309621F02083318342835383089564 -:105ED0009F3F31F0915020F4879577956795B7955E -:105EE000880F911D9695879597F90895AA1BBB1B5E -:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA -:105F0000B70B881F991F5A95A9F780959095BC01EA -:105F1000CD01089597FB072E16F4009407D077FD66 -:105F200009D00E94762F07FC05D03EF4909581950C -:105F30009F4F0895709561957F4F0895F999FECF11 -:105F400092BD81BDF89A992780B50895A8E1B0E087 -:105F500042E050E00C94C12F262FF999FECF1FBAD2 -:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82 -:105F7000019608950E94AC2F272F0C94AD2FDC01C1 -:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44 -:105F9000319600B40D9241505040B8F70895F894EE -:025FA000FFCF31 -:105FA2000507000C058540000001064000000100C5 -:105FB200D80B680C440C0F0CDB0B01600228081490 -:105FC2000A321E40004500250026006100600020C4 -:105FD2000037006400650066006700440046002444 -:105FE2000047000000020004000500070009000B42 -:105FF200000C000E0010001100130015001700180D -:10600200001A001C001D001F00210023002400268E -:1060120000280029002B002D002F00300032003410 -:10602200003500370039003B008803A103BA03D3CF -:1060320003FB04AE04780458043F4D3620020302E9 -:10604200000001000101010101000101010203043C -:0660520005060708090025 -:00000001FF diff --git a/keyboard/preonic/preonic_music.hex b/keyboard/preonic/preonic_music.hex deleted file mode 100644 index 603693bff..000000000 --- a/keyboard/preonic/preonic_music.hex +++ /dev/null @@ -1,1713 +0,0 @@ -:100000000C9410030C9454030C9454030C94540358 -:100010000C9454030C9454030C9454030C94540304 -:100020000C9454030C9454030C9410170C94E21782 -:100030000C94BD290C9454030C9454030C94540355 -:100040000C9454030C9454030C9454030C945403D4 -:100050000C9454030C942A2A0C9454030C945403C7 -:100060000C9454030C9454030C9454030C945403B4 -:100070000C9454030C9454030C9454030C945403A4 -:100080000C94440E0C9454030C9454030C94540399 -:100090000C9454030C9454030C9454030C94540384 -:1000A0000C9454030C9454030C9454030763423689 -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F00000000003500EC -:100130001E001F00200021002200230024002500B3 -:10014000260027002A002B0014001A0008001500C2 -:1001500017001C0018000C00120013002A002900D0 -:1001600004001600070009000A000B000D000E0035 -:100170000F0033003400E1001D001B0006001900D1 -:10018000050011001000360037003800280000304C -:10019000E000E200E30003522C002C000452500067 -:1001A000510052004F0035001E001F0020002100AA -:1001B0002200230024002500260027002A002B000F -:1001C00014001A00090013000A000D000F001800A7 -:1001D0001C0033002A002900040015001600170037 -:1001E00007000B00110008000C0012003400E100B1 -:1001F0001D001B000600190005000E00100036004F -:100200003700380028000030E000E200E30003522D -:100210002C002C0004525000510052004F003500B9 -:100220001E001F00200021002200230024002500C2 -:10023000260027002A002B00340036003700130068 -:100240001C0009000A00060015000F002A00290002 -:1002500004001200080018000C0007000B00170033 -:10026000110016003800E100330014000D000E00EC -:100270001B00050010001A0019001D0028000030A6 -:10028000E000E200E30003522C002C000452500076 -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00350212 -:1002B0001E021F0220022102220223022402250222 -:1002C000260227022A0001003A003B003C003D00C4 -:1002D0003E003F002D022E022F02300231020100AB -:1002E00040004100420043004400450000530153D8 -:1002F0000253005001000100010001000100010053 -:10030000010001000100AB00AA00A900AE00350009 -:100310001E001F00200021002200230024002500D1 -:10032000260027002A0035001E001F0020002100A3 -:100330002200230024002500260027002A000100B7 -:100340003A003B003C003D003E003F002D002E00E7 -:100350002F00300031000100400041004200430006 -:1003600044004500005301530253005001000100B6 -:100370000100010001000100010001000100AB00CB -:10038000AA00A900AE00006000600060006000608C -:10039000006000600060006000600060006000605D -:1003A000006000600060006000600060006000604D -:1003B000006000600060006000600060006000603D -:1003C000006000600060006000600060006000602D -:1003D000006000600060006000600060006000601D -:1003E00000600060006000300100010001000100B9 -:1003F00001000100010000600060006000602A034D -:1004000054006800650020005000720065006F0015 -:100410006E006900630020004B00650079006200F7 -:100420006F0061007200640000002C034F00720036 -:10043000740068006F006C0069006E006500610068 -:10044000720020004B006500790062006F006100BF -:100450007200640073000000040309040902D00064 -:10046000060100A0FA0904000001030101000921AE -:1004700011010001223F000705810308000A090459 -:1004800001000103010200092111010001224D00B8 -:100490000705820308000A090402000103000000A6 -:1004A0000921110100012236000705830308000A13 -:1004B00009040300020300000009211101000122C8 -:1004C0002000070584032000010705040320000124 -:1004D00009040400000101000009240100010900D1 -:1004E00001050904050002010300000724010001C1 -:1004F0004100062402010100062402020200092430 -:1005000003010301020100092403020401010100A7 -:100510000905060240000500000525010101090545 -:1005200085024000050000052501010312011001AC -:1005300000000008EDFE61600100010200010631CB -:10054000FF0974A1010975150025FF952075088123 -:10055000020976150025FF952075089102C0050156 -:100560000980A101850216010026B7001A01002AA0 -:10057000B700751095018100C0050C0901A1018526 -:1005800003160100269C021A01002A9C0275109590 -:10059000018100C005010902A1010901A1000509AD -:1005A000190129051500250195057501810295019F -:1005B000750381010501093009311581257F9502F7 -:1005C0007508810609381581257F95017508810612 -:1005D000050C0A38021581257F950175088106C032 -:1005E000C005010906A101050719E029E715002545 -:1005F00001950875018102950175088101050819A9 -:100600000129059505750191029501750391010573 -:1006100007190029FF150025FF950675088100C000 -:1006200011241FBECFEFDAE0DEBFCDBF04B603FE5C -:1006300024C08091050490910604A0910704B09114 -:1006400008048730904BA740B04BB9F410920504D2 -:1006500010920604109207041092080414BE84B786 -:10066000877F84BF88E10FB6F89480936000109272 -:1006700060000FBEE0E0F8E3099512E0A0E0B1E011 -:10068000E6ECF9E602C005900D92A832B107D9F761 -:1006900014E0A8E2B2E001C01D92A530B107E1F775 -:1006A0000E94C8130C94E1340C94000061111DC029 -:1006B000FC018281882351F085EE0E94901E0E94E9 -:1006C000BC3080E290E0A0E0B0E007C085EE0E9480 -:1006D000581F81E090E0A0E0B0E08093E1029093A9 -:1006E000E202A093E302B093E40280E090E0089578 -:1006F0000E94370E40E050E069E070E080E091E059 -:100700000C94880F08950E948B036E9A769A0C942D -:1007100078030C948203279A2F988FEF9FEF909382 -:100720008700809386008AE08093800089E180932F -:1007300081000C94653081110BC080918000877F0F -:100740008093800010928D0010928C002F98089555 -:100750002F98833041F480918000886080938000DE -:100760008FEF9FEF12C0909180009860909380006F -:1007700023E030E0281B3109220F331F8FEF9FEF5A -:1007800002C0969587952A95E2F790938D00809305 -:100790008C0008958B3B910568F4883A910530F5FB -:1007A000853A9105C0F48430910598F4019709F0D9 -:1007B0006FC071C0803E910508F46AC0883E910503 -:1007C00040F09C01205F31092031310508F060C004 -:1007D0005CC09C01A1C0853A910509F45FC0863ACE -:1007E000910509F45EC023E830E496C0883A91058B -:1007F00009F45AC0893A910509F459C08A3A910519 -:1008000009F458C08B3A910509F457C08C3A910508 -:1008100009F456C08D3A910509F455C0803B910505 -:1008200009F454C08E3A910509F453C08F3A9105EA -:1008300009F452C0813B910509F451C0823B9105F6 -:1008400009F450C0833B910509F44FC0843B9105E6 -:1008500009F44EC0853B910509F44DC0863B9105D6 -:1008600009F44CC0873B910509F44BC0883B9105C6 -:1008700009F44AC0893B910509F449C08A3B9105B6 -:1008800009F048C02AE236E447C09C01306544C004 -:1008900020E030E041C021E030E03EC021E830E41B -:1008A0003BC022E830E438C022EE34E435C029EE03 -:1008B00034E432C02AEE34E42FC025EB34E42CC0FB -:1008C00026EB34E429C027EB34E426C02CEC34E4D6 -:1008D00023C02DEC34E420C023E835E41DC02AE811 -:1008E00035E41AC022E935E417C024E935E414C020 -:1008F00021E236E411C023E236E40EC024E236E4FD -:100900000BC025E236E408C026E236E405C027E243 -:1009100036E402C020E034E4C90108959CE0799FE8 -:10092000F00111249CE3899FE00DF11D1124E60FD5 -:10093000F11DEE0FFF1FE25DFE4F25913491C901BD -:100940000895880F991F82559040FC01259134919C -:10095000C9010895880F991F825D9E4FFC01259162 -:100960003491C90108950E948E049C019A958115C5 -:100970009F4110F4C9010895C90190528115904119 -:1009800028F4C9019F700E94AA040895C9019053D8 -:100990008115904120F4C9019927906C0895C901EF -:1009A0009054409728F4C9018F709927946D089549 -:1009B000203180E4380719F480E091ED0895213169 -:1009C00090E4390719F480E090ED0895223140E475 -:1009D000340719F480E092ED0895233180E438075C -:1009E00019F480E093ED0895211590E53907A1F4FD -:1009F0000E948B2340E065E088E491E00E94880F2C -:100A00002FEF44E38CE0215040408040E1F700C0EC -:100A100000000E944F2A1EC1213090E5390731F4B1 -:100A20008091F10281608093F10214C1C901905557 -:100A30008115904108F062C0432F55274F7055270C -:100A400041305105F9F4C90174E0880F991F7A9576 -:100A5000E1F788279370B901E3E0660F771FEA9505 -:100A6000E1F760767727862B972B9C6823703327D6 -:100A700002C0440F551F2A95E2F74F715527842B6A -:100A8000952B08954230510529F4922F8827816FC4 -:100A9000906A089543305105B9F4C90153E0880FB5 -:100AA000991F5A95E1F7807E97702370332741E0B4 -:100AB00050E002C0440F551F2A95E2F74F715527A9 -:100AC000842B952B9C6808954430510589F5C90104 -:100AD00043E0880F991F4A95E1F7807E9770237055 -:100AE000332741E050E002C0440F551F2A95E2F73A -:100AF0004F715527842B952B9A680895C9019056FC -:100B00008115904118F4C901906F0895C90190575B -:100B10008115904120F4C9019F7090620895C90128 -:100B200090588115904120F4C9019F70906A0895F2 -:100B3000203E3105E0F4203C310568F521333105D4 -:100B400009F475C048F42932310509F46BC02A3222 -:100B5000310509F07BC075C02933310501F1223818 -:100B60003105E9F02533310509F070C051C0233E4D -:100B70003105B1F140F4203E3105D1F0223E31057E -:100B800009F064C01CC0263E310579F1273E3105CD -:100B900009F05CC038C0C9010E94A1040895809189 -:100BA000020380FD02C081FF51C080EE90E04FC083 -:100BB0008091020380FFF9CF89E390E048C08091E3 -:100BC000020382FF0AC08091020384FF03C080E019 -:100BD00090E03DC083EE90E03AC082EE90E037C0F6 -:100BE0008091020382FFEFCFF8CF8091020383FF51 -:100BF00007C08091020384FDEACF87EE90E027C012 -:100C000086EE90E024C08091020383FFF2CFF8CFFC -:100C10008091020385FF03C089E290E018C085E35C -:100C200090E015C08091020385FDF9CFF5CF80914A -:100C3000020386FF03C08AE290E009C081E390E0EE -:100C400006C08091020386FDF9CFF5CFC9010E944D -:100C5000CA030895089508950C942B065F926F922D -:100C60007F928F929F92AF92BF92CF92DF92EF923C -:100C7000FF920F931F93CF93DF93CDB7DEB72A97E1 -:100C80000FB6F894DEBF0FBECDBF9E012F5F3F4F62 -:100C90004E018BE0880E911C60E070E000E010E0F7 -:100CA000E12CF12CC12CD12CA12CB12C8AE0782E76 -:100CB000622E532E41E050E0E3E9F1E0A62DB52D80 -:100CC000872D01900D928A95E1F7F901819191911B -:100CD0009F01FC01E07FFF27E032F10559F48F709E -:100CE0009927FA0102C0EE0FFF1F8A95E2F7AE2A9C -:100CF000BF2A37C0E033F10559F48F709927FA0104 -:100D000002C0EE0FFF1F8A95E2F7CE2ADF2A29C024 -:100D1000E034F10559F48F709927FA0102C0EE0F03 -:100D2000FF1F8A95E2F7EE2AFF2A1BC0E035F10586 -:100D300059F48F709927FA0102C0EE0FFF1F8A95B0 -:100D4000E2F70E2B1F2B0DC0E036F10551F48F702A -:100D50009927FA0102C0EE0FFF1F8A95E2F76E2B6A -:100D60007F2B2815390509F0A7CF94B18A2D8095DE -:100D7000892384B985B18A2985B997B18C2D80954D -:100D8000892387B988B18C2988B99AB18E2D80952D -:100D900089238AB98BB18E298BB99DB1802F80951B -:100DA00089238DB98EB1802B8EB990B3862F809513 -:100DB000892380BB81B3862B81BB2A960FB6F8941A -:100DC000DEBF0FBECDBFDF91CF911F910F91FF907E -:100DD000EF90DF90CF90BF90AF909F908F907F90DB -:100DE0006F905F9008955F926F927F928F929F9223 -:100DF000AF92BF92CF92DF92EF92FF920F931F9329 -:100E0000CF93DF93CDB7DEB768970FB6F894DEBF08 -:100E10000FBECDBF85B7806885BF85B7806885BFA9 -:100E20000E942E069E012F5F3F4F4E0189E1880EE2 -:100E3000911C60E070E000E010E0E12CF12CC12C8E -:100E4000D12CA12CB12C98E1792E622E532E41E0A9 -:100E500050E0EDE9F1E0A62DB52D872D01900D9222 -:100E60008A95E1F7F901819191919F01FC01E07F61 -:100E7000FF27E032F10559F48F709927FA0102C07B -:100E8000EE0FFF1F8A95E2F7AE2ABF2A37C0E03384 -:100E9000F10559F48F709927FA0102C0EE0FFF1F78 -:100EA0008A95E2F7CE2ADF2A29C0E034F10559F409 -:100EB0008F709927FA0102C0EE0FFF1F8A95E2F7A3 -:100EC000EE2AFF2A1BC0E035F10559F48F709927EF -:100ED000FA0102C0EE0FFF1F8A95E2F70E2B1F2BBF -:100EE0000DC0E036F10551F48F709927FA0102C068 -:100EF000EE0FFF1F8A95E2F76E2B7F2B2815390521 -:100F000009F0A7CF94B18A2D8095892384B985B142 -:100F10008A2985B997B18C2D8095892387B988B1A5 -:100F20008C2988B99AB18E2D809589238AB98BB185 -:100F30008E298BB99DB1802F809589238DB98EB173 -:100F4000802B8EB990B3862F8095892380BB81B387 -:100F5000862B81BB10922902109228021092330234 -:100F60001092320210922B0210922A021092350235 -:100F70001092340210922D0210922C02109237021D -:100F80001092360210922F0210922E021092390205 -:100F900010923802109231021092300210923B02ED -:100FA00010923A0268960FB6F894DEBF0FBECDBF1E -:100FB000DF91CF911F910F91FF90EF90DF90CF9035 -:100FC000BF90AF909F908F907F906F905F900C94A8 -:100FD00083035F926F927F928F929F92AF92BF92A4 -:100FE000CF92DF92EF92FF920F931F93CF93DF93F5 -:100FF000CDB7DEB7A2970FB6F894DEBF0FBECDBF58 -:101000007E0149E1E40EF11C22E3C22E22E0D22E41 -:101010005E0153E2A50EB11C3AE0532E470101E0F8 -:1010200010E048E1642E55E0752EE3E9F1E0D401CB -:10103000852D01900D928A95E1F7F70181919191AB -:101040007F019C01207F33272032310589F424B1B0 -:101050008F709927A80102C0440F551F8A95E2F7A7 -:10106000CA01242B24B995B18095892385B94FC035 -:101070002033310589F427B18F709927F80102C018 -:10108000EE0FFF1F8A95E2F7CF012E2B27B998B1FB -:101090008095892388B93BC02034310589F42AB171 -:1010A0008F709927A80102C0440F551F8A95E2F757 -:1010B000CA01242B2AB99BB1809589238BB927C0FB -:1010C0002035310589F42DB18F709927F80102C0C0 -:1010D000EE0FFF1F8A95E2F7CF012E2B2DB99EB19F -:1010E000809589238EB913C02036310581F420B351 -:1010F0008F709927A80102C0440F551F8A95E2F707 -:10110000CA01242B20BB91B38095892381BB50EA6F -:101110005A95F1F7BE016F5F7F4F80E090E020E0CD -:1011200030E0EDE9F1E0DE011196462D01900D92DF -:101130004A95E1F7FB0141915191BF01FA01E07F2E -:10114000FF27E032F10511F4E3B113C0E033F105FC -:1011500011F4E6B10EC0E034F10511F4E9B109C0B3 -:10116000E035F10511F4ECB104C0E036F105B9F455 -:10117000EFB1F0E04F70552702C0F595E7954A951D -:10118000E2F7E0FD08C0A801022E02C0440F551F7F -:101190000A94E2F702C040E050E0842B952B2F5FC9 -:1011A0003F4F2C30310509F0BCCFF6012081318151 -:1011B0002817390721F091838083709270010E9473 -:1011C0002E06F2E0CF0ED11CEA14FB0409F02DCF5D -:1011D000809170018823A1F1815080937001882350 -:1011E00039F08FE99FE00197F1F700C0000028C0B7 -:1011F00080913202909133029093290280932802C9 -:10120000809134029091350290932B0280932A02B0 -:10121000809136029091370290932D0280932C0298 -:10122000809138029091390290932F0280932E0280 -:1012300080913A0290913B02909331028093300268 -:101240000E94890381E0A2960FB6F894DEBF0FBE1C -:10125000CDBFDF91CF911F910F91FF90EF90DF9065 -:10126000CF90BF90AF909F908F907F906F905F9046 -:101270000895E82FF0E0EE0FFF1FE85DFD4F80813D -:10128000918108950895CF92DF92EF92FF920F938C -:101290001F93CF93DF93CDB7DEB7CC5BD2400FB6B1 -:1012A000F894DEBF0FBECDBF8C01862F642F88233C -:1012B00079F0F80192812FE7482F992329F084E0F3 -:1012C00093E00E94EC1904C084E093E00E94FC19B2 -:1012D000F80180818B3091F59181943009F0A8C29A -:1012E0009281809173019923B1F08F5F8093730194 -:1012F00096E4E5EBF1E0DE01A958BD4F01900D92B7 -:101300009A95E1F7E0917101F0917201EE0FFF1FE4 -:1013100027E732E036C096E4E5EBF1E0DE01AF5CB2 -:10132000BD4F01900D929A95E1F7E0917101F09116 -:101330007201EE0FFF1F21E332E093C08A3009F003 -:10134000CBC0F8019181943009F072C292818091F2 -:101350007301992309F473C081508093730196E45B -:10136000E5EBF1E0DE01A551BE4F01900D929A959B -:10137000E1F7E0917101F0917201EE0FFF1F2BEE8A -:1013800031E02C0F3D1FE20FF31F60817181680F68 -:10139000711D882777FD8095982F0E94003220E0EC -:1013A00030E040E451E40E94653120E030E040E864 -:1013B00050E40E94FD309B01AC0160E070E080E0F1 -:1013C00090E40E94173321E230ED42E053E40E94A2 -:1013D000B4324CE050E00E94E30F20E04BE760E0C5 -:1013E00084E093E00E94DC1920E04BE761E084E0B8 -:1013F00093E00E94DC1920E04BE762E084E093E098 -:101400000E94DC1920E04BE763E084E093E00E9457 -:10141000DC1920E04BE764E084E093E0C454DD4F46 -:101420000FB6F894DEBF0FBECDBFDF91CF911F91F5 -:101430000F91FF90EF90DF90CF900C94DC1996E421 -:10144000E5EBF1E0DE01AB55BE4F01900D929A95B0 -:10145000E1F7E0917101F0917201EE0FFF1F25EAB3 -:1014600031E02C0F3D1FE20FF31F60817181680F87 -:10147000711D882777FD8095982F0E94003220E00B -:1014800030E040E451E40E94653120E030E040E883 -:1014900050E40E94FD309B01AC0160E070E080E010 -:1014A00090E40E94173321E230ED42E053E40E94C1 -:1014B000B4320E94130DC454DD4F0FB6F894DEBF52 -:1014C0000FBECDBFDF91CF911F910F91FF90EF9095 -:1014D000DF90CF900C94E60C893009F0D3C0F8016E -:1014E0009181943009F0A4C19281992309F4A0C19B -:1014F0008091710190917201019690937201809395 -:10150000710120E04BE760E084E093E00E94DC1989 -:1015100020E04BE761E084E093E00E94DC1920E0EA -:101520004BE762E084E093E00E94DC1920E04BE7A7 -:1015300063E084E093E00E94DC1920E04BE764E084 -:1015400084E093E00E94DC190E94E60C00E010E0C9 -:10155000E6E4FE2E80917301E5EBF1E0DE01A15A95 -:10156000BE4F9F2D01900D929A95E1F7E091710188 -:10157000F0917201E00FF11FEE0FFF1F2FE531E038 -:101580002C0F3D1FE20FF31F60817181680F711DE9 -:10159000882777FD8095982F0E94003220E030E068 -:1015A00040E451E40E94653120E030E040E850E43E -:1015B0000E94FD309B01AC0160E070E080E090E4AF -:1015C0000E94173321E230ED42E053E40E94B4322E -:1015D0004CE050E00E94E30F3FEF87EE93E0315084 -:1015E00080409040E1F700C0000080917301E5EB7E -:1015F000F1E0DE01A75EBE4F9F2D01900D929A95FE -:10160000E1F7E0917101F0917201E00FF11FEE0F2F -:10161000FF1F29E131E02C0F3D1FE20FF31F608116 -:101620007181680F711D882777FD8095982F0E9422 -:10163000003220E030E040E451E40E94653120E0D7 -:1016400030E040E850E40E94FD309B01AC0160E0D6 -:1016500070E080E090E40E94173321E230ED42E038 -:1016600053E40E94B4320E94130D8FEF9CE7019760 -:10167000F1F700C000000F5F1F4F0830110509F09F -:1016800069CF94C1883009F0D3C0F80191819430BA -:1016900009F0CEC09281992309F4CAC080917101EA -:1016A000909172010197909372018093710120E0F3 -:1016B0004BE760E084E093E00E94DC1920E04BE718 -:1016C00061E084E093E00E94DC1920E04BE762E0F7 -:1016D00084E093E00E94DC1920E04BE763E084E0C3 -:1016E00093E00E94DC1920E04BE764E084E093E0A3 -:1016F0000E94DC190E94E60C00E010E056E4F52E92 -:1017000080917301E5EBF1E0DE01AD52BF4F9F2DFB -:1017100001900D929A95E1F7E0917101F0917201BB -:10172000E00FF11FEE0FFF1F23ED30E02C0F3D1FE8 -:10173000E20FF31F60817181680F711D882777FDAB -:101740008095982F0E94003220E030E040E451E480 -:101750000E94653120E030E040E850E40E94FD3016 -:101760009B01AC0160E070E080E090E40E941733E0 -:1017700021E230ED42E053E40E94B4324CE050E00C -:101780000E94E30F3FEF87EE93E03150804090409E -:10179000E1F700C0000080917301E5EBF1E0DE01AC -:1017A000A357BF4F9F2D01900D929A95E1F7E091BD -:1017B0007101F0917201E00FF11FEE0FFF1F2DE894 -:1017C00030E02C0F3D1FE20FF31F60817181680F25 -:1017D000711D882777FD8095982F0E94003220E0A8 -:1017E00030E040E451E40E94653120E030E040E820 -:1017F00050E40E94FD309B01AC0160E070E080E0AD -:1018000090E40E94173321E230ED42E053E40E945D -:10181000B4320E94130D8FEF9CE70197F1F700C0DF -:1018200000000F5F1F4F0830110509F069CFBEC0DF -:10183000F801228190917301222309F45DC026E40E -:10184000E5EBF1E0DE01A95BBF4F01900D922A9517 -:10185000E1F7E0917101F0917201E80FF11DEE0FD7 -:10186000FF1F27E430E02C0F3D1FE20FF31F6081C4 -:101870007181690F711D882777FD8095982F0E94CF -:10188000003220E030E040E451E40E9465316B0119 -:101890007C01F801818165E070E0681B710988278F -:1018A00077FD8095982F0E9400329B01AC01C70103 -:1018B000B6010E94FD309B01AC0160E070E080E069 -:1018C00090E40E94173321E230ED42E053E40E949D -:1018D000B4324FE050E0C454DD4F0FB6F894DEBF91 -:1018E0000FBECDBFDF91CF911F910F91FF90EF9071 -:1018F000DF90CF900C94E30F26E4E5EBF1E0DE01FE -:10190000119601900D922A95E1F7E0917101F09105 -:101910007201E80FF11DEE0FFF1F21E030E02C0FE8 -:101920003D1FE20FF31F60817181690F711D8827D0 -:1019300077FD8095982F0E94003220E030E040E44F -:1019400051E40E9465316B017C01F801818165E001 -:1019500070E0681B7109882777FD8095982F0E9499 -:1019600000329B01AC01C701B6010E94FD309B0112 -:10197000AC0160E070E080E090E40E94173321E267 -:1019800030ED42E053E40E94B432C454DD4F0FB650 -:10199000F894DEBF0FBECDBFDF91CF911F910F91A5 -:1019A000FF90EF90DF90CF900C94130DC454DD4F57 -:1019B0000FB6F894DEBF0FBECDBFDF91CF911F9160 -:1019C0000F91FF90EF90DF90CF90089510928702D3 -:1019D00010928602809171008D7F809371008091BA -:1019E00090008F77809390001092480210924702E7 -:1019F0001092800210928102109282021092830251 -:101A000010927F0210927E02EEE5F2E0AEE4B2E0C8 -:101A100011921192119211921D921D9282E0EE3755 -:101A2000F807B1F708956F927F928F929F92AF92CD -:101A3000BF92CF92DF92EF92FF920F931F93CF93BB -:101A4000DF936B017C010EE712E04CE5A42E42E02F -:101A5000B42EC7E0D0E0A7019601F80192918291DF -:101A6000729162918F010E946131882349F0219720 -:101A7000F2E0AF1AB108CF3F8FEFD80761F734C05B -:101A8000F8011082118212821382F50111821082F4 -:101A9000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01AA -:101AA000AA0FBB1FA25BBD4FCE011AC00196448195 -:101AB0005581668177814083518362837383148269 -:101AC00015821682178212962D913C9113971196CA -:101AD0003C932E9313961C921E9212973496129654 -:101AE0008730910519F7C3CF8091860290918702C4 -:101AF000019797FD05C0909387028093860204C0EA -:101B00001092870210928602E0918602F09187027D -:101B10003097C9F4809171008D7F8093710080911E -:101B200090008F7780939000109280021092810233 -:101B3000109282021092830210927F0210927E0213 -:101B40001092470285C03197DF01AA0FBB1FAA0F71 -:101B5000BB1FA25ABD4FCD90DD90ED90FC90EE0FD3 -:101B6000FF1FE25BFD4FC081D181609080027090C9 -:101B700081028090820290908302A7019601662DD7 -:101B8000772D882D992D0E94613187FF25C0262D44 -:101B9000372D482D592DC701B6010E94FC3020E099 -:101BA00030E04AEF54E40E9465315B018C012A2D3C -:101BB0003B2D402F512F662D772D882D992D0E947A -:101BC000FD303B014C01A7019601772D992D0E9414 -:101BD0006131181664F72EC0A7019601662D772D86 -:101BE000882D992D0E94B032181634F5A701960160 -:101BF000662D772D882D992D0E94FC3020E030E055 -:101C00004AEF54E40E9465315B018C012A2D3B2D83 -:101C1000402F512F662D772D882D992D0E94FC3055 -:101C20003B014C01A7019601772D992D0E94B032FE -:101C300087FFECCF10924D02C0928002D0928102B9 -:101C4000E0928202F0928302D0937F02C0937E02E0 -:101C5000DF91CF911F910F91FF90EF90DF90CF9088 -:101C6000BF90AF909F908F907F906F9008953E9A15 -:101C7000E1E7F0E080818D7F808382E080939000B7 -:101C80008AE18093910008951F920F920FB60F92F0 -:101C90001124CF92DF92EF92FF922F933F934F93B5 -:101CA0005F936F937F938F939F93AF93BF93CF93E4 -:101CB000DF93EF93FF9380914702882309F479C063 -:101CC00020E030E0A9016091800270918102809152 -:101CD0008202909183020E94B03218160CF069C003 -:101CE00020E030E040E251E46091490270914A0204 -:101CF00080914B0290914C020E94B0321816BCF4B5 -:101D00008091840290918502019660918602709183 -:101D100087020E949C3490938502809384021092E3 -:101D2000490210924A0210924B0210924C02C0914A -:101D30008402D0918502CC0FDD1FCC0FDD1FC25A6B -:101D4000DD4F288139814A815B8160E074E284E75C -:101D50009BE40E9465310E94CD317093970060939F -:101D60009600288139814A815B8160E074E284E7D2 -:101D70009BE40E9465310E94CD3175956795709303 -:101D800099006093980020E030E040E85FE36091C4 -:101D9000490270914A0280914B0290914C020E943C -:101DA000FD306093490270934A0280934B029093F6 -:101DB0004C0280914802882309F493C0C0904302EA -:101DC000D0904402E0904502F090460220E030E0DE -:101DD000A901C701B6010E94B0321816F4F4A70198 -:101DE000960160E074E284E79BE40E9465310E9402 -:101DF000CD317093970060939600A701960160E043 -:101E000074E284E79BE40E9465310E94CD317595B0 -:101E10006795709399006093980060913D0270916E -:101E20003E026F5F7F4F70933E0260933D0280E001 -:101E300090E00E94FE3120913F023091400240919B -:101E40004102509142020E94B03287FD4AC0809107 -:101E50003C028F5F80933C029091F1038917A0F0C0 -:101E60008091F603882319F010923C020DC08091F6 -:101E700071008D7F80937100809190008F778093A7 -:101E80009000109248022DC0E091F203F091F3030C -:101E900080913C0298E0899FE00DF11D1124808122 -:101EA0009181A281B3818093430290934402A093D5 -:101EB0004502B093460220E030E040E85EE36481F2 -:101EC0007581868197810E94B43260933F0270933E -:101ED0004002809341029093420210923E0210927F -:101EE0003D02FF91EF91DF91CF91BF91AF919F9113 -:101EF0008F917F916F915F914F913F912F91FF90C3 -:101F0000EF90DF90CF900F900FBE0F901F9018951D -:101F10000F931F93CF93DF9300D0CDB7DEB78C0123 -:101F200080914702882331F04A8369830E94E60C3E -:101F300069814A8181E0809348021093F303009302 -:101F4000F2036093F1034093F6031092490210925A -:101F50004A0210924B0210924C0210923C02F8017D -:101F600040815181628173814093430250934402C6 -:101F7000609345027093460220E030E040E85EE363 -:101F800064817581868197810E94B43260933F029B -:101F900070934002809341029093420210923E025D -:101FA00010923D0280917100826080937100809157 -:101FB00090008068809390000F900F90DF91CF91F8 -:101FC0001F910F9108956F927F928F929F92AF927F -:101FD000BF92CF92DF92EF92FF920F931F93CF9316 -:101FE000DF936B017C01EA018091480281110E941C -:101FF000E60C81E08093470220E030E0A901C701B0 -:10200000B6010E94B03218160CF09AC0609080029F -:1020100070908102809082029090830220E030E0F4 -:10202000A901662D772D882D992D0E94613181118E -:1020300028C0C0928002D0928102E0928202F09287 -:102040008302D0937F02C0937E028091860290919A -:102050008702FC01EE0FFF1FEE0FFF1FE25AFD4F3C -:10206000C082D182E282F382FC01EE0FFF1FE25BAD -:10207000FD4FD183C083019690938702809386029F -:102080005FC0A7019601662D772D882D992D0E949E -:10209000613187FF25C0262D372D482D592DC701C9 -:1020A000B6010E94FC3020E030E04AEF54E40E9488 -:1020B00065315B018C012A2D3B2D402F512F662D60 -:1020C000772D882D992D0E94FD303B014C01A701F1 -:1020D0009601772D992D0E946131181664F7A9CFCA -:1020E000A7019601662D772D882D992D0E94B0327B -:1020F00018160CF09ECFA7019601662D772D882D1E -:10210000992D0E94FC3020E030E04AEF54E40E9418 -:1021100065315B018C012A2D3B2D402F512F662DFF -:10212000772D882D992D0E94FC303B014C01A70191 -:102130009601772D992D0E94B03287FFECCF79CF91 -:10214000809171008260809371008091900080681E -:1021500080939000DF91CF911F910F91FF90EF90AE -:10216000DF90CF90BF90AF909F908F907F906F90B7 -:102170000895809191020895CF93DF9300D01F922C -:10218000CDB7DEB72091FB03243021F523E029836E -:102190009B838A832093E9008FEF06C095ED9A9583 -:1021A000F1F70000882329F09091E800815095FF15 -:1021B000F5CF8091E80085FF0DC040E050E063E07E -:1021C00070E0CE0101960E94A6148091E8008E77FF -:1021D0008093E8000F900F900F90DF91CF910895BA -:1021E000CF93DF9300D01F92CDB7DEB72091FB03D2 -:1021F000243029F522E029839B838A8383E080931E -:10220000E9008FEF06C095ED9A95F1F7000088235D -:1022100029F09091E800815095FFF5CF8091E8007A -:1022200085FF0DC040E050E063E070E0CE01019614 -:102230000E94A6148091E8008E778093E8000F90AA -:102240000F900F90DF91CF9108952091FB032430E0 -:10225000F9F422E02093E9002FEF06C035ED3A951E -:10226000F1F70000222329F03091E800215035FFDA -:10227000F5CF2091E80025FF0BC040E050E065E07D -:1022800070E00E94A6148091E8008E778093E800A9 -:102290000895CF93DF93EC018091FB03843041F5E7 -:1022A00081E08093E9008FEF06C095ED9A95F1F7F4 -:1022B0000000882329F09091E800815095FFF5CF28 -:1022C0008091E80085FF14C040E050E068E070E0D5 -:1022D000CE010E94A6148091E8008E778093E800DA -:1022E00088E0FE01A9E8B2E001900D928A95E1F73D -:1022F000DF91CF910895BF92CF92DF92EF92FF923C -:102300000F931F93CF93DF937C01B62EE90100E07A -:1023100010E0C42ED12C0BC04991202F2B0D2F770C -:102320004F776FE0C7010E94DC190F5F1F4F0C153C -:102330001D0594F3DF91CF911F910F91FF90EF90C6 -:10234000DF90CF90BF90089570E06F5F7F4F6F7008 -:1023500077270C94DC190F931F93CF93C42F63300E -:10236000710509F04AC0842F807F803849F1803997 -:1023700009F043C0622F6F7770E080E090E00E9428 -:10238000003220E030E040E451E40E9465319B01DE -:10239000AC0160E070E080E090E40E9417330F77BA -:1023A00010E023E0159507952A95E1F72DEC3CEC1C -:1023B00042E053E40E94B432A8010E94E30F1DC022 -:1023C000622F6F7770E080E090E00E94003220E0A2 -:1023D00030E040E451E40E9465319B01AC0160E0D3 -:1023E00070E080E090E40E9417332DEC3CEC42E07A -:1023F00053E40E94B4320E94130DCC3F29F4CF91D4 -:102400001F910F910C94E60CCF911F910F9108959D -:102410000F931F93CF93DF93CDB7DEB727970FB6F8 -:10242000F894DEBF0FBECDBF8C0114C08A810E941C -:10243000B6199A819D839B819E839C819F83811184 -:102440001EC089818430B1F08730A1F08630A1F0C0 -:102450008530A1F0BE016F5F7F4F84E791E00E945D -:10246000231D8111E3CF84E791E00E94141D0E9497 -:102470008F190DC083E003C082E001C081E0AE018E -:102480004B5F5F4F682FC8010E94491AE3CF279620 -:102490000FB6F894DEBF0FBECDBFDF91CF911F9175 -:1024A0000F910895EF92FF920F93CF93DF9300D097 -:1024B00000D000D0CDB7DEB77B014A832B830C83DD -:1024C000842F2E834D830E94B6192E814D81811158 -:1024D0001BC082E0E816F10479F083E0E816F1040D -:1024E00021F0EA94EF2821F50BC0073F11F487E0B3 -:1024F00001C084E089830BC0273FD9F786E0FACF7B -:10250000473FB9F785E0F6CF42954F704983BE014A -:102510006F5F7F4F84E791E00E94D91C84E791E0D0 -:102520000E94F71C84E791E00E94141D0E948F19FD -:1025300026960FB6F894DEBF0FBECDBFDF91CF91C8 -:102540000F91FF90EF9008958091FA03811109C0D7 -:102550000E9495160E94F2168091E200846080939A -:10256000E20008951092FA030895089508950C94D6 -:10257000B229809192028F5F8093920262E30E945F -:102580007C34911135C0109292028091930288237D -:1025900079F18091FB03843049F58091E9008F70D7 -:1025A0009091EC0090FF02C090E801C090E0982B61 -:1025B00084E08093E9008091EB0080FF14C080915B -:1025C000EE0087FD03C00FC01092F1008091E8007B -:1025D00085FDFACF8091E80080FF05C08091E8007A -:1025E0008E778093E8009F709093E9001092930299 -:1025F000089542E061EC81E00E940B1642E061EC3C -:1026000082E00E940B1642E061EC83E00E940B1610 -:1026100042E261EC84E00E940B1642E361E885E04F -:102620000E940B1642E360E886E00C940B16809142 -:10263000FD03833009F454C030F4813071F08230EE -:1026400009F0A5C08CC08A3009F479C08B3009F438 -:102650005FC0893009F09BC020C08091FC03813AA3 -:1026600009F095C08091E800877F8093E800809111 -:10267000000490910104892B21F060E080E090E05B -:1026800003C068E089E892E070E00E944415809100 -:10269000E8008B778093E80008958091FC038132F5 -:1026A00009F075C08091000490910104892B09F014 -:1026B0006EC08091E800877F8093E80005C080911C -:1026C000FB03882309F463C08091E80082FFF7CF01 -:1026D0008091F100809391028091E8008B7753C044 -:1026E0008091FC03813A09F052C0809100049091DE -:1026F0000104892B09F04BC08091E800877F80930B -:10270000E8008091E80080FFFCCF80918A0136C00C -:102710008091FC038132D9F58091000490910104ED -:10272000892BA9F58091E800877F8093E8000E94BB -:1027300042168091FE0380938A010C948B23809132 -:10274000FC03813221F58091E800877F8093E800C7 -:102750000E9442168091FF03809388020895809121 -:10276000FC03813AA1F48091E800877F8093E80020 -:102770008091E80080FFFCCF809188028093F10077 -:102780008091E8008E778093E8000C9442160895BB -:1027900084E093E00E94181A62E572E184E093E01D -:1027A0000E946E1A68E072E184E093E00E94721A5F -:1027B00084B7877F84BF88E10FB6F8948093600068 -:1027C000109260000FBE90E080E80FB6F8948093FE -:1027D0006100909361000FBE0E949C1D0E9495169F -:1027E0000E94F2168091E20084608093E200789467 -:1027F0006BEA71E184E093E00E94141A64EA71E1EB -:1028000084E093E00E940C1A6BE771E184E093E0AE -:102810000E94101A0E94370E0E948F190E949E1D5E -:1028200080E891E00E94481D0BC00E946C298091B5 -:10283000F903882329F00E949A2981110E9490149B -:102840008091FB03853089F384E093E00E94211C92 -:102850000E94A81DF5CF292F332723303105B1F071 -:102860004CF42130310509F44DC02230310509F016 -:102870004EC007C02132310541F12232310591F1BC -:1028800046C0E0EDF0E08CE594E045C0992781304A -:10289000910569F08230910589F0892B09F037C0E4 -:1028A000E8E5F4E0E491F0E088E594E034C0EAE2A1 -:1028B000F4E0E491F0E08AE294E02DC0EEEFF3E082 -:1028C000E491F0E08EEF93E026C0643000F5E62F4F -:1028D000F0E0EE0FFF1FE550FE4F80819181E9E0AF -:1028E000F0E019C0643098F4E62FF0E0DF01AA0FA1 -:1028F000BB1FAD5FBD4F8D919C91E55FFD4FE081AA -:10290000F0E009C0E2E1F0E08CE295E004C0E0E034 -:10291000F0E080E090E0DA018D939C93CF01089580 -:1029200080E189BD82E189BD09B400FEFDCF8091BF -:10293000D8008F7D8093D8008091E00082608093E2 -:10294000E0008091E00081FDFCCF0895BF92CF921E -:10295000DF92EF92FF920F931F93CF93DF937C014F -:102960008B01EA010E946316B82E811133C02097B3 -:1029700031F028813981021B130BE20EF31EC12CAA -:10298000D12C23C08091E80085FD15C08091E8001E -:102990008E778093E800209749F0888199818C0D8B -:1029A0009D1D9983888325E0B22E14C00E94631672 -:1029B000882359F00EC0F70181917F018093F100C7 -:1029C00001501109FFEFCF1ADF0A01151105D1F6E9 -:1029D00001C0B82E8B2DDF91CF911F910F91FF90E9 -:1029E000EF90DF90CF90BF900895BF92CF92DF928B -:1029F000EF92FF920F931F93CF93DF937C018B0194 -:102A0000EA010E946316B82E811133C0209731F07D -:102A100028813981021B130BE20EF31EC12CD12C2D -:102A200023C08091E80085FD15C08091E8008B7778 -:102A30008093E800209749F0888199818C0D9D1D35 -:102A40009983888345E0B42E14C00E9463168823BE -:102A500059F00EC08091F100F70181937F01015080 -:102A60001109FFEFCF1ADF0A01151105D1F601C0D8 -:102A7000B82E8B2DDF91CF911F910F91FF90EF908A -:102A8000DF90CF90BF9008954091020450910304CD -:102A90004617570748F06115710539F44091E80071 -:102AA0004E774093E80001C0BA01FC0140E033C01A -:102AB0008091FB03882309F444C0853009F443C0A6 -:102AC0008091E80083FD41C08091E80082FD33C021 -:102AD0008091E80080FF1FC09091F3008091F20088 -:102AE000392F20E0A901482BCA0106C0419140932B -:102AF000F1006150710901966115710519F0883076 -:102B00009105A0F341E0089709F040E08091E800CA -:102B10008E778093E8006115710551F64111C8CF99 -:102B20000AC08091FB03882361F0853061F08091B9 -:102B3000E80083FD0AC08091E80082FFF2CF80E0C8 -:102B4000089582E0089583E0089581E0089540911A -:102B50000204509103044617570748F061157105A8 -:102B600039F44091E8004E774093E80001C0BA0183 -:102B7000FC0140E034C08091FB03882309F445C088 -:102B8000853009F444C08091E80083FD42C0809103 -:102B9000E80082FD34C08091E80080FF20C0909161 -:102BA000F3008091F200392F20E0A901482BCA01DF -:102BB00007C044914093F10031966150710901962C -:102BC0006115710519F08830910598F341E0089777 -:102BD00009F040E08091E8008E778093E80061156D -:102BE000710549F64111C7CF0AC08091FB038823C4 -:102BF00061F0853061F08091E80083FD0AC080912A -:102C0000E80082FFF2CF80E0089582E0089583E03B -:102C1000089581E00895982F2CC09093E9009817AB -:102C200039F07091EC002091ED005091F00003C05C -:102C3000242F762F50E021FD02C09F5F1AC03091F3 -:102C4000EB003E7F3093EB003091ED003D7F309301 -:102C5000ED003091EB0031603093EB007093EC00AD -:102C60002093ED005093F0002091EE0027FDE5CF7A -:102C700007C0973090F28F708093E90081E008954B -:102C800080E008958091FC0387FD05C08091E800F5 -:102C900080FF0EC012C08091E80082FD05C08091C7 -:102CA000FB038111F8CF08958091E8008B7708C06D -:102CB0008091FB038111EACF08958091E8008E771F -:102CC0008093E80008958091E4009091E50045E646 -:102CD0002091EC0020FD1FC023C02091FB03222384 -:102CE00091F0253091F02091EB0025FD10C020914E -:102CF000E4003091E5002817390751F34150C9012C -:102D000039F784E0089582E0089583E0089581E032 -:102D1000089580E008952091E80020FFDECFF9CFEC -:102D20002091E80022FFD9CFF4CF0E9403170E9420 -:102D30000B17E0EEF0E0808181608083E8EDF0E049 -:102D400080818F77808319BCA7EDB0E08C918E7F56 -:102D50008C9380818F7E80831092FA0308950F9365 -:102D60001F93CF93DF930E9403170E940B17C8EDA8 -:102D7000D0E088818F778883888180688883888184 -:102D80008F7D888319BC1092FB031092F703109279 -:102D9000F9031092F80300EE10E0F80180818B7FB8 -:102DA000808388818160888342E060E080E00E94C7 -:102DB0000B16E1EEF0E080818E7F8083E2EEF0E0A2 -:102DC000808181608083808188608083F801808138 -:102DD0008E7F8083888180618883DF91CF911F916E -:102DE0000F910895E8EDF0E080818F7E8083E7ED1C -:102DF000F0E080818160808384E082BF81E0809305 -:102E0000FA030C94AF16E8EDF0E080818E7F8083AA -:102E10001092E20008951092DA001092E1000895F5 -:102E20001F920F920FB60F9211242F933F934F933F -:102E30005F936F937F938F939F93AF93BF93EF9322 -:102E4000FF938091E10082FF0BC08091E20082FF3E -:102E500007C08091E1008B7F8093E1000E94B9124E -:102E60008091DA0080FF1FC08091D80080FF1BC0D6 -:102E70008091DA008E7F8093DA008091D90080FF04 -:102E80000DC080E189BD82E189BD09B400FEFDCF9E -:102E900081E08093FB030E94A41205C019BC10922C -:102EA000FB030E94B2128091E10080FF19C0809163 -:102EB000E20080FF15C08091E2008E7F8093E200E7 -:102EC0008091E20080618093E2008091D80080626E -:102ED0008093D80019BC85E08093FB030E94B61252 -:102EE0008091E10084FF30C08091E20084FF2CC01B -:102EF00080E189BD82E189BD09B400FEFDCF8091EA -:102F0000D8008F7D8093D8008091E1008F7E8093E0 -:102F1000E1008091E2008F7E8093E2008091E200E8 -:102F200081608093E2008091F703882311F084E0B0 -:102F300007C08091E30087FF02C083E001C081E009 -:102F40008093FB030E94B7128091E10083FF29C0A8 -:102F50008091E20083FF25C08091E100877F80930C -:102F6000E10082E08093FB031092F7038091E1007F -:102F70008E7F8093E1008091E2008E7F8093E2005B -:102F80008091E20080618093E20042E060E080E0B6 -:102F90000E940B168091F00088608093F0000E94E0 -:102FA000B512FF91EF91BF91AF919F918F917F915A -:102FB0006F915F914F913F912F910F900FBE0F90A6 -:102FC0001F9018951F920F920FB60F9211242F93F6 -:102FD0003F934F935F936F937F938F939F93AF93A1 -:102FE000BF93CF93EF93FF938091E9008F709091FF -:102FF000EC0090FF02C090E801C090E0C92FC82B00 -:103000001092E9008091F000877F8093F00078941F -:103010000E9426181092E9008091F0008860809349 -:10302000F000CF70C093E900FF91EF91CF91BF9175 -:10303000AF919F918F917F916F915F914F913F9150 -:103040002F910F900FBE0F901F9018951F93CF9345 -:10305000DF93CDB7DEB7AC970FB6F894DEBF0FBEE7 -:10306000CDBFECEFF3E08091F100819324E0E430F8 -:10307000F207C9F70E9417138091E80083FF37C158 -:103080008091FC039091FD03953009F488C038F4D9 -:103090009130B1F170F0933009F029C131C098300E -:1030A00009F4F8C0993009F404C1963009F01FC141 -:1030B0009DC0803821F0823809F019C108C0809184 -:1030C000F8039091F903992389F082600FC08091F1 -:1030D0000004909101048F7099278093E9008091FA -:1030E000EB0085FB882780F91092E9009091E800B9 -:1030F000977F9093E8008093F1001092F100D5C083 -:10310000882319F0823009F0F2C08F7121F08230EB -:1031100009F0EDC00BC08091FE03813009F0E7C0DB -:10312000933009F080E08093F9032FC08091FE0373 -:1031300081112BC080910004909101048F70992718 -:10314000009709F4D4C08093E9002091EB0020FFA0 -:103150001CC02091FD03233021F48091EB0080629C -:1031600012C09091EB0090619093EB0021E030E071 -:1031700001C0220F8A95EAF72093EA001092EA0034 -:103180008091EB0088608093EB001092E9008091C1 -:10319000E800877F8093E8000E944216A8C0811152 -:1031A000A6C08091FE039091FF038F779927182F77 -:1031B0009091E3009078982B9093E3008091E80041 -:1031C000877F8093E8000E9442168091E80080FF8C -:1031D000FCCF8091E30080688093E300112311F01D -:1031E00083E001C082E08093FB0381C0805882307D -:1031F00008F07DC08091FE039091FF038C3D23E099 -:10320000920779F583E08A838AE289834FB7F8943D -:10321000DE01139620E03EE051E2E32FF0E0509310 -:103220005700E49120FF03C0E295EF703F5FEF701D -:103230008E2F90E0EA3010F0C79601C0C0968D93B3 -:103240009D932F5F243149F74FBF8091E800877F1E -:103250008093E8006AE270E0CE0101960E94441576 -:1032600013C0AE01455D5F4F609100040E942B14B6 -:103270000097E9F12091E800277F2093E800BC0146 -:103280008BA59CA50E94A7158091E8008B77809361 -:10329000E8002DC0803859F58091E800877F809341 -:1032A000E8008091F7038093F1008091E8008E7729 -:1032B00071CF81111CC09091FE039230C0F48091B7 -:1032C000E800877F8093E8009093F7030E944216FE -:1032D0008091F703811104C08091E30087FF02C051 -:1032E00084E001C081E08093FB030E94F912809189 -:1032F000E80083FF0AC08091E800877F8093E800A0 -:103300008091EB0080628093EB00AC960FB6F8944E -:10331000DEBF0FBECDBFDF91CF911F910895CF9338 -:103320008091FB038823B1F08091E9008F70909128 -:10333000EC0090FF02C090E801C090E0C92FC82BBC -:103340001092E9008091E80083FD0E942618CF705A -:10335000C093E900CF910895881F8827881F08959A -:1033600091E0883F08F490E0892F0895982F907F8E -:10337000903B99F038F4903981F0903A71F09038A0 -:10338000C9F40BC0903DA1F018F4903C99F410C022 -:10339000903E19F0903F71F402C083E00895E82F49 -:1033A000E15FEF3038F4F0E0E15FFD4F8081089598 -:1033B00082E0089580E008950F932F774F776F7024 -:1033C000606BDC01ED91FC91022F242F462F63E00E -:1033D00070E009950F9108950F932F774F776F70D5 -:1033E0006069DC01ED91FC91022F242F462F63E0F0 -:1033F00070E009950F9108950F932F774F776F70B5 -:103400006068DC01ED91FC91022F242F462F63E0D0 -:1034100070E009950F910895FC017383628308950C -:10342000FC01738F628F0895FC01758F648F08957E -:10343000CF93DF93EC011DA21FA21EA2BC01685D09 -:103440007F4F40EC88519F4F0E94551C1B821A826F -:103450001D821C821F821E82198618861B861A8670 -:103460001D861C861F861E86198A188A1B8A1A8A40 -:103470001D8A1C8A1F8A1E8A198E188E1B8E1A8E10 -:103480001D8E1C8E1F8E1E8E19A218A2DF91CF9149 -:103490000895CF92DF92FF920F931F93CF93DF9304 -:1034A0001F92CDB7DEB7F62E6A018C0108511F4F6F -:1034B00008C0F60161916F01C80149830E945C1C3C -:1034C00049818C2D841B8F15A0F30F90DF91CF9134 -:1034D0001F910F91FF90DF90CF900895FC017183B1 -:1034E00060830895FC0171A360A30895AF92BF9219 -:1034F000CF92DF92EF92FF920F931F93CF93DF93C0 -:1035000000D01F92CDB7DEB77C016B01142FB22E15 -:10351000A02EDC0195968C9195978430F1F45A9603 -:10352000ED91FC915B97309709F4D8C0CB010197DE -:1035300063E070E00E948834DB01AA0FBB1FA60F76 -:10354000B71F49832A830B834C2D4A1B9E012F5F93 -:103550003F4FBD01C7010995B1C06230710509F443 -:1035600053C06330710529F06130710509F09CC0CA -:1035700083C0842F807F803A01F130F48038B9F025 -:10358000803909F0ABC00DC0803EE9F0803F09F101 -:10359000803B09F0A3C0D7011296ED91FC911397DF -:1035A00023C0D7011496ED91FC9115971DC0D7014A -:1035B0001696ED91FC91179717C0D7011896ED91CB -:1035C000FC91199711C0D7011A96ED91FC911B97A8 -:1035D0000BC0423F09F082C0D7011C96ED91FC91CF -:1035E0001D97309731F47AC0309709F477C0123FB5 -:1035F00021F42A2D4B2D62EF04C0612F6F702A2D0C -:103600004B2DC70109955AC0842F807F803D59F00A -:10361000803F79F0803C09F061C0D7011E96ED91A2 -:10362000FC911F9719C0D7015096ED91FC915197CD -:1036300013C0433F31F4D7015296ED91FC9153975B -:1036400008C0413F09F04AC0D7015496ED91FC9162 -:103650005597309741F442C0309709F43FC0133F6B -:1036600011F0113F19F44B2D612F03C0612F6F70C2 -:103670004B2DC701099522C0842F0E94B0198823C1 -:1036800031F0D7015696ED91FC91579707C0163F40 -:1036900029F5D7015896ED91FC9159973097F1F0A3 -:1036A000612FC70109950AC064307105A8F416C0DE -:1036B0000A2D2B2D412FB601C7010995D7015E9622 -:1036C000ED91FC915F97309789F00A2D2B2D412FBA -:1036D000B601C70109950AC0C12CD12CD7015C964F -:1036E000ED91FC915D97309719F7E8CF0F900F900F -:1036F0000F90DF91CF911F910F91FF90EF90DF908E -:10370000CF90BF90AF900895EF92FF920F931F93C9 -:10371000CF93DF93EC01162F862F0E94B0198823D8 -:1037200069F0FDA081E08DA300E020E0412F61E081 -:1037300070E0CE010E94761AFDA27CC0812F0E940B -:10374000AC194DA1882309F440C0443029F01AA3D4 -:1037500021E030E03FA32EA3812F0E94B6198130D3 -:1037600031F070F0823051F0833059F507C08DA3ED -:1037700000E020E0412F61E070E01EC08DA35AC040 -:10378000103F19F0173FE9F404C084E08DA31AA399 -:103790003FC02EA13FA1C90163E070E00E948834C0 -:1037A0008C0F9D1FFC0112A3B9016F5F7F4F7FA398 -:1037B0006EA30CA12BA14AA1CE010E94761A1DA2D4 -:1037C00039C01DA21FA21EA235C0442399F12EA10B -:1037D0003FA1C90163E070E00E9488347C01FE01D2 -:1037E000E80FF91F12A3B9016F5F7F4F7FA36EA38C -:1037F0008130910591F082E0E816F104D9F40CA132 -:103800002BA14AA1CE010E94761A8DA1843091F09D -:1038100081E090E09FA38EA30DC0423059F400E0F8 -:103820002BA14AA1CE010E94761A8DA1843011F0FD -:10383000FFA2EEA2DF91CF911F910F91FF90EF9029 -:103840000895CF92DF92EF92FF920F931F93CF9341 -:10385000DF93EC01E8A1F9A1309709F009958E01F9 -:1038600008511F4FC8010E948E1CE12CF12CC82E5C -:10387000D12C0FC060E0C8010E94A21C682FCE01AD -:103880000E94841B61E0C8010E94B31C8FEFE81AFC -:10389000F80AEC14FD0470F3DF91CF911F910F91A2 -:1038A000FF90EF90DF90CF900895FC0142837483E6 -:1038B00063831182108208950F931F93CF93DF9338 -:1038C000EC01062F0E94D41C182F298130E0C90179 -:1038D00001966A8170E00E949C34488150E0841710 -:1038E000950729F4812F0E94D71C80E012C0EB813C -:1038F000FC81E20FF31F00832981822F90E0019663 -:103900006A8170E00E949C348983812F0E94D71CB9 -:1039100081E0DF91CF911F910F910895CF93DF93B5 -:10392000EC010E94D41C29819881291710F0C22F24 -:1039300002C0CA81C20FC91B0E94D71C8C2FDF9105 -:10394000CF910895FC012081862F90E0820F911D78 -:10395000628170E00E949C340380F481E02DE80FC6 -:10396000F91F808108950F931F93CF93DF931F92C8 -:10397000CDB7DEB78C0169830E94D41C482FF801B3 -:1039800080816981262F30E0280F311D6281C901B5 -:1039900070E00E949C348083842F0F90DF91CF9140 -:1039A0001F910F910C94D71C8FB7F89408958FBF77 -:1039B0000895FC01CB012091FB032430B1F4218157 -:1039C0002F702093E90040E050E064E070E00E9436 -:1039D000A61481110BC09091E80095FD07C090914D -:1039E000E8009E779093E800089582E00895209182 -:1039F000FB032430A9F4FC0181818F708093E900DE -:103A00003091F3002091F200932F80E0822B892BDC -:103A100049F08091E8008E778093E8000C9463165B -:103A200082E0089580E008952091FB03243051F452 -:103A3000FC0121812F702093E9002091E80020FDF6 -:103A40000C94F71C0895FC01CB012091FB0324305A -:103A500011F080E0089526812F702093E9002091D5 -:103A6000E80022FFF6CF2091E80025FFF2CF40E0EA -:103A700050E064E070E00E94F5148091E80085FD5C -:103A800005C08091E8008B778093E80081E008957D -:103A900090939502809394020895E0919402F0919E -:103AA0009502309721F00190F081E02D099480E09B -:103AB0000895E0919402F0919502309721F00280F0 -:103AC000F381E02D09940895E0919402F09195021C -:103AD000309721F00480F581E02D0994089520911C -:103AE0009602309197028217930771F09093970294 -:103AF00080939602E0919402F0919502309721F024 -:103B00000680F781E02D0994089520919802309164 -:103B100099028217930771F090939902809398020B -:103B2000E0919402F0919502309721F00084F185A4 -:103B3000E02D0994089508950C949B1D0E94E62998 -:103B40000E94F3060E94BA2A0C9465300C942C064D -:103B50005F926F927F928F929F92AF92BF92CF921D -:103B6000DF92EF92FF920F931F93CF93DF93CDB726 -:103B7000DEB72A970FB6F894DEBF0FBECDBF0E9406 -:103B8000E9079AE9C92E92E0D92E00E010E0AA24B4 -:103B9000A394B12C502E802F0E9439093C01F601CC -:103BA000E190F1906F01E826F926E114F10431F477 -:103BB0000F5F1F4F0530110569F73AC08091F10280 -:103BC00081FD0E94420920E030E04501022E02C042 -:103BD000880C991C0A94E2F7C4018E219F21892B3D -:103BE00009F12E835F826820792081E0672809F43B -:103BF00080E088870E94EF298160782F9A878987E3 -:103C00004E815F8168858A850E94611EF801EE0FF2 -:103C1000FF1FE656FD4F808191818825992591836C -:103C2000808316C02F5F3F4F2C30310571F6C0CF17 -:103C30008FEF89838A831B820E94EF298160782F0E -:103C40009D838C8349815A816B818D810E94611E85 -:103C50000E94A72D1091A4020E944D1D1817D9F0A3 -:103C60000E944D1D8093A4022A960FB6F894DEBFE1 -:103C70000FBECDBFDF91CF911F910F91FF90EF90BD -:103C8000DF90CF90BF90AF909F908F907F906F907C -:103C90005F900C94A61D2A960FB6F894DEBF0FBE57 -:103CA000CDBFDF91CF911F910F91FF90EF90DF90EB -:103CB000CF90BF90AF909F908F907F906F905F90CC -:103CC0000895CF93DF93CDB7DEB72B970FB6F89457 -:103CD000DEBF0FBECDBF4F83588769877A878B873A -:103CE000DE01119686E0FD0111928A95E9F785E0E3 -:103CF000FE01379601900D928A95E1F749815A812C -:103D00006B817C818D819E810E944A262B960FB605 -:103D1000F894DEBF0FBECDBFDF91CF910895089517 -:103D2000CF93C82F882309F4C1C0823859F40E9468 -:103D30004D1D81FDBBC089E30E94B1280E943D2931 -:103D400089E30CC0833879F40E944D1D80FDAEC01C -:103D500083E50E94B1280E943D2983E50E94D32873 -:103D6000CF910C943D29843859F40E944D1D82FD59 -:103D70009DC087E40E94B1280E943D2987E4EECFD0 -:103D80008450813A48F48C2F0E94C72F81118EC035 -:103D90008C2F0E94B128E4CF8C2F805E883050F4A5 -:103DA000C77081E090E001C0880FCA95EAF70E94D1 -:103DB000F428D6CF8C2F855A833078F4C53A29F071 -:103DC000C63A31F482E890E005C081E890E002C094 -:103DD00083E890E0CF910C946F1D8C2F885A83312B -:103DE00008F064C0C83A39F1C93A41F1CA3A49F118 -:103DF000CB3A51F1CC3A59F1CD3A61F1C03B69F17E -:103E0000CE3A71F1CF3A79F1C13B81F1C23B89F1F0 -:103E1000C33B91F1C43B99F1C53BA1F1C63BA9F16C -:103E2000C73BB1F1C83BB9F1C93BC1F1CA3BC9F5C8 -:103E30008AE292E038C082EE90E035C089EE90E0F0 -:103E400032C08AEE90E02FC085EB90E02CC086EB6C -:103E500090E029C087EB90E026C08CEC90E023C076 -:103E60008DEC90E020C083E891E01DC08AE891E0ED -:103E70001AC082E991E017C084E991E014C081E2A0 -:103E800092E011C083E292E00EC084E292E00BC0A7 -:103E900085E292E008C086E292E005C087E292E007 -:103EA00002C080E090E0CF910C94851DCF910895E1 -:103EB000882309F44DC0823859F40E944D1D81FFBA -:103EC00047C089E30E94B1280E943D2989E30CC0C4 -:103ED000833871F40E944D1D80FF3AC083E50E9433 -:103EE000B1280E943D2983E50E94D3280C943D29E6 -:103EF000843859F40E944D1D82FF2AC087E40E9435 -:103F0000B1280E943D2987E4EFCF982F9450913A31 -:103F100008F4EACF982F905E983058F4282F277035 -:103F200081E090E001C0880F2A95EAF70E94FA2804 -:103F3000DDCF982F955A933020F480E090E00C94D8 -:103F40006F1D885A833120F480E090E00C94851D29 -:103F50000895882321F00E94F4280C943D290895A7 -:103F6000882321F00E94FA280C943D290895BF92DD -:103F7000CF92DF92EF92FF920F931F93CF93DF9335 -:103F8000CDB7DEB727970FB6F894DEBF0FBECDBF13 -:103F90008C0185E0F801DE01119601900D928A9561 -:103FA000E1F7F801D080E180F280558152955F7091 -:103FB00083819481892B41F0FFEFEF1208C081E0EB -:103FC00090E0DF1631F003C081E090E002C080E0B5 -:103FD00090E080FD7CC3C8015E830E948F1ED98261 -:103FE000EA8289819A810E946E28B92E8F830E946D -:103FF0006D280E9495275E816F81FF2021F00E942D -:1040000011296F815E812B2D22952F7030E0253094 -:10401000310509F4E6C06CF4243031050CF0A2C07F -:104020004B2D407F8B2D8F70223031050CF045C019 -:1040300017C02C3031054CF42A3031050CF0E7C1A3 -:104040002830310509F043C3E5C02D30310509F4AE -:10405000BAC20CF4A2C22F30310509F038C323C311 -:10406000182F411101C002C01295107FFF2059F096 -:10407000112309F46BC2812F6F830E9404290E94CF -:104080003D296F8163C2862F0E94581F112309F4B6 -:104090001EC3812F0E940A2927960FB6F894DEBF0F -:1040A0000FBECDBFDF91CF911F910F91FF90EF9089 -:1040B000DF90CF90BF900C943D29403211F0829553 -:1040C000807F662319F0613071F523C0FF20B1F0C5 -:1040D000511101C032C0513081F527960FB6F894C6 -:1040E000DEBF0FBECDBFDF91CF911F910F91FF902B -:1040F000EF90DF90CF90BF900C942429511101C014 -:1041000003C0513009F4E3C28E830E9427298E81B7 -:104110009AC1FF2021F0563008F0D9C20EC05530A8 -:1041200008F0D5C290C1FF20C9F0552331F0F80145 -:10413000958190FF0BC29F70958327960FB6F894D8 -:10414000DEBF0FBECDBFDF91CF911F910F91FF90CA -:10415000EF90DF90CF90BF900C94A91F552309F4E6 -:1041600072C109C22B2D26952695237030E02115AA -:10417000310529F02130310509F0A9C219C0FF200D -:1041800021F0862F9B2D937002C080E090E027964F -:104190000FB6F894DEBF0FBECDBFDF91CF911F9158 -:1041A0000F91FF90EF90DF90CF90BF900C946F1D18 -:1041B000FF2021F0862F9B2D937002C080E090E0BD -:1041C00027960FB6F894DEBF0FBECDBFDF91CF911B -:1041D0001F910F91FF90EF90DF90CF90BF900C94C4 -:1041E000851D862FFF2019F00E94AD2C02C00E9471 -:1041F000152D27960FB6F894DEBF0FBECDBFDF9109 -:10420000CF911F910F91FF90EF90DF90CF90BF90D3 -:104210000C949C2D8B2D837009F079C0F11057C23E -:10422000262F229526952770220F220F862F8F701A -:10423000C82ED12CE12CF12C022E04C0CC0CDD1C9C -:10424000EE1CFF1C0A94D2F764FF10C06FE070E010 -:1042500080E090E004C0660F771F881F991F2A95A1 -:10426000D2F7609570958095909503C060E070E0FE -:10427000CB012B2D269526952370422F50E04230FE -:104280005105D9F04330510569F16C297D298E29FA -:104290009F294130510551F127960FB6F894DEBFA2 -:1042A0000FBECDBFDF91CF911F910F91FF90EF9087 -:1042B000DF90CF90BF900C94AA276C297D298E297E -:1042C0009F2927960FB6F894DEBF0FBECDBFDF91B2 -:1042D000CF911F910F91FF90EF90DF90CF90BF9003 -:1042E0000C94BC270E94AA27C701B60127960FB6D7 -:1042F000F894DEBF0FBECDBFDF91CF911F910F911C -:10430000FF90EF90DF90CF90BF900C949827FF2004 -:1043100019F08B2D817001C08695882309F4D7C1CF -:10432000262F229526952770220F220F862F8F7019 -:10433000C82ED12CE12CF12C022E04C0CC0CDD1C9B -:10434000EE1CFF1C0A94D2F764FF10C06FE070E00F -:1043500080E090E004C0660F771F881F991F2A95A0 -:10436000D2F7609570958095909503C060E070E0FD -:10437000CB012B2D269526952370422F50E04230FD -:104380005105D9F04330510569F16C297D298E29F9 -:104390009F294130510551F127960FB6F894DEBFA1 -:1043A0000FBECDBFDF91CF911F910F91FF90EF9086 -:1043B000DF90CF90BF900C9449286C297D298E29DD -:1043C0009F2927960FB6F894DEBF0FBECDBFDF91B1 -:1043D000CF911F910F91FF90EF90DF90CF90BF9002 -:1043E0000C945B280E944928C701B60127960FB696 -:1043F000F894DEBF0FBECDBFDF91CF911F910F911B -:10440000FF90EF90DF90CF90BF900C943728603FE3 -:1044100059F120F4603E08F494C008C0623F09F4EA -:1044200067C0F0F1633F09F08CC065C0162F1F70A4 -:104430008B2D8F71FF2021F00E94E227812F7DCEEE -:104440000E94FD27812F27960FB6F894DEBF0FBE7E -:10445000CDBFDF91CF911F910F91FF90EF90DF9033 -:10446000CF90BF900C94B01FFF20B1F0553008F0F2 -:104470002EC18B2D8F7127960FB6F894DEBF0FBE1D -:10448000CDBFDF91CF911F910F91FF90EF90DF9003 -:10449000CF90BF900C941C28563008F018C1E9CF7B -:1044A000FF2099F08B2D8F7127960FB6F894DEBF01 -:1044B0000FBECDBFDF91CF911F910F91FF90EF9075 -:1044C000DF90CF90BF900C94E2278B2D8F712796B1 -:1044D0000FB6F894DEBF0FBECDBFDF91CF911F9115 -:1044E0000F91FF90EF90DF90CF90BF900C94FD273D -:1044F000F110EBCFD7CFFF2099F08B2D8F7127963E -:104500000FB6F894DEBF0FBECDBFDF91CF911F91E4 -:104510000F91FF90EF90DF90CF90BF900C94D32736 -:1045200027960FB6F894DEBF0FBECDBFDF91CF91B7 -:104530001F910F91FF90EF90DF90CF90BF900C9460 -:10454000CE27FF20A9F0552309F4ACCF862F27965C -:104550000FB6F894DEBF0FBECDBFDF91CF911F9194 -:104560000F91FF90EF90DF90CF90BF900C94901E32 -:10457000552309F4AACF862F27960FB6F894DEBFED -:104580000FBECDBFDF91CF911F910F91FF90EF90A4 -:10459000DF90CF90BF900C94581F4B2D4F70C801E7 -:1045A0000E94560327960FB6F894DEBF0FBECDBF0C -:1045B000DF91CF911F910F91FF90EF90DF90CF90FF -:1045C000BF900C940027F11082C09B2D9F70492F43 -:1045D00050E04230510599F144F44115510569F01C -:1045E0004130510509F073C019C043305105C1F184 -:1045F0004430510509F06BC044C027960FB6F894BB -:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 -:10461000EF90DF90CF90BF900C94763027960FB636 -:10462000F894DEBF0FBECDBFDF91CF911F910F91E8 -:10463000FF90EF90DF90CF90BF900C948D30279635 -:104640000FB6F894DEBF0FBECDBFDF91CF911F91A3 -:104650000F91FF90EF90DF90CF90BF900C94A93016 -:1046600027960FB6F894DEBF0FBECDBFDF91CF9176 -:104670001F910F91FF90EF90DF90CF90BF900C941F -:10468000BC30862F27960FB6F894DEBF0FBECDBF85 -:10469000DF91CF911F910F91FF90EF90DF90CF901E -:1046A000BF900C94E0304B2D4F70C80127960FB689 -:1046B000F894DEBF0FBECDBFDF91CF911F910F9158 -:1046C000FF90EF90DF90CF90BF900C944309279616 -:1046D0000FB6F894DEBF0FBECDBFDF91CF911F9113 -:1046E0000F91FF90EF90DF90CF90BF9008950E94C0 -:1046F00011290E9421290E94E6280E943D290E943A -:10470000482E0E949C2D80E090E00E946F1D80E06A -:1047100090E00C94851D0E9401290C9477230E943F -:104720006E28292F22952F7030E02C3031054CF463 -:104730002A3031056CF4225031092230310590F4D1 -:1047400007C02C30310551F02F30310559F406C027 -:10475000803E10F0803F31F481E0089593FB88277C -:1047600080F9089580E00895CF93DF9300D000D0C2 -:104770001F92CDB7DEB70F900F900F900F900F9054 -:10478000DF91CF910895CF93DF9300D000D000D078 -:10479000CDB7DEB726960FB6F894DEBF0FBECDBFFD -:1047A000DF91CF9108951F93CF93DF93C091DB02E8 -:1047B00016E012C0D0E01C9FF0011D9FF00D1124E7 -:1047C000E555FD4F408151816281738184819581DE -:1047D0000E94C3232196C7708091DC02C813EACFE0 -:1047E000DF91CF911F9108954091A5025091A602AB -:1047F0006091A7027091A8028091A9029091AA02EB -:104800000C94C3230F931F93CF93DF938091AA023D -:1048100082958F7009F069C08091A702882309F4FE -:1048200064C0A091DB02D091DC02B091A502C091DE -:10483000A6028091A8029091A90221E030E0BF3F3A -:1048400011F020E030E0122FBC016095709506E079 -:104850004AC0009721F0CF3F29F4212F05C021E065 -:1048600030E002C020E030E020FD3BC04A2F50E0A5 -:10487000049FF001059FF00D1124E555FD4F2181A6 -:10488000C2132FC02081B2132CC02281211129C054 -:10489000238134812817390718F0281B390B02C0EF -:1048A000260F371F283C3105E0F48091AA028F7053 -:1048B00080618093AA0286E0849FF001859FF00DBD -:1048C0001124E055FD4F80818F708061808385EADF -:1048D00092E00E94B71FDF91CF911F910F910C942E -:1048E000D323AF5FA770AD13B4CFDF91CF911F91EA -:1048F0000F910895EF92FF920F931F93CF93DF9341 -:10490000CDB7DEB762970FB6F894DEBF0FBECDBF4E -:104910008C0185E0F801DE011D9601900D928A95CB -:10492000E1F7D8014C9111965C91119712966C9118 -:1049300012971396ED90FC9014977091A502E09158 -:10494000A6028091A8029091A902009739F0EF3F4A -:1049500041F421E030E07F3F31F003C021E030E05E -:1049600002C020E030E020FD5CC12091A70222239C -:1049700009F4F1C0E816F90628F09701281B390B55 -:10498000C90104C0809590958E0D9F1D883C9105AE -:1049900008F098C08091AA02982F907F09F064C017 -:1049A000E51314C0741312C0611110C08F708061C0 -:1049B0008093AA020E94F42385EA92E00E94B71F26 -:1049C0008091AA02D80115968C9343C1EF2839F043 -:1049D0005F3F41F481E090E04F3F31F003C081E060 -:1049E00090E002C080E090E080FD03C081E0862777 -:1049F00002C080E090E080FF2EC08091DB02209119 -:104A0000DC0236E013C090E0389FF001399FF00DD2 -:104A10001124E555FD4F7181571306C0708147136E -:104A200003C07281671317C0019687708213EBCFA2 -:104A300012C19F7059F0882309F40BC107C09F7001 -:104A400029F0F8019581907F09F403C1805E8830D8 -:104A500008F4FFC0D2C0662309F4FBC08091AA020B -:104A600081608093AA02F5C0E51308C0741306C0E4 -:104A7000611104C0D80115968C939DC04D875E8747 -:104A80008D859E856A8B0E948F236A89882309F40D -:104A9000B4C0662309F4B1C02091AA02822F829586 -:104AA0008F7090E002970CF4C6C08091A50290919F -:104AB000A60298878F831986FB86EA862C87CE010B -:104AC000079646C08091AA02982F907F59F47E2DB8 -:104AD000F98AE88A89890E94B42385EA92E00E94D3 -:104AE000B71F95C0E51311C074130FC061110DC03D -:104AF000F8018583C8010E94B71FE5EAF2E086E06D -:104B0000DF011D928A95E9F7A2C04D875E878D85EA -:104B10009E856A8B0E948F236A89882309F46DC061 -:104B2000662309F46AC02091AA02822F82958F70B1 -:104B300090E002970CF47FC08091A5029091A602AC -:104B40009A8389831B82FD82EC822E83CE0101969B -:104B50000E94B71F70C0E816F90628F09701281BBD -:104B6000390BC90104C0809590958E0D9F1D883C1E -:104B7000910508F046C0662309F43FC0E51330C034 -:104B800074132EC02091AA0220FD21C0322F32952D -:104B90003F70832F90E00097D1F0D80115962C93A9 -:104BA00015970F9741F0832F8F5F8295807F2F702D -:104BB000282B15962C93C8010E94B71F86E0F80198 -:104BC000A5EAB2E001900D928A95E1F73EC086E039 -:104BD000F801A5EAB2E001900D928A95E1F737C09D -:104BE0004D875E878D859E850E948F23811123C00E -:104BF0008091AA0281608093AA02C8010E94B71F17 -:104C000026C07E2DF98AE88A89890E94B423E5EAC4 -:104C1000F2E086E0DF011D928A95E9F70E94F42315 -:104C200018C0662351F34D875E878D859E850E944F -:104C30008F23882311F386E0F801A5EAB2E0019002 -:104C40000D928A95E1F70E9402240E94F42381E0EC -:104C500014C080E012C04D875E878D859E850E94BE -:104C60006E28292F22952F7030E0223031050CF468 -:104C7000E0CE243031050CF6E2CE62960FB6F89401 -:104C8000DEBF0FBECDBFDF91CF911F910F91FF907F -:104C9000EF9008951F93CF93DF93CDB7DEB72C9796 -:104CA0000FB6F894DEBF0FBECDBF4F83588769871C -:104CB0007A878B879C87CE0107960E947A24882367 -:104CC000D9F02F8138858A859B85892B39F03F3F24 -:104CD00019F080E090E004C02F3FD9F781E090E028 -:104CE000892B09F06DC04F81588569857A858B8540 -:104CF0009C850E94C32364C086E0FE013796DE01D6 -:104D0000119601900D928A95E1F7FF81E8854A8519 -:104D10005B854115510539F0EF3F41F481E090E0AA -:104D2000FF3F31F003C081E090E002C080E090E0FE -:104D300080FD46C02091DC0230E0C90101968770F9 -:104D400099276091DB0270E08617970709F440C04D -:104D5000F983EA835D834C8396E0929FD001939F11 -:104D6000B00D1124A555BD4FFE01319601900D9255 -:104D70009A95E1F78093DC020E94D32321C0189F0B -:104D8000C001112485559D4F0E947A24882371F11A -:104D9000E091DB021E9FF0011124E555FD4F40819B -:104DA000518162817381848195810E94C3238091A6 -:104DB000DB0290E00196877099278093DB0201C0A7 -:104DC00016E08091DB029091DC028913D8CF0EC0EF -:104DD0000E948B231092DC021092DB02E5EAF2E0E3 -:104DE00086E0DF011D928A95E9F7EACF2C960FB68F -:104DF000F894DEBF0FBECDBFDF91CF911F91089514 -:104E0000DF92EF92FF920F931F93CF93DF93EC010A -:104E1000009709F46EC0D12CEE24E394F12C8E019E -:104E20000F5F1F4FFE018491843748F4843008F0EF -:104E30004CC0813071F0823009F05BC01EC08537F4 -:104E400009F43FC080F1982F9458903708F051C072 -:104E50003FC02296F8018491982F905E983050F4CC -:104E60008770FE2D01C0FF0F8A95EAF78F2F0E94F1 -:104E7000142913C00E94901E2FC02296F80184911D -:104E8000982F905E983060F48770FE2D01C0FF0F60 -:104E90008A95EAF78F2F0E941A290E943D291CC08B -:104EA0000E94581F19C02296F801049107C08FE98B -:104EB0009FE00197F1F700C0000001500111F7CF0A -:104EC0000BC02296F801D49007C00E94901E03C028 -:104ED0008F770E94581FE8018D2D07C08150EFE9A0 -:104EE000FFE03197F1F700C00000882309F497CF65 -:104EF000F5CFDF91CF911F910F91FF90EF90DF9051 -:104F000008956093E1027093E2028093E30290932C -:104F1000E4020C9477236093DD027093DE028093A9 -:104F2000DF029093E0020C94772308950C9481277C -:104F30000F931F930091E1021091E2022091E3028E -:104F40003091E402602B712B822B932B1F910F91D8 -:104F50000C9481270F931F930091E1021091E202BC -:104F60002091E3023091E402602371238223932392 -:104F70001F910F910C9481270F931F930091E102D1 -:104F80001091E2022091E3023091E4026027712740 -:104F9000822793271F910F910C94812760E070E086 -:104FA000CB010C948B2741E050E060E070E004C03E -:104FB000440F551F661F771F8A95D2F7CB01BA01A0 -:104FC0000C948B2741E050E060E070E004C0440F97 -:104FD000551F661F771F8A95D2F78091DD02909149 -:104FE000DE02A091DF02B091E002482B592B6A2B20 -:104FF0007B2BCB01BA010C948B2741E050E060E0A1 -:1050000070E004C0440F551F661F771F8A95D2F7C2 -:1050100040955095609570958091DD029091DE02EB -:10502000A091DF02B091E002482359236A237B2339 -:10503000CB01BA010C948B2741E050E060E070E0B6 -:1050400004C0440F551F661F771F8A95D2F78091C1 -:10505000DD029091DE02A091DF02B091E0024827CC -:1050600059276A277B27CB01BA010C948B270F9312 -:105070001F930091DD021091DE022091DF0230913A -:10508000E002602B712B822B932B1F910F910C94BC -:105090008B270F931F930091DD021091DE02209168 -:1050A000DF023091E00260237123822393231F915A -:1050B0000F910C948B270F931F930091DD02109199 -:1050C000DE022091DF023091E00260277127822703 -:1050D00093271F910F910C948B270895CF92DF9205 -:1050E000EF92FF920F931F93CF93DF93EC01C09049 -:1050F000E102D090E202E090E302F090E4028091BD -:10510000DD029091DE02A091DF02B091E002C82A98 -:10511000D92AEA2AFB2A0FE110E0B701A601002EE6 -:1051200004C076956795579547950A94D2F740FF46 -:1051300008C0BE01802F0E94B3048130910509F0A0 -:1051400007C00150110948F7BE0180E00E94B30476 -:10515000DF91CF911F910F91FF90EF90DF90CF9053 -:10516000089540918B0150918C0120E030E09FEF39 -:10517000FA01E20FF31F62816817A1F09F3F19F453 -:10518000611101C0922F2F5F3F4F2630310581F70B -:1051900007C0FA01E90FF11D97FDFA958283089582 -:1051A0009F3FB9F7089540918B0150918C0120E009 -:1051B00030E0FA01E20FF31F9281981301C01282CE -:1051C0002F5F3F4F26303105A1F7089581E090E031 -:1051D000E0918B01F0918C01E80FF91F108201968C -:1051E00088309105A9F708959091E502982B909346 -:1051F000E502089580959091E50298239093E50249 -:1052000008951092E50208959091E602982B9093EC -:10521000E602089580959091E60298239093E60225 -:1052200008951092E60208959091E702982B9093CA -:10523000E702089580959091E70298239093E70202 -:1052400008951092E70208958093E802089510925D -:10525000E802089540918B0150918C0120E030E0EC -:1052600080E0FA01E20FF31F918191118F5F2F5FB0 -:105270003F4F27303105A9F70895E0918B01F09158 -:105280008C018091E5028083E0918B01F0918C018B -:1052900080819091E602892B8083E0918B01F091CF -:1052A0008C0180819091E702892B80839091E802A4 -:1052B000992361F0E0918B01F0918C018081892B21 -:1052C00080830E942A2981110E94272980918B01C5 -:1052D00090918C010C94591D8091FB03843039F11D -:1052E0001092F20220E488E190E00FB6F894A895BD -:1052F000809360000FBE2093600080E00E949B03BB -:1053000080E00E942C0683B7817F846083BF83B7CF -:10531000816083BF7894889583B78E7F83BF88E14F -:105320000FB6F89480936000109260000FBE08954D -:1053300008950895CF9380E00E949B030E949829CE -:105340000E94E9070E949929C0E08C2F0E94390928 -:10535000892B29F4CF5FC530C1F780E001C081E01F -:10536000CF9108950E948B2380E00E949B030E94AE -:1053700065300E944D1D0C942C061F920F920FB6A3 -:105380000F9211248F939F93AF93BF938091F2025A -:10539000811113C08091F3029091F402A091F50263 -:1053A000B091F6024196A11DB11D8093F302909336 -:1053B000F402A093F502B093F602BF91AF919F91D2 -:1053C0008F910F900FBE0F901F90189582E084BDB3 -:1053D00093E095BD9AEF97BD80936E0008958FB7C7 -:1053E000F8944091F3025091F4026091F5027091AB -:1053F000F6028FBFCA010895CF92DF92EF92FF921B -:105400000F931F932FB7F8944091F3025091F40239 -:105410006091F5027091F6022FBF6A017B01EE24C4 -:10542000FF248C0120E030E0C016D106E206F3062E -:1054300020F09A01281B390B05C09C01209530955E -:10544000240F351FC9011F910F91FF90EF90DF903E -:10545000CF9008951F920F920FB60F9211248F9341 -:105460009F93AF93BF938091F3029091F402A09128 -:10547000F502B091F6020196A11DB11D8093F302D1 -:105480009093F402A093F502B093F602BF91AF910E -:105490009F918F910F900FBE0F901F9018950E94B3 -:1054A0009516F8942FEF87EA91E6215080409040BE -:1054B000E1F700C0000087E090EBDC018093050479 -:1054C00090930604A0930704B09308042CE088E1AD -:1054D00090E00FB6F894A895809360000FBE2093DB -:1054E0006000FFCFCF92DF92EF92FF920F931F9356 -:1054F000CF93DF93C82ED12C01E010E08D2D0E94B8 -:1055000039097C01C0E0D0E098010C2E02C0220FC6 -:10551000331F0A94E2F72E213F21232B29F42196F1 -:10552000CC30D10589F708C06C2F7D2D80E00E941A -:105530008E04C812F4CF06C0D39485E0D812DECF13 -:1055400080E001C081E0DF91CF911F910F91FF902A -:10555000EF90DF90CF900895CF93C82F8CE20E94F8 -:10556000722A882321F08C2FCF910C94722A80E02C -:10557000CF910895CF930E94FD2B811102C00E940C -:10558000DE2BC5E608C00E94E9078FE39CE901977E -:10559000F1F700C00000C150B1F789E20E94AC2AC7 -:1055A00081110AC18AE20E94AC2A81110E94DE2B7D -:1055B00085E00E94AC2A81110E944F2A0E94082C8B -:1055C0008093F10287E00E94AC2A882399F18BE155 -:1055D0000E94AC2A882351F09091F10291FB882718 -:1055E00080F921E0822780FB91F922C08EE00E94A1 -:1055F000AC2A882351F09091F10292FB882780F920 -:1056000021E0822780FB92F913C080E10E94AC2A3E -:105610009091F102882341F093FB882780F921E0E3 -:10562000822780FB93F904C0892F809580FB90F935 -:105630009093F1028091F1020E940C2C0E941A2C8E -:105640008093020380EE0E94AC2A882341F080916F -:105650000203982F909590FB80F98093020389E3D1 -:105660000E94AC2A882359F09091020391FB88276D -:1056700080F921E0822780FB91F99093020382EE6A -:105680000E94AC2A882359F09091020392FB88274C -:1056900080F921E0822780FB92F99093020386EE45 -:1056A0000E94AC2A882359F09091020393FB88272B -:1056B00080F921E0822780FB93F99093020383EE27 -:1056C0000E94AC2A882359F09091020394FB88270A -:1056D00080F921E0822780FB94F99093020385E30F -:1056E0000E94AC2A882359F09091020395FB8827E9 -:1056F00080F921E0822780FB95F99093020381E3F2 -:105700000E94AC2A882359F09091020396FB8827C7 -:1057100080F921E0822780FB96F99093020381E1D2 -:105720000E94AC2A882359F09091020397FB8827A6 -:1057300080F921E0822780FB97F990930203809102 -:1057400002030E941E2C87E20E94AC2AC82F8EE121 -:105750000E94AC2A8111C2608FE10E94AC2A8111A3 -:10576000C46080E20E94AC2A8111C86081E20E947C -:10577000AC2A8111C06182E20E94AC2A8111C06210 -:1057800083E20E94AC2A8111C06484E20E94AC2AA8 -:10579000882311F0C06802C0CC2329F08C2F0E940E -:1057A000152C6C2F03C00E94112C682F70E080E034 -:1057B00090E0CF910C949627CF9108956DEE7EEFF7 -:1057C00080E090E00E94CC3460E082E090E00E94B3 -:1057D000BE3460E083E090E00E94BE3460E084E08C -:1057E00090E00E94BE3460E085E090E00E94BE340C -:1057F00060E086E090E00C94BE3480E090E00E948F -:10580000B83421E08D3E9E4F09F020E0822F0895AC -:1058100082E090E00C94B034682F82E090E00C9429 -:10582000BE3483E090E00C94B034682F83E090E0C5 -:105830000C94BE3484E090E00C94B034682F84E083 -:1058400090E00C94BE3486E090E00C94B034682F65 -:1058500086E090E00C94BE348091FF0280FF0BC084 -:105860006091900185E0689FB0011124759567955E -:10587000759567952AC081FF09C06091900185E008 -:10588000689FB0011124759567951FC082FF07C0FE -:105890006091900185E0689FB001112416C040918D -:1058A000F9024423C9F060918F01461788F72091CF -:1058B000900185E0289F90011124429FC001439FE1 -:1058C000900D112470E00E949C346038710540F402 -:1058D0006115710539F002C065E070E0862F08950A -:1058E0008FE7089581E008958091FF0280FF08C04E -:1058F00060918E0170E0759567957595679521C0EB -:1059000081FF06C060918E0170E07595679519C0A2 -:1059100082FF04C060918E0170E010C08091F90296 -:105920008823C1F060918D018617A0F790918E01B8 -:10593000989FC001112470E00E949C34603871056A -:1059400028F46115710521F0862F08958FE70895D9 -:1059500081E0089561E070E0F4CF803F21F40E947F -:105960002C2C819504C0813F29F40E942C2C80931B -:10597000FC020895823F21F40E942C2C819504C0E2 -:10598000833F29F40E942C2C8093FB020895893FC9 -:1059900019F40E94742C05C08A3F31F40E94742CC3 -:1059A00081958093FD0208958B3F21F40E94742C11 -:1059B000819504C08C3F29F40E94742C8093FE02D0 -:1059C0000895843F21F48091FA02816017C0853FD9 -:1059D00021F48091FA02826011C0863F21F4809107 -:1059E000FA0284600BC0873F21F48091FA0288603C -:1059F00005C0883F31F48091FA0280618093FA02F9 -:105A000008958D3F21F48091FF0281600BC08E3F8D -:105A100021F48091FF02826005C08F3F29F48091BC -:105A2000FF0284608093FF020895803F29F48091F3 -:105A3000FC0287FF6EC007C0813F41F48091FC02E9 -:105A400018160CF066C01092FC0263C09091FB0225 -:105A5000823F19F497FF5DC005C0833F31F41916EA -:105A60000CF057C01092FB0254C0893F31F4809172 -:105A7000FD0218160CF04DC006C08A3F39F4809123 -:105A8000FD0287FF46C01092FD0243C08B3F29F400 -:105A90008091FE0287FF3DC006C08C3F39F48091A3 -:105AA000FE021816B4F51092FE0233C0843F21F4B2 -:105AB0008091FA028E7F05C0853F31F48091FA0211 -:105AC0008D7F8093FA0225C0863F21F48091FA02EF -:105AD0008B7FF7CF873F21F48091FA02877FF1CF48 -:105AE000883F21F48091FA028F7EEBCF8D3F21F425 -:105AF0008091FF028E7F0BC08E3F21F48091FF02C8 -:105B00008D7F05C08F3F29F48091FF028B7F8093AA -:105B1000FF028091FB0281110EC08091FC02811175 -:105B20000AC08091FD02811106C08091FE028111A0 -:105B300002C01092F90208958AEF92E00E94641D5B -:105B40000E94EF299093F8028093F7020895CF9373 -:105B50008091F7029091F8020E94FC294091F9028D -:105B6000442321F02091910130E006C02091920160 -:105B70005AE0259F900111248217930708F486C0EC -:105B80008091FB0281110DC09091FC02911109C01E -:105B90009091FD02911105C09091FE02992309F4A4 -:105BA00075C04F3F19F04F5F4093F902181624F467 -:105BB0000E942C2C8093FB028091FB0287FF05C082 -:105BC0000E942C2C81958093FB028091FC02181678 -:105BD00024F40E942C2C8093FC028091FC0287FF0D -:105BE00005C00E942C2C81958093FC026091FB02E1 -:105BF000662339F1C091FC02CC2319F1772767FDA8 -:105C00007095872F972F0E94003223E333E343E3FD -:105C10005FE30E94B4320E94CD316093FB026C2F8F -:105C2000772767FD7095872F972F0E94003223E317 -:105C300033E343E35FE30E94B4320E94CD316093CB -:105C4000FC028091FD02181624F40E94742C8093AB -:105C5000FD028091FD0287FF05C00E94742C819592 -:105C60008093FD028091FE02181624F40E94742C89 -:105C70008093FE028091FE0287FF05C00E94742C73 -:105C800081958093FE02CF910C949C2DCF91089525 -:105C9000EAEFF2E085E0DF011D928A95E9F71092C4 -:105CA000F9021092FF020895833089F130F48130B7 -:105CB00061F0823009F06EC019C0853009F449C026 -:105CC000B8F1863009F066C055C020919201862F48 -:105CD00090E0820F911D8F3F910520F4620F609339 -:105CE000920108958FEF8093920108952091910180 -:105CF000862F90E0820F911D8F3F910520F4620F57 -:105D00006093910108958FEF809391010895209100 -:105D10009001862F90E0820F911D8F3F910520F416 -:105D2000620F6093900108958FEF80939001089522 -:105D300020918F01862F90E0820F911D8F3F91055A -:105D400020F4620F60938F0108958FEF80938F018D -:105D5000089520918E01862F90E0820F911D8F3F34 -:105D6000910520F4620F60938E0108958FEF809368 -:105D70008E01089520918D01862F90E0820F911D54 -:105D80008F3F910520F4620F60938D0108958FEF8E -:105D900080938D010895833021F130F4813059F0E2 -:105DA000823009F049C012C0853089F128F186306F -:105DB00009F042C037C080919201681720F4861B19 -:105DC000809392010895109292010895809191011B -:105DD000681720F4861B8093910108951092910119 -:105DE000089580919001681720F4861B809390019C -:105DF000089510929001089580918F01681720F402 -:105E0000861B80938F01089510928F0108958091D1 -:105E10008E01681720F4861B80938E0108951092DE -:105E20008E01089580918D01681720F4861B809360 -:105E30008D01089510928D01089541E050E060E0D9 -:105E400070E004C0440F551F661F771F8A95D2F774 -:105E5000CB01BA010E9496270C948B23873200F560 -:105E60008E3108F089C08E3009F469C060F4873043 -:105E700009F44DC018F4863049F531C0883041F13D -:105E80008B3021F57EC0863109F47BC018F4803157 -:105E9000E9F45FC0893109F474C08B31B9F445C0AD -:105EA000883309F46EC048F4893209F467C0853339 -:105EB00009F464C0873251F461C0833409F45EC0D0 -:105EC00018F48A3318F056C0883499F080E00895A9 -:105ED0000E94082C0E941A2C0E94232C52C08091F0 -:105EE000F102817F8E7F8093F10281E08093000335 -:105EF00008950E948B232FEF83ED90E32150804083 -:105F00009040E1F700C000000E944F2A3AC09091F3 -:105F1000F102892F8095817080FB90F919F09660CD -:105F2000986025C0997F977F22C09091F10291FBE4 -:105F3000882780F921E0822780FB91F913C0909196 -:105F4000F10292FB882780F921E0822780FB92F9F9 -:105F500009C09091F10293FB882780F921E0822704 -:105F600080FB93F99093F102882359F0916090930C -:105F7000F10207C0895303C08D5101C080E00E9427 -:105F80001D2F81E0089580E0089580E00895CF936B -:105F9000C82F80910003813071F020F0823009F029 -:105FA00089C037C0A0918B01B0918C018C91823255 -:105FB00009F082C007C0A0918B01B0918C018C9137 -:105FC000823249F48C2F0E94C32F81111EC08C2F66 -:105FD0000E942E2F1CC08C2F0E94C52F811115C02E -:105FE000C43169F030F4CB3081F0C03109F068C0C1 -:105FF00009C0C93221F0C83309F062C006C010924E -:1060000000035EC082E08093000381E090E0817035 -:106010005AC0C932C9F060F4C431B1F020F4C730BD -:1060200009F04CC034C0CE51C63008F047C017C08C -:10603000CE3439F120F4CB3409F040C01CC0C13556 -:10604000C1F0C235D9F513C080910103882319F03E -:106050001092010333C081E08093000334C0EC2F21 -:10606000F0E0E25EFD4F80818093010327C061E094 -:1060700003C061E007C06AE0809101030E94542ED2 -:106080001DC06AE0809101030E94CB2E17C08EE1F3 -:106090008093920182E3809391018AE08093900142 -:1060A00084E180938F0188E080938E0188E2809361 -:1060B0008D0104C01092000380E005C081E003C0A0 -:1060C00080E090E0A4CFCF9108950E94FD2B811134 -:1060D00002C00E94DE2B0E94232C8093040480FFC8 -:1060E00002C0869501C080E00C949B03809104045B -:1060F000982F9695292F30E0233031054CF49F5F7F -:10610000990F8170892B8160809304040E94272C51 -:106110008091040486950C949B0380910404982F2D -:10612000969591F09158990F8170892B8093040472 -:106130008E7F91E009F490E08091040490FB80F957 -:10614000809304040E94272C8091040486950C946B -:106150009B0380910404982F909590FB80F9809385 -:1061600004040E94272C8091040480FF02C08695BD -:1061700001C080E00C949B0330910404232F2695EA -:106180002F5F2F77822F90E0317004972CF4220F2D -:10619000232B2093040402C0309304048091040450 -:1061A000282F2E7F91E009F490E090FB80F98093F6 -:1061B00004040E94272C8091040486950C949B0370 -:1061C00020910404922F96959827990F822F817021 -:1061D000892B809304048E7F91E009F490E08091F4 -:1061E000040490FB80F9809304040E94272C809182 -:1061F000040486950C949B035058BB27AA270ED005 -:1062000075C166D130F06BD120F031F49F3F11F4AD -:106210001EF45BC10EF4E095E7FB51C1E92F77D185 -:1062200080F3BA17620773078407950718F071F4B3 -:106230009EF58FC10EF4E0950B2EBA2FA02D0B0109 -:10624000B90190010C01CA01A0011124FF27591BBB -:1062500099F0593F50F4503E68F11A16F040A22FC1 -:10626000232F342F4427585FF3CF46953795279532 -:10627000A795F0405395C9F77EF41F16BA0B620B31 -:10628000730B840BBAF09150A1F0FF0FBB1F661F78 -:10629000771F881FC2F70EC0BA0F621F731F841FBB -:1062A00048F4879577956795B795F7959E3F08F0E1 -:1062B000B3CF9395880F08F09927EE0F97958795A0 -:1062C0000895D9D008F481E008950CD00FC107D10A -:1062D00040F0FED030F021F45F3F19F0F0C05111D2 -:1062E00039C1F3C014D198F39923C9F35523B1F3FD -:1062F000951B550BBB27AA2762177307840738F035 -:106300009F5F5F4F220F331F441FAA1FA9F333D093 -:106310000E2E3AF0E0E830D091505040E695001C47 -:10632000CAF729D0FE2F27D0660F771F881FBB1F03 -:10633000261737074807AB07B0E809F0BB0B802DDD -:10634000BF01FF2793585F4F2AF09E3F510568F029 -:10635000B6C000C15F3FECF3983EDCF386957795BD -:106360006795B795F7959F5FC9F7880F911D96952B -:10637000879597F90895E1E0660F771F881FBB1F87 -:10638000621773078407BA0720F0621B730B840B34 -:10639000BA0BEE1F88F7E095089504D06894B11108 -:1063A000D9C00895BCD088F09F5790F0B92F992795 -:1063B000B751A0F0D1F0660F771F881F991F1AF010 -:1063C000BA95C9F712C0B13081F0C3D0B1E00895D9 -:1063D000C0C0672F782F8827B85F39F0B93FCCF35A -:1063E000869577956795B395D9F73EF49095809506 -:1063F000709561957F4F8F4F9F4F0895E89409C026 -:1064000097FB3EF490958095709561957F4F8F4FE7 -:106410009F4F9923A9F0F92F96E9BB279395F695FD -:10642000879577956795B795F111F8CFFAF4BB0F7B -:1064300011F460FF1BC06F5F7F4F8F4F9F4F16C0DF -:10644000882311F096E911C0772321F09EE8872F69 -:10645000762F05C0662371F096E8862F70E060E025 -:106460002AF09A95660F771F881FDAF7880F96959E -:10647000879597F90895990F0008550FAA0BE0E842 -:10648000FEEF16161706E807F907C0F012161306F6 -:10649000E407F50798F0621B730B840B950B39F436 -:1064A0000A2661F0232B242B252B21F408950A269C -:1064B00009F4A140A6958FEF811D811D089597F9DC -:1064C0009F6780E870E060E008959FEF80EC08959A -:1064D00000240A94161617061806090608950024C3 -:1064E0000A9412161306140605060895092E03943D -:1064F000000C11F4882352F0BB0F40F4BF2B11F4B1 -:1065000060FF04C06F5F7F4F8F4F9F4F089557FD0F -:106510009058440F551F59F05F3F71F04795880F11 -:1065200097FB991F61F09F3F79F0879508951216A8 -:1065300013061406551FF2CF4695F1DF08C0161654 -:1065400017061806991FF1CF869571056105089405 -:106550000895E894BB2766277727CB0197F908951C -:106560008ADF08F48FEF08950BD0C0CFB1DF28F099 -:10657000B6DF18F0952309F0A2CFA7CF1124EACFF8 -:10658000C6DFA0F3959FD1F3950F50E0551F629F92 -:10659000F001729FBB27F00DB11D639FAA27F00D7C -:1065A000B11DAA1F649F6627B00DA11D661F829FA3 -:1065B0002227B00DA11D621F739FB00DA11D621F88 -:1065C000839FA00D611D221F749F3327A00D611DA5 -:1065D000231F849F600D211D822F762F6A2F112487 -:1065E0009F5750408AF0E1F088234AF0EE0FFF1FDA -:1065F000BB1F661F771F881F91505040A9F79E3F11 -:10660000510570F05CCFA6CF5F3FECF3983EDCF312 -:10661000869577956795B795F795E7959F5FC1F74D -:10662000FE2B880F911D9695879597F90895FA018D -:10663000EE0FFF1F30962105310599F161157105A7 -:1066400061F48038BFE39B0749F168949038810575 -:1066500061F08038BFEF9B0741F0992342F5FF3F7F -:10666000E1053105210511F1E8940894E795D90178 -:10667000AA2329F4AB2FBE2FF85FD0F310C0FF5F21 -:1066800070F4A695E0F7F73950F019F0FF3A38F4B6 -:106690009F779F930CD00F9007FC905808953EF081 -:1066A00014CF60E070E080E89FE308954FE79F77A4 -:1066B0005F934F933F932F939ED02F913F914F9194 -:1066C0005F9152DF05C019F40EF0F9CE42CFFDCE36 -:1066D00026DFC8F39638C0F707F80F92E8942BE34B -:1066E0003AEA48EB5FE74EDF0F920F920F924DB7F9 -:1066F0005EB70F92C0D0ECEAF0E016D04F915F91F8 -:10670000EF91FF91E595EE1FFF1F49F0FE57E068FE -:106710004427EE0F441FFA95E1F74195550B32D00F -:106720000F9007FE26C00895DF93CF931F930F931A -:10673000FF92EF92DF927B018C01689405C0DA2E04 -:10674000EF011EDFFE01E894A59125913591459159 -:106750005591AEF3EF0162DDFE019701A801DA94D5 -:1067600079F7DF90EF90FF900F911F91CF91DF911C -:1067700008959B01AC0160E070E080E89FE3A5CD47 -:106780009ECEACC0CCDEE8F39923D9F3940F511D13 -:10679000BBF39150504094F059F0882332F0660FCB -:1067A000771F881F91505040C1F79E3F510544F715 -:1067B000880F911D9695879597F908955F3FACF0E6 -:1067C000983E9CF0BB27869577956795B79508F41A -:1067D000B1609395C1F7BB0F58F711F460FFE8CF94 -:1067E0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C0D9 -:1067F0006CCE689464CE93DEC8F39923D1F3C6F3CC -:10680000DF93CF931F930F93FF92C92FDD27882328 -:106810002AF02197660F771F881FDAF720E030E013 -:1068200040E85FEB9FE3883920F0803E30F021960E -:106830008F77E3DCE4EDF0E003C0DFDCE1E0F1E0E2 -:1068400073DF8B01BE01EC01FB2E6F57710975954B -:10685000771F880B990BD4DD28E132E741E35FE332 -:106860008FDEAF2D9801AE01FF900F911F91CF9158 -:10687000DF91D4DC3BCEFA01DC01AA0FBB1F9B01E8 -:10688000AC01BF5728F422273327442750781FC074 -:10689000B75188F4AB2F0024469537952795011CF6 -:1068A000A395D2F3002069F0220F331F441FB39544 -:1068B000DAF30DD0A1CC61307105A0E88A07B946A2 -:1068C00030F49B01AC0166277727882790783096B3 -:1068D00021F0208331834283538308959F3F31F019 -:1068E000915020F4879577956795B795880F911DFE -:1068F0009695879597F90895991B79E004C0991F9B -:10690000961708F0961B881F7A95C9F78095089509 -:10691000AA1BBB1B51E107C0AA1FBB1FA617B707C5 -:1069200010F0A61BB70B881F991F5A95A9F78095E1 -:106930009095BC01CD01089597FB072E16F40094A5 -:1069400007D077FD09D00E94883407FC05D03EF4BB -:10695000909581959F4F0895709561957F4F08950B -:10696000F999FECF92BD81BDF89A992780B5089517 -:10697000A8E1B0E042E050E00C94D334262FF9991E -:10698000FECF1FBA92BD81BD20BD0FB6F894FA9A12 -:10699000F99A0FBE019608950E94BE34272F0C94D9 -:1069A000BF34DC01CB01FC01F999FECF06C0F2BD7A -:1069B000E1BDF89A319600B40D9241505040B8F7BD -:0669C0000895F894FFCFDA -:1069C60055D0A446000016440000000000004842CE -:1069D60061978A460000C843000000000000484254 -:1069E60055D024460000C84300000000000048427D -:1069F60000005C460000C84300000000000048425A -:106A060061978A4600007A4455D0A4460000C843E0 -:106A1600000000000000484200005C460000C84339 -:106A2600000000000000484255D0244600001644ED -:106A36000507000C05854000000106400000010026 -:106A4600B91049112511F010BC1001E902280814EB -:106A56000A321E4200450025002600430061006000 -:106A660000200037006400650066006700440046A9 -:106A7600002400470000000200040005000700098A -:106A8600000B000C000E001000110013001500177B -:106A96000018001A001C001D001F002100230024FE -:106AA600002600280029002B002D002F0030003280 -:106AB6000034003500370039003B006E048704A01F -:106AC60004B904E10594055E053E053F4D362002F6 -:106AD60003020000010001010101010001010102A0 -:086AE60003040506070809007E -:00000001FF diff --git a/keyboard/preonic/preonic_pcb.hex b/keyboard/preonic/preonic_pcb.hex deleted file mode 100644 index 5bdc190e1..000000000 --- a/keyboard/preonic/preonic_pcb.hex +++ /dev/null @@ -1,1702 +0,0 @@ -:100000000C94D4020C9418030C9418030C94180349 -:100010000C9418030C9418030C9418030C941803F4 -:100020000C9418030C9418030C94E8160C94BA174B -:100030000C946C290C9418030C9418030C9418035A -:100040000C9418030C9418030C9418030C941803C4 -:100050000C9418030C94D9290C9418030C941803CD -:100060000C9418030C9418030C9418030C941803A4 -:100070000C9418030C9418030C9418030C94180394 -:100080000C941C0E0C9418030C9418030C94180375 -:100090000C9418030C9418030C9418030C94180374 -:1000A0000C9418030C9418030C941803076342363D -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F00000000003500EC -:100130001E001F00200021002200230024002500B3 -:10014000260027002A002B0014001A0008001500C2 -:1001500017001C0018000C00120013002A002900D0 -:1001600004001600070009000A000B000D000E0035 -:100170000F0033003400E1001D001B0006001900D1 -:10018000050011001000360037003800280000304C -:10019000E000E200E30003522C002C000452500067 -:1001A000510052004F0035001E001F0020002100AA -:1001B0002200230024002500260027002A002B000F -:1001C00014001A00090013000A000D000F001800A7 -:1001D0001C0033002A002900040015001600170037 -:1001E00007000B00110008000C0012003400E100B1 -:1001F0001D001B000600190005000E00100036004F -:100200003700380028000030E000E200E30003522D -:100210002C002C0004525000510052004F003500B9 -:100220001E001F00200021002200230024002500C2 -:10023000260027002A002B00340036003700130068 -:100240001C0009000A00060015000F002A00290002 -:1002500004001200080018000C0007000B00170033 -:10026000110016003800E100330014000D000E00EC -:100270001B00050010001A0019001D0028000030A6 -:10028000E000E200E30003522C002C000452500076 -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00350212 -:1002B0001E021F0220022102220223022402250222 -:1002C000260227022A0001003A003B003C003D00C4 -:1002D0003E003F002D022E022F02300231020100AB -:1002E00040004100420043004400450000530153D8 -:1002F0000253005001000100010001000100010053 -:10030000010001000100AB00AA00A900AE00350009 -:100310001E001F00200021002200230024002500D1 -:10032000260027002A0035001E001F0020002100A3 -:100330002200230024002500260027002A000100B7 -:100340003A003B003C003D003E003F002D002E00E7 -:100350002F00300031000100400041004200430006 -:1003600044004500005301530253005001000100B6 -:100370000100010001000100010001000100AB00CB -:10038000AA00A900AE002A035400680065002000FE -:100390005000720065006F006E006900630020006D -:1003A0004B006500790062006F006100720064001C -:1003B00000002C034F007200740068006F006C0096 -:1003C00069006E0065006100720020004B0065004E -:1003D000790062006F006100720064007300000029 -:1003E000040309040902D000060100A0FA09040070 -:1003F000000103010100092111010001223F000752 -:1004000005810308000A0904010001030102000933 -:100410002111010001224D000705820308000A098D -:10042000040200010300000009211101000122362D -:10043000000705830308000A090403000203000003 -:10044000000921110100012220000705840320007A -:100450000107050403200001090404000001010054 -:100460000009240100010900010509040500020139 -:1004700003000007240100014100062402010100DD -:1004800006240202020009240301030102010009FB -:1004900024030204010101000905060240000500D1 -:1004A0000005250101010905850240000500000540 -:1004B000250101031201100100000008EDFE61603A -:1004C0000100010200010631FF0974A1010975153F -:1004D0000025FF9520750881020976150025FF95F6 -:1004E0002075089102C005010980A101850216014D -:1004F0000026B7001A01002AB70075109501810087 -:10050000C0050C0901A1018503160100269C021AF1 -:1005100001002A9C02751095018100C005010902A5 -:10052000A1010901A10005091901290515002501ED -:100530009505750181029501750381010501093059 -:1005400009311581257F95027508810609381581C5 -:10055000257F950175088106050C0A38021581254D -:100560007F950175088106C0C005010906A1010536 -:100570000719E029E7150025019508750181029505 -:100580000175088101050819012905950575019175 -:10059000029501750391010507190029FF15002532 -:1005A000FF950675088100C011241FBECFEFDAE069 -:1005B000DEBFCDBF04B603FE24C080910404909139 -:1005C0000504A0910604B09107048730904BA74022 -:1005D000B04BB9F410920404109205041092060472 -:1005E0001092070414BE84B7877F84BF88E10FB6DA -:1005F000F89480936000109260000FBEE0E0F8E392 -:10060000099512E0A0E0B1E0EEE1F9E602C0059044 -:100610000D92A832B107D9F714E0A8E2B2E001C008 -:100620001D92A430B107E1F70E94A0130C948D3401 -:100630000C94000061110DC0FC018281882331F00F -:1006400085EE0E94671E0E94683003C085EE0E94FE -:100650002F1F80E090E008950E940F0E40E050E0D0 -:1006600069E070E080E091E00C94600F08950E94D2 -:1006700049036E9A769A8CE293E0892B11F00C94E0 -:100680002C03089586E393E0892B11F00C94360334 -:100690000895279A2F988FEF9FEF9093870080936C -:1006A00086008AE08093800089E1809381000C9429 -:1006B000113081110BC080918000877F8093800072 -:1006C00010928D0010928C002F9808952F988330EF -:1006D00041F4809180008860809380008FEF9FEFCD -:1006E00012C09091800098609093800023E030E0E9 -:1006F000281B3109220F331F8FEF9FEF02C0969501 -:1007000087952A95E2F790938D0080938C00089549 -:100710008B3B910568F4883A910530F5853A91054F -:10072000C0F48430910598F4019709F06FC071C04E -:10073000803E910508F46AC0883E910540F09C0116 -:10074000205F31092031310508F060C05CC09C0198 -:10075000A1C0853A910509F45FC0863A910509F474 -:100760005EC023E830E496C0883A910509F45AC087 -:10077000893A910509F459C08A3A910509F458C09B -:100780008B3A910509F457C08C3A910509F456C08B -:100790008D3A910509F455C0803B910509F454C088 -:1007A0008E3A910509F453C08F3A910509F452C06D -:1007B000813B910509F451C0823B910509F450C079 -:1007C000833B910509F44FC0843B910509F44EC069 -:1007D000853B910509F44DC0863B910509F44CC059 -:1007E000873B910509F44BC0883B910509F44AC049 -:1007F000893B910509F449C08A3B910509F048C03D -:100800002AE236E447C09C01306544C020E030E075 -:1008100041C021E030E03EC021E830E43BC022E8A6 -:1008200030E438C022EE34E435C029EE34E432C07E -:100830002AEE34E42FC025EB34E42CC026EB34E45C -:1008400029C027EB34E426C02CEC34E423C02DEC83 -:1008500034E420C023E835E41DC02AE835E41AC09A -:1008600022E935E417C024E935E414C021E236E476 -:1008700011C023E236E40EC024E236E40BC025E2C8 -:1008800036E408C026E236E405C027E236E402C0BA -:1008900020E034E4C90108959CE0799FF00111241F -:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71 -:1008B000FF1FE25DFE4F25913491C9010895880F15 -:1008C000991F82559040FC0125913491C9010895EA -:1008D000880F991F825D9E4FFC0125913491C901BB -:1008E00008950E944C049C019A9581159F4110F433 -:1008F000C9010895C90190528115904128F4C90198 -:100900009F700E9468040895C90190538115904119 -:1009100020F4C9019927906C0895C901905440971B -:1009200028F4C9018F709927946D0895203180E4CF -:10093000380719F480E091ED0895213190E43907EA -:1009400019F480E090ED0895223140E4340719F461 -:1009500080E092ED0895233180E4380719F480E0B7 -:1009600093ED0895211590E5390799F40E945623D7 -:1009700040E065E088E491E00E94600F2FEF44E3DF -:100980008CE0215040408040E1F700C000000C9412 -:10099000FE29213090E5390731F48091F002816021 -:1009A0008093F0020895C90190558115904108F097 -:1009B00062C0432F55274F70552741305105F9F438 -:1009C000C90174E0880F991F7A95E1F78827937021 -:1009D000B901E3E0660F771FEA95E1F760767727C4 -:1009E000862B972B9C682370332702C0440F551F1A -:1009F0002A95E2F74F715527842B952B08954230A5 -:100A0000510529F4922F8827816F906A0895433009 -:100A10005105B9F4C90153E0880F991F5A95E1F7C0 -:100A2000807E97702370332741E050E002C0440F6E -:100A3000551F2A95E2F74F715527842B952B9C68FB -:100A400008954430510589F5C90143E0880F991F85 -:100A50004A95E1F7807E97702370332741E050E09C -:100A600002C0440F551F2A95E2F74F715527842B7A -:100A7000952B9A680895C90190568115904118F4F4 -:100A8000C901906F0895C90190578115904120F4D4 -:100A9000C9019F7090620895C901905881159041D5 -:100AA00020F4C9019F70906A0895203E3105E0F45A -:100AB000203C310568F52133310509F475C048F44F -:100AC0002932310509F46BC02A32310509F07BC0A7 -:100AD00075C02933310501F122383105E9F025339C -:100AE000310509F070C051C0233E3105B1F140F429 -:100AF000203E3105D1F0223E310509F064C01CC012 -:100B0000263E310579F1273E310509F05CC038C039 -:100B1000C9010E945F0408958091010380FD02C015 -:100B200081FF51C080EE90E04FC08091010380FFB3 -:100B3000F9CF89E390E048C08091010382FF0AC0A9 -:100B40008091010384FF03C080E090E03DC083EE0C -:100B500090E03AC082EE90E037C08091010382FFBE -:100B6000EFCFF8CF8091010383FF07C0809101038D -:100B700084FDEACF87EE90E027C086EE90E024C0A7 -:100B80008091010383FFF2CFF8CF8091010385FFAD -:100B900003C089E290E018C085E390E015C0809121 -:100BA000010385FDF9CFF5CF8091010386FF03C0D6 -:100BB0008AE290E009C081E390E006C080910103E1 -:100BC00086FDF9CFF5CFC9010E94880308950895E5 -:100BD0005F926F927F928F929F92AF92BF92CF92CD -:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6 -:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9 -:100C00002F5F3F4F4E018BE0880E911C60E070E03B -:100C100000E010E0E12CF12CC12CD12CA12CB12C46 -:100C20008AE0782E622E532E41E050E0E3E9F1E0B5 -:100C3000A62DB52D872D01900D928A95E1F7F9012A -:100C4000819191919F01FC01E07FFF27E032F10546 -:100C500059F48F709927FA0102C0EE0FFF1F8A9591 -:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E -:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC -:100C8000DF2A29C0E034F10559F48F709927FA0161 -:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063 -:100CA000E035F10559F48F709927FA0102C0EE0F73 -:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2 -:100CC00051F48F709927FA0102C0EE0FFF1F8A9529 -:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9 -:100CE0008A2D8095892384B985B18A2985B997B1E0 -:100CF0008C2D8095892387B988B18C2988B99AB1C0 -:100D00008E2D809589238AB98BB18E298BB99DB19F -:100D1000802F809589238DB98EB1802B8EB990B3A9 -:100D2000862F8095892380BB81B3862B81BB2A9631 -:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC -:100D40000F91FF90EF90DF90CF90BF90AF909F906A -:100D50008F907F906F905F9008955F926F927F92D7 -:100D60008F929F92AF92BF92CF92DF92EF92FF92BB -:100D70000F931F93CF93DF93CDB7DEB768970FB66E -:100D8000F894DEBF0FBECDBF85B7806885BF85B73D -:100D9000806885BF0E94E8059E012F5F3F4F4E018E -:100DA00089E1880E911C60E070E000E010E0E12C29 -:100DB000F12CC12CD12CA12CB12C98E1792E622ED2 -:100DC000532E41E050E0EDE9F1E0A62DB52D872D41 -:100DD00001900D928A95E1F7F901819191919F011E -:100DE000FC01E07FFF27E032F10559F48F7099276D -:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62 -:100E000037C0E033F10559F48F709927FA0102C019 -:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1 -:100E2000F10559F48F709927FA0102C0EE0FFF1FE8 -:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446 -:100E40008F709927FA0102C0EE0FFF1F8A95E2F713 -:100E50000E2B1F2B0DC0E036F10551F48F70992732 -:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F -:100E70002815390509F0A7CF94B18A2D80958923CB -:100E800084B985B18A2985B997B18C2D809589233C -:100E900087B988B18C2988B99AB18E2D809589231C -:100EA0008AB98BB18E298BB99DB1802F809589230A -:100EB0008DB98EB1802B8EB990B3862F8095892302 -:100EC00080BB81B3862B81BB10922902109228022D -:100ED000109233021092320210922B0210922A02C8 -:100EE000109235021092340210922D0210922C02B0 -:100EF000109237021092360210922F0210922E0298 -:100F0000109239021092380210923102109230027F -:100F100010923B0210923A0287E393E0892BB9F0DA -:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC -:100F30001F910F91FF90EF90DF90CF90BF90AF90F7 -:100F40009F908F907F906F905F900C94370368967E -:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA -:100F60000F91FF90EF90DF90CF90BF90AF909F9048 -:100F70008F907F906F905F9008955F926F927F92B5 -:100F80008F929F92AF92BF92CF92DF92EF92FF9299 -:100F90000F931F93CF93DF93CDB7DEB7A2970FB612 -:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17 -:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26 -:100FC0003AE0532E470101E010E048E1642E55E07D -:100FD000752EE3E9F1E0D401852D01900D928A95FB -:100FE000E1F7F701819191917F019C01207F3327E7 -:100FF0002032310589F424B18F709927A80102C0ED -:10100000440F551F8A95E2F7CA01242B24B995B1E4 -:101010008095892385B94FC02033310589F427B1E4 -:101020008F709927F80102C0EE0FFF1F8A95E2F733 -:10103000CF012E2B27B998B18095892388B93BC061 -:101040002034310589F42AB18F709927A80102C094 -:10105000440F551F8A95E2F7CA01242B2AB99BB188 -:10106000809589238BB927C02035310589F42DB1AE -:101070008F709927F80102C0EE0FFF1F8A95E2F7E3 -:10108000CF012E2B2DB99EB1809589238EB913C027 -:101090002036310581F420B38F709927A80102C052 -:1010A000440F551F8A95E2F7CA01242B20BB91B348 -:1010B0008095892381BB50EA5A95F1F7BE016F5F95 -:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC -:1010D0001196462D01900D924A95E1F7FB01419141 -:1010E0005191BF01FA01E07FFF27E032F10511F4D1 -:1010F000E3B113C0E033F10511F4E6B10EC0E03402 -:10110000F10511F4E9B109C0E035F10511F4ECB1D4 -:1011100004C0E036F105B9F4EFB1F0E04F705527A7 -:1011200002C0F595E7954A95E2F7E0FD08C0A801F1 -:10113000022E02C0440F551F0A94E2F702C040E09D -:1011400050E0842B952B2F5F3F4F2C30310509F059 -:10115000BCCFF601208131812817390721F0918316 -:101160008083709270010E94E805F2E0CF0ED11CDE -:10117000EA14FB0409F02DCF809170018823A1F1BE -:10118000815080937001882339F08FE99FE00197A7 -:10119000F1F700C0000028C0809132029091330224 -:1011A0009093290280932802809134029091350215 -:1011B00090932B0280932A028091360290913702FD -:1011C00090932D0280932C028091380290913902E5 -:1011D00090932F0280932E0280913A0290913B02CD -:1011E000909331028093300282E493E0892B11F0D6 -:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4 -:10120000CDBFDF91CF911F910F91FF90EF90DF90B5 -:10121000CF90BF90AF909F908F907F906F905F9096 -:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D -:10123000918108950895CF92DF92EF92FF920F93DC -:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601 -:10125000F894DEBF0FBECDBF8C01862F642F88238C -:1012600079F0F80192812FE7482F992329F083E044 -:1012700093E00E94C41904C083E093E00E94D41953 -:10128000F80180818B3091F59181943009F0A8C2EA -:101290009281809173019923B1F08F5F80937301E4 -:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207 -:1012B0009A95E1F7E0917101F0917201EE0FFF1F35 -:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03 -:1012D000BD4F01900D929A95E1F7E0917101F09167 -:1012E0007201EE0FFF1F21E332E093C08A3009F054 -:1012F000CBC0F8019181943009F072C29281809143 -:101300007301992309F473C081508093730196E4AB -:10131000E5EBF1E0DE01A551BE4F01900D929A95EB -:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA -:1013300031E02C0F3D1FE20FF31F60817181680FB8 -:10134000711D882777FD8095982F0E94AC3120E091 -:1013500030E040E451E40E94113120E030E040E808 -:1013600050E40E94A9309B01AC0160E070E080E095 -:1013700090E40E94C33221E230ED42E053E40E9447 -:1013800060324CE050E00E94BB0F20E04BE760E091 -:1013900083E093E00E94B41920E04BE761E083E032 -:1013A00093E00E94B41920E04BE762E083E093E011 -:1013B0000E94B41920E04BE763E083E093E00E94D1 -:1013C000B41920E04BE764E083E093E0C454DD4FC0 -:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146 -:1013E0000F91FF90EF90DF90CF900C94B41996E49A -:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501 -:10140000E1F7E0917101F0917201EE0FFF1F25EA03 -:1014100031E02C0F3D1FE20FF31F60817181680FD7 -:10142000711D882777FD8095982F0E94AC3120E0B0 -:1014300030E040E451E40E94113120E030E040E827 -:1014400050E40E94A9309B01AC0160E070E080E0B4 -:1014500090E40E94C33221E230ED42E053E40E9466 -:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F -:101470000FBECDBFDF91CF911F910F91FF90EF90E5 -:10148000DF90CF900C94BE0C893009F0D3C0F801E6 -:101490009181943009F0A4C19281992309F4A0C1EB -:1014A00080917101909172010196909372018093E5 -:1014B000710120E04BE760E083E093E00E94B41903 -:1014C00020E04BE761E083E093E00E94B41920E064 -:1014D0004BE762E083E093E00E94B41920E04BE721 -:1014E00063E083E093E00E94B41920E04BE764E0FE -:1014F00083E093E00E94B4190E94BE0C00E010E06B -:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5 -:10151000BE4F9F2D01900D929A95E1F7E0917101D8 -:10152000F0917201E00FF11FEE0FFF1F2FE531E088 -:101530002C0F3D1FE20FF31F60817181680F711D39 -:10154000882777FD8095982F0E94AC3120E030E00D -:1015500040E451E40E94113120E030E040E850E4E2 -:101560000E94A9309B01AC0160E070E080E090E453 -:101570000E94C33221E230ED42E053E40E94603227 -:101580004CE050E00E94BB0F3FEF87EE93E03150FC -:1015900080409040E1F700C0000080917301E5EBCE -:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E -:1015B000E1F7E0917101F0917201E00FF11FEE0F80 -:1015C000FF1F29E131E02C0F3D1FE20FF31F608167 -:1015D0007181680F711D882777FD8095982F0E9473 -:1015E000AC3120E030E040E451E40E94113120E0D1 -:1015F00030E040E850E40E94A9309B01AC0160E07B -:1016000070E080E090E40E94C33221E230ED42E0DD -:1016100053E40E9460320E94EB0C8FEF9CE701972D -:10162000F1F700C000000F5F1F4F0830110509F0EF -:1016300069CF94C1883009F0D3C0F801918194300A -:1016400009F0CEC09281992309F4CAC0809171013A -:10165000909172010197909372018093710120E043 -:101660004BE760E083E093E00E94B41920E04BE791 -:1016700061E083E093E00E94B41920E04BE762E070 -:1016800083E093E00E94B41920E04BE763E083E03D -:1016900093E00E94B41920E04BE764E083E093E01C -:1016A0000E94B4190E94BE0C00E010E056E4F52E32 -:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C -:1016C00001900D929A95E1F7E0917101F09172010C -:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39 -:1016E000E20FF31F60817181680F711D882777FDFC -:1016F0008095982F0E94AC3120E030E040E451E426 -:101700000E94113120E030E040E850E40E94A9300E -:101710009B01AC0160E070E080E090E40E94C33285 -:1017200021E230ED42E053E40E9460324CE050E0B0 -:101730000E94BB0F3FEF87EE93E031508040904016 -:10174000E1F700C0000080917301E5EBF1E0DE01FC -:10175000A357BF4F9F2D01900D929A95E1F7E0910D -:101760007101F0917201E00FF11FEE0FFF1F2DE8E4 -:1017700030E02C0F3D1FE20FF31F60817181680F75 -:10178000711D882777FD8095982F0E94AC3120E04D -:1017900030E040E451E40E94113120E030E040E8C4 -:1017A00050E40E94A9309B01AC0160E070E080E051 -:1017B00090E40E94C33221E230ED42E053E40E9403 -:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD -:1017D00000000F5F1F4F0830110509F069CFBEC030 -:1017E000F801228190917301222309F45DC026E45F -:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568 -:10180000E1F7E0917101F0917201E80FF11DEE0F27 -:10181000FF1F27E430E02C0F3D1FE20FF31F608114 -:101820007181690F711D882777FD8095982F0E941F -:10183000AC3120E030E040E451E40E9411316B0112 -:101840007C01F801818165E070E0681B71098827DF -:1018500077FD8095982F0E94AC319B01AC01C701A8 -:10186000B6010E94A9309B01AC0160E070E080E00D -:1018700090E40E94C33221E230ED42E053E40E9442 -:1018800060324FE050E0C454DD4F0FB6F894DEBF35 -:101890000FBECDBFDF91CF911F910F91FF90EF90C1 -:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176 -:1018B000119601900D922A95E1F7E0917101F09156 -:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39 -:1018D0003D1FE20FF31F60817181690F711D882721 -:1018E00077FD8095982F0E94AC3120E030E040E4F5 -:1018F00051E40E9411316B017C01F801818165E0A6 -:1019000070E0681B7109882777FD8095982F0E94E9 -:10191000AC319B01AC01C701B6010E94A9309B010B -:10192000AC0160E070E080E090E40E94C33221E20C -:1019300030ED42E053E40E946032C454DD4F0FB6F4 -:10194000F894DEBF0FBECDBFDF91CF911F910F91F5 -:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0 -:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0 -:101970000F91FF90EF90DF90CF9008951092870223 -:1019800010928602809171008D7F8093710080910A -:1019900090008F7780939000109248021092470237 -:1019A00010928002109281021092820210928302A1 -:1019B00010927F0210927E02EEE5F2E0AEE4B2E019 -:1019C00011921192119211921D921D9282E0EE37A6 -:1019D000F807B1F708956F927F928F929F92AF921E -:1019E000BF92CF92DF92EF92FF920F931F93CF930C -:1019F000DF936B017C010EE712E04CE5A42E42E080 -:101A0000B42EC7E0D0E0A7019601F801929182912F -:101A1000729162918F010E940D31882349F02197C4 -:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB -:101A3000F8011082118212821382F5011182108244 -:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA -:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5 -:101A600055816681778140835183628373831482B9 -:101A700015821682178212962D913C91139711961A -:101A80003C932E9313961C921E92129734961296A4 -:101A90008730910519F7C3CF809186029091870214 -:101AA000019797FD05C0909387028093860204C03A -:101AB0001092870210928602E0918602F0918702CE -:101AC0003097C9F4809171008D7F8093710080916F -:101AD00090008F7780939000109280021092810284 -:101AE000109282021092830210927F0210927E0264 -:101AF0001092470285C03197DF01AA0FBB1FAA0FC2 -:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23 -:101B1000FF1FE25BFD4FC081D18160908002709019 -:101B200081028090820290908302A7019601662D27 -:101B3000772D882D992D0E940D3187FF25C0262DE8 -:101B4000372D482D592DC701B6010E94A83020E03D -:101B500030E04AEF54E40E9411315B018C012A2DE0 -:101B60003B2D402F512F662D772D882D992D0E94CA -:101B7000A9303B014C01A7019601772D992D0E94B8 -:101B80000D31181664F72EC0A7019601662D772D2A -:101B9000882D992D0E945C32181634F5A701960104 -:101BA000662D772D882D992D0E94A83020E030E0F9 -:101BB0004AEF54E40E9411315B018C012A2D3B2D28 -:101BC000402F512F662D772D882D992D0E94A830FA -:101BD0003B014C01A7019601772D992D0E945C32A3 -:101BE00087FFECCF10924D02C0928002D09281020A -:101BF000E0928202F0928302D0937F02C0937E0231 -:101C0000DF91CF911F910F91FF90EF90DF90CF90D8 -:101C1000BF90AF909F908F907F906F9008953E9A65 -:101C2000E1E7F0E080818D7F808382E08093900007 -:101C30008AE18093910008951F920F920FB60F9240 -:101C40001124CF92DF92EF92FF922F933F934F9305 -:101C50005F936F937F938F939F93AF93BF93CF9334 -:101C6000DF93EF93FF9380914702882309F479C0B3 -:101C700020E030E0A90160918002709181028091A2 -:101C80008202909183020E945C3218160CF069C0A7 -:101C900020E030E040E251E46091490270914A0254 -:101CA00080914B0290914C020E945C321816BCF459 -:101CB00080918402909185020196609186027091D4 -:101CC00087020E9448349093850280938402109288 -:101CD000490210924A0210924B0210924C02C0919B -:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC -:101CF000DD4F288139814A815B8160E074E284E7AD -:101D00009BE40E9411310E94793170939700609397 -:101D10009600288139814A815B8160E074E284E722 -:101D20009BE40E9411310E947931759567957093FB -:101D300099006093980020E030E040E85FE3609114 -:101D4000490270914A0280914B0290914C020E948C -:101D5000A9306093490270934A0280934B0290939A -:101D60004C0280914802882309F493C0C09043023A -:101D7000D0904402E0904502F090460220E030E02E -:101D8000A901C701B6010E945C321816F4F4A7013C -:101D9000960160E074E284E79BE40E9411310E94A6 -:101DA00079317093970060939600A701960160E0E7 -:101DB00074E284E79BE40E9411310E9479317595A9 -:101DC0006795709399006093980060913D027091BF -:101DD0003E026F5F7F4F70933E0260933D0280E052 -:101DE00090E00E94AA3120913F0230914002409140 -:101DF0004102509142020E945C3287FD4AC08091AC -:101E00003C028F5F80933C029091F0038917A0F011 -:101E10008091F503882319F010923C020DC0809147 -:101E200071008D7F80937100809190008F778093F7 -:101E30009000109248022DC0E091F103F091F2035E -:101E400080913C0298E0899FE00DF11D1124808172 -:101E50009181A281B3818093430290934402A09325 -:101E60004502B093460220E030E040E85EE3648142 -:101E70007581868197810E94603260933F027093E2 -:101E80004002809341029093420210923E021092CF -:101E90003D02FF91EF91DF91CF91BF91AF919F9163 -:101EA0008F917F916F915F914F913F912F91FF9013 -:101EB000EF90DF90CF900F900FBE0F901F9018956E -:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174 -:101ED00080914702882331F04A8369830E94BE0CB7 -:101EE00069814A8181E0809348021093F203009354 -:101EF000F1036093F0034093F503109249021092AE -:101F00004A0210924B0210924C0210923C02F801CD -:101F10004081518162817381409343025093440216 -:101F2000609345027093460220E030E040E85EE3B3 -:101F300064817581868197810E94603260933F023F -:101F400070934002809341029093420210923E02AD -:101F500010923D02809171008260809371008091A7 -:101F600090008068809390000F900F90DF91CF9148 -:101F70001F910F9108956F927F928F929F92AF92CF -:101F8000BF92CF92DF92EF92FF920F931F93CF9366 -:101F9000DF936B017C01EA018091480281110E946C -:101FA000BE0C81E08093470220E030E0A901C70128 -:101FB000B6010E945C3218160CF09AC06090800244 -:101FC00070908102809082029090830220E030E045 -:101FD000A901662D772D882D992D0E940D31811133 -:101FE00028C0C0928002D0928102E0928202F092D8 -:101FF0008302D0937F02C0937E02809186029091EB -:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C -:10201000C082D182E282F382FC01EE0FFF1FE25BFD -:10202000FD4FD183C08301969093870280938602EF -:102030005FC0A7019601662D772D882D992D0E94EE -:102040000D3187FF25C0262D372D482D592DC7016D -:10205000B6010E94A83020E030E04AEF54E40E942C -:1020600011315B018C012A2D3B2D402F512F662D04 -:10207000772D882D992D0E94A9303B014C01A70195 -:102080009601772D992D0E940D31181664F7A9CF6E -:10209000A7019601662D772D882D992D0E945C321F -:1020A00018160CF09ECFA7019601662D772D882D6E -:1020B000992D0E94A83020E030E04AEF54E40E94BD -:1020C00011315B018C012A2D3B2D402F512F662DA4 -:1020D000772D882D992D0E94A8303B014C01A70136 -:1020E0009601772D992D0E945C3287FFECCF79CF36 -:1020F000809171008260809371008091900080686F -:1021000080939000DF91CF911F910F91FF90EF90FE -:10211000DF90CF90BF90AF909F908F907F906F9007 -:102120000895809191020895CF93DF9300D01F927C -:10213000CDB7DEB72091FA03243021F523E02983BF -:102140009B838A832093E9008FEF06C095ED9A95D3 -:10215000F1F70000882329F09091E800815095FF65 -:10216000F5CF8091E80085FF0DC040E050E063E0CE -:1021700070E0CE0101960E947E148091E8008E7777 -:102180008093E8000F900F900F90DF91CF9108950A -:10219000CF93DF9300D01F92CDB7DEB72091FA0323 -:1021A000243029F522E029839B838A8383E080936E -:1021B000E9008FEF06C095ED9A95F1F700008823AE -:1021C00029F09091E800815095FFF5CF8091E800CB -:1021D00085FF0DC040E050E063E070E0CE01019665 -:1021E0000E947E148091E8008E778093E8000F9023 -:1021F0000F900F90DF91CF9108952091FA03243032 -:10220000F9F422E02093E9002FEF06C035ED3A956E -:10221000F1F70000222329F03091E800215035FF2A -:10222000F5CF2091E80025FF0BC040E050E065E0CD -:1022300070E00E947E148091E8008E778093E80021 -:102240000895CF93DF93EC018091FA03843041F538 -:1022500081E08093E9008FEF06C095ED9A95F1F744 -:102260000000882329F09091E800815095FFF5CF78 -:102270008091E80085FF14C040E050E068E070E025 -:10228000CE010E947E148091E8008E778093E80052 -:1022900088E0FE01A9E8B2E001900D928A95E1F78D -:1022A000DF91CF910895BF92CF92DF92EF92FF928C -:1022B0000F931F93CF93DF937C01B62EE90100E0CB -:1022C00010E0C42ED12C0BC04991202F2B0D2F775D -:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5 -:1022E0001D0594F3DF91CF911F910F91FF90EF9017 -:1022F000DF90CF90BF90089570E06F5F7F4F6F7059 -:1023000077270C94B4190F931F93CF93C42F633086 -:10231000710509F04AC0842F807F803849F18039E7 -:1023200009F043C0622F6F7770E080E090E00E9478 -:10233000AC3120E030E040E451E40E9411319B01D7 -:10234000AC0160E070E080E090E40E94C3320F775F -:1023500010E023E0159507952A95E1F72DEC3CEC6C -:1023600042E053E40E946032A8010E94BB0F1DC0EE -:10237000622F6F7770E080E090E00E94AC3120E047 -:1023800030E040E451E40E9411319B01AC0160E077 -:1023900070E080E090E40E94C3322DEC3CEC42E01F -:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1 -:1023B0001F910F910C94BE0CCF911F910F91089516 -:1023C0000F931F93CF93DF93CDB7DEB727970FB649 -:1023D000F894DEBF0FBECDBF8C0114C08A810E946D -:1023E0008E199A819D839B819E839C819F838111FD -:1023F0001EC089818430B1F08730A1F08630A1F011 -:102400008530A1F0BE016F5F7F4F84E791E00E94AD -:10241000FB1C8111E3CF84E791E00E94EC1C0E9439 -:1024200067190DC083E003C082E001C081E0AE0106 -:102430004B5F5F4F682FC8010E94211AE3CF279698 -:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5 -:102450000F910895EF92FF920F93CF93DF9300D0E7 -:1024600000D000D0CDB7DEB77B014A832B830C832D -:10247000842F2E834D830E948E192E814D818111D0 -:102480001BC082E0E816F10479F083E0E816F1045D -:1024900021F0EA94EF2821F50BC0073F11F487E003 -:1024A00001C084E089830BC0273FD9F786E0FACFCB -:1024B000473FB9F785E0F6CF42954F704983BE019B -:1024C0006F5F7F4F84E791E00E94B11C84E791E049 -:1024D0000E94CF1C84E791E00E94EC1C0E946719C7 -:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 -:1024F0000F91FF90EF9008958091F903811109C029 -:102500000E946D160E94CA168091E200846080933A -:10251000E20008951092F9030895089508950C9427 -:102520006129809192028F5F8093920262E30E9400 -:102530002834911135C01092920280919302882321 -:1025400079F18091FA03843049F58091E9008F7028 -:102550009091EC0090FF02C090E801C090E0982BB1 -:1025600084E08093E9008091EB0080FF14C08091AB -:10257000EE0087FD03C00FC01092F1008091E800CB -:1025800085FDFACF8091E80080FF05C08091E800CA -:102590008E778093E8009F709093E90010929302E9 -:1025A000089542E061EC81E00E94E31542E061ECB5 -:1025B00082E00E94E31542E061EC83E00E94E315B3 -:1025C00042E261EC84E00E94E31542E361E885E0C9 -:1025D0000E94E31542E360E886E00C94E3158091E5 -:1025E000FC03833009F454C030F4813071F0823040 -:1025F00009F0A5C08CC08A3009F479C08B3009F489 -:102600005FC0893009F09BC020C08091FB03813AF4 -:1026100009F095C08091E800877F8093E800809161 -:10262000FF0390910004892B21F060E080E090E0AE -:1026300003C068E089E892E070E00E941C15809178 -:10264000E8008B778093E80008958091FB03813246 -:1026500009F075C08091FF0390910004892B09F067 -:102660006EC08091E800877F8093E80005C080916C -:10267000FA03882309F463C08091E80082FFF7CF52 -:102680008091F100809391028091E8008B7753C094 -:102690008091FB03813A09F052C08091FF03909131 -:1026A0000004892B09F04BC08091E800877F80935C -:1026B000E8008091E80080FFFCCF80918A0136C05D -:1026C0008091FB038132D9F58091FF039091000442 -:1026D000892BA9F58091E800877F8093E8000E940C -:1026E0001A168091FD0380938A010C9456238091E1 -:1026F000FB03813221F58091E800877F8093E80019 -:102700000E941A168091FE0380938802089580919A -:10271000FB03813AA1F48091E800877F8093E80071 -:102720008091E80080FFFCCF809188028093F100C7 -:102730008091E8008E778093E8000C941A16089533 -:1027400083E093E00E94F0196AE272E183E093E093 -:102750000E94461A60EE71E183E093E00E944A1AFB -:1027600084B7877F84BF88E10FB6F89480936000B8 -:10277000109260000FBE90E080E80FB6F89480934E -:102780006100909361000FBE0E94741D0E946D163F -:102790000E94CA168091E20084608093E2007894DF -:1027A00063E871E183E093E00E94EC196CE771E16A -:1027B00083E093E00E94E41963E571E183E093E034 -:1027C0000E94E8190E940F0E0E9467190E94761D50 -:1027D00080E891E00E94201D0BC00E941E2980917C -:1027E000F803882329F00E94492981110E94681466 -:1027F0008091FA03853089F383E093E00E94F91B0E -:102800000E94801DF5CF292F332723303105B1F0E9 -:102810004CF42130310509F44DC02230310509F066 -:102820004EC007C02132310541F12232310591F10C -:1028300046C0E0EDF0E084EE93E045C0992781309A -:10284000910569F08230910589F0892B09F037C034 -:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0 -:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2 -:10287000E491F0E086E893E026C0643000F5E62FAE -:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF -:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1 -:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA -:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085 -:1028C000F0E080E090E0DA018D939C93CF010895D1 -:1028D00080E189BD82E189BD09B400FEFDCF809110 -:1028E000D8008F7D8093D8008091E0008260809333 -:1028F000E0008091E00081FDFCCF0895BF92CF926F -:10290000DF92EF92FF920F931F93CF93DF937C019F -:102910008B01EA010E943B16B82E811133C020972B -:1029200031F028813981021B130BE20EF31EC12CFA -:10293000D12C23C08091E80085FD15C08091E8006E -:102940008E778093E800209749F0888199818C0DDB -:102950009D1D9983888325E0B22E14C00E943B16EA -:10296000882359F00EC0F70181917F018093F10017 -:1029700001501109FFEFCF1ADF0A01151105D1F639 -:1029800001C0B82E8B2DDF91CF911F910F91FF9039 -:10299000EF90DF90CF90BF900895BF92CF92DF92DB -:1029A000EF92FF920F931F93CF93DF937C018B01E4 -:1029B000EA010E943B16B82E811133C0209731F0F6 -:1029C00028813981021B130BE20EF31EC12CD12C7E -:1029D00023C08091E80085FD15C08091E8008B77C9 -:1029E0008093E800209749F0888199818C0D9D1D86 -:1029F0009983888345E0B42E14C00E943B16882337 -:102A000059F00EC08091F100F70181937F010150D0 -:102A10001109FFEFCF1ADF0A01151105D1F601C028 -:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA -:102A3000DF90CF90BF90089540910104509102041F -:102A40004617570748F06115710539F44091E800C1 -:102A50004E774093E80001C0BA01FC0140E033C06A -:102A60008091FA03882309F444C0853009F443C0F7 -:102A70008091E80083FD41C08091E80082FD33C071 -:102A80008091E80080FF1FC09091F3008091F200D8 -:102A9000392F20E0A901482BCA0106C0419140937B -:102AA000F1006150710901966115710519F08830C6 -:102AB0009105A0F341E0089709F040E08091E8001B -:102AC0008E778093E8006115710551F64111C8CFEA -:102AD0000AC08091FA03882361F0853061F080910B -:102AE000E80083FD0AC08091E80082FFF2CF80E019 -:102AF000089582E0089583E0089581E0089540916B -:102B00000104509102044617570748F061157105FA -:102B100039F44091E8004E774093E80001C0BA01D3 -:102B2000FC0140E034C08091FA03882309F445C0D9 -:102B3000853009F444C08091E80083FD42C0809153 -:102B4000E80082FD34C08091E80080FF20C09091B1 -:102B5000F3008091F200392F20E0A901482BCA012F -:102B600007C044914093F10031966150710901967C -:102B70006115710519F08830910598F341E00897C7 -:102B800009F040E08091E8008E778093E8006115BD -:102B9000710549F64111C7CF0AC08091FA03882315 -:102BA00061F0853061F08091E80083FD0AC080917A -:102BB000E80082FFF2CF80E0089582E0089583E08C -:102BC000089581E00895982F2CC09093E9009817FC -:102BD00039F07091EC002091ED005091F00003C0AD -:102BE000242F762F50E021FD02C09F5F1AC0309144 -:102BF000EB003E7F3093EB003091ED003D7F309352 -:102C0000ED003091EB0031603093EB007093EC00FD -:102C10002093ED005093F0002091EE0027FDE5CFCA -:102C200007C0973090F28F708093E90081E008959B -:102C300080E008958091FB0387FD05C08091E80046 -:102C400080FF0EC012C08091E80082FD05C0809117 -:102C5000FA038111F8CF08958091E8008B7708C0BE -:102C60008091FA038111EACF08958091E8008E7770 -:102C70008093E80008958091E4009091E50045E696 -:102C80002091EC0020FD1FC023C02091FA032223D5 -:102C900091F0253091F02091EB0025FD10C020919E -:102CA000E4003091E5002817390751F34150C9017C -:102CB00039F784E0089582E0089583E0089581E083 -:102CC000089580E008952091E80020FFDECFF9CF3D -:102CD0002091E80022FFD9CFF4CF0E94DB160E949A -:102CE000E316E0EEF0E0808181608083E8EDF0E0C3 -:102CF00080818F77808319BCA7EDB0E08C918E7FA7 -:102D00008C9380818F7E80831092F90308950F93B6 -:102D10001F93CF93DF930E94DB160E94E316C8ED4A -:102D2000D0E088818F7788838881806888838881D4 -:102D30008F7D888319BC1092FA031092F6031092CB -:102D4000F8031092F70300EE10E0F80180818B7F0A -:102D5000808388818160888342E060E080E00E9417 -:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B -:102D7000808181608083808188608083F801808188 -:102D80008E7F8083888180618883DF91CF911F91BE -:102D90000F910895E8EDF0E080818F7E8083E7ED6C -:102DA000F0E080818160808384E082BF81E0809355 -:102DB000F9030C948716E8EDF0E080818E7F808324 -:102DC0001092E20008951092DA001092E100089546 -:102DD0001F920F920FB60F9211242F933F934F9390 -:102DE0005F936F937F938F939F93AF93BF93EF9373 -:102DF000FF938091E10082FF0BC08091E20082FF8F -:102E000007C08091E1008B7F8093E1000E949112C6 -:102E10008091DA0080FF1FC08091D80080FF1BC026 -:102E20008091DA008E7F8093DA008091D90080FF54 -:102E30000DC080E189BD82E189BD09B400FEFDCFEE -:102E400081E08093FA030E947C1205C019BC1092A5 -:102E5000FA030E948A128091E10080FF19C08091DC -:102E6000E20080FF15C08091E2008E7F8093E20037 -:102E70008091E20080618093E2008091D8008062BE -:102E80008093D80019BC85E08093FA030E948E12CB -:102E90008091E10084FF30C08091E20084FF2CC06B -:102EA00080E189BD82E189BD09B400FEFDCF80913A -:102EB000D8008F7D8093D8008091E1008F7E809331 -:102EC000E1008091E2008F7E8093E2008091E20039 -:102ED00081608093E2008091F603882311F084E002 -:102EE00007C08091E30087FF02C083E001C081E05A -:102EF0008093FA030E948F128091E10083FF29C022 -:102F00008091E20083FF25C08091E100877F80935C -:102F1000E10082E08093FA031092F6038091E100D1 -:102F20008E7F8093E1008091E2008E7F8093E200AB -:102F30008091E20080618093E20042E060E080E006 -:102F40000E94E3158091F00088608093F0000E9459 -:102F50008D12FF91EF91BF91AF919F918F917F91D2 -:102F60006F915F914F913F912F910F900FBE0F90F6 -:102F70001F9018951F920F920FB60F9211242F9346 -:102F80003F934F935F936F937F938F939F93AF93F1 -:102F9000BF93CF93EF93FF938091E9008F7090914F -:102FA000EC0090FF02C090E801C090E0C92FC82B50 -:102FB0001092E9008091F000877F8093F000789470 -:102FC0000E94FE171092E9008091F00088608093C3 -:102FD000F000CF70C093E900FF91EF91CF91BF91C6 -:102FE000AF919F918F917F916F915F914F913F91A1 -:102FF0002F910F900FBE0F901F9018951F93CF9396 -:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37 -:10301000CDBFEBEFF3E08091F100819324E0E3304A -:10302000F207C9F70E94EF128091E80083FF37C1D1 -:103030008091FB039091FC03953009F488C038F42B -:103040009130B1F170F0933009F029C131C098305E -:1030500009F4F8C0993009F404C1963009F01FC191 -:103060009DC0803821F0823809F019C108C08091D4 -:10307000F7039091F803992389F082600FC0809143 -:10308000FF03909100048F7099278093E90080914D -:10309000EB0085FB882780F91092E9009091E80009 -:1030A000977F9093E8008093F1001092F100D5C0D3 -:1030B000882319F0823009F0F2C08F7121F082303C -:1030C00009F0EDC00BC08091FD03813009F0E7C02D -:1030D000933009F080E08093F8032FC08091FD03C6 -:1030E00081112BC08091FF03909100048F7099276C -:1030F000009709F4D4C08093E9002091EB0020FFF1 -:103100001CC02091FC03233021F48091EB008062ED -:1031100012C09091EB0090619093EB0021E030E0C1 -:1031200001C0220F8A95EAF72093EA001092EA0084 -:103130008091EB0088608093EB001092E900809111 -:10314000E800877F8093E8000E941A16A8C08111CA -:10315000A6C08091FD039091FE038F779927182FC9 -:103160009091E3009078982B9093E3008091E80091 -:10317000877F8093E8000E941A168091E80080FF04 -:10318000FCCF8091E30080688093E300112311F06D -:1031900083E001C082E08093FA0381C080588230CE -:1031A00008F07DC08091FD039091FE038C3D23E0EB -:1031B000920779F583E08A838AE289834FB7F8948E -:1031C000DE01139620E03EE051E2E32FF0E0509361 -:1031D0005700E49120FF03C0E295EF703F5FEF706E -:1031E0008E2F90E0EA3010F0C79601C0C0968D9304 -:1031F0009D932F5F243149F74FBF8091E800877F6F -:103200008093E8006AE270E0CE0101960E941C15EE -:1032100013C0AE01455D5F4F6091FF030E94031430 -:103220000097E9F12091E800277F2093E800BC0196 -:103230008BA59CA50E947F158091E8008B778093D9 -:10324000E8002DC0803859F58091E800877F809391 -:10325000E8008091F6038093F1008091E8008E777A -:1032600071CF81111CC09091FD039230C0F4809108 -:10327000E800877F8093E8009093F6030E941A1677 -:103280008091F603811104C08091E30087FF02C0A2 -:1032900084E001C081E08093FA030E94D112809102 -:1032A000E80083FF0AC08091E800877F8093E800F0 -:1032B0008091EB0080628093EB00AC960FB6F8949F -:1032C000DEBF0FBECDBFDF91CF911F910895CF9389 -:1032D0008091FA038823B1F08091E9008F7090917A -:1032E000EC0090FF02C090E801C090E0C92FC82B0D -:1032F0001092E9008091E80083FD0E94FE17CF70D4 -:10330000C093E900CF910895881F8827881F0895EA -:1033100091E0883F08F490E0892F0895982F907FDE -:10332000903B99F038F4903981F0903A71F09038F0 -:10333000C9F40BC0903DA1F018F4903C99F410C072 -:10334000903E19F0903F71F402C083E00895E82F99 -:10335000E15FEF3038F4F0E0E15FFD4F80810895E8 -:1033600082E0089580E008950F932F774F776F7074 -:10337000606BDC01ED91FC91022F242F462F63E05E -:1033800070E009950F9108950F932F774F776F7025 -:103390006069DC01ED91FC91022F242F462F63E040 -:1033A00070E009950F9108950F932F774F776F7005 -:1033B0006068DC01ED91FC91022F242F462F63E021 -:1033C00070E009950F910895FC017383628308955D -:1033D000FC01738F628F0895FC01758F648F0895CF -:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A -:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8 -:103400001D821C821F821E82198618861B861A86C0 -:103410001D861C861F861E86198A188A1B8A1A8A90 -:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60 -:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199 -:103440000895CF92DF92FF920F931F93CF93DF9354 -:103450001F92CDB7DEB7F62E6A018C0108511F4FBF -:1034600008C0F60161916F01C80149830E94341CB4 -:1034700049818C2D841B8F15A0F30F90DF91CF9184 -:103480001F910F91FF90DF90CF900895FC01718301 -:1034900060830895FC0171A360A30895AF92BF9269 -:1034A000CF92DF92EF92FF920F931F93CF93DF9310 -:1034B00000D01F92CDB7DEB77C016B01142FB22E66 -:1034C000A02EDC0195968C9195978430F1F45A9654 -:1034D000ED91FC915B97309709F4D8C0CB0101972F -:1034E00063E070E00E943434DB01AA0FBB1FA60F1B -:1034F000B71F49832A830B834C2D4A1B9E012F5FE4 -:103500003F4FBD01C7010995B1C06230710509F493 -:1035100053C06330710529F06130710509F09CC01A -:1035200083C0842F807F803A01F130F48038B9F075 -:10353000803909F0ABC00DC0803EE9F0803F09F151 -:10354000803B09F0A3C0D7011296ED91FC9113972F -:1035500023C0D7011496ED91FC9115971DC0D7019A -:103560001696ED91FC91179717C0D7011896ED911B -:10357000FC91199711C0D7011A96ED91FC911B97F8 -:103580000BC0423F09F082C0D7011C96ED91FC911F -:103590001D97309731F47AC0309709F477C0123F05 -:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C -:1035B0004B2DC70109955AC0842F807F803D59F05B -:1035C000803F79F0803C09F061C0D7011E96ED91F3 -:1035D000FC911F9719C0D7015096ED91FC9151971E -:1035E00013C0433F31F4D7015296ED91FC915397AC -:1035F00008C0413F09F04AC0D7015496ED91FC91B3 -:103600005597309741F442C0309709F43FC0133FBB -:1036100011F0113F19F44B2D612F03C0612F6F7012 -:103620004B2DC701099522C0842F0E948819882339 -:1036300031F0D7015696ED91FC91579707C0163F90 -:1036400029F5D7015896ED91FC9159973097F1F0F3 -:10365000612FC70109950AC064307105A8F416C02E -:103660000A2D2B2D412FB601C7010995D7015E9672 -:10367000ED91FC915F97309789F00A2D2B2D412F0A -:10368000B601C70109950AC0C12CD12CD7015C969F -:10369000ED91FC915D97309719F7E8CF0F900F905F -:1036A0000F90DF91CF911F910F91FF90EF90DF90DE -:1036B000CF90BF90AF900895EF92FF920F931F931A -:1036C000CF93DF93EC01162F862F0E948819882351 -:1036D00069F0FDA081E08DA300E020E0412F61E0D2 -:1036E00070E0CE010E944E1AFDA27CC0812F0E9484 -:1036F00084194DA1882309F440C0443029F01AA34D -:1037000021E030E03FA32EA3812F0E948E1981304B -:1037100031F070F0823051F0833059F507C08DA33D -:1037200000E020E0412F61E070E01EC08DA35AC090 -:10373000103F19F0173FE9F404C084E08DA31AA3E9 -:103740003FC02EA13FA1C90163E070E00E94343464 -:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8 -:103760006EA30CA12BA14AA1CE010E944E1A1DA24C -:1037700039C01DA21FA21EA235C0442399F12EA15B -:103780003FA1C90163E070E00E9434347C01FE0176 -:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC -:1037A0008130910591F082E0E816F104D9F40CA182 -:1037B0002BA14AA1CE010E944E1A8DA1843091F016 -:1037C00081E090E09FA38EA30DC0423059F400E049 -:1037D0002BA14AA1CE010E944E1A8DA1843011F076 -:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A -:1037F0000895CF92DF92EF92FF920F931F93CF9392 -:10380000DF93EC01E8A1F9A1309709F009958E0149 -:1038100008511F4FC8010E94661CE12CF12CC82ED4 -:10382000D12C0FC060E0C8010E947A1C682FCE0125 -:103830000E945C1B61E0C8010E948B1C8FEFE81A9C -:10384000F80AEC14FD0470F3DF91CF911F910F91F2 -:10385000FF90EF90DF90CF900895FC014283748336 -:1038600063831182108208950F931F93CF93DF9388 -:10387000EC01062F0E94AC1C182F298130E0C901F1 -:1038800001966A8170E00E944834488150E08417B4 -:10389000950729F4812F0E94AF1C80E012C0EB81B4 -:1038A000FC81E20FF31F00832981822F90E00196B3 -:1038B0006A8170E00E9448348983812F0E94AF1C86 -:1038C00081E0DF91CF911F910F910895CF93DF9306 -:1038D000EC010E94AC1C29819881291710F0C22F9D -:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E -:1038F000CF910895FC012081862F90E0820F911DC9 -:10390000628170E00E9448340380F481E02DE80F6A -:10391000F91F808108950F931F93CF93DF931F9218 -:10392000CDB7DEB78C0169830E94AC1C482FF8012B -:1039300080816981262F30E0280F311D6281C90105 -:1039400070E00E9448348083842F0F90DF91CF91E4 -:103950001F910F910C94AF1C8FB7F89408958FBFEF -:103960000895FC01CB012091FA032430B1F42181A8 -:103970002F702093E90040E050E064E070E00E9486 -:103980007E1481110BC09091E80095FD07C09091C5 -:10399000E8009E779093E800089582E008952091D2 -:1039A000FA032430A9F4FC0181818F708093E9002F -:1039B0003091F3002091F200932F80E0822B892B2D -:1039C00049F08091E8008E778093E8000C943B16D4 -:1039D00082E0089580E008952091FA03243051F4A4 -:1039E000FC0121812F702093E9002091E80020FD47 -:1039F0000C94CF1C0895FC01CB012091FA032430D4 -:103A000011F080E0089526812F702093E900209125 -:103A1000E80022FFF6CF2091E80025FFF2CF40E03A -:103A200050E064E070E00E94CD148091E80085FDD4 -:103A300005C08091E8008B778093E80081E00895CD -:103A400090939502809394020895E0919402F091EE -:103A50009502309721F00190F081E02D099480E0EB -:103A60000895E0919402F0919502309721F0028040 -:103A7000F381E02D09940895E0919402F09195026C -:103A8000309721F00480F581E02D0994089520916C -:103A90009602309197028217930771F090939702E4 -:103AA00080939602E0919402F0919502309721F074 -:103AB0000680F781E02D09940895209198023091B5 -:103AC00099028217930771F090939902809398025C -:103AD000E0919402F0919502309721F00084F185F5 -:103AE000E02D0994089508950C94731D0E94952962 -:103AF0000E94AD060E94692A0C9411300C94E705CF -:103B00005F926F927F928F929F92AF92BF92CF926D -:103B1000DF92EF92FF920F931F93CF93DF93CDB776 -:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456 -:103B3000BD079AE9C92E92E0D92E00E010E0AA2430 -:103B4000A394B12C502E802F0E9411093C01F60144 -:103B5000E190F1906F01E826F926E114F10431F4C7 -:103B60000F5F1F4F0530110569F73AC08091F002D1 -:103B700081FD0E941A0920E030E04501022E02C0BA -:103B8000880C991C0A94E2F7C4018E219F21892B8D -:103B900009F12E835F826820792081E0672809F48B -:103BA00080E088870E949E298160782F9A87898784 -:103BB0004E815F8168858A850E94391EF801EE0F6B -:103BC000FF1FE656FD4F80819181882599259183BD -:103BD000808316C02F5F3F4F2C30310571F6C0CF68 -:103BE0008FEF89838A831B820E949E298160782FB0 -:103BF0009D838C8349815A816B818D810E94391EFE -:103C00000E94562D1091A4020E94251D1817D9F06C -:103C10000E94251D8093A4022A960FB6F894DEBF59 -:103C20000FBECDBFDF91CF911F910F91FF90EF900D -:103C3000DF90CF90BF90AF909F908F907F906F90CC -:103C40005F900C947E1D2A960FB6F894DEBF0FBECF -:103C5000CDBFDF91CF911F910F91FF90EF90DF903B -:103C6000CF90BF90AF909F908F907F906F905F901C -:103C70000895CF93DF93CDB7DEB72B970FB6F894A7 -:103C8000DEBF0FBECDBF4F83588769877A878B878A -:103C9000DE01119686E0FD0111928A95E9F785E033 -:103CA000FE01379601900D928A95E1F749815A817C -:103CB0006B817C818D819E810E9415262B960FB68B -:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3 -:103CD000C82F882309F4C1C0823859F40E94251DD9 -:103CE00081FDBBC089E30E947C280E94F82889E3FB -:103CF0000CC0833879F40E94251D80FDAEC083E599 -:103D00000E947C280E94F82883E50E949E28CF917B -:103D10000C94F828843859F40E94251D82FD9DC01A -:103D200087E40E947C280E94F82887E4EECF845024 -:103D3000813A48F48C2F0E94732F81118EC08C2FF2 -:103D40000E947C28E4CF8C2F805E883050F4C770AE -:103D500081E090E001C0880FCA95EAF70E94BF2871 -:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD -:103D700031F482E890E005C081E890E002C083E879 -:103D800090E0CF910C94471D8C2F885A833108F016 -:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B -:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB -:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B -:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9 -:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF -:103DE00092E038C082EE90E035C089EE90E032C0BB -:103DF0008AEE90E02FC085EB90E02CC086EB90E03F -:103E000029C087EB90E026C08CEC90E023C08DECBD -:103E100090E020C083E891E01DC08AE891E01AC0DC -:103E200082E991E017C084E991E014C081E292E058 -:103E300011C083E292E00EC084E292E00BC085E202 -:103E400092E008C086E292E005C087E292E002C0FC -:103E500080E090E0CF910C945D1DCF910895882370 -:103E600009F44DC0823859F40E94251D81FF47C0D6 -:103E700089E30E947C280E94F82889E30CC08338DB -:103E800071F40E94251D80FF3AC083E50E947C28C2 -:103E90000E94F82883E50E949E280C94F828843814 -:103EA00059F40E94251D82FF2AC087E40E947C28C5 -:103EB0000E94F82887E4EFCF982F9450913A08F4A5 -:103EC000EACF982F905E983058F4282F277081E021 -:103ED00090E001C0880F2A95EAF70E94C528DDCF3F -:103EE000982F955A933020F480E090E00C94471D71 -:103EF000885A833120F480E090E00C945D1D089591 -:103F0000882321F00E94BF280C94F8280895882364 -:103F100021F00E94C5280C94F8280895BF92CF92F2 -:103F2000DF92EF92FF920F931F93CF93DF93CDB762 -:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A -:103F400085E0F801DE01119601900D928A95E1F766 -:103F5000F80130812181F280558152955F70838113 -:103F60009481892B39F02F3F41F481E090E03F3F6D -:103F700031F003C081E090E002C080E090E080FD7D -:103F800073C339832A8389819A815E830E94392889 -:103F9000B92E8F830E9438280E9460272B2D2295EE -:103FA0002F7030E05E816F812530310509F4E6C065 -:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA -:103FC0008F70223031050CF045C017C02C30310500 -:103FD0004CF42A3031050CF0E7C12830310509F0E6 -:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6 -:103FF0002F30310509F038C323C3182F411101C0F8 -:1040000002C01295107FFF2059F0112309F46BC2F2 -:10401000812F6F830E94CF280E94F8286F8163C28E -:10402000862F0E942F1F112309F41EC3812F0E9487 -:10403000D52827960FB6F894DEBF0FBECDBFDF910F -:10404000CF911F910F91FF90EF90DF90CF90BF9095 -:104050000C94F828403211F08295807F662319F085 -:10406000613071F523C0FF20B1F0511101C032C0A1 -:10407000513081F527960FB6F894DEBF0FBECDBF45 -:10408000DF91CF911F910F91FF90EF90DF90CF9034 -:10409000BF900C94DF28511101C003C0513009F4C6 -:1040A000E3C28E830E94E2288E819AC1FF2021F014 -:1040B000563008F0D9C20EC0553008F0D5C290C1B4 -:1040C000FF20C9F0552331F0F801958190FF0BC214 -:1040D0009F70958327960FB6F894DEBF0FBECDBFB5 -:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 -:1040F000BF900C94801F552309F472C109C22B2D67 -:1041000026952695237030E02115310529F02130C0 -:10411000310509F0A9C219C0FF2021F0862F9B2D7F -:10412000937002C080E090E027960FB6F894DEBF4F -:104130000FBECDBFDF91CF911F910F91FF90EF90F8 -:10414000DF90CF90BF900C94471DFF2021F0862F69 -:104150009B2D937002C080E090E027960FB6F894F4 -:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA -:10417000EF90DF90CF90BF900C945D1D862FFF20B5 -:1041800019F00E945C2C02C00E94C42C27960FB626 -:10419000F894DEBF0FBECDBFDF91CF911F910F917D -:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14 -:1041B000837009F079C0F11057C2262F22952695F9 -:1041C0002770220F220F862F8F70C82ED12CE12C42 -:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A -:1041E000D2F764FF10C06FE070E080E090E004C0A0 -:1041F000660F771F881F991F2A95D2F760957095D3 -:104200008095909503C060E070E0CB012B2D269542 -:1042100026952370422F50E042305105D9F04330AB -:10422000510569F16C297D298E299F29413051055D -:1042300051F127960FB6F894DEBF0FBECDBFDF91C8 -:10424000CF911F910F91FF90EF90DF90CF90BF9093 -:104250000C9475276C297D298E299F2927960FB6E6 -:10426000F894DEBF0FBECDBFDF91CF911F910F91AC -:10427000FF90EF90DF90CF90BF900C9487270E9423 -:104280007527C701B60127960FB6F894DEBF0FBE9B -:10429000CDBFDF91CF911F910F91FF90EF90DF90F5 -:1042A000CF90BF900C946327FF2019F08B2D817065 -:1042B00001C08695882309F4D7C1262F229526951B -:1042C0002770220F220F862F8F70C82ED12CE12C41 -:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439 -:1042E000D2F764FF10C06FE070E080E090E004C09F -:1042F000660F771F881F991F2A95D2F760957095D2 -:104300008095909503C060E070E0CB012B2D269541 -:1043100026952370422F50E042305105D9F04330AA -:10432000510569F16C297D298E299F29413051055C -:1043300051F127960FB6F894DEBF0FBECDBFDF91C7 -:10434000CF911F910F91FF90EF90DF90CF90BF9092 -:104350000C9414286C297D298E299F2927960FB645 -:10436000F894DEBF0FBECDBFDF91CF911F910F91AB -:10437000FF90EF90DF90CF90BF900C9426280E9482 -:104380001428C701B60127960FB6F894DEBF0FBEFA -:10439000CDBFDF91CF911F910F91FF90EF90DF90F4 -:1043A000CF90BF900C940228603F59F120F4603EFA -:1043B00008F494C008C0623F09F467C0F0F1633F9D -:1043C00009F08CC065C0162F1F708B2D8F71FF20D8 -:1043D00021F00E94AD27812F7DCE0E94C827812F1A -:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9 -:1043F0001F910F91FF90EF90DF90CF90BF900C94A2 -:10440000871FFF20B1F0553008F02EC18B2D8F7122 -:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8 -:104420001F910F91FF90EF90DF90CF90BF900C9471 -:10443000E727563008F018C1E9CFFF2099F08B2DFF -:104440008F7127960FB6F894DEBF0FBECDBFDF91F8 -:10445000CF911F910F91FF90EF90DF90CF90BF9081 -:104460000C94AD278B2D8F7127960FB6F894DEBF75 -:104470000FBECDBFDF91CF911F910F91FF90EF90B5 -:10448000DF90CF90BF900C94C827F110EBCFD7CF1F -:10449000FF2099F08B2D8F7127960FB6F894DEBF11 -:1044A0000FBECDBFDF91CF911F910F91FF90EF9085 -:1044B000DF90CF90BF900C949E2727960FB6F8946C -:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047 -:1044D000EF90DF90CF90BF900C949927FF20A9F028 -:1044E000552309F4ACCF862F27960FB6F894DEBF7C -:1044F0000FBECDBFDF91CF911F910F91FF90EF9035 -:10450000DF90CF90BF900C94671E552309F4AACF7B -:10451000862F27960FB6F894DEBF0FBECDBFDF9172 -:10452000CF911F910F91FF90EF90DF90CF90BF90B0 -:104530000C942F1F4B2D4F70C8010E941A03279611 -:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4 -:104550000F91FF90EF90DF90CF90BF900C94CB26FF -:10456000F11082C09B2D9F70492F50E042305105C1 -:1045700099F144F44115510569F04130510509F0B4 -:1045800073C019C043305105C1F14430510509F0E1 -:104590006BC044C027960FB6F894DEBF0FBECDBFE8 -:1045A000DF91CF911F910F91FF90EF90DF90CF900F -:1045B000BF900C94223027960FB6F894DEBF0FBE42 -:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2 -:1045D000CF90BF900C94393027960FB6F894DEBF79 -:1045E0000FBECDBFDF91CF911F910F91FF90EF9044 -:1045F000DF90CF90BF900C94553027960FB6F8946B -:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 -:10461000EF90DF90CF90BF900C946830862F279654 -:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3 -:104630000F91FF90EF90DF90CF90BF900C948C3053 -:104640004B2D4F70C80127960FB6F894DEBF0FBEF2 -:10465000CDBFDF91CF911F910F91FF90EF90DF9031 -:10466000CF90BF900C941B0927960FB6F894DEBF2D -:104670000FBECDBFDF91CF911F910F91FF90EF90B3 -:10468000DF90CF90BF9008950E94DC280E94B1284F -:104690000E94F8280E94F72D0E944B2D80E090E0A8 -:1046A0000E94471D80E090E00C945D1D0E94CC2884 -:1046B0000C9444230E943928292F22952F7030E032 -:1046C0002C3031054CF42A3031056CF4225031097C -:1046D0002230310590F407C02C30310551F02F30D5 -:1046E000310559F406C0803E10F0803F31F481E07E -:1046F000089593FB882780F9089580E00895CF936B -:10470000DF9300D000D01F92CDB7DEB70F900F908F -:104710000F900F900F90DF91CF910895CF93DF937B -:1047200000D000D000D0CDB7DEB726960FB6F894F3 -:10473000DEBF0FBECDBFDF91CF9108951F93CF9302 -:10474000DF93C091DB0216E012C0D0E01C9FF001A5 -:104750001D9FF00D1124E555FD4F4081518162816F -:104760007381848195810E948E232196C7708091E8 -:10477000DC02C813EACFDF91CF911F9108954091D9 -:10478000A5025091A6026091A7027091A8028091A3 -:10479000A9029091AA020C948E230F931F93CF939A -:1047A000DF938091AA0282958F7009F069C0809191 -:1047B000A702882309F464C0A091DB02D091DC0237 -:1047C000B091A502C091A6028091A8029091A90281 -:1047D00021E030E0BF3F11F020E030E0122FBC01BB -:1047E0006095709506E04AC0009721F0CF3F29F40C -:1047F000212F05C021E030E002C020E030E020FDA4 -:104800003BC04A2F50E0049FF001059FF00D11249A -:10481000E555FD4F2181C2132FC02081B2132CC05A -:104820002281211129C0238134812817390718F0EA -:10483000281B390B02C0260F371F283C3105E0F436 -:104840008091AA028F7080618093AA0286E0849F83 -:10485000F001859FF00D1124E055FD4F80818F7090 -:104860008061808385EA92E00E948E1FDF91CF9164 -:104870001F910F910C949E23AF5FA770AD13B4CF1F -:10488000DF91CF911F910F910895EF92FF920F93B7 -:104890001F93CF93DF93CDB7DEB762970FB6F8942F -:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695 -:1048B00001900D928A95E1F7D8014C9111965C9187 -:1048C000119712966C9112971396ED90FC90149795 -:1048D0007091A502E091A6028091A8029091A90290 -:1048E000009739F0EF3F41F421E030E07F3F31F0B5 -:1048F00003C021E030E002C020E030E020FD5CC1D8 -:104900002091A702222309F4F1C0E816F90628F045 -:104910009701281B390BC90104C0809590958E0D15 -:104920009F1D883C910508F098C08091AA02982F9D -:10493000907F09F064C0E51314C0741312C06111B4 -:1049400010C08F7080618093AA020E94BF2385EA05 -:1049500092E00E948E1F8091AA02D80115968C9336 -:1049600043C1EF2839F05F3F41F481E090E04F3FD1 -:1049700031F003C081E090E002C080E090E080FD73 -:1049800003C081E0862702C080E090E080FF2EC057 -:104990008091DB022091DC0236E013C090E0389F6A -:1049A000F001399FF00D1124E555FD4F718157132A -:1049B00006C07081471303C07281671317C0019648 -:1049C00087708213EBCF12C19F7059F0882309F4CE -:1049D0000BC107C09F7029F0F8019581907F09F401 -:1049E00003C1805E883008F4FFC0D2C0662309F49A -:1049F000FBC08091AA0281608093AA02F5C0E513F2 -:104A000008C0741306C0611104C0D80115968C93B8 -:104A10009DC04D875E878D859E856A8B0E945A2337 -:104A20006A89882309F4B4C0662309F4B1C02091CF -:104A3000AA02822F82958F7090E002970CF4C6C074 -:104A40008091A5029091A60298878F831986FB8694 -:104A5000EA862C87CE01079646C08091AA02982F3D -:104A6000907F59F47E2DF98AE88A89890E947F23F4 -:104A700085EA92E00E948E1F95C0E51311C0741361 -:104A80000FC061110DC0F8018583C8010E948E1FFF -:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F -:104AA0004D875E878D859E856A8B0E945A236A8911 -:104AB000882309F46DC0662309F46AC02091AA0214 -:104AC000822F82958F7090E002970CF47FC08091C6 -:104AD000A5029091A6029A8389831B82FD82EC82B3 -:104AE0002E83CE0101960E948E1F70C0E816F90633 -:104AF00028F09701281B390BC90104C080959095B7 -:104B00008E0D9F1D883C910508F046C0662309F470 -:104B10003FC0E51330C074132EC02091AA0220FDBF -:104B200021C0322F32953F70832F90E00097D1F053 -:104B3000D80115962C9315970F9741F0832F8F5F0F -:104B40008295807F2F70282B15962C93C8010E9488 -:104B50008E1F86E0F801A5EAB2E001900D928A95D9 -:104B6000E1F73EC086E0F801A5EAB2E001900D92BF -:104B70008A95E1F737C04D875E878D859E850E94B7 -:104B80005A23811123C08091AA0281608093AA02D6 -:104B9000C8010E948E1F26C07E2DF98AE88A898965 -:104BA0000E947F23E5EAF2E086E0DF011D928A950C -:104BB000E9F70E94BF2318C0662351F34D875E8733 -:104BC0008D859E850E945A23882311F386E0F80183 -:104BD000A5EAB2E001900D928A95E1F70E94CD23FB -:104BE0000E94BF2381E014C080E012C04D875E8721 -:104BF0008D859E850E943928292F22952F7030E0BF -:104C0000223031050CF4E0CE243031050CF6E2CE32 -:104C100062960FB6F894DEBF0FBECDBFDF91CF9185 -:104C20001F910F91FF90EF9008951F93CF93DF9303 -:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51 -:104C40004F83588769877A878B879C87CE01079621 -:104C50000E9445248823D9F02F8138858A859B8539 -:104C6000892B39F03F3F19F080E090E004C02F3FDE -:104C7000D9F781E090E0892B09F06DC04F8158850C -:104C800069857A858B859C850E948E2364C086E029 -:104C9000FE013796DE01119601900D928A95E1F79B -:104CA000FF81E8854A855B854115510539F0EF3F65 -:104CB00041F481E090E0FF3F31F003C081E090E0FB -:104CC00002C080E090E080FD46C02091DC0230E030 -:104CD000C9010196877099276091DB0270E0861701 -:104CE000970709F440C0F983EA835D834C8396E01B -:104CF000929FD001939FB00D1124A555BD4FFE0189 -:104D0000319601900D929A95E1F78093DC020E9412 -:104D10009E2321C0189FC001112485559D4F0E94DC -:104D20004524882371F1E091DB021E9FF0011124DC -:104D3000E555FD4F40815181628173818481958168 -:104D40000E948E238091DB0290E001968770992764 -:104D50008093DB0201C016E08091DB029091DC02BF -:104D60008913D8CF0EC00E9456231092DC021092F5 -:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1 -:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1 -:104D9000CF911F910895DF92EF92FF920F931F938F -:104DA000CF93DF93EC01009709F46EC0D12CEE2471 -:104DB000E394F12C8E010F5F1F4FFE018491843725 -:104DC00048F4843008F04CC0813071F0823009F032 -:104DD0005BC01EC0853709F43FC080F1982F9458FE -:104DE000903708F051C03FC02296F8018491982F67 -:104DF000905E983050F48770FE2D01C0FF0F8A95A9 -:104E0000EAF78F2F0E94CF2813C00E94671E2FC081 -:104E10002296F8018491982F905E983060F4877004 -:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B -:104E30000E94F8281CC00E942F1F19C02296F8015A -:104E4000049107C08FE99FE00197F1F700C00000CF -:104E500001500111F7CF0BC02296F801D49007C082 -:104E60000E94671E03C08F770E942F1FE8018D2DBF -:104E700007C08150EFE9FFE03197F1F700C0000073 -:104E8000882309F497CFF5CFDF91CF911F910F9130 -:104E9000FF90EF90DF9008956093E1027093E2023B -:104EA0008093E3029093E4020C9444236093DD0228 -:104EB0007093DE028093DF029093E0020C9444230F -:104EC00008950C944C270F931F930091E1021091C9 -:104ED000E2022091E3023091E402602B712B822BDD -:104EE000932B1F910F910C944C270F931F930091BC -:104EF000E1021091E2022091E3023091E40260238A -:104F00007123822393231F910F910C944C270F93AD -:104F10001F930091E1021091E2022091E30230918F -:104F2000E40260277127822793271F910F910C9429 -:104F30004C2760E070E0CB010C94562741E050E034 -:104F400060E070E004C0440F551F661F771F8A950C -:104F5000D2F7CB01BA010C94562741E050E060E053 -:104F600070E004C0440F551F661F771F8A95D2F763 -:104F70008091DD029091DE02A091DF02B091E0020B -:104F8000482B592B6A2B7B2BCB01BA010C9456274B -:104F900041E050E060E070E004C0440F551F661F20 -:104FA000771F8A95D2F740955095609570958091BE -:104FB000DD029091DE02A091DF02B091E002482371 -:104FC00059236A237B23CB01BA010C94562741E075 -:104FD00050E060E070E004C0440F551F661F771F6B -:104FE0008A95D2F78091DD029091DE02A091DF02D6 -:104FF000B091E002482759276A277B27CB01BA01E5 -:105000000C9456270F931F930091DD021091DE023E -:105010002091DF023091E002602B712B822B932BC9 -:105020001F910F910C9456270F931F930091DD024F -:105030001091DE022091DF023091E00260237123A3 -:10504000822393231F910F910C9456270F931F9344 -:105050000091DD021091DE022091DF023091E0022A -:1050600060277127822793271F910F910C94562751 -:105070000895CF92DF92EF92FF920F931F93CF93F9 -:10508000DF93EC01C090E102D090E202E090E302F5 -:10509000F090E4028091DD029091DE02A091DF02A7 -:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF -:1050B000B701A601002E04C07695679557954795D0 -:1050C0000A94D2F740FF08C0BE01802F0E947104ED -:1050D0008130910509F007C00150110948F7BE0160 -:1050E00080E00E947104DF91CF911F910F91FF909A -:1050F000EF90DF90CF90089540918B0150918C01FB -:1051000020E030E09FEFFA01E20FF31F62816817A1 -:10511000A1F09F3F19F4611101C0922F2F5F3F4F03 -:105120002630310581F707C0FA01E90FF11D97FD1F -:10513000FA95828308959F3FB9F7089540918B01B6 -:1051400050918C0120E030E0FA01E20FF31F9281D0 -:10515000981301C012822F5F3F4F26303105A1F70F -:10516000089581E090E0E0918B01F0918C01E80FCF -:10517000F91F1082019688309105A9F70895909142 -:10518000E502982B9093E502089580959091E502B1 -:1051900098239093E50208951092E5020895909166 -:1051A000E602982B9093E602089580959091E6028E -:1051B00098239093E60208951092E6020895809352 -:1051C000E70208951092E702089540918B015091F3 -:1051D0008C0120E030E080E0FA01E20FF31F9181C2 -:1051E00091118F5F2F5F3F4F27303105A9F7089549 -:1051F000E0918B01F0918C018091E5028083E09138 -:105200008B01F0918C0180819091E602892B808343 -:105210009091E702992361F0E0918B01F0918C016C -:105220008081892B80830E94E52881110E94E228D9 -:1052300080918B0190918C010C94311D8091FA0327 -:10524000843021F11092F10220E488E190E00FB661 -:10525000F894A895809360000FBE2093600080E0D2 -:105260000E94590383B7817F846083BF83B78160C5 -:1052700083BF7894889583B78E7F83BF88E10FB60C -:10528000F89480936000109260000FBE0895089516 -:105290000895CF9380E00E9459030E9447290E94FD -:1052A000BD070E944829C0E08C2F0E941109892B5C -:1052B00029F4CF5FC530C1F780E001C081E0CF9114 -:1052C00008950E94562380E00E9459030E941130E5 -:1052D0000E94251D0C94E7051F920F920FB60F92A6 -:1052E00011248F939F93AF93BF938091F10281110B -:1052F00013C08091F2029091F302A091F402B09158 -:10530000F5024196A11DB11D8093F2029093F30224 -:10531000A093F402B093F502BF91AF919F918F914A -:105320000F900FBE0F901F90189582E084BD93E000 -:1053300095BD9AEF97BD80936E0008958FB7F8944E -:105340004091F2025091F3026091F4027091F502E3 -:105350008FBFCA010895CF92DF92EF92FF920F9311 -:105360001F932FB7F8944091F2025091F30260918D -:10537000F4027091F5022FBF6A017B01EE24FF2435 -:105380008C0120E030E0C016D106E206F30620F0E2 -:105390009A01281B390B05C09C0120953095240FDC -:1053A000351FC9011F910F91FF90EF90DF90CF90B3 -:1053B00008951F920F920FB60F9211248F939F930F -:1053C000AF93BF938091F2029091F302A091F40207 -:1053D000B091F5020196A11DB11D8093F202909348 -:1053E000F302A093F402B093F502BF91AF919F91A5 -:1053F0008F910F900FBE0F901F9018950E946D1601 -:10540000F8942FEF87EA91E6215080409040E1F731 -:1054100000C0000087E090EBDC01809304049093CF -:105420000504A0930604B09307042CE088E190E003 -:105430000FB6F894A895809360000FBE209360008B -:10544000FFCFCF92DF92EF92FF920F931F93CF93F4 -:10545000DF93C82ED12C01E010E08D2D0E941109A0 -:105460007C01C0E0D0E098010C2E02C0220F331F57 -:105470000A94E2F72E213F21232B29F42196CC30E8 -:10548000D10589F708C06C2F7D2D80E00E944C0467 -:10549000C812F4CF06C0D39485E0D812DECF80E0E6 -:1054A00001C081E0DF91CF911F910F91FF90EF90AC -:1054B000DF90CF900895CF93C82F8CE20E94212ACD -:1054C000882321F08C2FCF910C94212A80E0CF915A -:1054D0000895CF930E94AC2B811102C00E948D2BA6 -:1054E000C5E608C00E94BD078FE39CE90197F1F76C -:1054F00000C00000C150B1F789E20E945B2A81110F -:105500000AC18AE20E945B2A81110E948D2B85E0EC -:105510000E945B2A81110E94FE290E94B72B809372 -:10552000F00287E00E945B2A882399F18BE10E94B8 -:105530005B2A882351F09091F00291FB882780F933 -:1055400021E0822780FB91F922C08EE00E945B2A35 -:10555000882351F09091F00292FB882780F921E096 -:10556000822780FB92F913C080E10E945B2A909110 -:10557000F002882341F093FB882780F921E08227FD -:1055800080FB93F904C0892F809580FB90F990935C -:10559000F0028091F0020E94BB2B0E94C92B8093E5 -:1055A000010380EE0E945B2A882341F08091010371 -:1055B000982F909590FB80F98093010389E30E94D6 -:1055C0005B2A882359F09091010391FB882780F989 -:1055D00021E0822780FB91F99093010382EE0E94E3 -:1055E0005B2A882359F09091010392FB882780F968 -:1055F00021E0822780FB92F99093010386EE0E94BE -:105600005B2A882359F09091010393FB882780F946 -:1056100021E0822780FB93F99093010383EE0E949F -:105620005B2A882359F09091010394FB882780F925 -:1056300021E0822780FB94F99093010385E30E9487 -:105640005B2A882359F09091010395FB882780F904 -:1056500021E0822780FB95F99093010381E30E946A -:105660005B2A882359F09091010396FB882780F9E3 -:1056700021E0822780FB96F99093010381E10E944B -:105680005B2A882359F09091010397FB882780F9C2 -:1056900021E0822780FB97F9909301038091010319 -:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8 -:1056B0005B2A8111C2608FE10E945B2A8111C46064 -:1056C00080E20E945B2A8111C86081E20E945B2A0D -:1056D0008111C06182E20E945B2A8111C06283E273 -:1056E0000E945B2A8111C06484E20E945B2A8823A5 -:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B -:105700006C2F03C00E94C02B682F70E080E090E0F7 -:10571000CF910C946127CF9108956DEE7EEF80E0DC -:1057200090E00E94783460E082E090E00E946A3469 -:1057300060E083E090E00E946A3460E084E090E002 -:105740000E946A3460E085E090E00E946A3460E084 -:1057500086E090E00C946A3480E090E00E9464342B -:1057600021E08D3E9E4F09F020E0822F089582E0D7 -:1057700090E00C945C34682F82E090E00C946A34E2 -:1057800083E090E00C945C34682F83E090E00C940C -:105790006A3484E090E00C945C34682F84E090E0FC -:1057A0000C946A3486E090E00C945C34682F86E0B8 -:1057B00090E00C946A348091FE0280FF0BC06091EF -:1057C000900185E0689FB0011124759567957595E6 -:1057D00067952AC081FF09C06091900185E0689FAC -:1057E000B0011124759567951FC082FF07C06091B5 -:1057F000900185E0689FB001112416C04091F80225 -:105800004423C9F060918F01461788F720919001D9 -:1058100085E0289F90011124429FC001439F900D75 -:10582000112470E00E9448346038710540F461151D -:10583000710539F002C065E070E0862F08958FE7AA -:10584000089581E008958091FE0280FF08C0609174 -:105850008E0170E0759567957595679521C081FFFC -:1058600006C060918E0170E07595679519C082FF42 -:1058700004C060918E0170E010C08091F80288230E -:10588000C1F060918D018617A0F790918E01989FCD -:10589000C001112470E00E9448346038710528F47A -:1058A0006115710521F0862F08958FE7089581E035 -:1058B000089561E070E0F4CF803F21F40E94DB2B7B -:1058C000819504C0813F29F40E94DB2B8093FB0269 -:1058D0000895823F21F40E94DB2B819504C0833F11 -:1058E00029F40E94DB2B8093FA020895893F19F472 -:1058F0000E94232C05C08A3F31F40E94232C8195FD -:105900008093FC0208958B3F21F40E94232C819503 -:1059100004C08C3F29F40E94232C8093FD0208953B -:10592000843F21F48091F902816017C0853F21F402 -:105930008091F902826011C0863F21F48091F902C2 -:1059400084600BC0873F21F48091F902886005C014 -:10595000883F31F48091F90280618093F9020895C3 -:105960008D3F21F48091FE0281600BC08E3F21F4B7 -:105970008091FE02826005C08F3F29F48091FE0273 -:1059800084608093FE020895803F29F48091FB0299 -:1059900087FF6EC007C0813F41F48091FB0218165B -:1059A0000CF066C01092FB0263C09091FA02823F35 -:1059B00019F497FF5DC005C0833F31F419160CF050 -:1059C00057C01092FA0254C0893F31F48091FC0212 -:1059D00018160CF04DC006C08A3F39F48091FC02C5 -:1059E00087FF46C01092FC0243C08B3F29F4809190 -:1059F000FD0287FF3DC006C08C3F39F48091FD0257 -:105A00001816B4F51092FD0233C0843F21F4809142 -:105A1000F9028E7F05C0853F31F48091F9028D7FB8 -:105A20008093F90225C0863F21F48091F9028B7F93 -:105A3000F7CF873F21F48091F902877FF1CF883F2C -:105A400021F48091F9028F7EEBCF8D3F21F480917C -:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F -:105A600005C08F3F29F48091FE028B7F8093FE0258 -:105A70008091FA0281110EC08091FB0281110AC04F -:105A80008091FC02811106C08091FD02811102C04B -:105A90001092F802089589EF92E00E943C1D0E9446 -:105AA0009E299093F7028093F6020895CF938091F8 -:105AB000F6029091F7020E94AB294091F80244232C -:105AC00021F02091910130E006C0209192015AE02E -:105AD000259F900111248217930708F486C08091B6 -:105AE000FA0281110DC09091FB02911109C09091B1 -:105AF000FC02911105C09091FD02992309F475C033 -:105B00004F3F19F04F5F4093F802181624F40E949B -:105B1000DB2B8093FA028091FA0287FF05C00E9476 -:105B2000DB2B81958093FA028091FB02181624F4F6 -:105B30000E94DB2B8093FB028091FB0287FF05C054 -:105B40000E94DB2B81958093FB026091FA02662311 -:105B500039F1C091FB02CC2319F1772767FD7095CD -:105B6000872F972F0E94AC3123E333E343E35FE3B6 -:105B70000E9460320E9479316093FA026C2F77277D -:105B800067FD7095872F972F0E94AC3123E333E395 -:105B900043E35FE30E9460320E9479316093FB022D -:105BA0008091FC02181624F40E94232C8093FC029E -:105BB0008091FC0287FF05C00E94232C8195809371 -:105BC000FC028091FD02181624F40E94232C80937D -:105BD000FD028091FD0287FF05C00E94232C819564 -:105BE0008093FD02CF910C944B2DCF910895E9EF56 -:105BF000F2E085E0DF011D928A95E9F71092F80244 -:105C00001092FE020895833089F130F4813061F002 -:105C1000823009F06EC019C0853009F449C0B8F16E -:105C2000863009F066C055C020919201862F90E021 -:105C3000820F911D8F3F910520F4620F60939201B6 -:105C400008958FEF80939201089520919101862FFE -:105C500090E0820F911D8F3F910520F4620F6093B9 -:105C6000910108958FEF8093910108952091900103 -:105C7000862F90E0820F911D8F3F910520F4620FD7 -:105C80006093900108958FEF809390010895209183 -:105C90008F01862F90E0820F911D8F3F910520F498 -:105CA000620F60938F0108958FEF80938F010895A5 -:105CB00020918E01862F90E0820F911D8F3F9105DC -:105CC00020F4620F60938E0108958FEF80938E0110 -:105CD000089520918D01862F90E0820F911D8F3FB6 -:105CE000910520F4620F60938D0108958FEF8093EA -:105CF0008D010895833021F130F4813059F08230E4 -:105D000009F049C012C0853089F128F1863009F0C8 -:105D100042C037C080919201681720F4861B80939F -:105D2000920108951092920108958091910168174F -:105D300020F4861B8093910108951092910108959B -:105D400080919001681720F4861B8093900108953C -:105D500010929001089580918F01681720F4861B9E -:105D600080938F01089510928F01089580918E0184 -:105D7000681720F4861B80938E01089510928E017F -:105D8000089580918D01681720F4861B80938D0102 -:105D9000089510928D01089541E050E060E070E0B8 -:105DA00004C0440F551F661F771F8A95D2F7CB0199 -:105DB000BA010E9461270C945623873200F58E3178 -:105DC00008F086C08E3009F466C060F4873009F4AC -:105DD0004DC018F4863049F531C0883041F18B3020 -:105DE00021F57BC0863109F478C018F48031E9F4DC -:105DF0005CC0893109F471C08B31B9F442C0883379 -:105E000009F46BC048F4893209F460C0853309F4A1 -:105E10005DC0873251F45AC0833409F457C018F476 -:105E20008A3318F057C0883499F080E008950E94B2 -:105E3000B72B0E94C92B0E94D22B4FC08091F00239 -:105E4000817F8E7F8093F00281E08093FF0208952E -:105E50000E9456232FEF83ED90E321508040904025 -:105E6000E1F700C000000E94FE2937C08091F002D7 -:105E700080FF03C0817F8E7F01C081608093F0022C -:105E80002CC09091F00291FB882780F921E08227B5 -:105E900080FB91F913C09091F00292FB882780F962 -:105EA00021E0822780FB92F909C09091F00293FBD8 -:105EB000882780F921E0822780FB93F99093F002F4 -:105EC000882359F091609093F00207C080E003C0EE -:105ED0008D5101C089530E94CC2E81E0089580E04D -:105EE000089580E00895CF93C82F8091FF028130FC -:105EF00071F020F0823009F089C037C0A0918B0189 -:105F0000B0918C018C91823209F082C007C0A091BF -:105F10008B01B0918C018C91823249F48C2F0E94BC -:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64 -:105F30000E94712F811115C0C43169F030F4CB304B -:105F400081F0C03109F068C009C0C93221F0C833FE -:105F500009F062C006C01092FF025EC082E080932A -:105F6000FF0281E090E081705AC0C932C9F060F44C -:105F7000C431B1F020F4C73009F04CC034C0CE5168 -:105F8000C63008F047C017C0CE3439F120F4CB3406 -:105F900009F040C01CC0C135C1F0C235D9F513C0ED -:105FA00080910003882319F01092000333C081E030 -:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161 -:105FC0008093000327C061E003C061E007C06AE07E -:105FD000809100030E94032E1DC06AE0809100039F -:105FE0000E947A2E17C08EE18093920182E3809303 -:105FF00091018AE08093900184E180938F0188E091 -:1060000080938E0188E280938D0104C01092FF027C -:1060100080E005C081E003C080E090E0A4CFCF9194 -:1060200008950E94AC2B811102C00E948D2B0E940A -:10603000D22B8093030480FF02C0869501C080E0CC -:106040000C94590380910304982F9695292F30E0E2 -:10605000233031054CF49F5F990F8170892B81604B -:10606000809303040E94D62B8091030486950C94A0 -:10607000590380910304982F969591F09158990FA8 -:106080008170892B809303048E7F91E009F490E066 -:106090008091030490FB80F9809303040E94D62B27 -:1060A0008091030486950C94590380910304982FE2 -:1060B000909590FB80F9809303040E94D62B8091E9 -:1060C000030480FF02C0869501C080E00C94590350 -:1060D00030910304232F26952F5F2F77822F90E096 -:1060E000317004972CF4220F232B2093030402C059 -:1060F0003093030480910304282F2E7F91E009F44C -:1061000090E090FB80F9809303040E94D62B80914D -:10611000030486950C94590320910304922F9695BD -:106120009827990F822F8170892B809303048E7F8B -:1061300091E009F490E08091030490FB80F9809352 -:1061400003040E94D62B8091030486950C94590376 -:106150005058BB27AA270ED075C166D130F06BD13D -:1061600020F031F49F3F11F41EF45BC10EF4E09572 -:10617000E7FB51C1E92F77D180F3BA1762077307A4 -:106180008407950718F071F49EF58FC10EF4E09521 -:106190000B2EBA2FA02D0B01B90190010C01CA01E1 -:1061A000A0011124FF27591B99F0593F50F4503E8C -:1061B00068F11A16F040A22F232F342F4427585F7E -:1061C000F3CF469537952795A795F0405395C9F796 -:1061D0007EF41F16BA0B620B730B840BBAF091504E -:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED -:1061F000BA0F621F731F841F48F4879577956795C0 -:10620000B795F7959E3F08F0B3CF9395880F08F0A8 -:106210009927EE0F979587950895D9D008F481E0D6 -:1062200008950CD00FC107D140F0FED030F021F41A -:106230005F3F19F0F0C0511139C1F3C014D198F388 -:106240009923C9F35523B1F3951B550BBB27AA27F7 -:1062500062177307840738F09F5F5F4F220F331F69 -:10626000441FAA1FA9F333D00E2E3AF0E0E830D035 -:1062700091505040E695001CCAF729D0FE2F27D038 -:10628000660F771F881FBB1F261737074807AB0706 -:10629000B0E809F0BB0B802DBF01FF2793585F4F7B -:1062A0002AF09E3F510568F0B6C000C15F3FECF395 -:1062B000983EDCF3869577956795B795F7959F5F40 -:1062C000C9F7880F911D9695879597F90895E1E094 -:1062D000660F771F881FBB1F621773078407BA07F3 -:1062E00020F0621B730B840BBA0BEE1F88F7E0954E -:1062F000089504D06894B111D9C00895BCD088F035 -:106300009F5790F0B92F9927B751A0F0D1F0660FA1 -:10631000771F881F991F1AF0BA95C9F712C0B130BC -:1063200081F0C3D0B1E00895C0C0672F782F8827CF -:10633000B85F39F0B93FCCF3869577956795B395FB -:10634000D9F73EF490958095709561957F4F8F4F6A -:106350009F4F0895E89409C097FB3EF4909580956F -:10636000709561957F4F8F4F9F4F9923A9F0F92F1B -:1063700096E9BB279395F695879577956795B79599 -:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F -:106390007F4F8F4F9F4F16C0882311F096E911C091 -:1063A000772321F09EE8872F762F05C0662371F0B2 -:1063B00096E8862F70E060E02AF09A95660F771FC6 -:1063C000881FDAF7880F9695879597F90895990FA2 -:1063D0000008550FAA0BE0E8FEEF16161706E807AF -:1063E000F907C0F012161306E407F50798F0621BD0 -:1063F000730B840B950B39F40A2661F0232B242BA5 -:10640000252B21F408950A2609F4A140A6958FEFC3 -:10641000811D811D089597F99F6780E870E060E015 -:1064200008959FEF80EC089500240A94161617062D -:1064300018060906089500240A9412161306140675 -:1064400005060895092E0394000C11F4882352F0D8 -:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90 -:106460008F4F9F4F089557FD9058440F551F59F077 -:106470005F3F71F04795880F97FB991F61F09F3F31 -:1064800079F087950895121613061406551FF2CF5A -:106490004695F1DF08C0161617061806991FF1CFAA -:1064A00086957105610508940895E894BB276627D1 -:1064B0007727CB0197F908958ADF08F48FEF0895C5 -:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C -:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7 -:1064E000950F50E0551F629FF001729FBB27F00D82 -:1064F000B11D639FAA27F00DB11DAA1F649F6627D7 -:10650000B00DA11D661F829F2227B00DA11D621F25 -:10651000739FB00DA11D621F839FA00D611D221FDF -:10652000749F3327A00D611D231F849F600D211DC3 -:10653000822F762F6A2F11249F5750408AF0E1F066 -:1065400088234AF0EE0FFF1FBB1F661F771F881FAF -:1065500091505040A9F79E3F510570F05CCFA6CFF7 -:106560005F3FECF3983EDCF3869577956795B7959A -:10657000F795E7959F5FC1F7FE2B880F911D9695C4 -:10658000879597F90895FA01EE0FFF1F30962105C0 -:10659000310599F16115710561F48038BFE39B07FE -:1065A00049F168949038810561F08038BFEF9B070E -:1065B00041F0992342F5FF3FE1053105210511F135 -:1065C000E8940894E795D901AA2329F4AB2FBE2FAC -:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD -:1065E00050F019F0FF3A38F49F779F930CD00F903A -:1065F00007FC905808953EF014CF60E070E080E80A -:106600009FE308954FE79F775F934F933F932F93B7 -:106610009ED02F913F914F915F9152DF05C019F4A9 -:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784 -:1066300007F80F92E8942BE33AEA48EB5FE74EDF66 -:106640000F920F920F924DB75EB70F92C0D0ECEA47 -:10665000F0E016D04F915F91EF91FF91E595EE1F1D -:10666000FF1F49F0FE57E0684427EE0F441FFA95DC -:10667000E1F74195550B32D00F9007FE26C00895E3 -:10668000DF93CF931F930F93FF92EF92DF927B01E3 -:106690008C01689405C0DA2EEF011EDFFE01E8943C -:1066A000A5912591359145915591AEF3EF0162DDAC -:1066B000FE019701A801DA9479F7DF90EF90FF903F -:1066C0000F911F91CF91DF9108959B01AC0160E084 -:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1 -:1066E0009923D9F3940F511DBBF39150504094F06E -:1066F00059F0882332F0660F771F881F9150504061 -:10670000C1F79E3F510544F7880F911D96958795D7 -:1067100097F908955F3FACF0983E9CF0BB278695B3 -:1067200077956795B79508F4B1609395C1F7BB0F5E -:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87 -:10674000E3CFB4CE0EF076C06CCE689464CE93DE08 -:10675000C8F39923D1F3C6F3DF93CF931F930F931D -:10676000FF92C92FDD2788232AF02197660F771F14 -:10677000881FDAF720E030E040E85FEB9FE38839DC -:1067800020F0803E30F021968F77E3DCE4EDF0E0FE -:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F -:1067A000FB2E6F5771097595771F880B990BD4DDF8 -:1067B00028E132E741E35FE38FDEAF2D9801AE01C0 -:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166 -:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785 -:1067E0003327442750781FC0B75188F4AB2F0024BB -:1067F000469537952795011CA395D2F3002069F0A3 -:10680000220F331F441FB395DAF30DD0A1CC6130B2 -:106810007105A0E88A07B94630F49B01AC016627F0 -:10682000772788279078309621F020833183428320 -:10683000538308959F3F31F0915020F487957795C9 -:106840006795B795880F911D9695879597F9089547 -:10685000991B79E004C0991F961708F0961B881FB2 -:106860007A95C9F780950895AA1BBB1B51E107C013 -:10687000AA1FBB1FA617B70710F0A61BB70B881FD0 -:10688000991F5A95A9F780959095BC01CD0108955F -:1068900097FB072E16F4009407D077FD09D00E94CD -:1068A000343407FC05D03EF4909581959F4F0895B0 -:1068B000709561957F4F0895F999FECF92BD81BD86 -:1068C000F89A992780B50895A8E1B0E042E050E039 -:1068D0000C947F34262FF999FECF1FBA92BD81BD4B -:1068E00020BD0FB6F894FA9AF99A0FBE0196089552 -:1068F0000E946A34272F0C946B34DC01CB01FC011D -:10690000F999FECF06C0F2BDE1BDF89A319600B408 -:0E6910000D9241505040B8F70895F894FFCF13 -:10691E0055D0A44600001644000000000000484276 -:10692E0061978A460000C8430000000000004842FC -:10693E0055D024460000C843000000000000484225 -:10694E0000005C460000C843000000000000484202 -:10695E0061978A4600007A4455D0A4460000C84389 -:10696E00000000000000484200005C460000C843E2 -:10697E00000000000000484255D024460000164496 -:10698E000507000C058540000001064000000100CF -:10699E0091102111FD10C810941001E8022808145E -:1069AE000A321E42004500250026004300610060A9 -:1069BE000020003700640065006600670044004652 -:1069CE000024004700000002000400050007000933 -:1069DE00000B000C000E0010001100130015001724 -:1069EE000018001A001C001D001F002100230024A7 -:1069FE00002600280029002B002D002F0030003229 -:106A0E000034003500370039003B00F6030F042830 -:106A1E0004410469051C05E604C6043F4D362002F8 -:106A2E000302000001000101010101000101010248 -:086A3E00030405060708090026 -:00000001FF diff --git a/keyboard/preonic/preonic_pcb_silent.hex b/keyboard/preonic/preonic_pcb_silent.hex deleted file mode 100644 index cc59d3fe8..000000000 --- a/keyboard/preonic/preonic_pcb_silent.hex +++ /dev/null @@ -1,1189 +0,0 @@ -:100000000C9465020C94A9020C94A9020C94A90208 -:100010000C94A9020C94A9020C94A9020C94A902B4 -:100020000C94A9020C94A9020C94430D0C94150E87 -:100030000C942B1C0C94A9020C94A9020C94A902F8 -:100040000C94A9020C94A9020C94A9020C94A90284 -:100050000C94A9020C94981C0C94A9020C94A9026B -:100060000C94A9020C94A9020C94A9020C94A90264 -:100070000C94A9020C94A9020C94A9020C94A90254 -:100080000C94A9020C94A9020C94A9020C94A90244 -:100090000C94A9020C94A9020C94A9020C94A90234 -:1000A0000C94A9020C94A9020C94A90235001E001C -:1000B0001F0020002100220023002400250026002C -:1000C00027002A002B0014001A0008001500170052 -:1000D0001C0018000C00120013002A002900040064 -:1000E0001600070009000A000B000D000E000F00AB -:1000F00033003400E1001D001B000600190005005C -:100100001100100036003700380028000030E000F1 -:10011000E200E30003522C002C0004525000510076 -:1001200052004F0035001E001F0020002100220059 -:10013000230024002500260027002A002B0014009D -:100140001A00090013000A000D000F0018001C001F -:1001500033002A00290004001500160017000700CC -:100160000B00110008000C0012003400E1001D001B -:100170001B000600190005000E00100036003700B5 -:10018000380028000030E000E200E30003522C00B9 -:100190002C0004525000510052004F0035001E0048 -:1001A0001F0020002100220023002400250026003B -:1001B00027002A002B0034003600370013001C00F3 -:1001C00009000A00060015000F002A00290004009B -:1001D0001200080018000C0007000B0017001100A7 -:1001E00016003800E100330014000D000E001B0063 -:1001F000050010001A0019001D0028000030E00062 -:10020000E200E30003522C002C0004525000510085 -:1002100052004F0035001E001F0020002100220068 -:10022000230024002500260027002A0035021E0294 -:100230001F0220022102220223022402250226029A -:1002400027022A0001003A003B003C003D003E002E -:100250003F002D022E022F02300231020100400029 -:100260004100420043004400450000530153025343 -:100270000050010001000100010001000100010027 -:1002800001000100AB00AA00A900AE0035001E006D -:100290001F0020002100220023002400250026004A -:1002A00027002A0035001E001F0020002100220028 -:1002B000230024002500260027002A0001003A0020 -:1002C0003B003C003D003E003F002D002E002F0073 -:1002D0003000310001004000410042004300440072 -:1002E000450000530153025300500100010001007A -:1002F000010001000100010001000100AB00AA00A3 -:10030000A900AE002A0354006800650020005000D8 -:10031000720065006F006E006900630020004B00F2 -:100320006500790062006F006100720064000000E7 -:100330002C034F007200740068006F006C006900AD -:100340006E0065006100720020004B0065007900BE -:1003500062006F006100720064007300000004031B -:10036000090409027400040100A0FA090400000154 -:1003700003010100092111010001223F000705814D -:100380000308000A09040100010301020009211108 -:10039000010001224D000705820308000A0904023A -:1003A00000010300000009211101000122360007AD -:1003B00005830308000A0904030002030000000982 -:1003C00021110100012220000705840320000107FC -:1003D0000504032000011201100100000008EDFED9 -:1003E00061600100010200010631FF0974A10109E9 -:1003F00075150025FF9520750881020976150025E1 -:10040000FF952075089102C005010980A1018502B0 -:1004100016010026B7001A01002AB70075109501D1 -:100420008100C0050C0901A1018503160100269C6D -:10043000021A01002A9C02751095018100C0050175 -:100440000902A1010901A1000509190129051500E9 -:10045000250195057501810295017503810105014D -:10046000093009311581257F950275088106093803 -:100470001581257F950175088106050C0A3802153E -:1004800081257F950175088106C0C005010906A177 -:1004900001050719E029E715002501950875018177 -:1004A0000295017508810105081901290595057551 -:1004B0000191029501750391010507190029FF15A6 -:1004C0000025FF950675088100C011241FBECFEFDF -:1004D000DAE0DEBFCDBF04B603FE24C08091F10197 -:1004E0009091F201A091F301B091F4018730904B0B -:1004F000A740B04BB9F41092F1011092F2011092A2 -:10050000F3011092F40114BE84B7877F84BF88E1A1 -:100510000FB6F89480936000109260000FBEE0E088 -:10052000F8E3099511E0A0E0B1E0E0EEF9E402C0E3 -:1005300005900D92A435B107D9F711E0A4E5B1E01B -:1005400001C01D92A13FB107E1F70E94720A0C940D -:10055000EE240C94000061110DC0FC0182818823FF -:1005600031F085EE0E9426110E94272303C085EEFC -:100570000E94EE1180E090E00895089508950E9491 -:10058000D1026E9A769A8DEB92E0892B11F00C9441 -:10059000BD0208958EEB92E0892B11F00C94BE02FF -:1005A0000895279A2F988FEF9FEF9093870080935D -:1005B00086008AE08093800089E1809381000C941A -:1005C000D02281110BC080918000877F80938000B2 -:1005D00010928D0010928C002F9808952F988330E0 -:1005E00041F4809180008860809380008FEF9FEFBE -:1005F00012C09091800098609093800023E030E0DA -:10060000281B3109220F331F8FEF9FEF02C09695F1 -:1006100087952A95E2F790938D0080938C0008953A -:100620008B3B910568F4883A910530F5853A910540 -:10063000C0F48430910598F4019709F06FC071C03F -:10064000803E910508F46AC0883E910540F09C0107 -:10065000205F31092031310508F060C05CC09C0189 -:10066000A1C0853A910509F45FC0863A910509F465 -:100670005EC023E830E496C0883A910509F45AC078 -:10068000893A910509F459C08A3A910509F458C08C -:100690008B3A910509F457C08C3A910509F456C07C -:1006A0008D3A910509F455C0803B910509F454C079 -:1006B0008E3A910509F453C08F3A910509F452C05E -:1006C000813B910509F451C0823B910509F450C06A -:1006D000833B910509F44FC0843B910509F44EC05A -:1006E000853B910509F44DC0863B910509F44CC04A -:1006F000873B910509F44BC0883B910509F44AC03A -:10070000893B910509F449C08A3B910509F048C02D -:100710002AE236E447C09C01306544C020E030E066 -:1007200041C021E030E03EC021E830E43BC022E897 -:1007300030E438C022EE34E435C029EE34E432C06F -:100740002AEE34E42FC025EB34E42CC026EB34E44D -:1007500029C027EB34E426C02CEC34E423C02DEC74 -:1007600034E420C023E835E41DC02AE835E41AC08B -:1007700022E935E417C024E935E414C021E236E467 -:1007800011C023E236E40EC024E236E40BC025E2B9 -:1007900036E408C026E236E405C027E236E402C0AB -:1007A00020E034E4C901089508959CE0799FF001A8 -:1007B00011249CE3899FE00DF11D1124E60FF11D2A -:1007C000EE0FFF1FE455FF4F25913491C9010895A5 -:1007D000880F991F845D9040FC0125913491C901D7 -:1007E0000895880F991F84559F4FFC0125913491DE -:1007F000C90108950E94D5039C019A9581159F41D6 -:1008000010F4C9010895C90190528115904128F44E -:10081000C9019F700E94F1030895C9019053811589 -:10082000904120F4C9019927906C0895C901905412 -:10083000409728F4C9018F709927946D089520314D -:1008400080E4380719F480E091ED0895213190E4B7 -:10085000390719F480E090ED0895223140E434071F -:1008600019F480E092ED0895233180E4380719F4FB -:1008700080E093ED0895211590E5390769F40E9411 -:1008800015162FEF44E38CE0215040408040E1F703 -:1008900000C000000C94BD1C213090E5390731F4F4 -:1008A0008091D00181608093D0010895C901905555 -:1008B0008115904108F062C0432F55274F7055278E -:1008C00041305105F9F4C90174E0880F991F7A95F8 -:1008D000E1F788279370B901E3E0660F771FEA9587 -:1008E000E1F760767727862B972B9C682370332758 -:1008F00002C0440F551F2A95E2F74F715527842BEC -:10090000952B08954230510529F4922F8827816F45 -:10091000906A089543305105B9F4C90153E0880F36 -:10092000991F5A95E1F7807E97702370332741E035 -:1009300050E002C0440F551F2A95E2F74F7155272A -:10094000842B952B9C6808954430510549F5C901C5 -:1009500043E0880F991F4A95E1F7807E97702370D6 -:10096000332741E050E002C0440F551F2A95E2F7BB -:100970004F715527842B952B9A680895C90190577C -:100980008115904120F4C9019F7090620895C901BA -:1009900090588115904120F4C9019F70906A089584 -:1009A000203E3105E0F4203C310568F52133310566 -:1009B00009F475C048F42932310509F46BC02A32B4 -:1009C000310509F07BC075C02933310501F12238AA -:1009D0003105E9F02533310509F070C051C0233EDF -:1009E0003105B1F140F4203E3105D1F0223E310510 -:1009F00009F064C01CC0263E310579F1273E31055F -:100A000009F05CC038C0C9010E94E80308958091D4 -:100A1000E10180FD02C081FF51C080EE90E04FC037 -:100A20008091E10180FFF9CF89E390E048C0809197 -:100A3000E10182FF0AC08091E10184FF03C080E0F0 -:100A400090E03DC083EE90E03AC082EE90E037C087 -:100A50008091E10182FFEFCFF8CF8091E10183FF28 -:100A600007C08091E10184FDEACF87EE90E027C0C6 -:100A700086EE90E024C08091E10183FFF2CFF8CFB1 -:100A80008091E10185FF03C089E290E018C085E311 -:100A900090E015C08091E10185FDF9CFF5CF8091FF -:100AA000E10186FF03C08AE290E009C081E390E0A3 -:100AB00006C08091E10186FDF9CFF5CFC9010E9402 -:100AC0001003089508955F926F927F928F929F9284 -:100AD000AF92BF92CF92DF92EF92FF920F931F934C -:100AE000CF93DF93CDB7DEB72A970FB6F894DEBF6A -:100AF0000FBECDBF9E012F5F3F4F4E018BE0880E92 -:100B0000911C60E070E000E010E0E12CF12CC12CC1 -:100B1000D12CA12CB12C8AE0782E622E532E41E0EC -:100B200050E0E4E1F1E0A62DB52D872D01900D9266 -:100B30008A95E1F7F901819191919F01FC01E07F94 -:100B4000FF27E032F10559F48F709927FA0102C0AE -:100B5000EE0FFF1F8A95E2F7AE2ABF2A37C0E033B7 -:100B6000F10559F48F709927FA0102C0EE0FFF1FAB -:100B70008A95E2F7CE2ADF2A29C0E034F10559F43C -:100B80008F709927FA0102C0EE0FFF1F8A95E2F7D6 -:100B9000EE2AFF2A1BC0E035F10559F48F70992722 -:100BA000FA0102C0EE0FFF1F8A95E2F70E2B1F2BF2 -:100BB0000DC0E036F10551F48F709927FA0102C09B -:100BC000EE0FFF1F8A95E2F76E2B7F2B2815390554 -:100BD00009F0A7CF94B18A2D8095892384B985B176 -:100BE0008A2985B997B18C2D8095892387B988B1D9 -:100BF0008C2988B99AB18E2D809589238AB98BB1B9 -:100C00008E298BB99DB1802F809589238DB98EB1A6 -:100C1000802B8EB990B3862F8095892380BB81B3BA -:100C2000862B81BB2A960FB6F894DEBF0FBECDBFD0 -:100C3000DF91CF911F910F91FF90EF90DF90CF90B8 -:100C4000BF90AF909F908F907F906F905F9008952E -:100C50005F926F927F928F929F92AF92BF92CF924C -:100C6000DF92EF92FF920F931F93CF93DF93CDB755 -:100C7000DEB768970FB6F894DEBF0FBECDBF85B75D -:100C8000806885BF85B7806885BF0E9463059E0127 -:100C90002F5F3F4F4E0189E1880E911C60E070E0AC -:100CA00000E010E0E12CF12CC12CD12CA12CB12CB6 -:100CB00098E1792E622E532E41E050E0EEE1F1E012 -:100CC000A62DB52D872D01900D928A95E1F7F9019A -:100CD000819191919F01FC01E07FFF27E032F105B6 -:100CE00059F48F709927FA0102C0EE0FFF1F8A9501 -:100CF000E2F7AE2ABF2A37C0E033F10559F48F700E -:100D00009927FA0102C0EE0FFF1F8A95E2F7CE2A5B -:100D1000DF2A29C0E034F10559F48F709927FA01D0 -:100D200002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0D2 -:100D3000E035F10559F48F709927FA0102C0EE0FE2 -:100D4000FF1F8A95E2F70E2B1F2B0DC0E036F10531 -:100D500051F48F709927FA0102C0EE0FFF1F8A9598 -:100D6000E2F76E2B7F2B2815390509F0A7CF94B138 -:100D70008A2D8095892384B985B18A2985B997B14F -:100D80008C2D8095892387B988B18C2988B99AB12F -:100D90008E2D809589238AB98BB18E298BB99DB10F -:100DA000802F809589238DB98EB1802B8EB990B319 -:100DB000862F8095892380BB81B3862B81BB1092BF -:100DC00055011092540110925F0110925E01109231 -:100DD0005701109256011092610110926001109219 -:100DE0005901109258011092630110926201109201 -:100DF0005B0110925A0110926501109264011092E9 -:100E00005D0110925C0110926701109266018FEBF8 -:100E100092E0892BB9F068960FB6F894DEBF0FBE4A -:100E2000CDBFDF91CF911F910F91FF90EF90DF9099 -:100E3000CF90BF90AF909F908F907F906F905F907A -:100E40000C94BF0268960FB6F894DEBF0FBECDBFFC -:100E5000DF91CF911F910F91FF90EF90DF90CF9096 -:100E6000BF90AF909F908F907F906F905F9008950C -:100E70005F926F927F928F929F92AF92BF92CF922A -:100E8000DF92EF92FF920F931F93CF93DF93CDB733 -:100E9000DEB7A2970FB6F894DEBF0FBECDBF7E01BE -:100EA00049E1E40EF11C2EE5C22E21E0D22E5E01B6 -:100EB00053E2A50EB11C3AE0532E470101E010E0C9 -:100EC00048E1642E55E0752EE4E1F1E0D401852D72 -:100ED00001900D928A95E1F7F701819191917F013F -:100EE0009C01207F33272032310589F424B18F7093 -:100EF0009927A80102C0440F551F8A95E2F7CA013D -:100F0000242B24B995B18095892385B94FC020330E -:100F1000310589F427B18F709927F80102C0EE0FCF -:100F2000FF1F8A95E2F7CF012E2B27B998B1809544 -:100F3000892388B93BC02034310589F42AB18F70E8 -:100F40009927A80102C0440F551F8A95E2F7CA01EC -:100F5000242B2AB99BB1809589238BB927C02035D2 -:100F6000310589F42DB18F709927F80102C0EE0F79 -:100F7000FF1F8A95E2F7CF012E2B2DB99EB18095E8 -:100F800089238EB913C02036310581F420B38F70C8 -:100F90009927A80102C0440F551F8A95E2F7CA019C -:100FA000242B20BB91B38095892381BB50EA5A95AD -:100FB000F1F7BE016F5F7F4F80E090E020E030E00E -:100FC000EEE1F1E0DE011196462D01900D924A9579 -:100FD000E1F7FB0141915191BF01FA01E07FFF2749 -:100FE000E032F10511F4E3B113C0E033F10511F47F -:100FF000E6B10EC0E034F10511F4E9B109C0E03505 -:10100000F10511F4ECB104C0E036F105B9F4EFB12B -:10101000F0E04F70552702C0F595E7954A95E2F745 -:10102000E0FD08C0A801022E02C0440F551F0A941B -:10103000E2F702C040E050E0842B952B2F5F3F4F3A -:101040002C30310509F0BCCFF60120813181281701 -:10105000390721F091838083709200010E9463051B -:10106000F2E0CF0ED11CEA14FB0409F02DCF8091E1 -:1010700000018823A1F1815080930001882339F079 -:101080008FE99FE00197F1F700C0000028C0809130 -:101090005E0190915F01909355018093540180917E -:1010A0006001909161019093570180935601809166 -:1010B000620190916301909359018093580180914E -:1010C00064019091650190935B0180935A01809136 -:1010D00066019091670190935D0180935C018AECB9 -:1010E00092E0892B11F00E94CA0281E0A2960FB60D -:1010F000F894DEBF0FBECDBFDF91CF911F910F914E -:10110000FF90EF90DF90CF90BF90AF909F908F9027 -:101110007F906F905F900895E82FF0E0EE0FFF1F33 -:10112000EC5AFE4F8081918108950895809171015C -:101130000895CF93DF9300D01F92CDB7DEB72091F3 -:10114000E701243021F523E029839B838A832093C0 -:10115000E9008FEF06C095ED9A95F1F7000088231E -:1011600029F09091E800815095FFF5CF8091E8003B -:1011700085FF0DC040E050E063E070E0CE010196D5 -:101180000E94280B8091E8008E778093E8000F90F2 -:101190000F900F90DF91CF910895CF93DF9300D000 -:1011A0001F92CDB7DEB72091E701243029F522E068 -:1011B00029839B838A8383E08093E9008FEF06C0B5 -:1011C00095ED9A95F1F70000882329F09091E800B9 -:1011D000815095FFF5CF8091E80085FF0DC040E07C -:1011E00050E063E070E0CE0101960E94280B8091F0 -:1011F000E8008E778093E8000F900F900F90DF91BA -:10120000CF9108952091E7012430F9F422E0209352 -:10121000E9002FEF06C035ED3A95F1F700002223E3 -:1012200029F03091E800215035FFF5CF2091E800FA -:1012300025FF0BC040E050E065E070E00E94280B05 -:101240008091E8008E778093E8000895CF93DF9334 -:10125000EC018091E701843041F581E08093E90061 -:101260008FEF06C095ED9A95F1F70000882329F0DD -:101270009091E800815095FFF5CF8091E80085FFBF -:1012800014C040E050E068E070E0CE010E94280BFE -:101290008091E8008E778093E80088E0FE01A9E65F -:1012A000B1E001900D928A95E1F7DF91CF91089519 -:1012B0008091E601811109C00E94C80C0E94250D91 -:1012C0008091E20084608093E20008951092E6012C -:1012D0000895089508950C94201C809172018F5FE9 -:1012E0008093720162E30E948924911135C01092AB -:1012F000720180917301882379F18091E701843034 -:1013000049F58091E9008F709091EC0090FF02C048 -:1013100090E801C090E0982B84E08093E9008091F0 -:10132000EB0080FF14C08091EE0087FD03C00FC06A -:101330001092F1008091E80085FDFACF8091E800DD -:1013400080FF05C08091E8008E778093E8009F7051 -:101350009093E90010927301089542E061EC81E0FE -:101360000E943E0C42E061EC82E00E943E0C42E0B2 -:1013700061EC83E00E943E0C42E261EC84E00C945C -:101380003E0C8091E901833009F454C030F481307F -:1013900071F0823009F0A5C08CC08A3009F479C0A0 -:1013A0008B3009F45FC0893009F09BC020C0809168 -:1013B000E801813A09F095C08091E800877F809329 -:1013C000E8008091EC019091ED01892B21F060E023 -:1013D00080E090E003C068E089E691E070E00E9460 -:1013E000770B8091E8008B778093E80008958091D7 -:1013F000E801813209F075C08091EC019091ED0116 -:10140000892B09F06EC08091E800877F8093E80007 -:1014100005C08091E701882309F463C08091E8004A -:1014200082FFF7CF8091F100809371018091E800F5 -:101430008B7753C08091E801813A09F052C08091C6 -:10144000EC019091ED01892B09F04BC08091E800EF -:10145000877F8093E8008091E80080FFFCCF809137 -:101460000B0136C08091E8018132D9F58091EC0101 -:101470009091ED01892BA9F58091E800877F8093F9 -:10148000E8000E94750C8091EA0180930B010C9496 -:1014900015168091E801813221F58091E800877F5F -:1014A0008093E8000E94750C8091EB0180936801A5 -:1014B00008958091E801813AA1F48091E800877F46 -:1014C0008093E8008091E80080FFFCCF8091680164 -:1014D0008093F1008091E8008E778093E8000C946F -:1014E000750C089584B7877F84BF88E10FB6F894A0 -:1014F00080936000109260000FBE90E080E80FB60D -:10150000F89480936100909361000FBE0E943310A5 -:101510000E94C80C0E94250D8091E2008460809397 -:10152000E20078940E94C20F0E94351081E091E0A1 -:101530000E94DF0F0BC00E94DD1B8091E501882314 -:1015400029F00E94081C81110E94120B8091E70172 -:10155000853089F30E943F10F9CF292F332723309C -:101560003105B1F04CF42130310509F44DC0223081 -:10157000310509F04EC007C02132310541F1223258 -:10158000310591F146C0E4E7F0E082E693E045C022 -:1015900099278130910569F08230910589F0892B76 -:1015A00009F037C0EEE5F3E0E491F0E08EE593E07A -:1015B00034C0E0E3F3E0E491F0E080E393E02DC099 -:1015C000E4E0F3E0E491F0E084E093E026C06430EE -:1015D00000F5E62FF0E0EE0FFF1FEA5CFE4F808182 -:1015E0009181E9E0F0E019C0643098F4E62FF0E072 -:1015F000DF01AA0FBB1FA25CBE4F8D919C91EA5BDD -:10160000FE4FE081F0E009C0E2E1F0E086ED93E01A -:1016100004C0E0E0F0E080E090E0DA018D939C937C -:10162000CF01089580E189BD82E189BD09B400FE42 -:10163000FDCF8091D8008F7D8093D8008091E0000D -:1016400082608093E0008091E00081FDFCCF0895EE -:10165000BF92CF92DF92EF92FF920F931F93CF939F -:10166000DF937C018B01EA010E94960CB82E811158 -:1016700033C0209731F028813981021B130BE20E11 -:10168000F31EC12CD12C23C08091E80085FD15C02C -:101690008091E8008E778093E800209749F0888158 -:1016A00099818C0D9D1D9983888325E0B22E14C0ED -:1016B0000E94960C882359F00EC0F70181917F019A -:1016C0008093F10001501109FFEFCF1ADF0A0115D5 -:1016D0001105D1F601C0B82E8B2DDF91CF911F914E -:1016E0000F91FF90EF90DF90CF90BF9008954091C1 -:1016F000EE015091EF014617570748F0611571054B -:1017000039F44091E8004E774093E80001C0BA01F7 -:10171000FC0140E033C08091E701882309F444C014 -:10172000853009F443C08091E80083FD41C0809179 -:10173000E80082FD33C08091E80080FF1FC09091D7 -:10174000F3008091F200392F20E0A901482BCA0153 -:1017500006C041914093F1006150710901966115F5 -:10176000710519F088309105A0F341E0089709F060 -:1017700040E08091E8008E778093E8006115710564 -:1017800051F64111C8CF0AC08091E701882361F06A -:10179000853061F08091E80083FD0AC08091E80007 -:1017A00082FFF2CF80E0089582E0089583E00895FB -:1017B00081E008954091EE015091EF0146175707DF -:1017C00048F06115710539F44091E8004E77409377 -:1017D000E80001C0BA01FC0140E034C08091E7019B -:1017E000882309F445C0853009F444C08091E8009D -:1017F00083FD42C08091E80082FD34C08091E80002 -:1018000080FF20C09091F3008091F200392F20E0FA -:10181000A901482BCA0107C044914093F1003196B9 -:101820006150710901966115710519F088309105B3 -:1018300098F341E0089709F040E08091E8008E7746 -:101840008093E8006115710549F64111C7CF0AC0C0 -:101850008091E701882361F0853061F08091E80094 -:1018600083FD0AC08091E80082FFF2CF80E00895F6 -:1018700082E0089583E0089581E00895982F2CC0B8 -:101880009093E900981739F07091EC002091ED00E9 -:101890005091F00003C0242F762F50E021FD02C0AC -:1018A0009F5F1AC03091EB003E7F3093EB00309188 -:1018B000ED003D7F3093ED003091EB0031603093CF -:1018C000EB007093EC002093ED005093F00020911A -:1018D000EE0027FDE5CF07C0973090F28F70809320 -:1018E000E90081E0089580E008958091E80187FD96 -:1018F00005C08091E80080FF0EC012C08091E80012 -:1019000082FD05C08091E7018111F8CF0895809193 -:10191000E8008B7708C08091E7018111EACF089534 -:101920008091E8008E778093E80008958091E4002C -:101930009091E50045E62091EC0020FD1FC023C0FA -:101940002091E701222391F0253091F02091EB00C6 -:1019500025FD10C02091E4003091E50028173907DB -:1019600051F34150C90139F784E0089582E00895A8 -:1019700083E0089581E0089580E008952091E800D3 -:1019800020FFDECFF9CF2091E80022FFD9CFF4CF9E -:101990000E94360D0E943E0DE0EEF0E080818160F5 -:1019A0008083E8EDF0E080818F77808319BCA7ED1C -:1019B000B0E08C918E7F8C9380818F7E808310929B -:1019C000E60108950F931F93CF93DF930E94360D86 -:1019D0000E943E0DC8EDD0E088818F778883888192 -:1019E0008068888388818F7D888319BC1092E70185 -:1019F0001092E3011092E5011092E40100EE10E074 -:101A0000F80180818B7F808388818160888342E0B8 -:101A100060E080E00E943E0CE1EEF0E080818E7F8D -:101A20008083E2EEF0E08081816080838081886045 -:101A30008083F80180818E7F8083888180618883A4 -:101A4000DF91CF911F910F910895E8EDF0E0808133 -:101A50008F7E8083E7EDF0E080818160808384E089 -:101A600082BF81E08093E6010C94E20CE8EDF0E0A7 -:101A700080818E7F80831092E20008951092DA00B8 -:101A80001092E10008951F920F920FB60F92112449 -:101A90002F933F934F935F936F937F938F939F9376 -:101AA000AF93BF93EF93FF938091E10082FF0BC050 -:101AB0008091E20082FF07C08091E1008B7F8093DC -:101AC000E1000E946D098091DA0080FF1FC08091C3 -:101AD000D80080FF1BC08091DA008E7F8093DA00EF -:101AE0008091D90080FF0DC080E189BD82E189BD70 -:101AF00009B400FEFDCF81E08093E7010E94580900 -:101B000005C019BC1092E7010E9466098091E100AE -:101B100080FF19C08091E20080FF15C08091E20033 -:101B20008E7F8093E2008091E20080618093E200EA -:101B30008091D80080628093D80019BC85E08093A2 -:101B4000E7010E946A098091E10084FF30C0809122 -:101B5000E20084FF2CC080E189BD82E189BD09B427 -:101B600000FEFDCF8091D8008F7D8093D8008091BA -:101B7000E1008F7E8093E1008091E2008F7E809370 -:101B8000E2008091E20081608093E2008091E301B5 -:101B9000882311F084E007C08091E30087FF02C032 -:101BA00083E001C081E08093E7010E946B0980918E -:101BB000E10083FF29C08091E20083FF25C080916E -:101BC000E100877F8093E10082E08093E70110923B -:101BD000E3018091E1008E7F8093E1008091E2003B -:101BE0008E7F8093E2008091E20080618093E2002A -:101BF00042E060E080E00E943E0C8091F00088604E -:101C00008093F0000E946909FF91EF91BF91AF911D -:101C10009F918F917F916F915F914F913F912F9104 -:101C20000F900FBE0F901F9018951F920F920FB636 -:101C30000F9211242F933F934F935F936F937F9352 -:101C40008F939F93AF93BF93CF93EF93FF93809125 -:101C5000E9008F709091EC0090FF02C090E801C005 -:101C600090E0C92FC82B1092E9008091F000877F87 -:101C70008093F00078940E94590E1092E9008091B0 -:101C8000F00088608093F000CF70C093E900FF916E -:101C9000EF91CF91BF91AF919F918F917F916F9174 -:101CA0005F914F913F912F910F900FBE0F901F901A -:101CB00018951F93CF93DF93CDB7DEB7AC970FB6D0 -:101CC000F894DEBF0FBECDBFE8EEF1E08091F100E9 -:101CD000819321E0E03FF207C9F70E94C10980919A -:101CE000E80083FF37C18091E8019091E9019530C8 -:101CF00009F488C038F49130B1F170F0933009F0F4 -:101D000029C131C0983009F4F8C0993009F404C1F0 -:101D1000963009F01FC19DC0803821F0823809F04B -:101D200019C108C08091E4019091E501992389F0DF -:101D300082600FC08091EC019091ED018F70992726 -:101D40008093E9008091EB0085FB882780F9109251 -:101D5000E9009091E800977F9093E8008093F1006C -:101D60001092F100D5C0882319F0823009F0F2C03A -:101D70008F7121F0823009F0EDC00BC08091EA0133 -:101D8000813009F0E7C0933009F080E08093E501ED -:101D90002FC08091EA0181112BC08091EC019091BC -:101DA000ED018F709927009709F4D4C08093E90062 -:101DB0002091EB0020FF1CC02091E901233021F489 -:101DC0008091EB00806212C09091EB009061909343 -:101DD000EB0021E030E001C0220F8A95EAF7209362 -:101DE000EA001092EA008091EB0088608093EB009B -:101DF0001092E9008091E800877F8093E8000E94BC -:101E0000750CA8C08111A6C08091EA019091EB01E8 -:101E10008F779927182F9091E3009078982B9093C3 -:101E2000E3008091E800877F8093E8000E94750CB2 -:101E30008091E80080FFFCCF8091E3008068809370 -:101E4000E300112311F083E001C082E08093E701F9 -:101E500081C08058823008F07DC08091EA01909165 -:101E6000EB018C3D23E0920779F583E08A838AE2D7 -:101E700089834FB7F894DE01139620E03EE051E2EB -:101E8000E32FF0E050935700E49120FF03C0E29568 -:101E9000EF703F5FEF708E2F90E0EA3010F0C79642 -:101EA00001C0C0968D939D932F5F243149F74FBF9A -:101EB0008091E800877F8093E8006AE270E0CE01BD -:101EC00001960E94770B13C0AE01455D5F4F609194 -:101ED000EC010E94AD0A0097E9F12091E800277F0C -:101EE0002093E800BC018BA59CA50E94DA0B809191 -:101EF000E8008B778093E8002DC0803859F58091F9 -:101F0000E800877F8093E8008091E3018093F100EF -:101F10008091E8008E7771CF81111CC09091EA0109 -:101F20009230C0F48091E800877F8093E80090931E -:101F3000E3010E94750C8091E301811104C080913E -:101F4000E30087FF02C084E001C081E08093E701E5 -:101F50000E94AD098091E80083FF0AC08091E800EB -:101F6000877F8093E8008091EB0080628093EB0094 -:101F7000AC960FB6F894DEBF0FBECDBFDF91CF9108 -:101F80001F910895CF938091E7018823B1F080914C -:101F9000E9008F709091EC0090FF02C090E801C0C2 -:101FA00090E0C92FC82B1092E9008091E80083FDD2 -:101FB0000E94590ECF70C093E900CF91089590937D -:101FC0007501809374010895E0917401F091750199 -:101FD000309721F00190F081E02D099480E0089580 -:101FE000E0917401F0917501309721F00280F38146 -:101FF000E02D09940895E0917401F09175013097F6 -:1020000021F00480F581E02D099408952091760156 -:10201000309177018217930771F090937701809345 -:102020007601E0917401F0917501309721F00680FE -:10203000F781E02D0994089520917801309179017C -:102040008217930771F09093790180937801E09162 -:102050007401F0917501309721F00084F185E02D35 -:102060000994089508950C9432100E94541C0E9403 -:1020700028060E94281D0C94D0220C9462055F92C1 -:102080006F927F928F929F92AF92BF92CF92DF9288 -:10209000EF92FF920F931F93CF93DF93CDB7DEB7ED -:1020A0002A970FB6F894DEBF0FBECDBF0E94380747 -:1020B0009AE7C92E91E0D92E00E010E0AA24A3945B -:1020C000B12C502E802F0E948C083C01F601E1902B -:1020D000F1906F01E826F926E114F10431F40F5F65 -:1020E0001F4F0530110569F73AC08091D00181FD7D -:1020F0000E94950820E030E04501022E02C0880CC5 -:10210000991C0A94E2F7C4018E219F21892B09F1C1 -:102110002E835F826820792081E0672809F480E0BF -:1021200088870E945D1C8160782F9A8789874E81FD -:102130005F8168858A850E94F810F801EE0FFF1F05 -:10214000E658FE4F8081918188259925918380836F -:1021500016C02F5F3F4F2C30310571F6C0CF8FEF87 -:1021600089838A831B820E945D1C8160782F9D83F6 -:102170008C8349815A816B818D810E94F8100E9465 -:102180001520109184010E94E40F1817D9F00E94C5 -:10219000E40F809384012A960FB6F894DEBF0FBE39 -:1021A000CDBFDF91CF911F910F91FF90EF90DF9006 -:1021B000CF90BF90AF909F908F907F906F905F90E7 -:1021C0000C943D102A960FB6F894DEBF0FBECDBF1B -:1021D000DF91CF911F910F91FF90EF90DF90CF9003 -:1021E000BF90AF909F908F907F906F905F90089579 -:1021F000CF93DF93CDB7DEB72B970FB6F894DEBF42 -:102200000FBECDBF4F83588769877A878B87DE01E2 -:10221000119686E0FD0111928A95E9F785E0FE01AD -:10222000379601900D928A95E1F749815A816B8129 -:102230007C818D819E810E94D4182B960FB6F894D4 -:10224000DEBF0FBECDBFDF91CF910895CF93C82FD2 -:10225000882309F4C1C0823859F40E94E40F81FD3B -:10226000BBC089E30E943B1B0E94B71B89E30CC0E3 -:10227000833879F40E94E40F80FDAEC083E50E94AC -:102280003B1B0E94B71B83E50E945D1BCF910C9402 -:10229000B71B843859F40E94E40F82FD9DC087E487 -:1022A0000E943B1B0E94B71B87E4EECF8450813A0B -:1022B00048F48C2F0E94322281118EC08C2F0E94F4 -:1022C0003B1BE4CF8C2F805E883050F4C77081E0D8 -:1022D00090E001C0880FCA95EAF70E947E1BD6CF16 -:1022E0008C2F855A833078F4C53A29F0C63A31F4F8 -:1022F00082E890E005C081E890E002C083E890E0C9 -:10230000CF910C9406108C2F885A833108F064C04A -:10231000C83A39F1C93A41F1CA3A49F1CB3A51F1D7 -:10232000CC3A59F1CD3A61F1C03B69F1CE3A71F145 -:10233000CF3A79F1C13B81F1C23B89F1C33B91F1C5 -:10234000C43B99F1C53BA1F1C63BA9F1C73BB1F133 -:10235000C83BB9F1C93BC1F1CA3BC9F58AE292E079 -:1023600038C082EE90E035C089EE90E032C08AEE4F -:1023700090E02FC085EB90E02CC086EB90E029C068 -:1023800087EB90E026C08CEC90E023C08DEC90E0D1 -:1023900020C083E891E01DC08AE891E01AC082E97C -:1023A00091E017C084E991E014C081E292E011C08D -:1023B00083E292E00EC084E292E00BC085E292E0FC -:1023C00008C086E292E005C087E292E002C080E0A9 -:1023D00090E0CF910C941C10CF910895882309F4BC -:1023E0004DC0823859F40E94E40F81FF47C089E351 -:1023F0000E943B1B0E94B71B89E30CC0833871F419 -:102400000E94E40F80FF3AC083E50E943B1B0E94BC -:10241000B71B83E50E945D1B0C94B71B843859F4ED -:102420000E94E40F82FF2AC087E40E943B1B0E94A7 -:10243000B71B87E4EFCF982F9450913A08F4EACF76 -:10244000982F905E983058F4282F277081E090E004 -:1024500001C0880F2A95EAF70E94841BDDCF982FD0 -:10246000955A933020F480E090E00C940610885A3E -:10247000833120F480E090E00C941C1008958823B0 -:1024800021F00E947E1B0C94B71B0895882321F035 -:102490000E94841B0C94B71B0895BF92CF92DF92C9 -:1024A000EF92FF920F931F93CF93DF93CDB7DEB7D9 -:1024B00027970FB6F894DEBF0FBECDBF8C0185E025 -:1024C000F801DE01119601900D928A95E1F7F8016D -:1024D00030812181F280558152955F708381948192 -:1024E000892B39F02F3F41F481E090E03F3F31F0FC -:1024F00003C081E090E002C080E090E080FD73C303 -:1025000039832A8389819A815E830E94F81AB92EC1 -:102510008F830E94F71A0E941F1A2B2D22952F706D -:1025200030E05E816F812530310509F4E6C06CF43E -:10253000243031050CF0A2C04B2D407F8B2D8F70C5 -:10254000223031050CF045C017C02C3031054CF459 -:102550002A3031050CF0E7C12830310509F043C3BA -:10256000E5C02D30310509F4BAC20CF4A2C22F30F7 -:10257000310509F038C323C3182F411101C002C02F -:102580001295107FFF2059F0112309F46BC2812F9F -:102590006F830E948E1B0E94B71B6F8163C2862FC0 -:1025A0000E94EE11112309F41EC3812F0E94941B77 -:1025B00027960FB6F894DEBF0FBECDBFDF91CF9147 -:1025C0001F910F91FF90EF90DF90CF90BF900C94F0 -:1025D000B71B403211F08295807F662319F061307D -:1025E00071F523C0FF20B1F0511101C032C051304C -:1025F00081F527960FB6F894DEBF0FBECDBFDF91F1 -:10260000CF911F910F91FF90EF90DF90CF90BF90EF -:102610000C949E1B511101C003C0513009F4E3C258 -:102620008E830E94A11B8E819AC1FF2021F056301B -:1026300008F0D9C20EC0553008F0D5C290C1FF20B5 -:10264000C9F0552331F0F801958190FF0BC29F70BE -:10265000958327960FB6F894DEBF0FBECDBFDF91EE -:10266000CF911F910F91FF90EF90DF90CF90BF908F -:102670000C943F12552309F472C109C22B2D2695E3 -:102680002695237030E02115310529F021303105E0 -:1026900009F0A9C219C0FF2021F0862F9B2D93704D -:1026A00002C080E090E027960FB6F894DEBF0FBE20 -:1026B000CDBFDF91CF911F910F91FF90EF90DF90F1 -:1026C000CF90BF900C940610FF2021F0862F9B2DF9 -:1026D000937002C080E090E027960FB6F894DEBFBA -:1026E0000FBECDBFDF91CF911F910F91FF90EF9063 -:1026F000DF90CF90BF900C941C10862FFF2019F014 -:102700000E941B1F02C00E94831F27960FB6F894D9 -:10271000DEBF0FBECDBFDF91CF911F910F91FF9014 -:10272000EF90DF90CF90BF900C940A208B2D837098 -:1027300009F079C0F11057C2262F229526952770EF -:10274000220F220F862F8F70C82ED12CE12CF12C56 -:10275000022E04C0CC0CDD1CEE1CFF1C0A94D2F728 -:1027600064FF10C06FE070E080E090E004C0660F8E -:10277000771F881F991F2A95D2F7609570958095CD -:10278000909503C060E070E0CB012B2D2695269537 -:102790002370422F50E042305105D9F043305105AB -:1027A00069F16C297D298E299F294130510551F10C -:1027B00027960FB6F894DEBF0FBECDBFDF91CF9145 -:1027C0001F910F91FF90EF90DF90CF90BF900C94EE -:1027D000341A6C297D298E299F2927960FB6F894E3 -:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044 -:1027F000EF90DF90CF90BF900C94461A0E94341A4D -:10280000C701B60127960FB6F894DEBF0FBECDBF45 -:10281000DF91CF911F910F91FF90EF90DF90CF90BC -:10282000BF900C94221AFF2019F08B2D817001C0EB -:102830008695882309F4D7C1262F229526952770DF -:10284000220F220F862F8F70C82ED12CE12CF12C55 -:10285000022E04C0CC0CDD1CEE1CFF1C0A94D2F727 -:1028600064FF10C06FE070E080E090E004C0660F8D -:10287000771F881F991F2A95D2F7609570958095CC -:10288000909503C060E070E0CB012B2D2695269536 -:102890002370422F50E042305105D9F043305105AA -:1028A00069F16C297D298E299F294130510551F10B -:1028B00027960FB6F894DEBF0FBECDBFDF91CF9144 -:1028C0001F910F91FF90EF90DF90CF90BF900C94ED -:1028D000D31A6C297D298E299F2927960FB6F89443 -:1028E000DEBF0FBECDBFDF91CF911F910F91FF9043 -:1028F000EF90DF90CF90BF900C94E51A0E94D31A0E -:10290000C701B60127960FB6F894DEBF0FBECDBF44 -:10291000DF91CF911F910F91FF90EF90DF90CF90BB -:10292000BF900C94C11A603F59F120F4603E08F446 -:1029300094C008C0623F09F467C0F0F1633F09F03A -:102940008CC065C0162F1F708B2D8F71FF2021F05A -:102950000E946C1A812F7DCE0E94871A812F2796A4 -:102960000FB6F894DEBF0FBECDBFDF91CF911F91A0 -:102970000F91FF90EF90DF90CF90BF900C94461294 -:10298000FF20B1F0553008F02EC18B2D8F712796A6 -:102990000FB6F894DEBF0FBECDBFDF91CF911F9170 -:1029A0000F91FF90EF90DF90CF90BF900C94A61AFC -:1029B000563008F018C1E9CFFF2099F08B2D8F71A8 -:1029C00027960FB6F894DEBF0FBECDBFDF91CF9133 -:1029D0001F910F91FF90EF90DF90CF90BF900C94DC -:1029E0006C1A8B2D8F7127960FB6F894DEBF0FBE31 -:1029F000CDBFDF91CF911F910F91FF90EF90DF90AE -:102A0000CF90BF900C94871AF110EBCFD7CFFF2057 -:102A100099F08B2D8F7127960FB6F894DEBF0FBEFD -:102A2000CDBFDF91CF911F910F91FF90EF90DF907D -:102A3000CF90BF900C945D1A27960FB6F894DEBF26 -:102A40000FBECDBFDF91CF911F910F91FF90EF90FF -:102A5000DF90CF90BF900C94581AFF20A9F0552317 -:102A600009F4ACCF862F27960FB6F894DEBF0FBEC1 -:102A7000CDBFDF91CF911F910F91FF90EF90DF902D -:102A8000CF90BF900C942611552309F4AACF862F1E -:102A900027960FB6F894DEBF0FBECDBFDF91CF9162 -:102AA0001F910F91FF90EF90DF90CF90BF900C940B -:102AB000EE114B2D4F70C8010E94AB0227960FB646 -:102AC000F894DEBF0FBECDBFDF91CF911F910F9164 -:102AD000FF90EF90DF90CF90BF900C948A19F11087 -:102AE00082C09B2D9F70492F50E04230510599F1D3 -:102AF00044F44115510569F04130510509F073C0A6 -:102B000019C043305105C1F14430510509F06BC083 -:102B100044C027960FB6F894DEBF0FBECDBFDF913D -:102B2000CF911F910F91FF90EF90DF90CF90BF90CA -:102B30000C94E12227960FB6F894DEBF0FBECDBFEE -:102B4000DF91CF911F910F91FF90EF90DF90CF9089 -:102B5000BF900C94F82227960FB6F894DEBF0FBEF4 -:102B6000CDBFDF91CF911F910F91FF90EF90DF903C -:102B7000CF90BF900C94142327960FB6F894DEBF25 -:102B80000FBECDBFDF91CF911F910F91FF90EF90BE -:102B9000DF90CF90BF900C942723862F27960FB6F7 -:102BA000F894DEBF0FBECDBFDF91CF911F910F9183 -:102BB000FF90EF90DF90CF90BF900C944B234B2D64 -:102BC0004F70C80127960FB6F894DEBF0FBECDBF79 -:102BD000DF91CF911F910F91FF90EF90DF90CF90F9 -:102BE000BF900C94D40327960FB6F894DEBF0FBEA7 -:102BF000CDBFDF91CF911F910F91FF90EF90DF90AC -:102C0000CF90BF9008950E949B1B0E94701B0E9452 -:102C1000B71B0E94B6200E940A2080E090E00E942C -:102C2000061080E090E00C941C100E948B1B0C940A -:102C300003160E94F81A292F22952F7030E02C30AD -:102C400031054CF42A3031056CF422503109223020 -:102C5000310590F407C02C30310551F02F3031058B -:102C600059F406C0803E10F0803F31F481E00895B1 -:102C700093FB882780F9089580E00895CF93DF9330 -:102C800000D000D01F92CDB7DEB70F900F900F90FD -:102C90000F900F90DF91CF910895CF93DF9300D0E5 -:102CA00000D000D0CDB7DEB726960FB6F894DEBFC1 -:102CB0000FBECDBFDF91CF9108951F93CF93DF93C8 -:102CC000C091BB0116E012C0D0E01C9FF0011D9F17 -:102CD000F00D1124E557FE4F4081518162817381CF -:102CE000848195810E944D162196C7708091BC0108 -:102CF000C813EACFDF91CF911F91089540918501CC -:102D000050918601609187017091880180918901BD -:102D100090918A010C944D160F931F93CF93DF93DC -:102D200080918A0182958F7009F069C08091870136 -:102D3000882309F464C0A091BB01D091BC01B0917B -:102D40008501C0918601809188019091890121E0DF -:102D500030E0BF3F11F020E030E0122FBC01609561 -:102D6000709506E04AC0009721F0CF3F29F4212F4B -:102D700005C021E030E002C020E030E020FD3BC093 -:102D80004A2F50E0049FF001059FF00D1124E557F4 -:102D9000FE4F2181C2132FC02081B2132CC022818B -:102DA000211129C0238134812817390718F0281BE5 -:102DB000390B02C0260F371F283C3105E0F4809103 -:102DC0008A018F70806180938A0186E0849FF00180 -:102DD000859FF00D1124E057FE4F80818F70806138 -:102DE000808385E891E00E944D12DF91CF911F9181 -:102DF0000F910C945D16AF5FA770AD13B4CFDF9148 -:102E0000CF911F910F910895EF92FF920F931F930F -:102E1000CF93DF93CDB7DEB762970FB6F894DEBFDE -:102E20000FBECDBF8C0185E0F801DE011D9601903B -:102E30000D928A95E1F7D8014C9111965C9111970A -:102E400012966C9112971396ED90FC9014977091D6 -:102E50008501E09186018091880190918901009718 -:102E600039F0EF3F41F421E030E07F3F31F003C023 -:102E700021E030E002C020E030E020FD5CC1209184 -:102E80008701222309F4F1C0E816F90628F097011A -:102E9000281B390BC90104C0809590958E0D9F1D8C -:102EA000883C910508F098C080918A01982F907F06 -:102EB00009F064C0E51314C0741312C0611110C08E -:102EC0008F70806180938A010E947E1685E891E070 -:102ED0000E944D1280918A01D80115968C9343C1AE -:102EE000EF2839F05F3F41F481E090E04F3F31F04F -:102EF00003C081E090E002C080E090E080FD03C06C -:102F000081E0862702C080E090E080FF2EC08091A3 -:102F1000BB012091BC0136E013C090E0389FF00166 -:102F2000399FF00D1124E557FE4F7181571306C0EC -:102F30007081471303C07281671317C001968770B1 -:102F40008213EBCF12C19F7059F0882309F40BC193 -:102F500007C09F7029F0F8019581907F09F403C1A3 -:102F6000805E883008F4FFC0D2C0662309F4FBC03D -:102F700080918A01816080938A01F5C0E51308C0C1 -:102F8000741306C0611104C0D80115968C939DC0BE -:102F90004D875E878D859E856A8B0E9419166A898A -:102FA000882309F4B4C0662309F4B1C020918A01D2 -:102FB000822F82958F7090E002970CF4C6C08091AA -:102FC00085019091860198878F831986FB86EA8612 -:102FD0002C87CE01079646C080918A01982F907F5A -:102FE00059F47E2DF98AE88A89890E943E1685E87F -:102FF00091E00E944D1295C0E51311C074130FC0EB -:1030000061110DC0F8018583C8010E944D12E5E8E9 -:10301000F1E086E0DF011D928A95E9F7A2C04D87B5 -:103020005E878D859E856A8B0E9419166A89882322 -:1030300009F46DC0662309F46AC020918A01822FC9 -:1030400082958F7090E002970CF47FC0809185018B -:10305000909186019A8389831B82FD82EC822E8364 -:10306000CE0101960E944D1270C0E816F90628F0B4 -:103070009701281B390BC90104C0809590958E0DCE -:103080009F1D883C910508F046C0662309F43FC0A7 -:10309000E51330C074132EC020918A0120FD21C099 -:1030A000322F32953F70832F90E00097D1F0D801F6 -:1030B00015962C9315970F9741F0832F8F5F82956C -:1030C000807F2F70282B15962C93C8010E944D12DB -:1030D00086E0F801A5E8B1E001900D928A95E1F74C -:1030E0003EC086E0F801A5E8B1E001900D928A9516 -:1030F000E1F737C04D875E878D859E850E94191642 -:10310000811123C080918A01816080938A01C80166 -:103110000E944D1226C07E2DF98AE88A89890E9474 -:103120003E16E5E8F1E086E0DF011D928A95E9F7B9 -:103130000E947E1618C0662351F34D875E878D85E9 -:103140009E850E941916882311F386E0F801A5E8F0 -:10315000B1E001900D928A95E1F70E948C160E94D1 -:103160007E1681E014C080E012C04D875E878D8599 -:103170009E850E94F81A292F22952F7030E0223068 -:1031800031050CF4E0CE243031050CF6E2CE629627 -:103190000FB6F894DEBF0FBECDBFDF91CF911F9168 -:1031A0000F91FF90EF9008951F93CF93DF93CDB7CA -:1031B000DEB72C970FB6F894DEBF0FBECDBF4F839E -:1031C000588769877A878B879C87CE0107960E94EC -:1031D00004178823D9F02F8138858A859B85892B10 -:1031E00039F03F3F19F080E090E004C02F3FD9F75D -:1031F00081E090E0892B09F06DC04F815885698589 -:103200007A858B859C850E944D1664C086E0FE0100 -:103210003796DE01119601900D928A95E1F7FF81B4 -:10322000E8854A855B854115510539F0EF3F41F44A -:1032300081E090E0FF3F31F003C081E090E002C008 -:1032400080E090E080FD46C02091BC0130E0C901E3 -:103250000196877099276091BB0170E086179707E8 -:1032600009F440C0F983EA835D834C8396E0929F22 -:10327000D001939FB00D1124A557BE4FFE0131968A -:1032800001900D929A95E1F78093BC010E945D1622 -:1032900021C0189FC001112485579E4F0E9404171A -:1032A000882371F1E091BB011E9FF0011124E557C5 -:1032B000FE4F4081518162817381848195810E949A -:1032C0004D168091BB0190E00196877099278093FD -:1032D000BB0101C016E08091BB019091BC01891334 -:1032E000D8CF0EC00E9415161092BC011092BB01DF -:1032F000E5E8F1E086E0DF011D928A95E9F7EACF83 -:103300002C960FB6F894DEBF0FBECDBFDF91CF91E4 -:103310001F910895DF92EF92FF920F931F93CF9327 -:10332000DF93EC01009709F46EC0D12CEE24E394F6 -:10333000F12C8E010F5F1F4FFE018491843748F4FA -:10334000843008F04CC0813071F0823009F05BC0ED -:103350001EC0853709F43FC080F1982F94589037EC -:1033600008F051C03FC02296F8018491982F905EDA -:10337000983050F48770FE2D01C0FF0F8A95EAF750 -:103380008F2F0E948E1B13C00E9426112FC02296E1 -:10339000F8018491982F905E983060F48770FE2D2C -:1033A00001C0FF0F8A95EAF78F2F0E94941B0E949D -:1033B000B71B1CC00E94EE1119C02296F80104919F -:1033C00007C08FE99FE00197F1F700C000000150AE -:1033D0000111F7CF0BC02296F801D49007C00E94CC -:1033E000261103C08F770E94EE11E8018D2D07C0D2 -:1033F0008150EFE9FFE03197F1F700C0000088232A -:1034000009F497CFF5CFDF91CF911F910F91FF90E6 -:10341000EF90DF9008956093C1017093C201809393 -:10342000C3019093C4010C9403166093BD01709383 -:10343000BE018093BF019093C0010C9403160895C0 -:103440000C940B1A0F931F930091C1011091C201AC -:103450002091C3013091C401602B712B822B932BDF -:103460001F910F910C940B1A0F931F930091C101A0 -:103470001091C2012091C3013091C40160237123D6 -:10348000822393231F910F910C940B1A0F931F9378 -:103490000091C1011091C2012091C3013091C4017A -:1034A00060277127822793271F910F910C940B1A85 -:1034B00060E070E0CB010C94151A41E050E060E050 -:1034C00070E004C0440F551F661F771F8A95D2F71E -:1034D000CB01BA010C94151A41E050E060E070E0B5 -:1034E00004C0440F551F661F771F8A95D2F780913D -:1034F000BD019091BE01A091BF01B091C001482BC8 -:10350000592B6A2B7B2BCB01BA010C94151A41E085 -:1035100050E060E070E004C0440F551F661F771F45 -:103520008A95D2F740955095609570958091BD0130 -:103530009091BE01A091BF01B091C00148235923D1 -:103540006A237B23CB01BA010C94151A41E050E0A9 -:1035500060E070E004C0440F551F661F771F8A9516 -:10356000D2F78091BD019091BE01A091BF01B091B1 -:10357000C001482759276A277B27CB01BA010C9441 -:10358000151A0F931F930091BD011091BE01209158 -:10359000BF013091C001602B712B822B932B1F91A7 -:1035A0000F910C94151A0F931F930091BD01109168 -:1035B000BE012091BF013091C0016023712382239D -:1035C00093231F910F910C94151A0F931F93009141 -:1035D000BD011091BE012091BF013091C001602753 -:1035E0007127822793271F910F910C94151A089524 -:1035F000CF92DF92EF92FF920F931F93CF93DF93BF -:10360000EC01C090C101D090C201E090C301F090E4 -:10361000C4018091BD019091BE01A091BF01B09104 -:10362000C001C82AD92AEA2AFB2A0FE110E0B70113 -:10363000A601002E04C076956795579547950A9484 -:10364000D2F740FF08C0BE01802F0E94FA038130EC -:10365000910509F007C00150110948F7BE0180E04B -:103660000E94FA03DF91CF911F910F91FF90EF908D -:10367000DF90CF90089540910C0150910D0120E012 -:1036800030E09FEFFA01E20FF31F62816817A1F0AB -:103690009F3F19F4611101C0922F2F5F3F4F2630D9 -:1036A000310581F707C0FA01E90FF11D97FDFA9581 -:1036B000828308959F3FB9F7089540910C0150917E -:1036C0000D0120E030E0FA01E20FF31F9281981320 -:1036D00001C012822F5F3F4F26303105A1F70895B8 -:1036E00081E090E0E0910C01F0910D01E80FF91FED -:1036F0001082019688309105A9F708959091C5012F -:10370000982B9093C501089580959091C5019823B9 -:103710009093C50108951092C50108959091C60136 -:10372000982B9093C601089580959091C601982397 -:103730009093C60108951092C60108958093C70121 -:1037400008951092C701089540910C0150910D0108 -:1037500020E030E080E0FA01E20FF31F9181911147 -:103760008F5F2F5F3F4F27303105A9F70895E09114 -:103770000C01F0910D018091C5018083E0910C0155 -:10378000F0910D0180819091C601892B80839091E9 -:10379000C701992361F0E0910C01F0910D01808146 -:1037A000892B80830E94A41B81110E94A11B809100 -:1037B0000C0190910D010C94F00F8091E701843081 -:1037C00021F11092D10120E488E190E00FB6F89445 -:1037D000A895809360000FBE2093600080E00E9457 -:1037E000E10283B7817F846083BF83B7816083BF39 -:1037F0007894889583B78E7F83BF88E10FB6F8945D -:1038000080936000109260000FBE0895089508959F -:10381000CF9380E00E94E1020E94061C0E943807BC -:103820000E94071CC0E08C2F0E948C08892B29F471 -:10383000CF5FC530C1F780E001C081E0CF9108952E -:103840000E94151680E00E94E1020E94D0220E9490 -:10385000E40F0C9462051F920F920FB60F92112481 -:103860008F939F93AF93BF938091D101811113C028 -:103870008091D2019091D301A091D401B091D50152 -:103880004196A11DB11D8093D2019093D301A093C5 -:10389000D401B093D501BF91AF919F918F910F90BB -:1038A0000FBE0F901F90189582E084BD93E095BDE8 -:1038B0009AEF97BD80936E0008958FB7F89440916A -:1038C000D2015091D3016091D4017091D5018FBF85 -:1038D000CA010895CF92DF92EF92FF920F931F9348 -:1038E0002FB7F8944091D2015091D3016091D40147 -:1038F0007091D5012FBF6A017B01EE24FF248C015A -:1039000020E030E0C016D106E206F30620F09A016E -:10391000281B390B05C09C0120953095240F351FBD -:10392000C9011F910F91FF90EF90DF90CF90089504 -:103930001F920F920FB60F9211248F939F93AF9304 -:10394000BF938091D2019091D301A091D401B09105 -:10395000D5010196A11DB11D8093D2019093D30191 -:10396000A093D401B093D501BF91AF919F918F9156 -:103970000F900FBE0F901F9018950E94C80CF894DE -:103980002FEF87EA91E6215080409040E1F700C098 -:10399000000087E090EBDC018093F1019093F2014D -:1039A000A093F301B093F4012CE088E190E00FB60E -:1039B000F894A895809360000FBE20936000FFCF1D -:1039C000CF92DF92EF92FF920F931F93CF93DF93EB -:1039D000C82ED12C01E010E08D2D0E948C087C01B6 -:1039E000C0E0D0E098010C2E02C0220F331F0A94D1 -:1039F000E2F72E213F21232B29F42196CC30D1054B -:103A000089F708C06C2F7D2D80E00E94D503C81275 -:103A1000F4CF06C0D39485E0D812DECF80E001C099 -:103A200081E0DF91CF911F910F91FF90EF90DF9098 -:103A3000CF900895CF93C82F8CE20E94E01C88237A -:103A400021F08C2FCF910C94E01C80E0CF91089551 -:103A5000CF930E946B1E811102C00E944C1EC5E6CE -:103A600008C00E9438078FE39CE90197F1F700C076 -:103A70000000C150B1F789E20E941A1D81110AC1EC -:103A80008AE20E941A1D81110E944C1E85E00E944C -:103A90001A1D81110E94BD1C0E94761E8093D001C8 -:103AA00087E00E941A1D882399F18BE10E941A1D5C -:103AB000882351F09091D00191FB882780F921E073 -:103AC000822780FB91F922C08EE00E941A1D882374 -:103AD00051F09091D00192FB882780F921E0822754 -:103AE00080FB92F913C080E10E941A1D9091D001D1 -:103AF000882341F093FB882780F921E0822780FB0F -:103B000093F904C0892F809580FB90F99093D001A0 -:103B10008091D0010E947A1E0E94881E8093E1014C -:103B200080EE0E941A1D882341F08091E101982FB8 -:103B3000909590FB80F98093E10189E30E941A1D22 -:103B4000882359F09091E10191FB882780F921E0C9 -:103B5000822780FB91F99093E10182EE0E941A1D69 -:103B6000882359F09091E10192FB882780F921E0A8 -:103B7000822780FB92F99093E10186EE0E941A1D44 -:103B8000882359F09091E10193FB882780F921E087 -:103B9000822780FB93F99093E10183EE0E941A1D26 -:103BA000882359F09091E10194FB882780F921E066 -:103BB000822780FB94F99093E10185E30E941A1D0E -:103BC000882359F09091E10195FB882780F921E045 -:103BD000822780FB95F99093E10181E30E941A1DF1 -:103BE000882359F09091E10196FB882780F921E024 -:103BF000822780FB96F99093E10181E10E941A1DD2 -:103C0000882359F09091E10197FB882780F921E002 -:103C1000822780FB97F99093E1018091E1010E9456 -:103C20008C1E87E20E941A1DC82F8EE10E941A1D69 -:103C30008111C2608FE10E941A1D8111C46080E26F -:103C40000E941A1D8111C86081E20E941A1D811113 -:103C5000C06182E20E941A1D8111C06283E20E944B -:103C60001A1D8111C06484E20E941A1D882311F07C -:103C7000C06802C0CC2329F08C2F0E94831E6C2FB9 -:103C800003C00E947F1E682F70E080E090E0CF911B -:103C90000C94201ACF9108956DEE7EEF80E090E0B5 -:103CA0000E94D92460E082E090E00E94CB2460E092 -:103CB00083E090E00E94CB2460E084E090E00E94EA -:103CC000CB2460E085E090E00E94CB2460E086E0B9 -:103CD00090E00C94CB2480E090E00E94C52421E089 -:103CE0008D3E9E4F09F020E0822F089582E090E003 -:103CF0000C94BD24682F82E090E00C94CB2483E0E8 -:103D000090E00C94BD24682F83E090E00C94CB24C9 -:103D100084E090E00C94BD24682F84E090E00C9443 -:103D2000CB2486E090E00C94BD24682F86E090E0E0 -:103D30000C94CB248091DE0180FF0BC060911101B7 -:103D400085E0689FB0011124759567957595679515 -:103D50002AC081FF09C06091110185E0689FB00110 -:103D60001124759567951FC082FF07C060911101EE -:103D700085E0689FB001112416C04091D80144230A -:103D8000C9F060911001461788F72091110185E074 -:103D9000289F90011124429FC001439F900D112440 -:103DA00070E00E9495246038710540F4611571053A -:103DB00039F002C065E070E0862F08958FE708951E -:103DC00081E008958091DE0180FF08C060910F01BD -:103DD00070E0759567957595679521C081FF06C060 -:103DE00060910F0170E07595679519C082FF04C05E -:103DF00060910F0170E010C08091D8018823C1F05C -:103E000060910E018617A0F790910F01989FC00155 -:103E1000112470E00E9495246038710528F4611522 -:103E2000710521F0862F08958FE7089581E00895A8 -:103E300061E070E0F4CF803F21F40E949A1E8195EA -:103E400004C0813F29F40E949A1E8093DB010895EB -:103E5000823F21F40E949A1E819504C0833F29F479 -:103E60000E949A1E8093DA010895893F19F40E94F6 -:103E7000E21E05C08A3F31F40E94E21E81958093C4 -:103E8000DC0108958B3F21F40E94E21E819504C05D -:103E90008C3F29F40E94E21E8093DD010895843F47 -:103EA00021F48091D901816017C0853F21F4809170 -:103EB000D901826011C0863F21F48091D9018460CC -:103EC0000BC0873F21F48091D901886005C0883FED -:103ED00031F48091D90180618093D90108958D3F9B -:103EE00021F48091DE0181600BC08E3F21F480912E -:103EF000DE01826005C08F3F29F48091DE0184607D -:103F00008093DE010895803F29F48091DB0187FFD3 -:103F10006EC007C0813F41F48091DB0118160CF0A0 -:103F200066C01092DB0163C09091DA01823F19F400 -:103F300097FF5DC005C0833F31F419160CF057C0E0 -:103F40001092DA0154C0893F31F48091DC011816D7 -:103F50000CF04DC006C08A3F39F48091DC0187FF28 -:103F600046C01092DC0143C08B3F29F48091DD01F3 -:103F700087FF3DC006C08C3F39F48091DD011816E3 -:103F8000B4F51092DD0133C0843F21F48091D90152 -:103F90008E7F05C0853F31F48091D9018D7F80935C -:103FA000D90125C0863F21F48091D9018B7FF7CFBD -:103FB000873F21F48091D901877FF1CF883F21F499 -:103FC0008091D9018F7EEBCF8D3F21F48091DE016E -:103FD0008E7F0BC08E3F21F48091DE018D7F05C066 -:103FE0008F3F29F48091DE018B7F8093DE018091E9 -:103FF000DA0181110EC08091DB0181110AC080912C -:10400000DC01811106C08091DD01811102C0109296 -:10401000D801089589ED91E00E94FB0F0E945D1C7C -:104020009093D7018093D6010895CF938091D601C4 -:104030009091D7010E946A1C4091D801442321F03D -:104040002091120130E006C0209113015AE0259F13 -:10405000900111248217930708F486C08091DA0139 -:1040600081110DC09091DB01911109C09091DC018B -:10407000911105C09091DD01992309F475C04F3F5E -:1040800019F04F5F4093D801181624F40E949A1E2D -:104090008093DA018091DA0187FF05C00E949A1EA1 -:1040A00081958093DA018091DB01181624F40E9437 -:1040B0009A1E8093DB018091DB0187FF05C00E947F -:1040C0009A1E81958093DB016091DA01662339F1B4 -:1040D000C091DB01CC2319F1772767FD7095872FFD -:1040E000972F0E949A2323E333E343E35FE30E9485 -:1040F000FE230E9467236093DA016C2F772767FD08 -:104100007095872F972F0E949A2323E333E343E38D -:104110005FE30E94FE230E9467236093DB0180918E -:10412000DC01181624F40E94E21E8093DC018091C9 -:10413000DC0187FF05C00E94E21E81958093DC01AF -:104140008091DD01181624F40E94E21E8093DD01A7 -:104150008091DD0187FF05C00E94E21E819580935A -:10416000DD01CF910C940A20CF910895E9EDF1E0A3 -:1041700085E0DF011D928A95E9F71092D80110922F -:10418000DE010895833089F130F4813061F08230AE -:1041900009F06EC019C0853009F449C0B8F1863005 -:1041A00009F066C055C020911301862F90E0820F60 -:1041B000911D8F3F910520F4620F609313010895C4 -:1041C0008FEF80931301089520911201862F90E0C4 -:1041D000820F911D8F3F910520F4620F60931201B1 -:1041E00008958FEF80931201089520911101862F79 -:1041F00090E0820F911D8F3F910520F4620F609334 -:10420000110108958FEF80931101089520911001FD -:10421000862F90E0820F911D8F3F910520F4620F51 -:104220006093100108958FEF8093100108952091FD -:104230000F01862F90E0820F911D8F3F910520F492 -:10424000620F60930F0108958FEF80930F0108951F -:1042500020910E01862F90E0820F911D8F3F9105D6 -:1042600020F4620F60930E0108958FEF80930E018A -:104270000895833021F130F4813059F0823009F013 -:1042800049C012C0853089F128F1863009F042C05A -:1042900037C080911301681720F4861B80931301A7 -:1042A000089510921301089580911201681720F467 -:1042B000861B809312010895109212010895809137 -:1042C0001101681720F4861B809311010895109244 -:1042D0001101089580911001681720F4861B8093C6 -:1042E0001001089510921001089580910F01681730 -:1042F00020F4861B80930F01089510920F010895FA -:1043000080910E01681720F4861B80930E0108959A -:1043100010920E01089541E050E060E070E004C0AA -:10432000440F551F661F771F8A95D2F7CB01BA013C -:104330000E94201A0C941516873200F58E3108F071 -:1043400086C08E3009F466C060F4873009F44DC031 -:1043500018F4863049F531C0883041F18B3021F5B1 -:104360007BC0863109F478C018F48031E9F45CC070 -:10437000893109F471C08B31B9F442C0883309F432 -:104380006BC048F4893209F460C0853309F45DC01C -:10439000873251F45AC0833409F457C018F48A3371 -:1043A00018F057C0883499F080E008950E94761E76 -:1043B0000E94881E0E94911E4FC08091D001817F73 -:1043C0008E7F8093D00181E08093DF0108950E9469 -:1043D00015162FEF83ED90E3215080409040E1F7D8 -:1043E00000C000000E94BD1C37C08091D00180FF3A -:1043F00003C0817F8E7F01C081608093D0012CC07B -:104400009091D00191FB882780F921E0822780FBE1 -:1044100091F913C09091D00192FB882780F921E097 -:10442000822780FB92F909C09091D00193FB8827E5 -:1044300080F921E0822780FB93F99093D0018823B3 -:1044400059F091609093D00107C080E003C08D5176 -:1044500001C089530E948B2181E0089580E0089576 -:1044600080E00895CF93C82F8091DF01813071F0F3 -:1044700020F0823009F089C037C0A0910C01B091C2 -:104480000D018C91823209F082C007C0A0910C010D -:10449000B0910D018C91823249F48C2F0E942E2212 -:1044A00081111EC08C2F0E949C211CC08C2F0E9449 -:1044B0003022811115C0C43169F030F4CB3081F065 -:1044C000C03109F068C009C0C93221F0C83309F011 -:1044D00062C006C01092DF015EC082E08093DF01FF -:1044E00081E090E081705AC0C932C9F060F4C431F3 -:1044F000B1F020F4C73009F04CC034C0CE51C63002 -:1045000008F047C017C0CE3439F120F4CB3409F09D -:1045100040C01CC0C135C1F0C235D9F513C080916F -:10452000E001882319F01092E00133C081E080930C -:10453000DF0134C0EC2FF0E0E65BFE4F808180931A -:10454000E00127C061E003C061E007C06AE080913C -:10455000E0010E94C2201DC06AE08091E0010E943B -:10456000392117C08EE18093130182E380931201F9 -:104570008AE08093110184E18093100188E08093A8 -:104580000F0188E280930E0104C01092DF0180E0E9 -:1045900005C081E003C080E090E0A4CFCF910895F2 -:1045A0000E946B1E811102C00E944C1E0E94911E2F -:1045B0008093F00180FF02C0869501C080E00C94DA -:1045C000E1028091F001982F9695292F30E0233059 -:1045D00031054CF49F5F990F8170892B8160809326 -:1045E000F0010E94951E8091F00186950C94E102E5 -:1045F0008091F001982F969591F09158990F8170C4 -:10460000892B8093F0018E7F91E009F490E08091F6 -:10461000F00190FB80F98093F0010E94951E80913B -:10462000F00186950C94E1028091F001982F90950D -:1046300090FB80F98093F0010E94951E8091F0011B -:1046400080FF02C0869501C080E00C94E1023091A9 -:10465000F001232F26952F5F2F77822F90E0317066 -:1046600004972CF4220F232B2093F00102C03093E7 -:10467000F0018091F001282F2E7F91E009F490E065 -:1046800090FB80F98093F0010E94951E8091F001CB -:1046900086950C94E1022091F001922F969598272F -:1046A000990F822F8170892B8093F0018E7F91E08A -:1046B00009F490E08091F00190FB80F98093F00183 -:1046C0000E94951E8091F00186950C94E10204D021 -:1046D0006894B1118DC0089570D088F09F5790F004 -:1046E000B92F9927B751A0F0D1F0660F771F881F17 -:1046F000991F1AF0BA95C9F712C0B13081F077D07E -:10470000B1E0089574C0672F782F8827B85F39F01B -:10471000B93FCCF3869577956795B395D9F73EF475 -:1047200090958095709561957F4F8F4F9F4F08951D -:10473000E89409C097FB3EF490958095709561953B -:104740007F4F8F4F9F4F9923A9F0F92F96E9BB27F1 -:104750009395F695879577956795B795F111F8CF6D -:10476000FAF4BB0F11F460FF1BC06F5F7F4F8F4FD8 -:104770009F4F16C0882311F096E911C0772321F0CE -:104780009EE8872F762F05C0662371F096E8862F66 -:1047900070E060E02AF09A95660F771F881FDAF7BD -:1047A000880F9695879597F9089557FD9058440F6F -:1047B000551F59F05F3F71F04795880F97FB991F80 -:1047C00061F09F3F79F0879508951216130614063D -:1047D000551FF2CF4695F1DF08C0161617061806CA -:1047E000991FF1CF86957105610508940895E894A5 -:1047F000BB2766277727CB0197F908950BD078C0A0 -:1048000069D028F06ED018F0952309F05AC05FC027 -:104810001124EECFCADFA0F3959FD1F3950F50E09E -:10482000551F629FF001729FBB27F00DB11D639F62 -:10483000AA27F00DB11DAA1F649F6627B00DA11D08 -:10484000661F829F2227B00DA11D621F739FB00DAE -:10485000A11D621F839FA00D611D221F749F33271E -:10486000A00D611D231F849F600D211D822F762FB7 -:104870006A2F11249F5750408AF0E1F088234AF0B4 -:10488000EE0FFF1FBB1F661F771F881F9150504000 -:10489000A9F79E3F510570F014C0AACF5F3FECF31B -:1048A000983EDCF3869577956795B795F795E795EC -:1048B0009F5FC1F7FE2B880F911D9695879597F9FD -:1048C000089597F99F6780E870E060E008959FEF92 -:1048D00080EC089500240A94161617061806090697 -:1048E000089500240A941216130614060506089566 -:1048F000092E0394000C11F4882352F0BB0F40F4EE -:10490000BF2B11F460FF04C06F5F7F4F8F4F9F4F2D -:104910000895991B79E004C0991F961708F0961B1B -:10492000881F7A95C9F78095089597FB072E16F48E -:10493000009407D077FD09D00E94A92407FC05D078 -:104940003EF4909581959F4F0895709561957F4FA6 -:104950000895AA1BBB1B51E107C0AA1FBB1FA617C6 -:10496000B70710F0A61BB70B881F991F5A95A9F718 -:1049700080959095BC01CD010895F999FECF92BD27 -:1049800081BDF89A992780B50895A8E1B0E042E08A -:1049900050E00C94E024262FF999FECF1FBA92BD67 -:1049A00081BD20BD0FB6F894FA9AF99A0FBE019610 -:1049B00008950E94CB24272F0C94CC24DC01CB013A -:1049C000FC01F999FECF06C0F2BDE1BDF89A31961F -:1049D00000B40D9241505040B8F70895F894FFCFBD -:1049E00005960826090209CD08990801C80128087A -:1049F000140A321E420045002500260043006100D3 -:104A00006000200037006400650066006700440015 -:104A100046002400470074038D03A603BF038B04E4 -:104A20003E040804E8033F4D362001020304050656 -:044A3000070809006A -:00000001FF -- cgit v1.2.3-70-g09d2 From 28352f46192c50867e5e1439be6149374d2b78bd Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 01:01:41 -0400 Subject: adds revisions of .hex files for planck/preonic --- keyboard/planck/planck_pcb_r3.hex | 1544 ++++++++++++++++++ keyboard/planck/planck_pcb_r3_w_bootloader.hex | 1796 +++++++++++++++++++++ keyboard/planck/planck_pcb_r4.hex | 1628 +++++++++++++++++++ keyboard/planck/planck_pcb_r4_w_bootloader.hex | 1880 ++++++++++++++++++++++ keyboard/preonic/preonic_pcb_r1.hex | 1702 ++++++++++++++++++++ keyboard/preonic/preonic_pcb_r1_w_bootloader.hex | 1863 +++++++++++++++++++++ 6 files changed, 10413 insertions(+) create mode 100644 keyboard/planck/planck_pcb_r3.hex create mode 100755 keyboard/planck/planck_pcb_r3_w_bootloader.hex create mode 100644 keyboard/planck/planck_pcb_r4.hex create mode 100644 keyboard/planck/planck_pcb_r4_w_bootloader.hex create mode 100644 keyboard/preonic/preonic_pcb_r1.hex create mode 100644 keyboard/preonic/preonic_pcb_r1_w_bootloader.hex (limited to 'keyboard/planck') diff --git a/keyboard/planck/planck_pcb_r3.hex b/keyboard/planck/planck_pcb_r3.hex new file mode 100644 index 000000000..11f523c05 --- /dev/null +++ b/keyboard/planck/planck_pcb_r3.hex @@ -0,0 +1,1544 @@ +:100000000C949D020C94E1020C94E1020C94E10228 +:100010000C94E1020C94E1020C94E1020C94E102D4 +:100020000C94E1020C94E1020C941C120C94EE125C +:100030000C948D240C94E1020C94E1020C94E102E6 +:100040000C94E1020C94E1020C94E1020C94E102A4 +:100050000C94E1020C94FA240C94E1020C94E10259 +:100060000C94E1020C94E1020C94E1020C94E10284 +:100070000C94E1020C94E1020C94E1020C94E10274 +:100080000C94860A0C94E1020C94E1020C94E102B7 +:100090000C94E1020C94E1020C94E1020C94E10254 +:1000A0000C94E1020C94E1020C94E10207634236E5 +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F0000000000000021 +:10013000F1A4F1A3018C028C048C2B0014001A0092 +:100140000800150017001C0018000C001200130016 +:100150002A00290004001600070009000A000B000D +:100160000D000E000F0033003400E1001D001B00E5 +:100170000600190005001100100036003700380095 +:1001800028000030E000E200E30002202C002C00F8 +:1001900001205000510052004F002B0014001A00A3 +:1001A000090013000A000D000F0018001C003300A6 +:1001B0002A002900040015001600170007000B0094 +:1001C000110008000C0012003400E1001D001B00AB +:1001D0000600190005000E00100036003700380038 +:1001E00028000030E000E200E30002202C002C0098 +:1001F00001205000510052004F002B003400360007 +:10020000370013001C0009000A00060015000F004B +:100210002A00290004001200080018000C00070042 +:100220000B001700110016003800E1003300140025 +:100230000D000E001B00050010001A0019001D0023 +:1002400028000030E000E200E30002202C002C0037 +:1002500001205000510052004F0035021E021F02C3 +:100260002002210222022302240225022602270262 +:100270002A0001003A003B003C003D003E003F00E8 +:100280002D022E022F0230023102010040004100F7 +:100290004200430044004500032004200520005094 +:1002A0000100010001000100010002200100010025 +:1002B0000100AB00AA00A900AE0035001E001F001F +:1002C0002000210022002300240025002600270012 +:1002D0002A0001003A003B003C003D003E003F0088 +:1002E0002D002E002F0030003100010040004100A1 +:1002F0004200430044004500032004200520005034 +:1003000001000100010001000100010001000100E5 +:100310000120AB00AA00A900AE0028035400680029 +:100320006500200050006C0061006E0063006B00EF +:1003300020004B006500790062006F0061007200D0 +:10034000640000002C034F007200740068006F000E +:100350006C0069006E0065006100720020004B00B7 +:100360006500790062006F00610072006400730034 +:100370000000040309040902D000060100A03209AC +:100380000400000103010100092111010001223FC5 +:10039000000705810308000A0904010001030102A6 +:1003A00000092111010001224D0007058203080008 +:1003B0000A090402000103000000092111010001E3 +:1003C0002236000705830308000A0904030002031C +:1003D000000000092111010001222000070584030B +:1003E00020000107050403200001090404000001A6 +:1003F00001000009240100010900010509040500AC +:10040000020103000007240100014100062402014B +:100410000100062402020200092403010301020173 +:10042000000924030204010101000905060240003D +:1004300005000005250101010905850240000500B0 +:100440000005250101031201100100000008EDFE66 +:1004500060600100010200010631FF0974A1010979 +:1004600075150025FF952075088102097615002570 +:10047000FF952075089102C005010980A101850240 +:1004800016010026B7001A01002AB7007510950161 +:100490008100C0050C0901A1018503160100269CFD +:1004A000021A01002A9C02751095018100C0050105 +:1004B0000902A1010901A100050919012905150079 +:1004C00025019505750181029501750381010501DD +:1004D000093009311581257F950275088106093893 +:1004E0001581257F950175088106050C0A380215CE +:1004F00081257F950175088106C0C005010906A107 +:1005000001050719E029E715002501950875018106 +:1005100002950175088101050819012905950575E0 +:100520000191029501750391010507190029FF1535 +:100530000025FF950675088100C011241FBECFEF6E +:10054000DAE0DEBFCDBF04B603FE24C0809178039D +:1005500090917903A0917A03B0917B038730904BFF +:10056000A740B04BB9F4109278031092790310921F +:100570007A0310927B0314BE84B7877F84BF88E11F +:100580000FB6F89480936000109260000FBEE0E018 +:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E +:1005A00005900D92A63BB107D9F713E0A6EBB1E099 +:1005B00001C01D92A837B107E1F70E94F90E0C9413 +:1005C000CF2F0C9400000895089561110DC0FC0117 +:1005D0008281882331F085EE0E949D190E94B62BFE +:1005E00003C085EE0E94651A80E090E008958B3B81 +:1005F000910568F4883A910530F5853A9105C0F483 +:100600008430910598F4019709F06FC071C0803E65 +:10061000910508F46AC0883E910540F09C01205F76 +:1006200031092031310508F060C05CC09C01A1C0D7 +:10063000853A910509F45FC0863A910509F45EC0D8 +:1006400023E830E496C0883A910509F45AC0893A03 +:10065000910509F459C08A3A910509F458C08B3ABA +:10066000910509F457C08C3A910509F456C08D3AAA +:10067000910509F455C0803B910509F454C08E3AA8 +:10068000910509F453C08F3A910509F452C0813B9A +:10069000910509F451C0823B910509F450C0833B98 +:1006A000910509F44FC0843B910509F44EC0853B88 +:1006B000910509F44DC0863B910509F44CC0873B78 +:1006C000910509F44BC0883B910509F44AC0893B68 +:1006D000910509F449C08A3B910509F048C02AE216 +:1006E00036E447C09C01306544C020E030E041C0A2 +:1006F00021E030E03EC021E830E43BC022E830E4B5 +:1007000038C022EE34E435C029EE34E432C02AEE9B +:1007100034E42FC025EB34E42CC026EB34E429C0AC +:1007200027EB34E426C02CEC34E423C02DEC34E475 +:1007300020C023E835E41DC02AE835E41AC022E9C8 +:1007400035E417C024E935E414C021E236E411C0D1 +:1007500023E236E40EC024E236E40BC025E236E4A0 +:1007600008C026E236E405C027E236E402C020E0F5 +:1007700034E4C90108959CE0799FF001112490E3CD +:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3 +:10079000E65CFE4F25913491C9010895880F991F99 +:1007A00082559040FC0125913491C9010895880F2C +:1007B000991F825D9E4FFC0125913491C9010895D6 +:1007C0000E94BB039C013A9521153F4108F4DFC00C +:1007D0009C0130522115304120F49F700E94D703B4 +:1007E00008959C0130532115304118F49927906CDD +:1007F00008959C0130542031310520F48F709927E1 +:10080000946D0895803120E4920719F480E091ED11 +:100810000895813140E4940719F480E090ED089543 +:10082000823120E4920719F480E092ED089583313B +:1008300040E4940719F480E093ED0895811520E5D4 +:10084000920711F40C941F25813040E5940731F490 +:100850008091680281608093680208959C013056FF +:100860002115304108F402C097FF02C0906F08952F +:10087000803E9105E0F4803C910568F58133910557 +:1008800009F474C048F48932910509F46AC08A32C7 +:10089000910509F07AC074C089339105F9F0823866 +:1008A0009105E1F08533910509F06FC050C0833E9A +:1008B0009105A9F140F4803E9105C9F0823E910571 +:1008C00009F063C01BC0863E910571F1873E91051A +:1008D00009F05BC037C00E94CE03089520917B02CF +:1008E00020FD02C021FF51C080EE90E04EC08091FB +:1008F0007B0280FFF9CF89E390E047C080917B02C3 +:1009000082FF0AC080917B0284FF03C080E090E0F8 +:100910003CC083EE90E039C082EE90E036C080911A +:100920007B0282FFEFCFF8CF80917B0283FF07C06D +:1009300080917B0284FDEACF87EE90E026C086EEB0 +:1009400090E023C080917B0283FFF2CFF8CF8091AB +:100950007B0285FF03C089E290E017C085E390E049 +:1009600014C080917B0285FDF9CFF5CF80917B0289 +:1009700086FF03C08AE290E008C081E390E005C0F2 +:1009800080917B0286FDF9CFF5CF0E94F702089592 +:100990005F926F927F928F929F92AF92BF92CF920F +:1009A000DF92EF92FF920F931F93CF93DF93CDB718 +:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD +:1009C0002F5F3F4F4E0189E0880E911C60E070E080 +:1009D00000E010E0E12CF12CC12CD12CA12CB12C89 +:1009E00088E0782E622E532E41E050E0E3E2F1E001 +:1009F000A62DB52D872D01900D928A95E1F7F9016D +:100A0000819191919F01FC01E07FFF27E032F10588 +:100A100059F48F709927FA0102C0EE0FFF1F8A95D3 +:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0 +:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E +:100A4000DF2A29C0E034F10559F48F709927FA01A3 +:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5 +:100A6000E035F10559F48F709927FA0102C0EE0FB5 +:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504 +:100A800051F48F709927FA0102C0EE0FFF1F8A956B +:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B +:100AA0008A2D8095892384B985B18A2985B997B122 +:100AB0008C2D8095892387B988B18C2988B99AB102 +:100AC0008E2D809589238AB98BB18E298BB99DB1E2 +:100AD000802F809589238DB98EB1802B8EB990B3EC +:100AE000862F8095892380BB81B3862B81BB289676 +:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F +:100B00000F91FF90EF90DF90CF90BF90AF909F90AC +:100B10008F907F906F905F9008955F926F927F9219 +:100B20008F929F92AF92BF92CF92DF92EF92FF92FD +:100B30000F931F93CF93DF93CDB7DEB768970FB6B0 +:100B4000F894DEBF0FBECDBF85B7806885BF85B77F +:100B5000806885BF0E94CF076E9A769A0E94C8046B +:100B60009E012F5F3F4F4E0189E1880E911C60E08E +:100B700070E000E010E0E12CF12CC12CD12CA12C74 +:100B8000B12C98E1792E622E532E41E050E0EBE239 +:100B9000F1E0A62DB52D872D01900D928A95E1F7F4 +:100BA000F901819191919F01FC01E07FFF27E032E3 +:100BB000F10559F48F709927FA0102C0EE0FFF1F5B +:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F +:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786 +:100BE000CE2ADF2A29C0E034F10559F48F70992705 +:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4 +:100C00001BC0E035F10559F48F709927FA0102C035 +:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B +:100C2000F10551F48F709927FA0102C0EE0FFF1FF2 +:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F +:100C400094B18A2D8095892384B985B18A2985B983 +:100C500097B18C2D8095892387B988B18C2988B963 +:100C60009AB18E2D809589238AB98BB18E298BB943 +:100C70009DB1802F809589238DB98EB1802B8EB93F +:100C800090B3862F8095892380BB81B3862B81BB4F +:100C90001092B7011092B6011092BF011092BE01DE +:100CA0001092B9011092B8011092C1011092C001C6 +:100CB0001092BB011092BA011092C3011092C201AE +:100CC0001092BD011092BC011092C5011092C40196 +:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF +:100CE0001F910F91FF90EF90DF90CF90BF90AF904A +:100CF0009F908F907F906F905F9008955F926F921A +:100D00007F928F929F92AF92BF92CF92DF92EF929B +:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA +:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1 +:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57 +:100D4000B11C38E0532E470101E010E048E1642E69 +:100D500055E0752EE3E2F1E0D401852D01900D926E +:100D60008A95E1F7F701819191917F019C01207FA4 +:100D700033272032310589F424B18F709927A801D7 +:100D800002C0440F551F8A95E2F7CA01242B24B9EB +:100D900095B18095892385B94FC02033310589F4F9 +:100DA00027B18F709927F80102C0EE0FFF1F8A95B7 +:100DB000E2F7CF012E2B27B998B18095892388B906 +:100DC0003BC02034310589F42AB18F709927A801DE +:100DD00002C0440F551F8A95E2F7CA01242B2AB995 +:100DE0009BB1809589238BB927C02035310589F4C3 +:100DF0002DB18F709927F80102C0EE0FFF1F8A9561 +:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3 +:100E100013C02036310581F420B38F709927A801C3 +:100E200002C0440F551F8A95E2F7CA01242B20BB4C +:100E300091B38095892381BB50EA5A95F1F7BE01A1 +:100E40006F5F7F4F80E090E020E030E0EBE2F1E088 +:100E5000DE011196462D01900D924A95E1F7FB01B6 +:100E600041915191BF01FA01E07FFF27E032F10586 +:100E700011F4E3B113C0E033F10511F4E6B10EC093 +:100E8000E034F10511F4E9B109C0E035F10511F4E0 +:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009 +:100EA000552702C0F595E7954A95E2F7E0FD08C0A1 +:100EB000A801022E02C0440F551F0A94E2F702C097 +:100EC00040E050E0842B952B2F5F3F4F2C303105B5 +:100ED00009F0BCCFF601208131812817390721F0B4 +:100EE00091838083709200010E94C804F2E0CF0ECB +:100EF000D11CEA14FB0409F02DCF80910001882356 +:100F000061F1815080930001811121C08091BE0167 +:100F10009091BF019093B7018093B6018091C00179 +:100F20009091C1019093B9018093B8018091C20161 +:100F30009091C3019093BB018093BA018091C40149 +:100F40009091C5019093BD018093BC0106C08FE9CB +:100F50009FE00197F1F700C0000081E0A0960FB676 +:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF +:100F7000FF90EF90DF90CF90BF90AF909F908F90B9 +:100F80007F906F905F900895E82FF0E0EE0FFF1FC5 +:100F9000EA54FE4F80819181089508950895279A1B +:100FA0002F988FEF9FEF90938700809386008AE0C1 +:100FB0008093800089E1809381000C945F2B8111E4 +:100FC0000BC080918000877F8093800010928D00FD +:100FD00010928C002F9808952F98833041F48091BF +:100FE00080008860809380008FEF9FEF12C0909107 +:100FF000800098609093800023E030E0281B310946 +:10100000220F331F8FEF9FEF02C0969587952A9589 +:10101000E2F790938D0080938C0008950F931F93B7 +:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484 +:10103000DEBF0FBECDBF8C01862F642F882379F0D1 +:10104000F80192812FE7482F992329F08DE792E04C +:101050000E94F81404C08DE792E00E940815F80180 +:1010600080818B3061F49181933009F068C0828176 +:10107000882309F4CDC0809103018F5F0EC08A30B0 +:10108000E1F5F8019181933009F059C082818823FC +:1010900009F4BEC08091030181508093030120E0D8 +:1010A0004BE760E08DE792E00E94E81420E04BE718 +:1010B00061E08DE792E00E94E81420E04BE762E0F7 +:1010C0008DE792E00E94E81420E04BE763E08DE7B3 +:1010D00092E00E94E81420E04BE764E08DE792E0A4 +:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100 +:1010F000CF911F910F910C94E814893069F4F80195 +:1011000091819330E1F492819923C9F0809101019A +:101110009091020101960EC0883089F4F801918106 +:10112000933069F49281992351F08091010190915B +:10113000020101979093020180930101B0CFF80161 +:10114000928140910301992391F196E4E3E4F1E067 +:10115000DE01A95BBF4F01900D929A95E1F7405DCA +:10116000F8019181FCE09F9F40191124E091010159 +:10117000F0910201E80FF11DEE0FFF1F87E490E0F0 +:101180008C0F9D1FE80FF91F8081480F2FE760E04B +:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65 +:1011A000CDBFDF91CF911F910F910C94F81496E46D +:1011B000E3E4F1E0DE01119601900D929A95E1F7DA +:1011C000405DF8019181FCE09F9F40191124E0915E +:1011D0000101F0910201E80FF11DEE0FFF1F81E008 +:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB +:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92 +:101200000FBECDBFDF91CF911F910F910C940815A8 +:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE +:10122000CF911F910F910895CF93DF93EA019B0116 +:10123000AC0160E074E284E79BE40E945F2C0E94B2 +:10124000C72C709397006093960020E130E02C1B30 +:101250003D0B02C0759567952A95E2F7709399004A +:1012600060939800DF91CF9108951092020210923E +:10127000010210929000109291001092FD011092C4 +:10128000FE011092FF01109200021092FC011092D8 +:10129000FB01E9EDF1E0A9ECB1E01192119211929C +:1012A00011921D921D9281E0E93FF807B1F7089570 +:1012B000AF92BF92CF92DF92EF92FF920F931F9364 +:1012C000CF93DF936B017C0109EF11E047EDA42E72 +:1012D00041E0B42EC7E0D0E0A7019601F801929159 +:1012E0008291729162918F010E945B2C882349F058 +:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F +:1013000034C0F8011082118212821382F501118219 +:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80 +:10132000DE01AA0FBB1FA753BE4FCE011AC0019604 +:1013300044815581668177814083518362837383C1 +:10134000148215821682178212962D913C91139762 +:1013500011963C932E9313961C921E9212973496DC +:1013600012968730910519F7C3CF809101029091B1 +:101370000202019797FD05C090930202809301023B +:1013800004C01092020210920102E0910102F09159 +:101390000202309789F410929000109291001092FE +:1013A000FD011092FE011092FF01109200021092B6 +:1013B000FC011092FB019EC03197DF01AA0FBB1FF9 +:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1 +:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA +:1013E000B090FE010091FF0110910002A70196014B +:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1 +:1014000081E08093C801AE016A2D7B2D802F912F42 +:101410000E9414092091FD013091FE014091FF01CD +:1014200050910002C701B6010E94F62B20E030E087 +:101430004AEF53E40E945F2C9B01AC016A2D7B2D87 +:10144000802F912F0E94F72B5B018C01A701960141 +:101450007B2D912F0E945B2C1816ACF638C0A7018B +:1014600096016A2D7B2D802F912F0E94AA2D181690 +:1014700084F581E08093C801AE016A2D7B2D802F19 +:10148000912F0E941409A70196016091FD017091AE +:10149000FE018091FF01909100020E94F62B20E056 +:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF +:1014B0007B2D802F912F0E94F62B5B018C01A701C1 +:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8 +:1014D000C801AE01C701B6010E941409C092FD0106 +:1014E000D092FE01E092FF01F0920002D093FC0145 +:1014F000C093FB01DF91CF911F910F91FF90EF906F +:10150000DF90CF90BF90AF90089508951F920F92F3 +:101510000FB60F9211242F933F934F935F936F93C6 +:101520007F938F939F93AF93BF93EF93FF9380919C +:10153000960090919700892B09F455C08091C801BD +:10154000811151C08091F9019091FA01813091058A +:1015500071F082309105C1F0892BC1F52091FD0118 +:101560003091FE014091FF01509100021DC0609139 +:10157000FD017091FE018091FF01909100029B019D +:10158000AC010E94F72B0EC020E030E040E450E4B4 +:101590006091FD017091FE018091FF019091000228 +:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5 +:1015B0000E945F2C0E94C72C709397006093960046 +:1015C0007595679570939900609398008091F901E3 +:1015D0009091FA01019663E070E00E948A2F909347 +:1015E000FA018093F901FF91EF91BF91AF919F9123 +:1015F0008F917F916F915F914F913F912F910F90BC +:101600000FBE0F901F901895AF92BF92CF92DF92AE +:10161000EF92FF920F931F93CF93DF936B017C01A7 +:10162000EA0120E030E0A9010E94AA2D18160CF072 +:10163000B4C03E9A82E8809390008AE18093910042 +:10164000A090FD01B090FE010091FF0110910002F9 +:1016500020E030E0A9016A2D7B2D802F912F0E9480 +:101660005B2C81112DC0AE01C701B6010E94140987 +:10167000C092FD01D092FE01E092FF01F0920002C3 +:10168000D093FC01C093FB01809101029091020272 +:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F +:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F +:1016B000D183C083019690930202809301026DC092 +:1016C000A70196016A2D7B2D802F912F0E945B2C04 +:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499 +:1016E00014092091FD013091FE014091FF015091BC +:1016F0000002C701B6010E94F62B20E030E04AEF5D +:1017000053E40E945F2C9B01AC016A2D7B2D802F3E +:10171000912F0E94F72B5B018C01A70196017B2D75 +:10172000912F0E945B2C1816ACF69DCFA701960155 +:101730006A2D7B2D802F912F0E94AA2D18160CF058 +:1017400092CFAE016A2D7B2D802F912F0E9414091C +:10175000A70196016091FD017091FE018091FF014A +:10176000909100020E94F62B20E030E04AEF53E413 +:101770000E945F2C9B01AC016A2D7B2D802F912F45 +:101780000E94F62B5B018C01A70196017B2D912F06 +:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1 +:1017A0000F91FF90EF90DF90CF90BF90AF90089592 +:1017B00080910C020895CF93DF9300D01F92CDB794 +:1017C000DEB720916E03243021F523E029839B832B +:1017D0008A832093E9008FEF06C095ED9A95F1F783 +:1017E0000000882329F09091E800815095FFF5CF03 +:1017F0008091E80085FF0DC040E050E063E070E0BC +:10180000CE0101960E94BA0F8091E8008E778093F6 +:10181000E8000F900F900F90DF91CF910895CF9334 +:10182000DF9300D01F92CDB7DEB720916E03243036 +:1018300029F522E029839B838A8383E08093E90052 +:101840008FEF06C095ED9A95F1F70000882329F0F7 +:101850009091E800815095FFF5CF8091E80085FFD9 +:101860000DC040E050E063E070E0CE0101960E94C0 +:10187000BA0F8091E8008E778093E8000F900F9068 +:101880000F90DF91CF91089520916E032430F9F4E9 +:1018900022E02093E9002FEF06C035ED3A95F1F7ED +:1018A0000000222329F03091E800215035FFF5CFC8 +:1018B0002091E80025FF0BC040E050E065E070E0BB +:1018C0000E94BA0F8091E8008E778093E800089517 +:1018D000CF93DF93EC0180916E03843041F581E07A +:1018E0008093E9008FEF06C095ED9A95F1F700001F +:1018F000882329F09091E800815095FFF5CF8091E1 +:10190000E80085FF14C040E050E068E070E0CE01E0 +:101910000E94BA0F8091E8008E778093E80088E0FB +:10192000FE01A4E0B2E001900D928A95E1F7DF910B +:10193000CF910895BF92CF92DF92EF92FF920F93D3 +:101940001F93CF93DF937C01B62EE90100E010E0F6 +:10195000C42ED12C0BC04991202F2B0D2F774F7700 +:101960006FE0C7010E94E8140F5F1F4F0C151D05A3 +:1019700094F3DF91CF911F910F91FF90EF90DF9043 +:10198000CF90BF90089570E06F5F7F4F6F707727A3 +:101990000C94E8140F931F93CF93C42F63307105F9 +:1019A00009F04AC0842F807F803849F1803909F0DE +:1019B00043C0622F6F7770E080E090E00E94FA2CC5 +:1019C00020E030E040E451E40E945F2C9B01AC0138 +:1019D00060E070E080E090E40E94112E0F7710E04C +:1019E00023E0159507952A95E1F72DEC3CEC42E0B4 +:1019F00053E40E94AE2DA8010E94040B1DC0622F6B +:101A00006F7770E080E090E00E94FA2C20E030E0F8 +:101A100040E451E40E945F2C9B01AC0160E070E067 +:101A200080E090E40E94112E2DEC3CEC42E053E467 +:101A30000E94AE2D0E945809CC3F29F4CF911F91EE +:101A40000F910C943509CF911F910F9108950F9329 +:101A50001F93CF93DF93CDB7DEB727970FB6F894D8 +:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C +:101A70009A819D839B819E839C819F8381111EC03F +:101A800089818430B1F08730A1F08630A1F08530B3 +:101A9000A1F0BE016F5F7F4F84E091E00E942F189C +:101AA0008111E3CF84E091E00E9420180E949B14F2 +:101AB0000DC083E003C082E001C081E0AE014B5F56 +:101AC0005F4F682FC8010E945515E3CF27960FB6C8 +:101AD000F894DEBF0FBECDBFDF91CF911F910F9164 +:101AE0000895EF92FF920F93CF93DF9300D000D031 +:101AF00000D0CDB7DEB77B014A832B830C83842FC4 +:101B00002E834D830E94C2142E814D8181111BC0F2 +:101B100082E0E816F10479F083E0E816F10421F0A0 +:101B2000EA94EF2821F50BC0073F11F487E001C0CC +:101B300084E089830BC0273FD9F786E0FACF473F7F +:101B4000B9F785E0F6CF42954F704983BE016F5FCC +:101B50007F4F84E091E00E94E51784E091E00E94CD +:101B6000031884E091E00E9420180E949B1426969E +:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE +:101B8000FF90EF90089580916D03811109C00E942C +:101B9000A1110E94FE118091E20084608093E20016 +:101BA000089510926D03089508950C94E4020C9426 +:101BB000892480916E03843049F58091E9008F700B +:101BC0009091EC0090FF02C090E801C090E0982B4B +:101BD00084E08093E9008091EB0080FF14C0809145 +:101BE000EE0087FD03C00FC01092F1008091E80065 +:101BF00085FDFACF8091E80080FF05C08091E80064 +:101C00008E778093E8009F709093E900089542E0FA +:101C100061EC81E00E94171142E061EC82E00E94D9 +:101C2000171142E061EC83E00E94171146E261EC7B +:101C300084E00E94171142E361E885E00E941711D9 +:101C400042E360E886E00C941711809170038330C2 +:101C500009F454C030F4813071F0823009F0AAC028 +:101C600091C08A3009F47EC08B3009F45FC089309E +:101C700009F0A0C020C080916F03813A09F09AC09A +:101C80008091E800877F8093E800809173039091B2 +:101C90007403892B21F060E080E090E003C068E0ED +:101CA00084E092E070E00E9458108091E8008B7709 +:101CB0008093E800089580916F03813209F07AC023 +:101CC0008091730390917403892B09F073C0809104 +:101CD000E800877F8093E80005C080916E03882329 +:101CE00009F468C08091E80082FFF7CF8091F1008D +:101CF00080930C028091E8008B7758C080916F032D +:101D0000813A09F057C08091730390917403892B35 +:101D100009F050C08091E800877F8093E8008091AF +:101D2000E80080FFFCCF80911A013BC080916F03D7 +:101D3000813209F03FC08091730390917403892B25 +:101D4000C9F58091E800877F8093E8000E944E11DA +:101D50009091710381E0911101C080E080931A019C +:101D60000C948C1E80916F03813221F58091E800E4 +:101D7000877F8093E8000E944E11809172038093C8 +:101D80000302089580916F03813AA1F48091E800E5 +:101D9000877F8093E8008091E80080FFFCCF8091EE +:101DA00003028093F1008091E8008E778093E80031 +:101DB0000C944E11089584B7877F84BF88E10FB6D5 +:101DC000F89480936000109260000FBE90E080E86D +:101DD0000FB6F89480936100909361000FBE0E944B +:101DE000A1110E94FE11E2EEF0E080818460808308 +:101DF00008958DE792E00E94241561E77DE08DE76C +:101E000092E00E947A1567E27DE08DE792E00E9401 +:101E10007E150E94DB0E78946AEC7CE08DE792E000 +:101E20000E94201563EC7CE08DE792E00E9418157B +:101E30006AE97CE08DE792E00E941C150E94850A09 +:101E40000E949B140E94AC1880E191E00E945418FB +:101E50000BC00E944E2480916C03882329F00E94BD +:101E6000742481110E94A40F80916E03853089F340 +:101E70008DE792E00E942D170E94B618F5CF292F0A +:101E8000332723303105B1F04CF42130310509F40A +:101E90004DC02230310509F04EC007C02132310556 +:101EA00041F12232310591F146C0E0EDF0E086E7E4 +:101EB00093E045C099278130910569F08230910502 +:101EC00089F0892B09F037C0E2E7F3E0E491F0E014 +:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA +:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1 +:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735 +:101F0000FE4F80819181E9E0F0E019C0643098F4DF +:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139 +:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D +:101F300086E494E004C0E0E0F0E080E090E0DA01C4 +:101F40008D939C93CF01089580E189BD82E189BD85 +:101F500009B400FEFDCF8091D8008F7D8093D8001A +:101F60008091E00082608093E0008091E00081FD3C +:101F7000FCCF0895BF92CF92DF92EF92FF920F9322 +:101F80001F93CF93DF937C018B01EA010E946F11B5 +:101F9000B82E811133C0209731F028813981021B7E +:101FA000130BE20EF31EC12CD12C23C08091E8004C +:101FB00085FD15C08091E8008E778093E80020971A +:101FC00049F0888199818C0D9D1D9983888325E036 +:101FD000B22E14C00E946F11882359F00EC0F70171 +:101FE00081917F018093F10001501109FFEFCF1A19 +:101FF000DF0A01151105D1F601C0B82E8B2DDF9136 +:10200000CF911F910F91FF90EF90DF90CF90BF90F5 +:102010000895BF92CF92DF92EF92FF920F931F939A +:10202000CF93DF937C018B01EA010E946F11B82EE0 +:10203000811133C0209731F028813981021B130BA5 +:10204000E20EF31EC12CD12C23C08091E80085FD47 +:1020500015C08091E8008B778093E800209749F0C5 +:10206000888199818C0D9D1D9983888345E0B42ECC +:1020700014C00E946F11882359F00EC08091F100A6 +:10208000F70181937F0101501109FFEFCF1ADF0A99 +:1020900001151105D1F601C0B82E8B2DDF91CF911E +:1020A0001F910F91FF90EF90DF90CF90BF90089518 +:1020B00040917503509176034617570748F0611514 +:1020C000710539F44091E8004E774093E80001C073 +:1020D000BA01FC0140E033C080916E03882309F40B +:1020E00042C0853009F441C08091E80083FD39C0C9 +:1020F0008091E80082FD2FC08091E80080FF1FC022 +:102100009091F3008091F200392F20E0A901482B33 +:10211000CA0106C041914093F100615071090196D6 +:102120006115710519F088309105A0F341E0089719 +:1021300009F040E08091E8008E778093E800611517 +:10214000710551F64111C8CF06C080916E038823F6 +:1021500051F0853051F08091E80082FFF6CF80E0A9 +:10216000089581E0089582E0089583E00895409104 +:102170007503509176034617570748F061157105AE +:1021800039F44091E8004E774093E80001C0BA016D +:10219000FC0140E034C080916E03882309F443C001 +:1021A000853009F442C08091E80083FD3AC08091F7 +:1021B000E80082FD30C08091E80080FF20C090914F +:1021C000F3008091F200392F20E0A901482BCA01C9 +:1021D00007C044914093F100319661507109019616 +:1021E0006115710519F08830910598F341E0089761 +:1021F00009F040E08091E8008E778093E800611557 +:10220000710549F64111C7CF06C080916E0388233E +:1022100051F0853051F08091E80082FFF6CF80E0E8 +:10222000089581E0089582E0089583E00895982F4D +:102230002CC09093E900981739F07091EC00209130 +:10224000ED005091F00003C0242F762F50E021FDC7 +:1022500002C09F5F1AC03091EB003E7F3093EB00CD +:102260003091ED003D7F3093ED003091EB00316017 +:102270003093EB007093EC002093ED005093F0004E +:102280002091EE0027FDE5CF07C0973090F28F70C8 +:102290008093E90081E0089580E0089580916F03C4 +:1022A00087FD05C08091E80080FF0EC012C08091BC +:1022B000E80082FD05C080916E038111F8CF08957A +:1022C0008091E8008B7708C080916E038111EACF7E +:1022D00008958091E8008E778093E80008958091BA +:1022E000E4009091E50045E62091EC0020FD1FC040 +:1022F00023C020916E03222391F0253091F020918C +:10230000EB0025FD10C02091E4003091E500281776 +:10231000390751F34150C90139F784E0089582E04B +:10232000089583E0089581E0089580E00895209164 +:10233000E80020FFDECFF9CF2091E80022FFD9CFBF +:10234000F4CF0E940F120E941712E0EEF0E080819D +:1023500081608083E8EDF0E080818F77808319BC15 +:10236000A7EDB0E08C918E7F8C9380818F7E8083EF +:1023700010926D0308950F931F93CF93DF930E94E4 +:102380000F120E941712C8EDD0E088818F778883E2 +:1023900088818068888388818F7D888319BC1092AA +:1023A0006E0310926A0310926C0310926B0300EE9E +:1023B00010E0F80180818B7F808388818160888331 +:1023C00042E060E080E00E941711E1EEF0E08081E1 +:1023D0008E7F8083E2EEF0E0808181608083808167 +:1023E00088608083F80180818E7F8083888180610E +:1023F0008883DF91CF911F910F910895E8EDF0E070 +:1024000080818F7E8083E7EDF0E080818160808332 +:1024100084E082BF81E080936D030C94BB11E8EDF2 +:10242000F0E080818E7F80831092E2000895109208 +:10243000DA001092E10008951F920F920FB60F92EA +:1024400011242F933F934F935F936F937F938F93B9 +:102450009F93AF93BF93EF93FF938091E10082FF2F +:102460000BC08091E20082FF07C08091E1008B7F6A +:102470008093E1000E94D90D8091DA0080FF1FC097 +:102480008091D80080FF1BC08091DA008E7F8093FE +:10249000DA008091D90080FF0DC080E189BD82E122 +:1024A00089BD09B400FEFDCF81E080936E030E94D8 +:1024B000C30D05C019BC10926E030E94D10D80910E +:1024C000E10080FF19C08091E20080FF15C080917B +:1024D000E2008E7F8093E2008091E2008061809331 +:1024E000E2008091D80080628093D80019BC85E01A +:1024F00080936E030E94D50D8091E10084FF30C06F +:102500008091E20084FF2CC080E189BD82E189BD19 +:1025100009B400FEFDCF8091D8008F7D8093D80054 +:102520008091E1008F7E8093E1008091E2008F7EB8 +:102530008093E2008091E20081608093E2008091CC +:102540006A03882311F084E007C08091E30087FFCD +:1025500002C083E001C081E080936E030E94D70D2A +:102560008091E10083FF29C08091E20083FF25C0B4 +:102570008091E100877F8093E10082E080936E0389 +:1025800010926A038091E1008E7F8093E100809138 +:10259000E2008E7F8093E2008091E2008061809370 +:1025A000E20042E060E080E00E9417118091F000BC +:1025B00088608093F0000E94D40DFF91EF91BF914D +:1025C000AF919F918F917F916F915F914F913F91CB +:1025D0002F910F900FBE0F901F9018951F920F9282 +:1025E0000FB60F9211242F933F934F935F936F93E6 +:1025F0007F938F939F93AF93BF93CF93EF93FF936B +:102600008091E9008F709091EC0090FF02C090E8FB +:1026100001C090E0C92FC82B1092E9008091F00012 +:10262000877F8093F00078940E9432131092E90023 +:102630008091F00088608093F000CF70C093E90033 +:10264000FF91EF91CF91BF91AF919F918F917F912A +:102650006F915F914F913F912F910F900FBE0F900F +:102660001F9018951F93CF93DF93CDB7DEB7AC972C +:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A +:10268000F100819323E0E737F207C9F70E94250E96 +:102690008091E80083FF37C180916F0390917003B0 +:1026A000953009F488C038F49130B1F170F093306E +:1026B00009F029C131C0983009F4F8C0993009F403 +:1026C00004C1963009F01FC19DC0803821F08238C6 +:1026D00009F019C108C080916B0390916C03992394 +:1026E00089F082600FC080917303909174038F70A2 +:1026F00099278093E9008091EB0085FB882780F97A +:102700001092E9009091E800977F9093E800809301 +:10271000F1001092F100D5C0882319F0823009F041 +:10272000F2C08F7121F0823009F0EDC00BC08091B2 +:102730007103813009F0E7C0933009F080E08093A5 +:102740006C032FC08091710381112BC080917303A2 +:10275000909174038F709927009709F4D4C08093E7 +:10276000E9002091EB0020FF1CC020917003233072 +:1027700021F48091EB00806212C09091EB00906197 +:102780009093EB0021E030E001C0220F8A95EAF738 +:102790002093EA001092EA008091EB008860809319 +:1027A000EB001092E9008091E800877F8093E800B9 +:1027B0000E944E11A8C08111A6C080917103909112 +:1027C00072038F779927182F9091E3009078982BB8 +:1027D0009093E3008091E800877F8093E8000E9457 +:1027E0004E118091E80080FFFCCF8091E30080686B +:1027F0008093E300112311F083E001C082E0809315 +:102800006E0381C08058823008F07DC080917103D2 +:10281000909172038C3D23E0920779F583E08A83DF +:102820008AE289834FB7F894DE01139620E03EE0F8 +:1028300051E2E32FF0E050935700E49120FF03C0F2 +:10284000E295EF703F5FEF708E2F90E0EA3010F06E +:10285000C79601C0C0968D939D932F5F243149F791 +:102860004FBF8091E800877F8093E8006AE270E0C4 +:10287000CE0101960E94581013C0AE01455D5F4F16 +:10288000609173030E943F0F0097E9F12091E800E7 +:10289000277F2093E800BC018BA59CA50E94B71060 +:1028A0008091E8008B778093E8002DC0803859F53F +:1028B0008091E800877F8093E80080916A0380938D +:1028C000F1008091E8008E7771CF81111CC090914A +:1028D00071039230C0F48091E800877F8093E80014 +:1028E00090936A030E944E1180916A03811104C083 +:1028F0008091E30087FF02C084E001C081E0809303 +:102900006E030E94070E8091E80083FF0AC0809149 +:10291000E800877F8093E8008091EB0080628093DD +:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3 +:10293000CF911F910895CF9380916E038823B1F0BA +:102940008091E9008F709091EC0090FF02C090E8B8 +:1029500001C090E0C92FC82B1092E9008091E800D7 +:1029600083FD0E943213CF70C093E900CF91089588 +:10297000881F8827881F089591E0883F08F490E019 +:10298000892F0895982F907F903B99F038F49039D3 +:1029900081F0903A71F09038C9F40BC0903DA1F0ED +:1029A00018F4903C99F410C0903E19F0903F71F4E7 +:1029B00002C083E00895E82FE15FEF3038F4F0E0E3 +:1029C000E356FE4F8081089582E0089580E00895E7 +:1029D0000F932F774F776F70606BDC01ED91FC9157 +:1029E000022F242F462F63E070E009950F91089580 +:1029F0000F932F774F776F706069DC01ED91FC9139 +:102A0000022F242F462F63E070E009950F9108955F +:102A10000F932F774F776F706068DC01ED91FC9119 +:102A2000022F242F462F63E070E009950F9108953F +:102A3000FC01738362830895FC01738F628F089594 +:102A4000FC01758F648F0895CF93DF93EC011DA275 +:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2 +:102A60000E9461171B821A821D821C821F821E8295 +:102A7000198618861B861A861D861C861F861E864A +:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A +:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA +:102AA00019A218A2DF91CF910895CF92DF92FF92E1 +:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00 +:102AC0006A018C0108511F4F08C0F60161916F0126 +:102AD000C80149830E94681749818C2D841B8F157A +:102AE000A0F30F90DF91CF911F910F91FF90DF9096 +:102AF000CF900895FC01718360830895FC0171A358 +:102B000060A30895AF92BF92CF92DF92EF92FF92AF +:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3 +:102B20007C016B01142FB22EA02EDC0195968C91A6 +:102B300095978430F1F45A96ED91FC915B9730971C +:102B400009F4D8C0CB01019763E070E00E94762FB2 +:102B5000DB01AA0FBB1FA60FB71F49832A830B8374 +:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8 +:102B7000B1C06230710509F453C06330710529F0AA +:102B80006130710509F09CC083C0842F807F803A3A +:102B900001F130F48038B9F0803909F0ABC00DC0D4 +:102BA000803EE9F0803F09F1803B09F0A3C0D701E6 +:102BB0001296ED91FC91139723C0D7011496ED91D5 +:102BC000FC9115971DC0D7011696ED91FC911797B2 +:102BD00017C0D7011896ED91FC91199711C0D70134 +:102BE0001A96ED91FC911B970BC0423F09F082C0F1 +:102BF000D7011C96ED91FC911D97309731F47AC066 +:102C0000309709F477C0123F21F42A2D4B2D62EF43 +:102C100004C0612F6F702A2D4B2DC70109955AC032 +:102C2000842F807F803D59F0803F79F0803C09F00F +:102C300061C0D7011E96ED91FC911F9719C0D70175 +:102C40005096ED91FC91519713C0433F31F4D70159 +:102C50005296ED91FC91539708C0413F09F04AC04C +:102C6000D7015496ED91FC915597309741F442C0AD +:102C7000309709F43FC0133F11F0113F19F44B2D69 +:102C8000612F03C0612F6F704B2DC701099522C0C2 +:102C9000842F0E94BC14882331F0D7015696ED9101 +:102CA000FC91579707C0163F29F5D7015896ED912B +:102CB000FC9159973097F1F0612FC70109950AC02F +:102CC00064307105A8F416C00A2D2B2D412FB601D2 +:102CD000C7010995D7015E96ED91FC915F973097FA +:102CE00089F00A2D2B2D412FB601C70109950AC085 +:102CF000C12CD12CD7015C96ED91FC915D9730975A +:102D000019F7E8CF0F900F900F90DF91CF911F919F +:102D10000F91FF90EF90DF90CF90BF90AF9008950C +:102D2000EF92FF920F931F93CF93DF93EC01162F37 +:102D3000862F0E94BC14882369F0FDA081E08DA33A +:102D400000E020E0412F61E070E0CE010E9482159A +:102D5000FDA27CC0812F0E94B8144DA1882309F4E4 +:102D600040C0443029F01AA321E030E03FA32EA355 +:102D7000812F0E94C214813031F070F0823051F006 +:102D8000833059F507C08DA300E020E0412F61E0BA +:102D900070E01EC08DA35AC0103F19F0173FE9F430 +:102DA00004C084E08DA31AA33FC02EA13FA1C90196 +:102DB00063E070E00E94762F8C0F9D1FFC0112A330 +:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116 +:102DD000CE010E9482151DA239C01DA21FA21EA2F3 +:102DE00035C0442399F12EA13FA1C90163E070E0F1 +:102DF0000E94762F7C01FE01E80FF91F12A3B90192 +:102E00006F5F7F4F7FA36EA38130910591F082E0C9 +:102E1000E816F104D9F40CA12BA14AA1CE010E941D +:102E200082158DA1843091F081E090E09FA38EA364 +:102E30000DC0423059F400E02BA14AA1CE010E94FE +:102E400082158DA1843011F0FFA2EEA2DF91CF9107 +:102E50001F910F91FF90EF900895CF92DF92EF9224 +:102E6000FF920F931F93CF93DF93EC01E8A1F9A199 +:102E7000309709F009958E0108511F4FC8010E9433 +:102E80009A17E12CF12CC82ED12C0FC060E0C8019C +:102E90000E94AE17682FCE010E94901661E0C80113 +:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4 +:102EB000DF91CF911F910F91FF90EF90DF90CF9016 +:102EC0000895FC0142837483638311821082089504 +:102ED0000F931F93CF93DF93EC01062F0E94E0170F +:102EE000182F298130E0C90101966A8170E00E94A3 +:102EF0008A2F488150E08417950729F4812F0E947A +:102F0000E31780E012C0EB81FC81E20FF31F008326 +:102F10002981822F90E001966A8170E00E948A2FB9 +:102F20008983812F0E94E31781E0DF91CF911F9168 +:102F30000F910895CF93DF93EC010E94E017298150 +:102F40009881291710F0C22F02C0CA81C20FC91B75 +:102F50000E94E3178C2FDF91CF910895FC0120810F +:102F6000862F90E0820F911D628170E00E948A2F6F +:102F70000380F481E02DE80FF91F808108950F93FD +:102F80001F93CF93DF931F92CDB7DEB78C01698378 +:102F90000E94E017482FF80180816981262F30E0D8 +:102FA000280F311D6281C90170E00E948A2F808341 +:102FB000842F0F90DF91CF911F910F910C94E31705 +:102FC0008FB7F89408958FBF0895FC01CB0120912D +:102FD0006E032430B1F421812F702093E90040E08A +:102FE00050E064E070E00E94BA0F81110BC0909134 +:102FF000E80095FD07C09091E8009E779093E80067 +:10300000089582E0089520916E032430A9F4FC0114 +:1030100081818F708093E9003091F3002091F2005C +:10302000932F80E0822B892B49F08091E8008E77E6 +:103030008093E8000C946F1182E0089580E0089579 +:1030400020916E03243051F4FC0121812F702093D4 +:10305000E9002091E80020FD0C9403180895FC017C +:10306000CB0120916E03243011F080E00895268179 +:103070002F702093E9002091E80022FFF6CF2091E5 +:10308000E80025FFF2CF40E050E064E070E00E94ED +:1030900009108091E80085FD05C08091E8008B77DC +:1030A0008093E80081E0089590930F0280930E02D0 +:1030B000089580910E0290910F020895E0910E0202 +:1030C000F0910F02309721F00190F081E02D0994EA +:1030D00080E00895E0910E02F0910F02309721F008 +:1030E0000280F381E02D09940895E0910E02F091A1 +:1030F0000F02309721F00480F581E02D09940895A6 +:1031000020911002309111028217930771F0909371 +:10311000110280931002E0910E02F0910F0230979D +:1031200021F00680F781E02D099408952091120284 +:10313000309113028217930771F0909313028093DA +:103140001202E0910E02F0910F02309721F00084FC +:10315000F185E02D099408950E94B6240E948D0502 +:103160000E948A250C945F2B0C94CE075F926F927D +:103170007F928F929F92AF92BF92CF92DF92EF9207 +:10318000FF920F931F93CF93DF93CDB7DEB72A97AC +:103190000FB6F894DEBF0FBECDBF0E947E0694E14D +:1031A000C92E92E0D92E00E010E0AA24A394B12CFD +:1031B000502E802F0E94C4073C01F601E190F1904F +:1031C0006F01E826F926E114F10431F40F5F1F4F77 +:1031D0000430110569F73AC08091680281FD0E94B0 +:1031E000CD0720E030E04501022E02C0880C991C7A +:1031F0000A94E2F7C4018E219F21892B09F12E83C5 +:103200005F826820792081E0672809F480E0888760 +:103210000E94BF248160782F9A8789874E815F81C1 +:1032200068858A850E946F19F801EE0FFF1FEC5E1A +:10323000FD4F80819181882599259183808316C0D7 +:103240002F5F3F4F2C30310571F6C0CF8FEF898350 +:103250008A831B820E94BF248160782F9D838C8388 +:1032600049815A816B818D810E946F190E94772854 +:1032700010911C020E945E181817D9F00E945E1867 +:1032800080931C022A960FB6F894DEBF0FBECDBF06 +:10329000DF91CF911F910F91FF90EF90DF90CF9032 +:1032A000BF90AF909F908F907F906F905F900C94A5 +:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB +:1032C000CF911F910F91FF90EF90DF90CF90BF9023 +:1032D000AF909F908F907F906F905F900895CF9365 +:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6 +:1032F000CDBF4F83588769877A878B87DE01119608 +:1033000086E0FD0111928A95E9F785E0FE01379686 +:1033100001900D928A95E1F749815A816B817C81F8 +:103320008D819E810E9447212B960FB6F894DEBFB7 +:103330000FBECDBFDF91CF910895CF93C82F8823C3 +:1033400009F4C1C0823859F40E945E1881FDBBC0E7 +:1033500089E30E94AC230E94282489E30CC08338AF +:1033600079F40E945E1880FDAEC083E50E94AC2314 +:103370000E94282483E50E94CE23CF910C94282418 +:10338000843859F40E945E1882FD9DC087E40E9433 +:10339000AC230E94282487E4EECF8450813A48F47D +:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3 +:1033B000E4CF8C2F805E883050F4C77081E090E0BD +:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51 +:1033D000855A833078F4C53A29F0C63A31F482E848 +:1033E00090E005C081E890E002C083E890E0CF91D2 +:1033F0000C9480188C2F885A833108F064C0C83A26 +:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2 +:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41 +:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE +:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E +:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083 +:1034500082EE90E035C089EE90E032C08AEE90E0D6 +:103460002FC085EB90E02CC086EB90E029C087EB65 +:1034700090E026C08CEC90E023C08DEC90E020C062 +:1034800083E891E01DC08AE891E01AC082E991E0EA +:1034900017C084E991E014C081E292E011C083E298 +:1034A00092E00EC084E292E00BC085E292E008C098 +:1034B00086E292E005C087E292E002C080E090E000 +:1034C000CF910C949618CF910895882309F44DC09C +:1034D000823859F40E945E1881FF47C089E30E9438 +:1034E000AC230E94282489E30CC0833871F40E9425 +:1034F0005E1880FF3AC083E50E94AC230E94282416 +:1035000083E50E94CE230C942824843859F40E9429 +:103510005E1882FF2AC087E40E94AC230E94282400 +:1035200087E4EFCF982F9450913A08F4EACF982F80 +:10353000905E983058F4282F277081E090E001C009 +:10354000880F2A95EAF70E94F523DDCF982F955A28 +:10355000933020F480E090E00C948018885A8331F6 +:1035600020F480E090E00C9496180895882321F0D0 +:103570000E94EF230C9428240895882321F00E94B0 +:10358000F5230C9428240895BF92CF92DF92EF92F6 +:10359000FF920F931F93CF93DF93CDB7DEB727979B +:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9 +:1035B000DE01119601900D928A95E1F7F8013081B4 +:1035C0002181F280558152955F7083819481892B8E +:1035D00039F02F3F41F481E090E03F3F31F003C0EC +:1035E00081E090E002C080E090E080FD73C3398309 +:1035F0002A8389819A815E830E946923B92E8F83F1 +:103600000E9468230E9490222B2D22952F7030E07B +:103610005E816F812530310509F4E6C06CF42430F9 +:1036200031050CF0A2C04B2D407F8B2D8F702230C6 +:1036300031050CF045C017C02C3031054CF42A3050 +:1036400031050CF0E7C12830310509F043C3E5C06E +:103650002D30310509F4BAC20CF4A2C22F30310565 +:1036600009F038C323C3182F411101C002C01295BD +:10367000107FFF2059F0112309F46BC2812F6F8353 +:103680000E94FF230E9428246F8163C2862F0E941C +:10369000651A112309F41EC3812F0E940524279661 +:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153 +:1036B0000F91FF90EF90DF90CF90BF900C94282453 +:1036C000403211F08295807F662319F0613071F5E8 +:1036D00023C0FF20B1F0511101C032C0513081F53B +:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106 +:1036F0001F910F91FF90EF90DF90CF90BF900C94AF +:103700000F24511101C003C0513009F4E3C28E836C +:103710000E9412248E819AC1FF2021F0563008F0B9 +:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3 +:10373000552331F0F801958190FF0BC29F7095835E +:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5 +:103750001F910F91FF90EF90DF90CF90BF900C944E +:10376000B61A552309F472C109C22B2D2695269548 +:10377000237030E02115310529F02130310509F0A1 +:10378000A9C219C0FF2021F0862F9B2D937002C083 +:1037900080E090E027960FB6F894DEBF0FBECDBF55 +:1037A000DF91CF911F910F91FF90EF90DF90CF901D +:1037B000BF900C948018FF2021F0862F9B2D9370D2 +:1037C00002C080E090E027960FB6F894DEBF0FBEEF +:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1037E000CF90BF900C949618862FFF2019F00E945E +:1037F0007D2702C00E94E52727960FB6F894DEBF0A +:103800000FBECDBFDF91CF911F910F91FF90EF9031 +:10381000DF90CF90BF900C946C288B2D837009F0B3 +:1038200079C0F11057C2262F229526952770220FB6 +:10383000220F862F8F70C82ED12CE12CF12C022E56 +:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4 +:1038500010C06FE070E080E090E004C0660F771F5A +:10386000881F991F2A95D2F760957095809590953D +:1038700003C060E070E0CB012B2D269526952370C8 +:10388000422F50E042305105D9F04330510569F1E3 +:103890006C297D298E299F294130510551F12796A8 +:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151 +:1038B0000F91FF90EF90DF90CF90BF900C94A522D6 +:1038C0006C297D298E299F2927960FB6F894DEBF93 +:1038D0000FBECDBFDF91CF911F910F91FF90EF9061 +:1038E000DF90CF90BF900C94B7220E94A522C70111 +:1038F000B60127960FB6F894DEBF0FBECDBFDF919D +:10390000CF911F910F91FF90EF90DF90CF90BF90DC +:103910000C949322FF2019F08B2D817001C08695A5 +:10392000882309F4D7C1262F229526952770220FC8 +:10393000220F862F8F70C82ED12CE12CF12C022E55 +:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3 +:1039500010C06FE070E080E090E004C0660F771F59 +:10396000881F991F2A95D2F760957095809590953C +:1039700003C060E070E0CB012B2D269526952370C7 +:10398000422F50E042305105D9F04330510569F1E2 +:103990006C297D298E299F294130510551F12796A7 +:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150 +:1039B0000F91FF90EF90DF90CF90BF900C94442335 +:1039C0006C297D298E299F2927960FB6F894DEBF92 +:1039D0000FBECDBFDF91CF911F910F91FF90EF9060 +:1039E000DF90CF90BF900C9456230E944423C701D0 +:1039F000B60127960FB6F894DEBF0FBECDBFDF919C +:103A0000CF911F910F91FF90EF90DF90CF90BF90DB +:103A10000C943223603F59F120F4603E08F494C0C6 +:103A200008C0623F09F467C0F0F1633F09F08CC041 +:103A300065C0162F1F708B2D8F71FF2021F00E9403 +:103A4000DD22812F7DCE0E94F822812F27960FB68E +:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4 +:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095 +:103A7000B1F0553008F02EC18B2D8F7127960FB6FF +:103A8000F894DEBF0FBECDBFDF91CF911F910F9194 +:103A9000FF90EF90DF90CF90BF900C94172356309B +:103AA00008F018C1E9CFFF2099F08B2D8F71279670 +:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F +:103AC0000F91FF90EF90DF90CF90BF900C94DD228C +:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A +:103AE000DF91CF911F910F91FF90EF90DF90CF90DA +:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4 +:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9 +:103B1000DF91CF911F910F91FF90EF90DF90CF90A9 +:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E +:103B3000CDBFDF91CF911F910F91FF90EF90DF905C +:103B4000CF90BF900C94C922FF20A9F0552309F40F +:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31 +:103B6000DF91CF911F910F91FF90EF90DF90CF9059 +:103B7000BF900C949D19552309F4AACF862F279640 +:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E +:103B90000F91FF90EF90DF90CF90BF900C94651A3B +:103BA0004B2D4F70C8010E94E50227960FB6F8947E +:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060 +:103BC000EF90DF90CF90BF900C94FD21F11082C058 +:103BD0009B2D9F70492F50E04230510599F144F4DC +:103BE0004115510569F04130510509F073C019C004 +:103BF00043305105C1F14430510509F06BC044C058 +:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0 +:103C10001F910F91FF90EF90DF90CF90BF900C9489 +:103C2000702B27960FB6F894DEBF0FBECDBFDF9185 +:103C3000CF911F910F91FF90EF90DF90CF90BF90A9 +:103C40000C94872B27960FB6F894DEBF0FBECDBF1E +:103C5000DF91CF911F910F91FF90EF90DF90CF9068 +:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F +:103C7000CDBFDF91CF911F910F91FF90EF90DF901B +:103C8000CF90BF900C94B62B862F27960FB6F89442 +:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F +:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C +:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7 +:103CC000CF911F910F91FF90EF90DF90CF90BF9019 +:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A +:103CE000DF91CF911F910F91FF90EF90DF90CF90D8 +:103CF000BF9008950E940C240E94E1230E94282472 +:103D00000E9418290E946C2880E090E00E94801890 +:103D100080E090E00C9496180E94FC230C947A1E8C +:103D20000E946923292F22952F7030E02C30310515 +:103D30004CF42A3031056CF422503109223031051F +:103D400070F407C02C30310531F02F30310539F4D3 +:103D500002C081E0089593FB882780F9089580E0F0 +:103D60000895CF93DF9300D000D01F92CDB7DEB778 +:103D70000F900F900F900F900F90DF91CF910895BB +:103D8000CF93DF9300D000D000D0CDB7DEB726961A +:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F +:103DA0001F93CF93DF93C091530216E012C0D0E06F +:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112 +:103DC000518162817381848195810E94C01E2196F8 +:103DD000C77080915402C813EACFDF91CF911F9131 +:103DE000089540911D0250911E0260911F02709132 +:103DF000200280912102909122020C94C01E0F9308 +:103E00001F93CF93DF938091220282958F7009F0E8 +:103E100069C080911F02882309F464C0A0915302F5 +:103E2000D0915402B0911D02C0911E0280912002D7 +:103E30009091210221E030E0BF3F11F020E030E01E +:103E4000122FBC016095709506E04AC0009721F0E2 +:103E5000CF3F29F4212F05C021E030E002C020E04F +:103E600030E020FD3BC04A2F50E0049FF001059F49 +:103E7000F00D1124ED5DFD4F2181C2132FC0208173 +:103E8000B2132CC02281211129C02381348128172B +:103E9000390718F0281B390B02C0260F371F283CA2 +:103EA0003105E0F4809122028F70806180932202BC +:103EB00086E0849FF001859FF00D1124E85DFD4FA1 +:103EC00080818F70806180838DE192E00E94C41AAE +:103ED000DF91CF911F910F910C94D01EAF5FA7700F +:103EE000AD13B4CFDF91CF911F910F910895EF9251 +:103EF000FF920F931F93CF93DF93CDB7DEB76297F7 +:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F +:103F1000DE011D9601900D928A95E1F7D8014C9132 +:103F200011965C91119712966C9112971396ED90E1 +:103F3000FC90149770911D02E0911E028091200266 +:103F400090912102009739F0EF3F41F421E030E0F9 +:103F50007F3F31F003C021E030E002C020E030E0DC +:103F600020FD5CC120911F02222309F4F1C0E81654 +:103F7000F90628F09701281B390BC90104C0809568 +:103F800090958E0D9F1D883C910508F098C08091FA +:103F90002202982F907F09F064C0E51314C07413B7 +:103FA00012C0611110C08F708061809322020E9444 +:103FB000F11E8DE192E00E94C41A80912202D80184 +:103FC00015968C9343C1EF2839F05F3F41F481E0AF +:103FD00090E04F3F31F003C081E090E002C080E00C +:103FE00090E080FD03C081E0862702C080E090E081 +:103FF00080FF2EC0809153022091540236E013C0FE +:1040000090E0389FF001399FF00D1124ED5DFD4FD8 +:104010007181571306C07081471303C07281671303 +:1040200017C0019687708213EBCF12C19F7059F0B1 +:10403000882309F40BC107C09F7029F0F80195810E +:10404000907F09F403C1805E883008F4FFC0D2C0BD +:10405000662309F4FBC080912202816080932202D2 +:10406000F5C0E51308C0741306C0611104C0D8017F +:1040700015968C939DC04D875E878D859E856A8B36 +:104080000E94901E6A89882309F4B4C0662309F44B +:10409000B1C020912202822F82958F7090E002970A +:1040A0000CF4C6C080911D0290911E0298878F83E8 +:1040B0001986FB86EA862C87CE01079646C080913A +:1040C0002202982F907F59F47E2DF98AE88A8989F7 +:1040D0000E94B11E8DE192E00E94C41A95C0E513C2 +:1040E00011C074130FC061110DC0F8018583C801A0 +:1040F0000E94C41AEDE1F2E086E0DF011D928A958C +:10410000E9F7A2C04D875E878D859E856A8B0E94E8 +:10411000901E6A89882309F46DC0662309F46AC079 +:1041200020912202822F82958F7090E002970CF4EA +:104130007FC080911D0290911E029A8389831B8209 +:10414000FD82EC822E83CE0101960E94C41A70C0BB +:10415000E816F90628F09701281B390BC90104C09D +:10416000809590958E0D9F1D883C910508F046C066 +:10417000662309F43FC0E51330C074132EC02091AC +:10418000220220FD21C0322F32953F70832F90E014 +:104190000097D1F0D80115962C9315970F9741F001 +:1041A000832F8F5F8295807F2F70282B15962C93FD +:1041B000C8010E94C41A86E0F801ADE1B2E00190A6 +:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC +:1041D00001900D928A95E1F737C04D875E878D85F6 +:1041E0009E850E94901E811123C0809122028160D1 +:1041F00080932202C8010E94C41A26C07E2DF98A2B +:10420000E88A89890E94B11EEDE1F2E086E0DF01D3 +:104210001D928A95E9F70E94F11E18C0662351F39A +:104220004D875E878D859E850E94901E882311F3A1 +:1042300086E0F801ADE1B2E001900D928A95E1F7D8 +:104240000E94FF1E0E94F11E81E014C080E012C097 +:104250004D875E878D859E850E946923292F229533 +:104260002F7030E0223031050CF4E0CE24303105DF +:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D +:10428000DF91CF911F910F91FF90EF9008951F93B1 +:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80 +:1042A0000FBECDBF4F83588769877A878B879C87DE +:1042B000CE0107960E94771F8823D9F02F81388579 +:1042C0008A859B85892B39F03F3F19F080E090E08B +:1042D00004C02F3FD9F781E090E0892B09F06DC031 +:1042E0004F81588569857A858B859C850E94C01E83 +:1042F00064C086E0FE013796DE01119601900D92B2 +:104300008A95E1F7FF81E8854A855B85411551056E +:1043100039F0EF3F41F481E090E0FF3F31F003C01E +:1043200081E090E002C080E090E080FD46C02091F6 +:10433000540230E0C90101968770992760915302B9 +:1043400070E08617970709F440C0F983EA835D831C +:104350004C8396E0929FD001939FB00D1124AD5DE8 +:10436000BD4FFE01319601900D929A95E1F7809331 +:1043700054020E94D01E21C0189FC00111248D5DDF +:104380009D4F0E94771F882371F1E09153021E9F79 +:10439000F0011124ED5DFD4F4081518162817381F7 +:1043A000848195810E94C01E8091530290E0019605 +:1043B000877099278093530201C016E080915302C1 +:1043C000909154028913D8CF0EC00E948C1E109277 +:1043D000540210925302EDE1F2E086E0DF011D92FB +:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98 +:1043F000CDBFDF91CF911F910895DF92EF92FF9291 +:104400000F931F93CF93DF93EC01009709F46CC0D7 +:10441000D12CEE24E394F12C8E010F5F1F4FFE018F +:104420008491843748F4843008F04AC0813071F0B8 +:10443000823009F059C01EC0853709F43DC070F1C3 +:10444000982F9458903708F04FC03DC02296F8013D +:104450008491982F905E983050F48770FE2D01C0A3 +:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A +:104470009D192DC02296F8018491982F905E983056 +:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39 +:104490000E9405241CC00E94651A19C02296F801CA +:1044A000049107C08FE99FE00197F1F700C0000079 +:1044B00001500111F7CF0BC02296F801D49007C02C +:1044C0000E949D1903C08F770E94651AE8018D2D07 +:1044D00007C08150EFE9FFE03197F1F700C000001D +:1044E000882309F499CFF5CFDF91CF911F910F91D8 +:1044F000FF90EF90DF9008956093590270935A02F5 +:1045000080935B0290935C020C947A1E6093550238 +:104510007093560280935702909358020C947A1E1F +:1045200008950C947C220F931F93009159021091CF +:104530005A0220915B0230915C02602B712B822B1E +:10454000932B1F910F910C947C220F931F9300913A +:10455000590210915A0220915B0230915C02602353 +:104560007123822393231F910F910C947C220F932C +:104570001F930091590210915A0220915B023091D1 +:104580005C0260277127822793271F910F910C945B +:104590007C2260E070E0CB010C94862241E050E088 +:1045A00060E070E004C0440F551F661F771F8A95B6 +:1045B000D2F7CB01BA010C94862241E050E060E0D2 +:1045C00070E004C0440F551F661F771F8A95D2F70D +:1045D0008091550290915602A0915702B0915802D5 +:1045E000482B592B6A2B7B2BCB01BA010C948622CA +:1045F00041E050E060E070E004C0440F551F661FCA +:10460000771F8A95D2F74095509560957095809167 +:10461000550290915602A0915702B091580248233A +:1046200059236A237B23CB01BA010C94862241E0F3 +:1046300050E060E070E004C0440F551F661F771F14 +:104640008A95D2F78091550290915602A091570217 +:10465000B0915802482759276A277B27CB01BA0116 +:104660000C9486220F931F930091550210915602CD +:104670002091570230915802602B712B822B932B83 +:104680001F910F910C9486220F931F930091550256 +:1046900010915602209157023091580260237123E5 +:1046A000822393231F910F910C9486220F931F93C3 +:1046B00000915502109156022091570230915802F4 +:1046C00060277127822793271F910F910C948622D0 +:1046D0000895CF92DF92EF92FF920F931F93CF93A3 +:1046E000DF93EC01C0905902D0905A02E0905B0237 +:1046F000F0905C028091550290915602A091570271 +:10470000B0915802C82AD92AEA2AFB2A0FE110E000 +:10471000B701A601002E04C0769567955795479579 +:104720000A94D2F740FF08C0BE01802F0E94E00328 +:104730008130910509F007C00150110948F7BE0109 +:1047400080E00E94E003DF91CF911F910F91FF90D5 +:10475000EF90DF90CF90089540911B0150911C0184 +:1047600020E030E09FEFFA01E20FF31F628168174B +:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD +:104780002630310581F707C0FA01E90FF11D97FDC9 +:10479000FA95828308959F3FB9F7089540911B01D0 +:1047A00050911C0120E030E0FA01E20FF31F9281EA +:1047B000981301C012822F5F3F4F26303105A1F7B9 +:1047C000089581E090E0E0911B01F0911C01E80F59 +:1047D000F91F1082019688309105A9F708959091EC +:1047E0005D02982B90935D020895809590915D02F3 +:1047F000982390935D02089510925D020895909120 +:104800005E02982B90935E020895809590915E02CF +:10481000982390935E02089510925E02089580930B +:104820005F02089510925F02089540911B0150911C +:104830001C0120E030E080E0FA01E20FF31F9181DB +:1048400091118F5F2F5F3F4F27303105A9F70895F2 +:10485000E0911B01F0911C0180915D028083E09149 +:104860001B01F0911C01808190915E02892B808355 +:1048700090915F02992361F0E0911B01F0911C017E +:104880008081892B80830E94152481110E9412242B +:1048900080911B0190911C010C946A1880916E0309 +:1048A000843009F11092690220E488E190E00FB6AB +:1048B000F894A895809360000FBE2093600083B7A2 +:1048C000817F846083BF83B7816083BF789488953C +:1048D00083B78E7F83BF88E10FB6F8948093600022 +:1048E000109260000FBE0895CF930E94E3020E94D1 +:1048F0007E060E94E402C0E08C2F0E94C407892B30 +:1049000029F4CF5FC430C1F780E001C081E0CF91CE +:1049100008950E948C1E0C945F2B1F920F920FB66D +:104920000F9211248F939F93AF93BF93809169024D +:10493000811113C080916A0290916B02A0916C0268 +:10494000B0916D024196A11DB11D80936A029093B2 +:104950006B02A0936C02B0936D02BF91AF919F91D7 +:104960008F910F900FBE0F901F90189582E084BD1D +:1049700093E095BD9AEF97BD80936E0008958FB731 +:10498000F89440916A0250916B0260916C027091B0 +:104990006D028FBFCA010895CF92DF92EF92FF920E +:1049A0000F931F932FB7F89440916A0250916B02B6 +:1049B00060916C0270916D022FBF6A017B01EE2441 +:1049C000FF248C0120E030E0C016D106E206F30699 +:1049D00020F09A01281B390B05C09C0120953095C9 +:1049E000240F351FC9011F910F91FF90EF90DF90A9 +:1049F000CF9008951F920F920FB60F9211248F93AC +:104A00009F93AF93BF9380916A0290916B02A091A4 +:104A10006C02B0916D020196A11DB11D80936A02D6 +:104A200090936B02A0936C02B0936D02BF91AF9113 +:104A30009F918F910F900FBE0F901F9018950E941D +:104A4000A111F8942FEF87EA91E621508040904021 +:104A5000E1F700C0000087E090EBDC018093780371 +:104A600090937903A0937A03B0937B032CE088E1C1 +:104A700090E00FB6F894A895809360000FBE209345 +:104A80006000FFCFCF92DF92EF92FF920F931F93C0 +:104A9000CF93DF93C82ED12C01E010E08D2D0E9422 +:104AA000C4077C01C0E0D0E098010C2E02C0220FA8 +:104AB000331F0A94E2F72E213F21232B29F421965C +:104AC000CC30D10589F708C06C2F7D2D80E00E9485 +:104AD000BB03C812F4CF06C0D39484E0D812DECF53 +:104AE00080E001C081E0DF91CF911F910F91FF9095 +:104AF000EF90DF90CF900895CF93C82F8CE20E9463 +:104B00004225882321F08C2FCF910C94422580E000 +:104B1000CF910895CF930E94CD26811102C00E94AB +:104B2000AE26C5E608C00E947E068FE39CE9019789 +:104B3000F1F700C00000C150B1F789E20E947C2566 +:104B400081110AC18AE20E947C2581110E94AE2651 +:104B500085E00E947C2581110E941F250E94D82695 +:104B60008093680287E00E947C25882399F18BE17D +:104B70000E947C25882351F09091680291FB882740 +:104B800080F921E0822780FB91F922C08EE00E940B +:104B90007C25882351F09091680292FB882780F948 +:104BA00021E0822780FB92F913C080E10E947C25DE +:104BB00090916802882341F093FB882780F921E0D7 +:104BC000822780FB93F904C0892F809580FB90F9A0 +:104BD00090936802809168020E94DC260E94EA2677 +:104BE00080937B0280EE0E947C25882341F0809197 +:104BF0007B02982F909590FB80F980937B0289E34C +:104C00000E947C25882359F090917B0291FB882794 +:104C100080F921E0822780FB91F990937B0282EE5C +:104C20000E947C25882359F090917B0292FB882773 +:104C300080F921E0822780FB92F990937B0286EE37 +:104C40000E947C25882359F090917B0293FB882752 +:104C500080F921E0822780FB93F990937B0283EE19 +:104C60000E947C25882359F090917B0294FB882731 +:104C700080F921E0822780FB94F990937B0285E301 +:104C80000E947C25882359F090917B0295FB882710 +:104C900080F921E0822780FB95F990937B0281E3E4 +:104CA0000E947C25882359F090917B0296FB8827EF +:104CB00080F921E0822780FB96F990937B0281E1C5 +:104CC0000E947C25882359F090917B0297FB8827CE +:104CD00080F921E0822780FB97F990937B028091F5 +:104CE0007B020E94EE2687E20E947C25C82F8EE17F +:104CF0000E947C258111C2608FE10E947C25811178 +:104D0000C46080E20E947C258111C86081E20E941B +:104D10007C258111C06182E20E947C258111C062E4 +:104D200083E20E947C258111C06484E20E947C257C +:104D3000882311F0C06802C0CC2329F08C2F0E9478 +:104D4000E5266C2F03C00E94E126682F70E080E00A +:104D500090E0CF910C949122CF9108956DEE7EEF6B +:104D600080E090E00E94BA2F60E082E090E00E9434 +:104D7000AC2F60E083E090E00E94AC2F60E084E024 +:104D800090E00E94AC2F60E085E090E00E94AC2FA4 +:104D900060E086E090E00C94AC2F80E090E00E9410 +:104DA000A62F21E08D3E9E4F09F020E0822F08952E +:104DB00082E090E00C949E2F682F82E090E00C94AB +:104DC000AC2F83E090E00C949E2F682F83E090E05E +:104DD0000C94AC2F84E090E00C949E2F682F84E01C +:104DE00090E00C94AC2F86E090E00C949E2F682FFE +:104DF00086E090E00C94AC2F8091760280FF0BC08F +:104E00006091200185E0689FB00111247595679538 +:104E1000759567952AC081FF09C06091200185E0E2 +:104E2000689FB0011124759567951FC082FF07C068 +:104E30006091200185E0689FB001112416C0409167 +:104E400070024423C9F060911F01461788F7209132 +:104E5000200185E0289F90011124429FC001439FBB +:104E6000900D112470E00E948A2F6038710540F483 +:104E70006115710539F002C065E070E0862F089574 +:104E80008FE7089581E008958091760280FF08C041 +:104E900060911E0170E0759567957595679521C0C5 +:104EA00081FF06C060911E0170E07595679519C07D +:104EB00082FF04C060911E0170E010C080917002FA +:104EC0008823C1F060911D018617A0F790911E0103 +:104ED000989FC001112470E00E948A2F60387105EC +:104EE00028F46115710521F0862F08958FE7089544 +:104EF00081E0089561E070E0F4CF803F21F40E94EA +:104F0000FC26819504C0813F29F40E94FC268093F1 +:104F100073020895823F21F40E94FC26819504C00B +:104F2000833F29F40E94FC26809372020895893FF2 +:104F300019F40E94442705C08A3F31F40E94442797 +:104F400081958093740208958B3F21F40E94442739 +:104F5000819504C08C3F29F40E94442780937502F8 +:104F60000895843F21F480917102816017C0853FCC +:104F700021F480917102826011C0863F21F48091FA +:104F8000710284600BC0873F21F4809171028860B8 +:104F900005C0883F31F48091710280618093710275 +:104FA00008958D3F21F48091760281600BC08E3F81 +:104FB00021F480917602826005C08F3F29F48091B0 +:104FC00076028460809376020895803F29F4809170 +:104FD000730287FF6EC007C0813F41F48091730266 +:104FE00018160CF066C01092730263C090917202A2 +:104FF000823F19F497FF5DC005C0833F31F4191655 +:105000000CF057C01092720254C0893F31F4809165 +:10501000740218160CF04DC006C08A3F39F4809116 +:10502000740287FF46C01092740243C08B3F29F47C +:105030008091750287FF3DC006C08C3F39F4809196 +:1050400075021816B4F51092750233C0843F21F42E +:10505000809171028E7F05C0853F31F4809171028D +:105060008D7F8093710225C0863F21F4809171026B +:105070008B7FF7CF873F21F480917102877FF1CF3B +:10508000883F21F4809171028F7EEBCF8D3F21F418 +:10509000809176028E7F0BC08E3F21F48091760244 +:1050A0008D7F05C08F3F29F4809176028B7F80939E +:1050B00076028091720281110EC08091730281117B +:1050C0000AC080917402811106C08091750281111D +:1050D00002C010927002089581E792E00E94751854 +:1050E0000E94BF2490936F0280936E020895CF9325 +:1050F00080916E0290916F020E94CC2440917002C8 +:10510000442321F02091210130E006C020912201AA +:105110005AE0259F900111248217930708F486C056 +:105120008091720281110DC090917302911109C09A +:1051300090917402911105C090917502992309F420 +:1051400075C04F3F19F04F5F40937002181624F45A +:105150000E94FC26809372028091720287FF05C034 +:105160000E94FC268195809372028091730218162A +:1051700024F40E94FC26809373028091730287FFBF +:1051800005C00E94FC268195809373026091720293 +:10519000662339F1C0917302CC2319F1772767FD9B +:1051A0007095872F972F0E94FA2C23E333E343E374 +:1051B0005FE30E94AE2D0E94C72C609372026C2F99 +:1051C000772767FD7095872F972F0E94FA2C23E38E +:1051D00033E343E35FE30E94AE2D0E94C72C60934C +:1051E000730280917402181624F40E94442780935D +:1051F00074028091740287FF05C00E944427819544 +:105200008093740280917502181624F40E9444273A +:10521000809375028091750287FF05C00E94442724 +:10522000819580937502CF910C946C28CF9108954D +:10523000E1E7F2E085E0DF011D928A95E9F710923F +:105240007002109276020895833089F130F4813033 +:1052500061F0823009F06EC019C0853009F449C090 +:10526000B8F1863009F066C055C020912201862F22 +:1052700090E0820F911D8F3F910520F4620F6093A3 +:10528000220108958FEF809322010895209121013A +:10529000862F90E0820F911D8F3F910520F4620FC1 +:1052A0006093210108958FEF80932101089520914B +:1052B0002001862F90E0820F911D8F3F910520F4F1 +:1052C000620F6093200108958FEF8093200108956D +:1052D00020911F01862F90E0820F911D8F3F910535 +:1052E00020F4620F60931F0108958FEF80931F01D8 +:1052F000089520911E01862F90E0820F911D8F3F0F +:10530000910520F4620F60931E0108958FEF809342 +:105310001E01089520911D01862F90E0820F911D9E +:105320008F3F910520F4620F60931D0108958FEF68 +:1053300080931D010895833021F130F4813059F0BC +:10534000823009F049C012C0853089F128F18630D9 +:1053500009F042C037C080912201681720F4861BF3 +:1053600080932201089510922201089580912101D5 +:10537000681720F4861B8093210108951092210163 +:10538000089580912001681720F4861B80932001E6 +:10539000089510922001089580911F01681720F44C +:1053A000861B80931F01089510921F01089580911C +:1053B0001E01681720F4861B80931E010895109229 +:1053C0001E01089580911D01681720F4861B8093AB +:1053D0001D01089510921D01089541E050E060E024 +:1053E00070E004C0440F551F661F771F8A95D2F7DF +:1053F000CB01BA010E9491220C948C1E873208F5D1 +:105400008E3108F0B9C08E3009F47EC060F4873068 +:1054100009F465C018F4863059F549C0883051F157 +:105420008B3031F5AEC0883130F4863108F0A9C038 +:105430008031F1F473C0893109F4A3C08B31C1F418 +:1054400059C08933F1F068F4893209F493C018F433 +:10545000873271F48FC0853309F48CC0883341F4EE +:1054600090C0863409F46BC008F488C0883449F1D0 +:1054700080E008950E94D8260E94EA260E94F32622 +:1054800080C00E945918892B59F00E945918909396 +:105490007902809378020E948C1E80E090E004C024 +:1054A00080917802909179020E9454186AC080918C +:1054B0006802817F8E7F8093680281E0809377020B +:1054C00008950E948C1E2FEF83ED90E321508040C1 +:1054D0009040E1F700C000000E941F2552C080915B +:1054E000680280FF03C0817F8E7F01C0816080934E +:1054F000680247C09091680291FB882780F921E0FB +:10550000822780FB91F913C09091680292FB882753 +:1055100080F921E0822780FB92F909C0909168020E +:1055200093FB882780F921E0822780FB93F99093F1 +:105530006802882331F191609093680222C081E86B +:1055400090E00E9480182FEF81EE94E0215080407F +:105550009040E1F700C0000080E090E00E948018D9 +:105560002FEF89E698E1215080409040E1F700C09C +:10557000000007C080E003C08D5101C089530E9424 +:10558000ED2981E0089580E0089580E00895CF93AB +:10559000C82F80917702813071F020F0823009F0BD +:1055A00083C037C0A0911B01B0911C018C91823245 +:1055B00009F07CC007C0A0911B01B0911C018C9127 +:1055C000823249F48C2F0E94C32A81111EC08C2F75 +:1055D0000E94FE291CC08C2F0E94C52A811115C073 +:1055E000C43169F030F4CB3081F0C03109F062C0D1 +:1055F00009C0C93221F0C83309F05CC006C010925E +:10560000770258C082E08093770281E090E0817059 +:1056100054C0C932C1F060F4C431A9F020F4C730DD +:1056200009F046C02EC0CE51CA3008F041C011C0AA +:10563000CE3409F118F4CB34D9F517C0C13599F03F +:10564000C235B1F50EC010927A0281E080937702E4 +:1056500034C0EC2FF0E0E455FE4F808180937A0255 +:1056600027C061E003C061E007C06AE080917A0270 +:105670000E9424291DC06AE080917A020E949B2921 +:1056800017C08EE18093220182E3809321018AE09A +:105690008093200184E180931F0188E080931E01A4 +:1056A00088E280931D0104C01092770280E005C05B +:1056B00081E003C080E090E0AACFCF9108950E94DE +:1056C000CD26811102C00E94AE260E94F32680934F +:1056D000770380FF02C0869501C080E00C94DF074D +:1056E00080917703982F9695292F30E0233031054C +:1056F0004CF49F5F990F8170892B816080937703B1 +:105700000E94F7268091770386950C94DF0780919D +:105710007703982F969591F09158990F8170892B66 +:10572000809377038E7F91E009F490E08091770376 +:1057300090FB80F9809377030E94F726809177038E +:1057400086950C94DF0780917703982F909590FBB6 +:1057500080F9809377030E94F7268091770380FF7A +:1057600002C0869501C080E00C94DF07309177037A +:10577000232F26952F5F2F77822F90E0317004978B +:105780002CF4220F232B2093770302C0309377034E +:1057900080917703282F2E7F91E009F490E090FB11 +:1057A00080F9809377030E94F7268091770386958E +:1057B0000C94DF0720917703922F96959827990FE5 +:1057C000822F8170892B809377038E7F91E009F47B +:1057D00090E08091770390FB80F9809377030E949B +:1057E000F7268091770386950C94DF075058BB27E6 +:1057F000AA270ED075C166D130F06BD120F031F4FC +:105800009F3F11F41EF45BC10EF4E095E7FB51C11C +:10581000E92F77D180F3BA176207730784079507DA +:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F +:10583000A02D0B01B90190010C01CA01A001112496 +:10584000FF27591B99F0593F50F4503E68F11A1642 +:10585000F040A22F232F342F4427585FF3CF4695D3 +:1058600037952795A795F0405395C9F77EF41F16F5 +:10587000BA0B620B730B840BBAF09150A1F0FF0FBF +:10588000BB1F661F771F881FC2F70EC0BA0F621FAB +:10589000731F841F48F4879577956795B795F7959B +:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D +:1058B000979587950895D9D008F481E008950CD084 +:1058C0000FC107D140F0FED030F021F45F3F19F056 +:1058D000F0C0511139C1F3C014D198F39923C9F321 +:1058E0005523B1F3951B550BBB27AA2762177307E6 +:1058F000840738F09F5F5F4F220F331F441FAA1F9A +:10590000A9F333D00E2E3AF0E0E830D09150504059 +:10591000E695001CCAF729D0FE2F27D0660F771F07 +:10592000881FBB1F261737074807AB07B0E809F0E9 +:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E +:10594000510568F0B6C000C15F3FECF3983EDCF350 +:10595000869577956795B795F7959F5FC9F7880FF7 +:10596000911D9695879597F90895E1E0660F771F49 +:10597000881FBB1F621773078407BA0720F0621BDA +:10598000730B840BBA0BEE1F88F7E095089504D0D3 +:105990006894B111D9C00895BCD088F09F5790F099 +:1059A000B92F9927B751A0F0D1F0660F771F881F44 +:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F +:1059C000B1E00895C0C0672F782F8827B85F39F0FD +:1059D000B93FCCF3869577956795B395D9F73EF4A3 +:1059E00090958095709561957F4F8F4F9F4F08954B +:1059F000E89409C097FB3EF4909580957095619569 +:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E +:105A10009395F695879577956795B795F111F8CF9A +:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 +:105A30009F4F16C0882311F096E911C0772321F0FB +:105A40009EE8872F762F05C0662371F096E8862F93 +:105A500070E060E02AF09A95660F771F881FDAF7EA +:105A6000880F9695879597F90895990F0008550F17 +:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4 +:105A800012161306E407F50798F0621B730B840BDC +:105A9000950B39F40A2661F0232B242B252B21F4B6 +:105AA00008950A2609F4A140A6958FEF811D811D56 +:105AB000089597F99F6780E870E060E008959FEF90 +:105AC00080EC089500240A94161617061806090695 +:105AD000089500240A941216130614060506089564 +:105AE000092E0394000C11F4882352F0BB0F40F4EC +:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C +:105B0000089557FD9058440F551F59F05F3F71F0AD +:105B10004795880F97FB991F61F09F3F79F0879514 +:105B20000895121613061406551FF2CF4695F1DF9D +:105B300008C0161617061806991FF1CF869571052D +:105B4000610508940895E894BB2766277727CB0161 +:105B500097F908958ADF08F48FEF08950BD0C0CF2E +:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58 +:105B70001124EACFC6DFA0F3959FD1F3950F50E033 +:105B8000551F629FF001729FBB27F00DB11D639FEF +:105B9000AA27F00DB11DAA1F649F6627B00DA11D95 +:105BA000661F829F2227B00DA11D621F739FB00D3B +:105BB000A11D621F839FA00D611D221F749F3327AB +:105BC000A00D611D231F849F600D211D822F762F44 +:105BD0006A2F11249F5750408AF0E1F088234AF041 +:105BE000EE0FFF1FBB1F661F771F881F915050408D +:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355 +:105C0000983EDCF3869577956795B795F795E79578 +:105C10009F5FC1F7FE2B880F911D9695879597F989 +:105C20000895FA01EE0FFF1F30962105310599F115 +:105C30006115710561F48038BFE39B0749F16894F1 +:105C40009038810561F08038BFEF9B0741F09923C0 +:105C500042F5FF3FE1053105210511F1E894089473 +:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313 +:105C700010C0FF5F70F4A695E0F7F73950F019F007 +:105C8000FF3A38F49F779F930CD00F9007FC905801 +:105C900008953EF014CF60E070E080E89FE308953F +:105CA0004FE79F775F934F933F932F939ED02F9112 +:105CB0003F914F915F9152DF05C019F40EF0F9CE7C +:105CC00042CFFDCE26DFC8F39638C0F707F80F9213 +:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E +:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D +:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6 +:105D0000FE57E0684427EE0F441FFA95E1F74195EE +:105D1000550B32D00F9007FE26C00895DF93CF9326 +:105D20001F930F93FF92EF92DF927B018C01689497 +:105D300005C0DA2EEF011EDFFE01E894A591259142 +:105D4000359145915591AEF3EF0162DDFE0197016A +:105D5000A801DA9479F7DF90EF90FF900F911F91EF +:105D6000CF91DF9108959B01AC0160E070E080E885 +:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A +:105D8000940F511DBBF39150504094F059F088236B +:105D900032F0660F771F881F91505040C1F79E3F29 +:105DA000510544F7880F911D9695879597F90895A9 +:105DB0005F3FACF0983E9CF0BB2786957795679542 +:105DC000B79508F4B1609395C1F7BB0F58F711F47C +:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11 +:105DE0000EF076C06CCE689464CE93DEC8F399232F +:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75 +:105E0000DD2788232AF02197660F771F881FDAF78E +:105E100020E030E040E85FEB9FE3883920F0803EEF +:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7 +:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757 +:105E400071097595771F880B990BD4DD28E132E72E +:105E500041E35FE38FDEAF2D9801AE01FF900F911C +:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68 +:105E7000BB1F9B01AC01BF5728F4222733274427BF +:105E800050781FC0B75188F4AB2F00244695379542 +:105E90002795011CA395D2F3002069F0220F331F30 +:105EA000441FB395DAF30DD0A1CC61307105A0E8A1 +:105EB0008A07B94630F49B01AC016627772788270B +:105EC0009078309621F02083318342835383089564 +:105ED0009F3F31F0915020F4879577956795B7955E +:105EE000880F911D9695879597F90895AA1BBB1B5E +:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA +:105F0000B70B881F991F5A95A9F780959095BC01EA +:105F1000CD01089597FB072E16F4009407D077FD66 +:105F200009D00E94762F07FC05D03EF4909581950C +:105F30009F4F0895709561957F4F0895F999FECF11 +:105F400092BD81BDF89A992780B50895A8E1B0E087 +:105F500042E050E00C94C12F262FF999FECF1FBAD2 +:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82 +:105F7000019608950E94AC2F272F0C94AD2FDC01C1 +:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44 +:105F9000319600B40D9241505040B8F70895F894EE +:025FA000FFCF31 +:105FA2000507000C058540000001064000000100C5 +:105FB200D80B680C440C0F0CDB0B01600228081490 +:105FC2000A321E40004500250026006100600020C4 +:105FD2000037006400650066006700440046002444 +:105FE2000047000000020004000500070009000B42 +:105FF200000C000E0010001100130015001700180D +:10600200001A001C001D001F00210023002400268E +:1060120000280029002B002D002F00300032003410 +:10602200003500370039003B008803A103BA03D3CF +:1060320003FB04AE04780458043F4D3620020302E9 +:10604200000001000101010101000101010203043C +:0660520005060708090025 +:00000001FF diff --git a/keyboard/planck/planck_pcb_r3_w_bootloader.hex b/keyboard/planck/planck_pcb_r3_w_bootloader.hex new file mode 100755 index 000000000..c61dfb743 --- /dev/null +++ b/keyboard/planck/planck_pcb_r3_w_bootloader.hex @@ -0,0 +1,1796 @@ +:020000020000FC +:047000000C948D3E21 +:047028000C94B73DD0 +:10702F0012010002FF010020EB03F42F0000010208 +:10703F00030109021200010100803209040000005F +:10704F00000000000C03410054004D0045004C00AF +:10705F001603410054006D00330032005500340018 +:10706F004400460055000C0331002E0030002E0066 +:10707F0030000403090416010C0100000C0000018C +:02708F006C7F14 +:1070920012BD01BDF89A00B5089501E00895F9996D +:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929 +:1070B200FECF0C944938F80104910895F8013491F7 +:1070C20031962491890108950091610000930C0189 +:1070D20000E80093610001E00093610005BF02E057 +:1070E20005BF0C9486380091D70001600093D70049 +:1070F200A89507EF04BF0091600000610093600053 +:1071020000E00093600001E008950E94AA3D0E9401 +:10711200B53DFDCF0CD00F7708D0006806D00061D6 +:1071220004D0016028D0789408950093D80000918B +:10713200D8000895FCDF00621ED04CD009B500FFD4 +:10714200FDCFF5DF0F7D17D00091E0000E7F009399 +:10715200E0000091E000077F0093E0000091E20070 +:1071620001600093E2000091E20008600093E200F7 +:1071720078940C94743B0093D800089500910D010B +:10718200002359F40091D90000FF07C0D0DF006846 +:10719200F2DF01E000930D01CDDFE0E2F2E00081D9 +:1071A200018100FF0DC0008111811E7F11830083C8 +:1071B20001E00093EA0000E00093EA0000931E025F +:1071C20000E00093E9000091E80003FF02C00E9482 +:1071D200F23B0895A89539D000E40093600000E0E6 +:1071E200009381000093800010E0009385000093DB +:1071F200840001E006BB00918100036000938100DE +:107202000091600007FFFCCF00E80093600010933C +:107212008100A89507EF04BF18D010936000209159 +:1072220084003091850010938100109380001093A8 +:1072320085001093840001E006BB2D3D354010F01F +:1072420002E101C002E009BD089500916000006101 +:107252000093600008950E94AD3E239741D100E063 +:1072620000930901B5D104811581012B51F437D165 +:1072720000910701002309F4B9C000E0009307015F +:10728200B5C058D102FFFDCF37D1068335D1009367 +:107292000F0132D1009310012FD1009311012CD193 +:1072A2000093120129D10093130102852091130149 +:1072B20030911201409111015091100116811A95DD +:1072C20041F01250A9F01A9599F11A9509F473C078 +:1072D2008BC010910F01113011F411E001C010E0C8 +:1072E200138799D00C3F11F414D17FC077D17DC0A0 +:1072F20092D010910F01112329F01A9549F01A9595 +:10730200A9F073C010E013870C3F09F06EC0ECCFF8 +:1073120056D103C04CD109F468C00D911C9144D1DF +:107322000F3FC1F305E0009309015FC011E0EBCF0D +:10733200D2D029F00250E1F10A9541F056C0FDD0B9 +:107342000E94A33F0FEF00930A014FC0552319F08B +:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE +:1073620003FFFDCF67D051D04AD008E00093600000 +:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F +:1073820044D00FEF1FE004C009811A810150104060 +:1073920009831A8309811A81012BB1F700E800934E +:1073A200610000910C01009361000C940000FFCF7A +:1073B20001E003871AC08FD019F00A9539F015C081 +:1073C200535098F4BAD002E000870FC0505339F0FE +:1073D2005A9541F05F52B1F35A95A1F306C002E00B +:1073E2000883F0CF01E0FCCFA8D079D02396E4E067 +:1073F2000C94BA3E01E005BF00E005BF089500917C +:10740200D8000F770093D800089509B50D7F09BD04 +:1074120000E009BD08955183408333832283109194 +:10742200E8001B7F1093E8001091E8001F7710938B +:10743200E80008955DD053D0F8940091E000016017 +:107442000093E000089579D04AC0219749D0009175 +:107452000601035019F00250B9F00BC03CD021F0E4 +:107462000A9559F00A9529F400910A010C3F19F482 +:1074720050D02196089567D0FCCF0091010100936E +:10748200F100009100010AC01091100124D019F0FE +:107492000A9549F0EECF135018F400E00093F10082 +:1074A2001ED044D0E6CF105339F01A9539F01F524E +:1074B20041F01A9541F0F4CF08E5F0CF00E006D094 +:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5 +:1074D20030E00C94113F00910F010023089521C068 +:1074E2000BD008D007D00093040106D00093050109 +:1074F20021D00BC000D008830091F10008950091C3 +:10750200EB0000620093EB0015D0077F0093E800C8 +:107512000895F5DF02E00093080103E000930901FA +:10752200089559D007D000FFFDCF089503D002FF80 +:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A +:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD +:107552002BD00093F1002BD059F43DD0082F092BEA +:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1 +:10757200042D4394003289F300910B0100230D91F5 +:107582001C9131F311970E945838E3CFD3DF00FFEB +:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B +:1075A200CCDFE5E00C94B93E11970C945C380D9158 +:1075B2001C910F5F1F4F1C930E93019708958281B8 +:1075C200938100811181801B910B0196DF01089547 +:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71 +:1075E200F7DF80819181A081B181AF710481158122 +:1075F20000521040048315830AC000910B0100233E +:1076020031F4A301920103E911E00E943B3F47D00C +:10761200B8F1662477242C0111C06EDFF301ED5618 +:10762200FE4F008301E0600E00E0701E01960091A3 +:10763200F200002311F033D0B8F47FDF30D0E8F24B +:10764200F301B096E238F040C0F674DF02FFFDCFDE +:107652000091F200BDDF24813581201B304024835C +:107662003583E5CF49DFAA95AA23E1F700910B0103 +:10767200013099F62091F1008C010E945038D6CF4A +:1076820004811581012B21F055DF02FFFDCF55DF6B +:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051 +:1076A200F1E0028113810817190708952091EB0078 +:1076B20021602093EB000093EC000091ED0002703A +:1076C200012B0093ED000091ED0002600093ED00AC +:1076D2001091EE00012F000F00E0001F0895412FCE +:1076E2000093E900089500E009D000FD05C000E024 +:1076F200F7DF10E202E0DACF00E00895F1DF009157 +:10770200EB0008950F770132A9F5112369F11A955B +:1077120059F01A9561F01A9569F01A95F9F01A95CF +:10772200C1F01A95D9F024C00E942C3920C00E94C1 +:10773200263A1DC029D00091090123D001E01FD0B3 +:1077420020D0009108011BD00E94923A0E94973AE1 +:107752000EC01AD00091080114D007C002E00093B5 +:10776200080100E0009309010FD00E94923A03C081 +:107772000E94803A02C001E0089500E0089501D01D +:1077820000E00093F10008950091E800077F009364 +:10779200E800089508950350F9F4112339F01A9579 +:1077A20051F01A9581F01A9599F016C004E016D09E +:1077B20001E810E703C011D003E510E7E7E1F2E0CA +:1077C20000831183D8CF06E109D00FE510E7F6CF89 +:1077D20004D005E710E7F2CFD0CF0CE000931A02F5 +:1077E200089527D120D100931D02E1D0212F11232A +:1077F20029F12A95E9F02250F1F0225099F02A95C8 +:1078020049F0225061F02A9581F02A95E1F02A95FB +:10781200E9F023C0003809F44FC00C94833B0038D0 +:10782200E1F7C8C00023C9F71EC00023B1F72DC07D +:10783200033098F744C1033080F70BC1003868F376 +:10784200033858F7C9C0013841F77BC1013051F400 +:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA +:1078620009F41ED008951091E3001078DCD00F7750 +:10787200012B0093E300E9D0ACD000FFFDCF0091D3 +:10788200E30000680093E300089591D0123040F4C1 +:107892000FD010931E02DAD000911E020C94CB3B43 +:1078A2000091EB0001D004C000620093EB00089548 +:1078B2000091E800077FC0C0BA93AA93229700E024 +:1078C2000093190274D0AFD0202F2A9519F02A956F +:1078D200E9F022C002E100931A020FE210E7E7E1A9 +:1078E200F2E0008311839DD008839DD00983E0DFFD +:1078F20000911A0210E02881398102171307A8F4B7 +:107902000F7181F401E00093190211C002E10093AA +:107912001A0201E410E7E3CF0E94CC3B002319F7DF +:107922008ED040C01093190202C020931A027ED05A +:10793200A7E1B2E001C08AD000911A02002309F146 +:1079420048D004FD1EC045D000FD03C042D004FF54 +:10795200FACF10E0012F1395003281F0ED91FC91E6 +:107962001197049133D02D913C912F5F3F4F3C935F +:107972002E93FD0103810A95038361F72AD004FF48 +:10798200DACF00911902013039F423D004FD04C08A +:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F +:1079A20018D00B7F49D02296A991B99108951091D0 +:1079B200F10008957DDF00911E0208D047D009D062 +:1079C2000F773AD006D002FFFDCFBFC00093F1007F +:1079D20008950091E800089524D010911D021058D6 +:1079E20029F01A9589F01A9591F019C061DF00917A +:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63 +:107A020018D0E7DF0F770CC053DF00E0F2CF51D080 +:107A12000F7710E0F801E55EFD4F0081EACF0FD04D +:107A22000BC001D000D00091F1000895D2DF0F7E8B +:107A320003C00091E8000B7F0093E80008950091D5 +:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31 +:107A5200F3CF00911D02002329F00A9509F10A953E +:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE +:107A7200B9F4D9DF0F7711F416D01BD00093E900C7 +:107A82001091EB0010FF0BC00ED010E01093E90034 +:107A920021E0F801E55EFD4F20834FD003C042D0C4 +:107AA20045D0CFDFC9CF1091EB0010621093EB00ED +:107AB20008951091E800177F1093E800089500914F +:107AC2001D02002311F4AFDF02C0013011F4B7DF51 +:107AD200B3CF023031F52DD019F52091F1002F7777 +:107AE2002093E90023D000FF19C081F01FD000616C +:107AF200DCDE01E010E0422F0E949F3E0093EA008C +:107B020000E00093EA0012D00860CFDE0BD030E034 +:107B1200F901E55EFD4F008310D0DACF03D0D7CF55 +:107B2200BFDE089500E00093E90008950091EB00A4 +:107B3200089579DF3CDF00230895BADE4ADF0E7F25 +:107B4200089583DF46DF02FFFDCF73DF42DF0F7749 +:107B520073CF0091D70001600093D7000E948B3849 +:107B620000E000931F0208950C94BF388A93FA93A1 +:107B7200EA933A922A921A920A927A936A935A93BF +:107B82004A933A932A931A930A938FB70091DA0091 +:107B920000FF24C00091D80000FF20C00EEF009328 +:107BA200DA000091D90000FF11C001E000930D013D +:107BB200ABD0026096D09AD00860A2D00E949B38C7 +:107BC2000091E0000E7F0093E00008C000E0009307 +:107BD2000D0100931E0298D0046083D07FD002FF73 +:107BE20005C084D002FF02C00BEF75D077D000FF32 +:107BF2001BC07CD000FF18C001E000930E016AD0C8 +:107C020083D000626ED00EEF6FD0006179D06ED05B +:107C12000F7D76D00091D80000620093D80009B59C +:107C22000D7F09BD00E009BD59D004FF20C05ED020 +:107C320004FF1DC009B500FD05C00E94EB3809B55F +:107C420000FFFDCF0091D8000F7D0093D80042D0F5 +:107C520000910E01002359F04CD00FEE45D00F7E5B +:107C620052D000643ED042D001604AD042D036D0D9 +:107C720005FF0FC03BD005FF0CC000E000930E01D2 +:107C820035D00F7E3DD00FED2FD00F7D3CD0006858 +:107C920028D024D003FF0DC029D003FF0AC000E082 +:107CA20000931F0207EF17D00E94743B2DD0116082 +:107CB20018D08FBF09911991299139914991599100 +:107CC200699179910990199029903990E991F991E6 +:107CD200899118950FEE0093E10008950091E1005B +:107CE20008951183008308950093E1000091E2005A +:107CF20008950091E200006203D00091E200086062 +:107D02000093E2000895FCDFE0E2F2E000811181DD +:107D1200089500008895FECF01E60DBF02E00EBF78 +:107D2200C2EED2E00E947438002311F00E94D33ECA +:107D32000E9465380E948A3E0C948A3E4A951AF047 +:107D4200000F111FFBCF0895BA92AA929A928A92BB +:107D52007A926A925A924A92BA93AA939A938A937D +:107D62000895BB84AA84998488847F806E805D8014 +:107D72004C80BB81AA8199818881F0E00FB6F8948A +:107D8200CE0FDF1F0FBE089520E006D0E9F7089559 +:107D9200259102D0E9F708952D9301501040202F2C +:107DA200212B089585E890E7FC0105911491FC01CF +:107DB2003296A591B491FC01349625913491422FCB +:107DC200432B19F0F901E4DF01C0DEDF069610E76C +:107DD2008139910748F308952F930CD02F9101D048 +:107DE20008953CD0F12FE02F45E047BFE89536D00B +:107DF20012D0089533D0F12FE02F43E047BFE8952A +:107E02002DD008952BD0F12FE02F43E047BFE89506 +:107E120025D001D0089522D041E147BFE8951EC088 +:107E22001DD0F12FE02F41E247BFC895002D16C0AB +:107E320015D0F12FE02F49E047BFC895002D0EC0A5 +:107E4200F32FE22F012E102E41E047BFE89506C026 +:107E520005D0002E29E027BFE89500C0022E27B7E3 +:107E620020FDFCCF202D0895022E27B726FDFCCF42 +:107E7200202D08950E94A53E22974801C901DA01EA +:107E820010C05BD001E0A00E00E0B01E00E4A0161E +:107E920000E0B00608F440C0830120E030E00E9418 +:107EA200F23E0A2F0B2B09F440C0082F0F7710E087 +:107EB2002C01401A510A320100E4A02E03C00A2FFD +:107EC2000B2BE1F04816590680F0F40101914F01A5 +:107ED2000983119729F001914F010883119711C06D +:107EE200F2013196049108830CC0F20104910983D6 +:107EF2003196E817F907A1F7F401EDCF1BD00883FB +:107F020019839201088119810E94213F16D0AA94F7 +:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE +:107F220009F4AFCF83011DD0B7CF01E02296ECE078 +:107F32000C94B23E82010C945F3802E0400E00E0E5 +:107F4200501E08959A938A9380E090E08C0109D0A4 +:107F520080589F4F8F3F0FE69007C0F38991999108 +:107F6200089520E030E00C94FB3E00000000000089 +:067F720000000000FC000D +:107FE4000C94ED3E0C94113F0C94193F0C94213FDA +:0C7FF4000C94F23E0C94033F0C94293FC7 +:040000030000700089 +:100000000C949D020C94E1020C94E1020C94E10228 +:100010000C94E1020C94E1020C94E1020C94E102D4 +:100020000C94E1020C94E1020C941C120C94EE125C +:100030000C948D240C94E1020C94E1020C94E102E6 +:100040000C94E1020C94E1020C94E1020C94E102A4 +:100050000C94E1020C94FA240C94E1020C94E10259 +:100060000C94E1020C94E1020C94E1020C94E10284 +:100070000C94E1020C94E1020C94E1020C94E10274 +:100080000C94860A0C94E1020C94E1020C94E102B7 +:100090000C94E1020C94E1020C94E1020C94E10254 +:1000A0000C94E1020C94E1020C94E10207634236E5 +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F0000000000000021 +:10013000F1A4F1A3018C028C048C2B0014001A0092 +:100140000800150017001C0018000C001200130016 +:100150002A00290004001600070009000A000B000D +:100160000D000E000F0033003400E1001D001B00E5 +:100170000600190005001100100036003700380095 +:1001800028000030E000E200E30002202C002C00F8 +:1001900001205000510052004F002B0014001A00A3 +:1001A000090013000A000D000F0018001C003300A6 +:1001B0002A002900040015001600170007000B0094 +:1001C000110008000C0012003400E1001D001B00AB +:1001D0000600190005000E00100036003700380038 +:1001E00028000030E000E200E30002202C002C0098 +:1001F00001205000510052004F002B003400360007 +:10020000370013001C0009000A00060015000F004B +:100210002A00290004001200080018000C00070042 +:100220000B001700110016003800E1003300140025 +:100230000D000E001B00050010001A0019001D0023 +:1002400028000030E000E200E30002202C002C0037 +:1002500001205000510052004F0035021E021F02C3 +:100260002002210222022302240225022602270262 +:100270002A0001003A003B003C003D003E003F00E8 +:100280002D022E022F0230023102010040004100F7 +:100290004200430044004500032004200520005094 +:1002A0000100010001000100010002200100010025 +:1002B0000100AB00AA00A900AE0035001E001F001F +:1002C0002000210022002300240025002600270012 +:1002D0002A0001003A003B003C003D003E003F0088 +:1002E0002D002E002F0030003100010040004100A1 +:1002F0004200430044004500032004200520005034 +:1003000001000100010001000100010001000100E5 +:100310000120AB00AA00A900AE0028035400680029 +:100320006500200050006C0061006E0063006B00EF +:1003300020004B006500790062006F0061007200D0 +:10034000640000002C034F007200740068006F000E +:100350006C0069006E0065006100720020004B00B7 +:100360006500790062006F00610072006400730034 +:100370000000040309040902D000060100A03209AC +:100380000400000103010100092111010001223FC5 +:10039000000705810308000A0904010001030102A6 +:1003A00000092111010001224D0007058203080008 +:1003B0000A090402000103000000092111010001E3 +:1003C0002236000705830308000A0904030002031C +:1003D000000000092111010001222000070584030B +:1003E00020000107050403200001090404000001A6 +:1003F00001000009240100010900010509040500AC +:10040000020103000007240100014100062402014B +:100410000100062402020200092403010301020173 +:10042000000924030204010101000905060240003D +:1004300005000005250101010905850240000500B0 +:100440000005250101031201100100000008EDFE66 +:1004500060600100010200010631FF0974A1010979 +:1004600075150025FF952075088102097615002570 +:10047000FF952075089102C005010980A101850240 +:1004800016010026B7001A01002AB7007510950161 +:100490008100C0050C0901A1018503160100269CFD +:1004A000021A01002A9C02751095018100C0050105 +:1004B0000902A1010901A100050919012905150079 +:1004C00025019505750181029501750381010501DD +:1004D000093009311581257F950275088106093893 +:1004E0001581257F950175088106050C0A380215CE +:1004F00081257F950175088106C0C005010906A107 +:1005000001050719E029E715002501950875018106 +:1005100002950175088101050819012905950575E0 +:100520000191029501750391010507190029FF1535 +:100530000025FF950675088100C011241FBECFEF6E +:10054000DAE0DEBFCDBF04B603FE24C0809178039D +:1005500090917903A0917A03B0917B038730904BFF +:10056000A740B04BB9F4109278031092790310921F +:100570007A0310927B0314BE84B7877F84BF88E11F +:100580000FB6F89480936000109260000FBEE0E018 +:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E +:1005A00005900D92A63BB107D9F713E0A6EBB1E099 +:1005B00001C01D92A837B107E1F70E94F90E0C9413 +:1005C000CF2F0C9400000895089561110DC0FC0117 +:1005D0008281882331F085EE0E949D190E94B62BFE +:1005E00003C085EE0E94651A80E090E008958B3B81 +:1005F000910568F4883A910530F5853A9105C0F483 +:100600008430910598F4019709F06FC071C0803E65 +:10061000910508F46AC0883E910540F09C01205F76 +:1006200031092031310508F060C05CC09C01A1C0D7 +:10063000853A910509F45FC0863A910509F45EC0D8 +:1006400023E830E496C0883A910509F45AC0893A03 +:10065000910509F459C08A3A910509F458C08B3ABA +:10066000910509F457C08C3A910509F456C08D3AAA +:10067000910509F455C0803B910509F454C08E3AA8 +:10068000910509F453C08F3A910509F452C0813B9A +:10069000910509F451C0823B910509F450C0833B98 +:1006A000910509F44FC0843B910509F44EC0853B88 +:1006B000910509F44DC0863B910509F44CC0873B78 +:1006C000910509F44BC0883B910509F44AC0893B68 +:1006D000910509F449C08A3B910509F048C02AE216 +:1006E00036E447C09C01306544C020E030E041C0A2 +:1006F00021E030E03EC021E830E43BC022E830E4B5 +:1007000038C022EE34E435C029EE34E432C02AEE9B +:1007100034E42FC025EB34E42CC026EB34E429C0AC +:1007200027EB34E426C02CEC34E423C02DEC34E475 +:1007300020C023E835E41DC02AE835E41AC022E9C8 +:1007400035E417C024E935E414C021E236E411C0D1 +:1007500023E236E40EC024E236E40BC025E236E4A0 +:1007600008C026E236E405C027E236E402C020E0F5 +:1007700034E4C90108959CE0799FF001112490E3CD +:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3 +:10079000E65CFE4F25913491C9010895880F991F99 +:1007A00082559040FC0125913491C9010895880F2C +:1007B000991F825D9E4FFC0125913491C9010895D6 +:1007C0000E94BB039C013A9521153F4108F4DFC00C +:1007D0009C0130522115304120F49F700E94D703B4 +:1007E00008959C0130532115304118F49927906CDD +:1007F00008959C0130542031310520F48F709927E1 +:10080000946D0895803120E4920719F480E091ED11 +:100810000895813140E4940719F480E090ED089543 +:10082000823120E4920719F480E092ED089583313B +:1008300040E4940719F480E093ED0895811520E5D4 +:10084000920711F40C941F25813040E5940731F490 +:100850008091680281608093680208959C013056FF +:100860002115304108F402C097FF02C0906F08952F +:10087000803E9105E0F4803C910568F58133910557 +:1008800009F474C048F48932910509F46AC08A32C7 +:10089000910509F07AC074C089339105F9F0823866 +:1008A0009105E1F08533910509F06FC050C0833E9A +:1008B0009105A9F140F4803E9105C9F0823E910571 +:1008C00009F063C01BC0863E910571F1873E91051A +:1008D00009F05BC037C00E94CE03089520917B02CF +:1008E00020FD02C021FF51C080EE90E04EC08091FB +:1008F0007B0280FFF9CF89E390E047C080917B02C3 +:1009000082FF0AC080917B0284FF03C080E090E0F8 +:100910003CC083EE90E039C082EE90E036C080911A +:100920007B0282FFEFCFF8CF80917B0283FF07C06D +:1009300080917B0284FDEACF87EE90E026C086EEB0 +:1009400090E023C080917B0283FFF2CFF8CF8091AB +:100950007B0285FF03C089E290E017C085E390E049 +:1009600014C080917B0285FDF9CFF5CF80917B0289 +:1009700086FF03C08AE290E008C081E390E005C0F2 +:1009800080917B0286FDF9CFF5CF0E94F702089592 +:100990005F926F927F928F929F92AF92BF92CF920F +:1009A000DF92EF92FF920F931F93CF93DF93CDB718 +:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD +:1009C0002F5F3F4F4E0189E0880E911C60E070E080 +:1009D00000E010E0E12CF12CC12CD12CA12CB12C89 +:1009E00088E0782E622E532E41E050E0E3E2F1E001 +:1009F000A62DB52D872D01900D928A95E1F7F9016D +:100A0000819191919F01FC01E07FFF27E032F10588 +:100A100059F48F709927FA0102C0EE0FFF1F8A95D3 +:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0 +:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E +:100A4000DF2A29C0E034F10559F48F709927FA01A3 +:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5 +:100A6000E035F10559F48F709927FA0102C0EE0FB5 +:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504 +:100A800051F48F709927FA0102C0EE0FFF1F8A956B +:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B +:100AA0008A2D8095892384B985B18A2985B997B122 +:100AB0008C2D8095892387B988B18C2988B99AB102 +:100AC0008E2D809589238AB98BB18E298BB99DB1E2 +:100AD000802F809589238DB98EB1802B8EB990B3EC +:100AE000862F8095892380BB81B3862B81BB289676 +:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F +:100B00000F91FF90EF90DF90CF90BF90AF909F90AC +:100B10008F907F906F905F9008955F926F927F9219 +:100B20008F929F92AF92BF92CF92DF92EF92FF92FD +:100B30000F931F93CF93DF93CDB7DEB768970FB6B0 +:100B4000F894DEBF0FBECDBF85B7806885BF85B77F +:100B5000806885BF0E94CF076E9A769A0E94C8046B +:100B60009E012F5F3F4F4E0189E1880E911C60E08E +:100B700070E000E010E0E12CF12CC12CD12CA12C74 +:100B8000B12C98E1792E622E532E41E050E0EBE239 +:100B9000F1E0A62DB52D872D01900D928A95E1F7F4 +:100BA000F901819191919F01FC01E07FFF27E032E3 +:100BB000F10559F48F709927FA0102C0EE0FFF1F5B +:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F +:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786 +:100BE000CE2ADF2A29C0E034F10559F48F70992705 +:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4 +:100C00001BC0E035F10559F48F709927FA0102C035 +:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B +:100C2000F10551F48F709927FA0102C0EE0FFF1FF2 +:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F +:100C400094B18A2D8095892384B985B18A2985B983 +:100C500097B18C2D8095892387B988B18C2988B963 +:100C60009AB18E2D809589238AB98BB18E298BB943 +:100C70009DB1802F809589238DB98EB1802B8EB93F +:100C800090B3862F8095892380BB81B3862B81BB4F +:100C90001092B7011092B6011092BF011092BE01DE +:100CA0001092B9011092B8011092C1011092C001C6 +:100CB0001092BB011092BA011092C3011092C201AE +:100CC0001092BD011092BC011092C5011092C40196 +:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF +:100CE0001F910F91FF90EF90DF90CF90BF90AF904A +:100CF0009F908F907F906F905F9008955F926F921A +:100D00007F928F929F92AF92BF92CF92DF92EF929B +:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA +:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1 +:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57 +:100D4000B11C38E0532E470101E010E048E1642E69 +:100D500055E0752EE3E2F1E0D401852D01900D926E +:100D60008A95E1F7F701819191917F019C01207FA4 +:100D700033272032310589F424B18F709927A801D7 +:100D800002C0440F551F8A95E2F7CA01242B24B9EB +:100D900095B18095892385B94FC02033310589F4F9 +:100DA00027B18F709927F80102C0EE0FFF1F8A95B7 +:100DB000E2F7CF012E2B27B998B18095892388B906 +:100DC0003BC02034310589F42AB18F709927A801DE +:100DD00002C0440F551F8A95E2F7CA01242B2AB995 +:100DE0009BB1809589238BB927C02035310589F4C3 +:100DF0002DB18F709927F80102C0EE0FFF1F8A9561 +:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3 +:100E100013C02036310581F420B38F709927A801C3 +:100E200002C0440F551F8A95E2F7CA01242B20BB4C +:100E300091B38095892381BB50EA5A95F1F7BE01A1 +:100E40006F5F7F4F80E090E020E030E0EBE2F1E088 +:100E5000DE011196462D01900D924A95E1F7FB01B6 +:100E600041915191BF01FA01E07FFF27E032F10586 +:100E700011F4E3B113C0E033F10511F4E6B10EC093 +:100E8000E034F10511F4E9B109C0E035F10511F4E0 +:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009 +:100EA000552702C0F595E7954A95E2F7E0FD08C0A1 +:100EB000A801022E02C0440F551F0A94E2F702C097 +:100EC00040E050E0842B952B2F5F3F4F2C303105B5 +:100ED00009F0BCCFF601208131812817390721F0B4 +:100EE00091838083709200010E94C804F2E0CF0ECB +:100EF000D11CEA14FB0409F02DCF80910001882356 +:100F000061F1815080930001811121C08091BE0167 +:100F10009091BF019093B7018093B6018091C00179 +:100F20009091C1019093B9018093B8018091C20161 +:100F30009091C3019093BB018093BA018091C40149 +:100F40009091C5019093BD018093BC0106C08FE9CB +:100F50009FE00197F1F700C0000081E0A0960FB676 +:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF +:100F7000FF90EF90DF90CF90BF90AF909F908F90B9 +:100F80007F906F905F900895E82FF0E0EE0FFF1FC5 +:100F9000EA54FE4F80819181089508950895279A1B +:100FA0002F988FEF9FEF90938700809386008AE0C1 +:100FB0008093800089E1809381000C945F2B8111E4 +:100FC0000BC080918000877F8093800010928D00FD +:100FD00010928C002F9808952F98833041F48091BF +:100FE00080008860809380008FEF9FEF12C0909107 +:100FF000800098609093800023E030E0281B310946 +:10100000220F331F8FEF9FEF02C0969587952A9589 +:10101000E2F790938D0080938C0008950F931F93B7 +:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484 +:10103000DEBF0FBECDBF8C01862F642F882379F0D1 +:10104000F80192812FE7482F992329F08DE792E04C +:101050000E94F81404C08DE792E00E940815F80180 +:1010600080818B3061F49181933009F068C0828176 +:10107000882309F4CDC0809103018F5F0EC08A30B0 +:10108000E1F5F8019181933009F059C082818823FC +:1010900009F4BEC08091030181508093030120E0D8 +:1010A0004BE760E08DE792E00E94E81420E04BE718 +:1010B00061E08DE792E00E94E81420E04BE762E0F7 +:1010C0008DE792E00E94E81420E04BE763E08DE7B3 +:1010D00092E00E94E81420E04BE764E08DE792E0A4 +:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100 +:1010F000CF911F910F910C94E814893069F4F80195 +:1011000091819330E1F492819923C9F0809101019A +:101110009091020101960EC0883089F4F801918106 +:10112000933069F49281992351F08091010190915B +:10113000020101979093020180930101B0CFF80161 +:10114000928140910301992391F196E4E3E4F1E067 +:10115000DE01A95BBF4F01900D929A95E1F7405DCA +:10116000F8019181FCE09F9F40191124E091010159 +:10117000F0910201E80FF11DEE0FFF1F87E490E0F0 +:101180008C0F9D1FE80FF91F8081480F2FE760E04B +:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65 +:1011A000CDBFDF91CF911F910F910C94F81496E46D +:1011B000E3E4F1E0DE01119601900D929A95E1F7DA +:1011C000405DF8019181FCE09F9F40191124E0915E +:1011D0000101F0910201E80FF11DEE0FFF1F81E008 +:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB +:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92 +:101200000FBECDBFDF91CF911F910F910C940815A8 +:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE +:10122000CF911F910F910895CF93DF93EA019B0116 +:10123000AC0160E074E284E79BE40E945F2C0E94B2 +:10124000C72C709397006093960020E130E02C1B30 +:101250003D0B02C0759567952A95E2F7709399004A +:1012600060939800DF91CF9108951092020210923E +:10127000010210929000109291001092FD011092C4 +:10128000FE011092FF01109200021092FC011092D8 +:10129000FB01E9EDF1E0A9ECB1E01192119211929C +:1012A00011921D921D9281E0E93FF807B1F7089570 +:1012B000AF92BF92CF92DF92EF92FF920F931F9364 +:1012C000CF93DF936B017C0109EF11E047EDA42E72 +:1012D00041E0B42EC7E0D0E0A7019601F801929159 +:1012E0008291729162918F010E945B2C882349F058 +:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F +:1013000034C0F8011082118212821382F501118219 +:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80 +:10132000DE01AA0FBB1FA753BE4FCE011AC0019604 +:1013300044815581668177814083518362837383C1 +:10134000148215821682178212962D913C91139762 +:1013500011963C932E9313961C921E9212973496DC +:1013600012968730910519F7C3CF809101029091B1 +:101370000202019797FD05C090930202809301023B +:1013800004C01092020210920102E0910102F09159 +:101390000202309789F410929000109291001092FE +:1013A000FD011092FE011092FF01109200021092B6 +:1013B000FC011092FB019EC03197DF01AA0FBB1FF9 +:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1 +:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA +:1013E000B090FE010091FF0110910002A70196014B +:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1 +:1014000081E08093C801AE016A2D7B2D802F912F42 +:101410000E9414092091FD013091FE014091FF01CD +:1014200050910002C701B6010E94F62B20E030E087 +:101430004AEF53E40E945F2C9B01AC016A2D7B2D87 +:10144000802F912F0E94F72B5B018C01A701960141 +:101450007B2D912F0E945B2C1816ACF638C0A7018B +:1014600096016A2D7B2D802F912F0E94AA2D181690 +:1014700084F581E08093C801AE016A2D7B2D802F19 +:10148000912F0E941409A70196016091FD017091AE +:10149000FE018091FF01909100020E94F62B20E056 +:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF +:1014B0007B2D802F912F0E94F62B5B018C01A701C1 +:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8 +:1014D000C801AE01C701B6010E941409C092FD0106 +:1014E000D092FE01E092FF01F0920002D093FC0145 +:1014F000C093FB01DF91CF911F910F91FF90EF906F +:10150000DF90CF90BF90AF90089508951F920F92F3 +:101510000FB60F9211242F933F934F935F936F93C6 +:101520007F938F939F93AF93BF93EF93FF9380919C +:10153000960090919700892B09F455C08091C801BD +:10154000811151C08091F9019091FA01813091058A +:1015500071F082309105C1F0892BC1F52091FD0118 +:101560003091FE014091FF01509100021DC0609139 +:10157000FD017091FE018091FF01909100029B019D +:10158000AC010E94F72B0EC020E030E040E450E4B4 +:101590006091FD017091FE018091FF019091000228 +:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5 +:1015B0000E945F2C0E94C72C709397006093960046 +:1015C0007595679570939900609398008091F901E3 +:1015D0009091FA01019663E070E00E948A2F909347 +:1015E000FA018093F901FF91EF91BF91AF919F9123 +:1015F0008F917F916F915F914F913F912F910F90BC +:101600000FBE0F901F901895AF92BF92CF92DF92AE +:10161000EF92FF920F931F93CF93DF936B017C01A7 +:10162000EA0120E030E0A9010E94AA2D18160CF072 +:10163000B4C03E9A82E8809390008AE18093910042 +:10164000A090FD01B090FE010091FF0110910002F9 +:1016500020E030E0A9016A2D7B2D802F912F0E9480 +:101660005B2C81112DC0AE01C701B6010E94140987 +:10167000C092FD01D092FE01E092FF01F0920002C3 +:10168000D093FC01C093FB01809101029091020272 +:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F +:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F +:1016B000D183C083019690930202809301026DC092 +:1016C000A70196016A2D7B2D802F912F0E945B2C04 +:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499 +:1016E00014092091FD013091FE014091FF015091BC +:1016F0000002C701B6010E94F62B20E030E04AEF5D +:1017000053E40E945F2C9B01AC016A2D7B2D802F3E +:10171000912F0E94F72B5B018C01A70196017B2D75 +:10172000912F0E945B2C1816ACF69DCFA701960155 +:101730006A2D7B2D802F912F0E94AA2D18160CF058 +:1017400092CFAE016A2D7B2D802F912F0E9414091C +:10175000A70196016091FD017091FE018091FF014A +:10176000909100020E94F62B20E030E04AEF53E413 +:101770000E945F2C9B01AC016A2D7B2D802F912F45 +:101780000E94F62B5B018C01A70196017B2D912F06 +:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1 +:1017A0000F91FF90EF90DF90CF90BF90AF90089592 +:1017B00080910C020895CF93DF9300D01F92CDB794 +:1017C000DEB720916E03243021F523E029839B832B +:1017D0008A832093E9008FEF06C095ED9A95F1F783 +:1017E0000000882329F09091E800815095FFF5CF03 +:1017F0008091E80085FF0DC040E050E063E070E0BC +:10180000CE0101960E94BA0F8091E8008E778093F6 +:10181000E8000F900F900F90DF91CF910895CF9334 +:10182000DF9300D01F92CDB7DEB720916E03243036 +:1018300029F522E029839B838A8383E08093E90052 +:101840008FEF06C095ED9A95F1F70000882329F0F7 +:101850009091E800815095FFF5CF8091E80085FFD9 +:101860000DC040E050E063E070E0CE0101960E94C0 +:10187000BA0F8091E8008E778093E8000F900F9068 +:101880000F90DF91CF91089520916E032430F9F4E9 +:1018900022E02093E9002FEF06C035ED3A95F1F7ED +:1018A0000000222329F03091E800215035FFF5CFC8 +:1018B0002091E80025FF0BC040E050E065E070E0BB +:1018C0000E94BA0F8091E8008E778093E800089517 +:1018D000CF93DF93EC0180916E03843041F581E07A +:1018E0008093E9008FEF06C095ED9A95F1F700001F +:1018F000882329F09091E800815095FFF5CF8091E1 +:10190000E80085FF14C040E050E068E070E0CE01E0 +:101910000E94BA0F8091E8008E778093E80088E0FB +:10192000FE01A4E0B2E001900D928A95E1F7DF910B +:10193000CF910895BF92CF92DF92EF92FF920F93D3 +:101940001F93CF93DF937C01B62EE90100E010E0F6 +:10195000C42ED12C0BC04991202F2B0D2F774F7700 +:101960006FE0C7010E94E8140F5F1F4F0C151D05A3 +:1019700094F3DF91CF911F910F91FF90EF90DF9043 +:10198000CF90BF90089570E06F5F7F4F6F707727A3 +:101990000C94E8140F931F93CF93C42F63307105F9 +:1019A00009F04AC0842F807F803849F1803909F0DE +:1019B00043C0622F6F7770E080E090E00E94FA2CC5 +:1019C00020E030E040E451E40E945F2C9B01AC0138 +:1019D00060E070E080E090E40E94112E0F7710E04C +:1019E00023E0159507952A95E1F72DEC3CEC42E0B4 +:1019F00053E40E94AE2DA8010E94040B1DC0622F6B +:101A00006F7770E080E090E00E94FA2C20E030E0F8 +:101A100040E451E40E945F2C9B01AC0160E070E067 +:101A200080E090E40E94112E2DEC3CEC42E053E467 +:101A30000E94AE2D0E945809CC3F29F4CF911F91EE +:101A40000F910C943509CF911F910F9108950F9329 +:101A50001F93CF93DF93CDB7DEB727970FB6F894D8 +:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C +:101A70009A819D839B819E839C819F8381111EC03F +:101A800089818430B1F08730A1F08630A1F08530B3 +:101A9000A1F0BE016F5F7F4F84E091E00E942F189C +:101AA0008111E3CF84E091E00E9420180E949B14F2 +:101AB0000DC083E003C082E001C081E0AE014B5F56 +:101AC0005F4F682FC8010E945515E3CF27960FB6C8 +:101AD000F894DEBF0FBECDBFDF91CF911F910F9164 +:101AE0000895EF92FF920F93CF93DF9300D000D031 +:101AF00000D0CDB7DEB77B014A832B830C83842FC4 +:101B00002E834D830E94C2142E814D8181111BC0F2 +:101B100082E0E816F10479F083E0E816F10421F0A0 +:101B2000EA94EF2821F50BC0073F11F487E001C0CC +:101B300084E089830BC0273FD9F786E0FACF473F7F +:101B4000B9F785E0F6CF42954F704983BE016F5FCC +:101B50007F4F84E091E00E94E51784E091E00E94CD +:101B6000031884E091E00E9420180E949B1426969E +:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE +:101B8000FF90EF90089580916D03811109C00E942C +:101B9000A1110E94FE118091E20084608093E20016 +:101BA000089510926D03089508950C94E4020C9426 +:101BB000892480916E03843049F58091E9008F700B +:101BC0009091EC0090FF02C090E801C090E0982B4B +:101BD00084E08093E9008091EB0080FF14C0809145 +:101BE000EE0087FD03C00FC01092F1008091E80065 +:101BF00085FDFACF8091E80080FF05C08091E80064 +:101C00008E778093E8009F709093E900089542E0FA +:101C100061EC81E00E94171142E061EC82E00E94D9 +:101C2000171142E061EC83E00E94171146E261EC7B +:101C300084E00E94171142E361E885E00E941711D9 +:101C400042E360E886E00C941711809170038330C2 +:101C500009F454C030F4813071F0823009F0AAC028 +:101C600091C08A3009F47EC08B3009F45FC089309E +:101C700009F0A0C020C080916F03813A09F09AC09A +:101C80008091E800877F8093E800809173039091B2 +:101C90007403892B21F060E080E090E003C068E0ED +:101CA00084E092E070E00E9458108091E8008B7709 +:101CB0008093E800089580916F03813209F07AC023 +:101CC0008091730390917403892B09F073C0809104 +:101CD000E800877F8093E80005C080916E03882329 +:101CE00009F468C08091E80082FFF7CF8091F1008D +:101CF00080930C028091E8008B7758C080916F032D +:101D0000813A09F057C08091730390917403892B35 +:101D100009F050C08091E800877F8093E8008091AF +:101D2000E80080FFFCCF80911A013BC080916F03D7 +:101D3000813209F03FC08091730390917403892B25 +:101D4000C9F58091E800877F8093E8000E944E11DA +:101D50009091710381E0911101C080E080931A019C +:101D60000C948C1E80916F03813221F58091E800E4 +:101D7000877F8093E8000E944E11809172038093C8 +:101D80000302089580916F03813AA1F48091E800E5 +:101D9000877F8093E8008091E80080FFFCCF8091EE +:101DA00003028093F1008091E8008E778093E80031 +:101DB0000C944E11089584B7877F84BF88E10FB6D5 +:101DC000F89480936000109260000FBE90E080E86D +:101DD0000FB6F89480936100909361000FBE0E944B +:101DE000A1110E94FE11E2EEF0E080818460808308 +:101DF00008958DE792E00E94241561E77DE08DE76C +:101E000092E00E947A1567E27DE08DE792E00E9401 +:101E10007E150E94DB0E78946AEC7CE08DE792E000 +:101E20000E94201563EC7CE08DE792E00E9418157B +:101E30006AE97CE08DE792E00E941C150E94850A09 +:101E40000E949B140E94AC1880E191E00E945418FB +:101E50000BC00E944E2480916C03882329F00E94BD +:101E6000742481110E94A40F80916E03853089F340 +:101E70008DE792E00E942D170E94B618F5CF292F0A +:101E8000332723303105B1F04CF42130310509F40A +:101E90004DC02230310509F04EC007C02132310556 +:101EA00041F12232310591F146C0E0EDF0E086E7E4 +:101EB00093E045C099278130910569F08230910502 +:101EC00089F0892B09F037C0E2E7F3E0E491F0E014 +:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA +:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1 +:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735 +:101F0000FE4F80819181E9E0F0E019C0643098F4DF +:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139 +:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D +:101F300086E494E004C0E0E0F0E080E090E0DA01C4 +:101F40008D939C93CF01089580E189BD82E189BD85 +:101F500009B400FEFDCF8091D8008F7D8093D8001A +:101F60008091E00082608093E0008091E00081FD3C +:101F7000FCCF0895BF92CF92DF92EF92FF920F9322 +:101F80001F93CF93DF937C018B01EA010E946F11B5 +:101F9000B82E811133C0209731F028813981021B7E +:101FA000130BE20EF31EC12CD12C23C08091E8004C +:101FB00085FD15C08091E8008E778093E80020971A +:101FC00049F0888199818C0D9D1D9983888325E036 +:101FD000B22E14C00E946F11882359F00EC0F70171 +:101FE00081917F018093F10001501109FFEFCF1A19 +:101FF000DF0A01151105D1F601C0B82E8B2DDF9136 +:10200000CF911F910F91FF90EF90DF90CF90BF90F5 +:102010000895BF92CF92DF92EF92FF920F931F939A +:10202000CF93DF937C018B01EA010E946F11B82EE0 +:10203000811133C0209731F028813981021B130BA5 +:10204000E20EF31EC12CD12C23C08091E80085FD47 +:1020500015C08091E8008B778093E800209749F0C5 +:10206000888199818C0D9D1D9983888345E0B42ECC +:1020700014C00E946F11882359F00EC08091F100A6 +:10208000F70181937F0101501109FFEFCF1ADF0A99 +:1020900001151105D1F601C0B82E8B2DDF91CF911E +:1020A0001F910F91FF90EF90DF90CF90BF90089518 +:1020B00040917503509176034617570748F0611514 +:1020C000710539F44091E8004E774093E80001C073 +:1020D000BA01FC0140E033C080916E03882309F40B +:1020E00042C0853009F441C08091E80083FD39C0C9 +:1020F0008091E80082FD2FC08091E80080FF1FC022 +:102100009091F3008091F200392F20E0A901482B33 +:10211000CA0106C041914093F100615071090196D6 +:102120006115710519F088309105A0F341E0089719 +:1021300009F040E08091E8008E778093E800611517 +:10214000710551F64111C8CF06C080916E038823F6 +:1021500051F0853051F08091E80082FFF6CF80E0A9 +:10216000089581E0089582E0089583E00895409104 +:102170007503509176034617570748F061157105AE +:1021800039F44091E8004E774093E80001C0BA016D +:10219000FC0140E034C080916E03882309F443C001 +:1021A000853009F442C08091E80083FD3AC08091F7 +:1021B000E80082FD30C08091E80080FF20C090914F +:1021C000F3008091F200392F20E0A901482BCA01C9 +:1021D00007C044914093F100319661507109019616 +:1021E0006115710519F08830910598F341E0089761 +:1021F00009F040E08091E8008E778093E800611557 +:10220000710549F64111C7CF06C080916E0388233E +:1022100051F0853051F08091E80082FFF6CF80E0E8 +:10222000089581E0089582E0089583E00895982F4D +:102230002CC09093E900981739F07091EC00209130 +:10224000ED005091F00003C0242F762F50E021FDC7 +:1022500002C09F5F1AC03091EB003E7F3093EB00CD +:102260003091ED003D7F3093ED003091EB00316017 +:102270003093EB007093EC002093ED005093F0004E +:102280002091EE0027FDE5CF07C0973090F28F70C8 +:102290008093E90081E0089580E0089580916F03C4 +:1022A00087FD05C08091E80080FF0EC012C08091BC +:1022B000E80082FD05C080916E038111F8CF08957A +:1022C0008091E8008B7708C080916E038111EACF7E +:1022D00008958091E8008E778093E80008958091BA +:1022E000E4009091E50045E62091EC0020FD1FC040 +:1022F00023C020916E03222391F0253091F020918C +:10230000EB0025FD10C02091E4003091E500281776 +:10231000390751F34150C90139F784E0089582E04B +:10232000089583E0089581E0089580E00895209164 +:10233000E80020FFDECFF9CF2091E80022FFD9CFBF +:10234000F4CF0E940F120E941712E0EEF0E080819D +:1023500081608083E8EDF0E080818F77808319BC15 +:10236000A7EDB0E08C918E7F8C9380818F7E8083EF +:1023700010926D0308950F931F93CF93DF930E94E4 +:102380000F120E941712C8EDD0E088818F778883E2 +:1023900088818068888388818F7D888319BC1092AA +:1023A0006E0310926A0310926C0310926B0300EE9E +:1023B00010E0F80180818B7F808388818160888331 +:1023C00042E060E080E00E941711E1EEF0E08081E1 +:1023D0008E7F8083E2EEF0E0808181608083808167 +:1023E00088608083F80180818E7F8083888180610E +:1023F0008883DF91CF911F910F910895E8EDF0E070 +:1024000080818F7E8083E7EDF0E080818160808332 +:1024100084E082BF81E080936D030C94BB11E8EDF2 +:10242000F0E080818E7F80831092E2000895109208 +:10243000DA001092E10008951F920F920FB60F92EA +:1024400011242F933F934F935F936F937F938F93B9 +:102450009F93AF93BF93EF93FF938091E10082FF2F +:102460000BC08091E20082FF07C08091E1008B7F6A +:102470008093E1000E94D90D8091DA0080FF1FC097 +:102480008091D80080FF1BC08091DA008E7F8093FE +:10249000DA008091D90080FF0DC080E189BD82E122 +:1024A00089BD09B400FEFDCF81E080936E030E94D8 +:1024B000C30D05C019BC10926E030E94D10D80910E +:1024C000E10080FF19C08091E20080FF15C080917B +:1024D000E2008E7F8093E2008091E2008061809331 +:1024E000E2008091D80080628093D80019BC85E01A +:1024F00080936E030E94D50D8091E10084FF30C06F +:102500008091E20084FF2CC080E189BD82E189BD19 +:1025100009B400FEFDCF8091D8008F7D8093D80054 +:102520008091E1008F7E8093E1008091E2008F7EB8 +:102530008093E2008091E20081608093E2008091CC +:102540006A03882311F084E007C08091E30087FFCD +:1025500002C083E001C081E080936E030E94D70D2A +:102560008091E10083FF29C08091E20083FF25C0B4 +:102570008091E100877F8093E10082E080936E0389 +:1025800010926A038091E1008E7F8093E100809138 +:10259000E2008E7F8093E2008091E2008061809370 +:1025A000E20042E060E080E00E9417118091F000BC +:1025B00088608093F0000E94D40DFF91EF91BF914D +:1025C000AF919F918F917F916F915F914F913F91CB +:1025D0002F910F900FBE0F901F9018951F920F9282 +:1025E0000FB60F9211242F933F934F935F936F93E6 +:1025F0007F938F939F93AF93BF93CF93EF93FF936B +:102600008091E9008F709091EC0090FF02C090E8FB +:1026100001C090E0C92FC82B1092E9008091F00012 +:10262000877F8093F00078940E9432131092E90023 +:102630008091F00088608093F000CF70C093E90033 +:10264000FF91EF91CF91BF91AF919F918F917F912A +:102650006F915F914F913F912F910F900FBE0F900F +:102660001F9018951F93CF93DF93CDB7DEB7AC972C +:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A +:10268000F100819323E0E737F207C9F70E94250E96 +:102690008091E80083FF37C180916F0390917003B0 +:1026A000953009F488C038F49130B1F170F093306E +:1026B00009F029C131C0983009F4F8C0993009F403 +:1026C00004C1963009F01FC19DC0803821F08238C6 +:1026D00009F019C108C080916B0390916C03992394 +:1026E00089F082600FC080917303909174038F70A2 +:1026F00099278093E9008091EB0085FB882780F97A +:102700001092E9009091E800977F9093E800809301 +:10271000F1001092F100D5C0882319F0823009F041 +:10272000F2C08F7121F0823009F0EDC00BC08091B2 +:102730007103813009F0E7C0933009F080E08093A5 +:102740006C032FC08091710381112BC080917303A2 +:10275000909174038F709927009709F4D4C08093E7 +:10276000E9002091EB0020FF1CC020917003233072 +:1027700021F48091EB00806212C09091EB00906197 +:102780009093EB0021E030E001C0220F8A95EAF738 +:102790002093EA001092EA008091EB008860809319 +:1027A000EB001092E9008091E800877F8093E800B9 +:1027B0000E944E11A8C08111A6C080917103909112 +:1027C00072038F779927182F9091E3009078982BB8 +:1027D0009093E3008091E800877F8093E8000E9457 +:1027E0004E118091E80080FFFCCF8091E30080686B +:1027F0008093E300112311F083E001C082E0809315 +:102800006E0381C08058823008F07DC080917103D2 +:10281000909172038C3D23E0920779F583E08A83DF +:102820008AE289834FB7F894DE01139620E03EE0F8 +:1028300051E2E32FF0E050935700E49120FF03C0F2 +:10284000E295EF703F5FEF708E2F90E0EA3010F06E +:10285000C79601C0C0968D939D932F5F243149F791 +:102860004FBF8091E800877F8093E8006AE270E0C4 +:10287000CE0101960E94581013C0AE01455D5F4F16 +:10288000609173030E943F0F0097E9F12091E800E7 +:10289000277F2093E800BC018BA59CA50E94B71060 +:1028A0008091E8008B778093E8002DC0803859F53F +:1028B0008091E800877F8093E80080916A0380938D +:1028C000F1008091E8008E7771CF81111CC090914A +:1028D00071039230C0F48091E800877F8093E80014 +:1028E00090936A030E944E1180916A03811104C083 +:1028F0008091E30087FF02C084E001C081E0809303 +:102900006E030E94070E8091E80083FF0AC0809149 +:10291000E800877F8093E8008091EB0080628093DD +:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3 +:10293000CF911F910895CF9380916E038823B1F0BA +:102940008091E9008F709091EC0090FF02C090E8B8 +:1029500001C090E0C92FC82B1092E9008091E800D7 +:1029600083FD0E943213CF70C093E900CF91089588 +:10297000881F8827881F089591E0883F08F490E019 +:10298000892F0895982F907F903B99F038F49039D3 +:1029900081F0903A71F09038C9F40BC0903DA1F0ED +:1029A00018F4903C99F410C0903E19F0903F71F4E7 +:1029B00002C083E00895E82FE15FEF3038F4F0E0E3 +:1029C000E356FE4F8081089582E0089580E00895E7 +:1029D0000F932F774F776F70606BDC01ED91FC9157 +:1029E000022F242F462F63E070E009950F91089580 +:1029F0000F932F774F776F706069DC01ED91FC9139 +:102A0000022F242F462F63E070E009950F9108955F +:102A10000F932F774F776F706068DC01ED91FC9119 +:102A2000022F242F462F63E070E009950F9108953F +:102A3000FC01738362830895FC01738F628F089594 +:102A4000FC01758F648F0895CF93DF93EC011DA275 +:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2 +:102A60000E9461171B821A821D821C821F821E8295 +:102A7000198618861B861A861D861C861F861E864A +:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A +:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA +:102AA00019A218A2DF91CF910895CF92DF92FF92E1 +:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00 +:102AC0006A018C0108511F4F08C0F60161916F0126 +:102AD000C80149830E94681749818C2D841B8F157A +:102AE000A0F30F90DF91CF911F910F91FF90DF9096 +:102AF000CF900895FC01718360830895FC0171A358 +:102B000060A30895AF92BF92CF92DF92EF92FF92AF +:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3 +:102B20007C016B01142FB22EA02EDC0195968C91A6 +:102B300095978430F1F45A96ED91FC915B9730971C +:102B400009F4D8C0CB01019763E070E00E94762FB2 +:102B5000DB01AA0FBB1FA60FB71F49832A830B8374 +:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8 +:102B7000B1C06230710509F453C06330710529F0AA +:102B80006130710509F09CC083C0842F807F803A3A +:102B900001F130F48038B9F0803909F0ABC00DC0D4 +:102BA000803EE9F0803F09F1803B09F0A3C0D701E6 +:102BB0001296ED91FC91139723C0D7011496ED91D5 +:102BC000FC9115971DC0D7011696ED91FC911797B2 +:102BD00017C0D7011896ED91FC91199711C0D70134 +:102BE0001A96ED91FC911B970BC0423F09F082C0F1 +:102BF000D7011C96ED91FC911D97309731F47AC066 +:102C0000309709F477C0123F21F42A2D4B2D62EF43 +:102C100004C0612F6F702A2D4B2DC70109955AC032 +:102C2000842F807F803D59F0803F79F0803C09F00F +:102C300061C0D7011E96ED91FC911F9719C0D70175 +:102C40005096ED91FC91519713C0433F31F4D70159 +:102C50005296ED91FC91539708C0413F09F04AC04C +:102C6000D7015496ED91FC915597309741F442C0AD +:102C7000309709F43FC0133F11F0113F19F44B2D69 +:102C8000612F03C0612F6F704B2DC701099522C0C2 +:102C9000842F0E94BC14882331F0D7015696ED9101 +:102CA000FC91579707C0163F29F5D7015896ED912B +:102CB000FC9159973097F1F0612FC70109950AC02F +:102CC00064307105A8F416C00A2D2B2D412FB601D2 +:102CD000C7010995D7015E96ED91FC915F973097FA +:102CE00089F00A2D2B2D412FB601C70109950AC085 +:102CF000C12CD12CD7015C96ED91FC915D9730975A +:102D000019F7E8CF0F900F900F90DF91CF911F919F +:102D10000F91FF90EF90DF90CF90BF90AF9008950C +:102D2000EF92FF920F931F93CF93DF93EC01162F37 +:102D3000862F0E94BC14882369F0FDA081E08DA33A +:102D400000E020E0412F61E070E0CE010E9482159A +:102D5000FDA27CC0812F0E94B8144DA1882309F4E4 +:102D600040C0443029F01AA321E030E03FA32EA355 +:102D7000812F0E94C214813031F070F0823051F006 +:102D8000833059F507C08DA300E020E0412F61E0BA +:102D900070E01EC08DA35AC0103F19F0173FE9F430 +:102DA00004C084E08DA31AA33FC02EA13FA1C90196 +:102DB00063E070E00E94762F8C0F9D1FFC0112A330 +:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116 +:102DD000CE010E9482151DA239C01DA21FA21EA2F3 +:102DE00035C0442399F12EA13FA1C90163E070E0F1 +:102DF0000E94762F7C01FE01E80FF91F12A3B90192 +:102E00006F5F7F4F7FA36EA38130910591F082E0C9 +:102E1000E816F104D9F40CA12BA14AA1CE010E941D +:102E200082158DA1843091F081E090E09FA38EA364 +:102E30000DC0423059F400E02BA14AA1CE010E94FE +:102E400082158DA1843011F0FFA2EEA2DF91CF9107 +:102E50001F910F91FF90EF900895CF92DF92EF9224 +:102E6000FF920F931F93CF93DF93EC01E8A1F9A199 +:102E7000309709F009958E0108511F4FC8010E9433 +:102E80009A17E12CF12CC82ED12C0FC060E0C8019C +:102E90000E94AE17682FCE010E94901661E0C80113 +:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4 +:102EB000DF91CF911F910F91FF90EF90DF90CF9016 +:102EC0000895FC0142837483638311821082089504 +:102ED0000F931F93CF93DF93EC01062F0E94E0170F +:102EE000182F298130E0C90101966A8170E00E94A3 +:102EF0008A2F488150E08417950729F4812F0E947A +:102F0000E31780E012C0EB81FC81E20FF31F008326 +:102F10002981822F90E001966A8170E00E948A2FB9 +:102F20008983812F0E94E31781E0DF91CF911F9168 +:102F30000F910895CF93DF93EC010E94E017298150 +:102F40009881291710F0C22F02C0CA81C20FC91B75 +:102F50000E94E3178C2FDF91CF910895FC0120810F +:102F6000862F90E0820F911D628170E00E948A2F6F +:102F70000380F481E02DE80FF91F808108950F93FD +:102F80001F93CF93DF931F92CDB7DEB78C01698378 +:102F90000E94E017482FF80180816981262F30E0D8 +:102FA000280F311D6281C90170E00E948A2F808341 +:102FB000842F0F90DF91CF911F910F910C94E31705 +:102FC0008FB7F89408958FBF0895FC01CB0120912D +:102FD0006E032430B1F421812F702093E90040E08A +:102FE00050E064E070E00E94BA0F81110BC0909134 +:102FF000E80095FD07C09091E8009E779093E80067 +:10300000089582E0089520916E032430A9F4FC0114 +:1030100081818F708093E9003091F3002091F2005C +:10302000932F80E0822B892B49F08091E8008E77E6 +:103030008093E8000C946F1182E0089580E0089579 +:1030400020916E03243051F4FC0121812F702093D4 +:10305000E9002091E80020FD0C9403180895FC017C +:10306000CB0120916E03243011F080E00895268179 +:103070002F702093E9002091E80022FFF6CF2091E5 +:10308000E80025FFF2CF40E050E064E070E00E94ED +:1030900009108091E80085FD05C08091E8008B77DC +:1030A0008093E80081E0089590930F0280930E02D0 +:1030B000089580910E0290910F020895E0910E0202 +:1030C000F0910F02309721F00190F081E02D0994EA +:1030D00080E00895E0910E02F0910F02309721F008 +:1030E0000280F381E02D09940895E0910E02F091A1 +:1030F0000F02309721F00480F581E02D09940895A6 +:1031000020911002309111028217930771F0909371 +:10311000110280931002E0910E02F0910F0230979D +:1031200021F00680F781E02D099408952091120284 +:10313000309113028217930771F0909313028093DA +:103140001202E0910E02F0910F02309721F00084FC +:10315000F185E02D099408950E94B6240E948D0502 +:103160000E948A250C945F2B0C94CE075F926F927D +:103170007F928F929F92AF92BF92CF92DF92EF9207 +:10318000FF920F931F93CF93DF93CDB7DEB72A97AC +:103190000FB6F894DEBF0FBECDBF0E947E0694E14D +:1031A000C92E92E0D92E00E010E0AA24A394B12CFD +:1031B000502E802F0E94C4073C01F601E190F1904F +:1031C0006F01E826F926E114F10431F40F5F1F4F77 +:1031D0000430110569F73AC08091680281FD0E94B0 +:1031E000CD0720E030E04501022E02C0880C991C7A +:1031F0000A94E2F7C4018E219F21892B09F12E83C5 +:103200005F826820792081E0672809F480E0888760 +:103210000E94BF248160782F9A8789874E815F81C1 +:1032200068858A850E946F19F801EE0FFF1FEC5E1A +:10323000FD4F80819181882599259183808316C0D7 +:103240002F5F3F4F2C30310571F6C0CF8FEF898350 +:103250008A831B820E94BF248160782F9D838C8388 +:1032600049815A816B818D810E946F190E94772854 +:1032700010911C020E945E181817D9F00E945E1867 +:1032800080931C022A960FB6F894DEBF0FBECDBF06 +:10329000DF91CF911F910F91FF90EF90DF90CF9032 +:1032A000BF90AF909F908F907F906F905F900C94A5 +:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB +:1032C000CF911F910F91FF90EF90DF90CF90BF9023 +:1032D000AF909F908F907F906F905F900895CF9365 +:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6 +:1032F000CDBF4F83588769877A878B87DE01119608 +:1033000086E0FD0111928A95E9F785E0FE01379686 +:1033100001900D928A95E1F749815A816B817C81F8 +:103320008D819E810E9447212B960FB6F894DEBFB7 +:103330000FBECDBFDF91CF910895CF93C82F8823C3 +:1033400009F4C1C0823859F40E945E1881FDBBC0E7 +:1033500089E30E94AC230E94282489E30CC08338AF +:1033600079F40E945E1880FDAEC083E50E94AC2314 +:103370000E94282483E50E94CE23CF910C94282418 +:10338000843859F40E945E1882FD9DC087E40E9433 +:10339000AC230E94282487E4EECF8450813A48F47D +:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3 +:1033B000E4CF8C2F805E883050F4C77081E090E0BD +:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51 +:1033D000855A833078F4C53A29F0C63A31F482E848 +:1033E00090E005C081E890E002C083E890E0CF91D2 +:1033F0000C9480188C2F885A833108F064C0C83A26 +:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2 +:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41 +:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE +:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E +:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083 +:1034500082EE90E035C089EE90E032C08AEE90E0D6 +:103460002FC085EB90E02CC086EB90E029C087EB65 +:1034700090E026C08CEC90E023C08DEC90E020C062 +:1034800083E891E01DC08AE891E01AC082E991E0EA +:1034900017C084E991E014C081E292E011C083E298 +:1034A00092E00EC084E292E00BC085E292E008C098 +:1034B00086E292E005C087E292E002C080E090E000 +:1034C000CF910C949618CF910895882309F44DC09C +:1034D000823859F40E945E1881FF47C089E30E9438 +:1034E000AC230E94282489E30CC0833871F40E9425 +:1034F0005E1880FF3AC083E50E94AC230E94282416 +:1035000083E50E94CE230C942824843859F40E9429 +:103510005E1882FF2AC087E40E94AC230E94282400 +:1035200087E4EFCF982F9450913A08F4EACF982F80 +:10353000905E983058F4282F277081E090E001C009 +:10354000880F2A95EAF70E94F523DDCF982F955A28 +:10355000933020F480E090E00C948018885A8331F6 +:1035600020F480E090E00C9496180895882321F0D0 +:103570000E94EF230C9428240895882321F00E94B0 +:10358000F5230C9428240895BF92CF92DF92EF92F6 +:10359000FF920F931F93CF93DF93CDB7DEB727979B +:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9 +:1035B000DE01119601900D928A95E1F7F8013081B4 +:1035C0002181F280558152955F7083819481892B8E +:1035D00039F02F3F41F481E090E03F3F31F003C0EC +:1035E00081E090E002C080E090E080FD73C3398309 +:1035F0002A8389819A815E830E946923B92E8F83F1 +:103600000E9468230E9490222B2D22952F7030E07B +:103610005E816F812530310509F4E6C06CF42430F9 +:1036200031050CF0A2C04B2D407F8B2D8F702230C6 +:1036300031050CF045C017C02C3031054CF42A3050 +:1036400031050CF0E7C12830310509F043C3E5C06E +:103650002D30310509F4BAC20CF4A2C22F30310565 +:1036600009F038C323C3182F411101C002C01295BD +:10367000107FFF2059F0112309F46BC2812F6F8353 +:103680000E94FF230E9428246F8163C2862F0E941C +:10369000651A112309F41EC3812F0E940524279661 +:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153 +:1036B0000F91FF90EF90DF90CF90BF900C94282453 +:1036C000403211F08295807F662319F0613071F5E8 +:1036D00023C0FF20B1F0511101C032C0513081F53B +:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106 +:1036F0001F910F91FF90EF90DF90CF90BF900C94AF +:103700000F24511101C003C0513009F4E3C28E836C +:103710000E9412248E819AC1FF2021F0563008F0B9 +:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3 +:10373000552331F0F801958190FF0BC29F7095835E +:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5 +:103750001F910F91FF90EF90DF90CF90BF900C944E +:10376000B61A552309F472C109C22B2D2695269548 +:10377000237030E02115310529F02130310509F0A1 +:10378000A9C219C0FF2021F0862F9B2D937002C083 +:1037900080E090E027960FB6F894DEBF0FBECDBF55 +:1037A000DF91CF911F910F91FF90EF90DF90CF901D +:1037B000BF900C948018FF2021F0862F9B2D9370D2 +:1037C00002C080E090E027960FB6F894DEBF0FBEEF +:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1037E000CF90BF900C949618862FFF2019F00E945E +:1037F0007D2702C00E94E52727960FB6F894DEBF0A +:103800000FBECDBFDF91CF911F910F91FF90EF9031 +:10381000DF90CF90BF900C946C288B2D837009F0B3 +:1038200079C0F11057C2262F229526952770220FB6 +:10383000220F862F8F70C82ED12CE12CF12C022E56 +:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4 +:1038500010C06FE070E080E090E004C0660F771F5A +:10386000881F991F2A95D2F760957095809590953D +:1038700003C060E070E0CB012B2D269526952370C8 +:10388000422F50E042305105D9F04330510569F1E3 +:103890006C297D298E299F294130510551F12796A8 +:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151 +:1038B0000F91FF90EF90DF90CF90BF900C94A522D6 +:1038C0006C297D298E299F2927960FB6F894DEBF93 +:1038D0000FBECDBFDF91CF911F910F91FF90EF9061 +:1038E000DF90CF90BF900C94B7220E94A522C70111 +:1038F000B60127960FB6F894DEBF0FBECDBFDF919D +:10390000CF911F910F91FF90EF90DF90CF90BF90DC +:103910000C949322FF2019F08B2D817001C08695A5 +:10392000882309F4D7C1262F229526952770220FC8 +:10393000220F862F8F70C82ED12CE12CF12C022E55 +:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3 +:1039500010C06FE070E080E090E004C0660F771F59 +:10396000881F991F2A95D2F760957095809590953C +:1039700003C060E070E0CB012B2D269526952370C7 +:10398000422F50E042305105D9F04330510569F1E2 +:103990006C297D298E299F294130510551F12796A7 +:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150 +:1039B0000F91FF90EF90DF90CF90BF900C94442335 +:1039C0006C297D298E299F2927960FB6F894DEBF92 +:1039D0000FBECDBFDF91CF911F910F91FF90EF9060 +:1039E000DF90CF90BF900C9456230E944423C701D0 +:1039F000B60127960FB6F894DEBF0FBECDBFDF919C +:103A0000CF911F910F91FF90EF90DF90CF90BF90DB +:103A10000C943223603F59F120F4603E08F494C0C6 +:103A200008C0623F09F467C0F0F1633F09F08CC041 +:103A300065C0162F1F708B2D8F71FF2021F00E9403 +:103A4000DD22812F7DCE0E94F822812F27960FB68E +:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4 +:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095 +:103A7000B1F0553008F02EC18B2D8F7127960FB6FF +:103A8000F894DEBF0FBECDBFDF91CF911F910F9194 +:103A9000FF90EF90DF90CF90BF900C94172356309B +:103AA00008F018C1E9CFFF2099F08B2D8F71279670 +:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F +:103AC0000F91FF90EF90DF90CF90BF900C94DD228C +:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A +:103AE000DF91CF911F910F91FF90EF90DF90CF90DA +:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4 +:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9 +:103B1000DF91CF911F910F91FF90EF90DF90CF90A9 +:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E +:103B3000CDBFDF91CF911F910F91FF90EF90DF905C +:103B4000CF90BF900C94C922FF20A9F0552309F40F +:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31 +:103B6000DF91CF911F910F91FF90EF90DF90CF9059 +:103B7000BF900C949D19552309F4AACF862F279640 +:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E +:103B90000F91FF90EF90DF90CF90BF900C94651A3B +:103BA0004B2D4F70C8010E94E50227960FB6F8947E +:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060 +:103BC000EF90DF90CF90BF900C94FD21F11082C058 +:103BD0009B2D9F70492F50E04230510599F144F4DC +:103BE0004115510569F04130510509F073C019C004 +:103BF00043305105C1F14430510509F06BC044C058 +:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0 +:103C10001F910F91FF90EF90DF90CF90BF900C9489 +:103C2000702B27960FB6F894DEBF0FBECDBFDF9185 +:103C3000CF911F910F91FF90EF90DF90CF90BF90A9 +:103C40000C94872B27960FB6F894DEBF0FBECDBF1E +:103C5000DF91CF911F910F91FF90EF90DF90CF9068 +:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F +:103C7000CDBFDF91CF911F910F91FF90EF90DF901B +:103C8000CF90BF900C94B62B862F27960FB6F89442 +:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F +:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C +:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7 +:103CC000CF911F910F91FF90EF90DF90CF90BF9019 +:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A +:103CE000DF91CF911F910F91FF90EF90DF90CF90D8 +:103CF000BF9008950E940C240E94E1230E94282472 +:103D00000E9418290E946C2880E090E00E94801890 +:103D100080E090E00C9496180E94FC230C947A1E8C +:103D20000E946923292F22952F7030E02C30310515 +:103D30004CF42A3031056CF422503109223031051F +:103D400070F407C02C30310531F02F30310539F4D3 +:103D500002C081E0089593FB882780F9089580E0F0 +:103D60000895CF93DF9300D000D01F92CDB7DEB778 +:103D70000F900F900F900F900F90DF91CF910895BB +:103D8000CF93DF9300D000D000D0CDB7DEB726961A +:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F +:103DA0001F93CF93DF93C091530216E012C0D0E06F +:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112 +:103DC000518162817381848195810E94C01E2196F8 +:103DD000C77080915402C813EACFDF91CF911F9131 +:103DE000089540911D0250911E0260911F02709132 +:103DF000200280912102909122020C94C01E0F9308 +:103E00001F93CF93DF938091220282958F7009F0E8 +:103E100069C080911F02882309F464C0A0915302F5 +:103E2000D0915402B0911D02C0911E0280912002D7 +:103E30009091210221E030E0BF3F11F020E030E01E +:103E4000122FBC016095709506E04AC0009721F0E2 +:103E5000CF3F29F4212F05C021E030E002C020E04F +:103E600030E020FD3BC04A2F50E0049FF001059F49 +:103E7000F00D1124ED5DFD4F2181C2132FC0208173 +:103E8000B2132CC02281211129C02381348128172B +:103E9000390718F0281B390B02C0260F371F283CA2 +:103EA0003105E0F4809122028F70806180932202BC +:103EB00086E0849FF001859FF00D1124E85DFD4FA1 +:103EC00080818F70806180838DE192E00E94C41AAE +:103ED000DF91CF911F910F910C94D01EAF5FA7700F +:103EE000AD13B4CFDF91CF911F910F910895EF9251 +:103EF000FF920F931F93CF93DF93CDB7DEB76297F7 +:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F +:103F1000DE011D9601900D928A95E1F7D8014C9132 +:103F200011965C91119712966C9112971396ED90E1 +:103F3000FC90149770911D02E0911E028091200266 +:103F400090912102009739F0EF3F41F421E030E0F9 +:103F50007F3F31F003C021E030E002C020E030E0DC +:103F600020FD5CC120911F02222309F4F1C0E81654 +:103F7000F90628F09701281B390BC90104C0809568 +:103F800090958E0D9F1D883C910508F098C08091FA +:103F90002202982F907F09F064C0E51314C07413B7 +:103FA00012C0611110C08F708061809322020E9444 +:103FB000F11E8DE192E00E94C41A80912202D80184 +:103FC00015968C9343C1EF2839F05F3F41F481E0AF +:103FD00090E04F3F31F003C081E090E002C080E00C +:103FE00090E080FD03C081E0862702C080E090E081 +:103FF00080FF2EC0809153022091540236E013C0FE +:1040000090E0389FF001399FF00D1124ED5DFD4FD8 +:104010007181571306C07081471303C07281671303 +:1040200017C0019687708213EBCF12C19F7059F0B1 +:10403000882309F40BC107C09F7029F0F80195810E +:10404000907F09F403C1805E883008F4FFC0D2C0BD +:10405000662309F4FBC080912202816080932202D2 +:10406000F5C0E51308C0741306C0611104C0D8017F +:1040700015968C939DC04D875E878D859E856A8B36 +:104080000E94901E6A89882309F4B4C0662309F44B +:10409000B1C020912202822F82958F7090E002970A +:1040A0000CF4C6C080911D0290911E0298878F83E8 +:1040B0001986FB86EA862C87CE01079646C080913A +:1040C0002202982F907F59F47E2DF98AE88A8989F7 +:1040D0000E94B11E8DE192E00E94C41A95C0E513C2 +:1040E00011C074130FC061110DC0F8018583C801A0 +:1040F0000E94C41AEDE1F2E086E0DF011D928A958C +:10410000E9F7A2C04D875E878D859E856A8B0E94E8 +:10411000901E6A89882309F46DC0662309F46AC079 +:1041200020912202822F82958F7090E002970CF4EA +:104130007FC080911D0290911E029A8389831B8209 +:10414000FD82EC822E83CE0101960E94C41A70C0BB +:10415000E816F90628F09701281B390BC90104C09D +:10416000809590958E0D9F1D883C910508F046C066 +:10417000662309F43FC0E51330C074132EC02091AC +:10418000220220FD21C0322F32953F70832F90E014 +:104190000097D1F0D80115962C9315970F9741F001 +:1041A000832F8F5F8295807F2F70282B15962C93FD +:1041B000C8010E94C41A86E0F801ADE1B2E00190A6 +:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC +:1041D00001900D928A95E1F737C04D875E878D85F6 +:1041E0009E850E94901E811123C0809122028160D1 +:1041F00080932202C8010E94C41A26C07E2DF98A2B +:10420000E88A89890E94B11EEDE1F2E086E0DF01D3 +:104210001D928A95E9F70E94F11E18C0662351F39A +:104220004D875E878D859E850E94901E882311F3A1 +:1042300086E0F801ADE1B2E001900D928A95E1F7D8 +:104240000E94FF1E0E94F11E81E014C080E012C097 +:104250004D875E878D859E850E946923292F229533 +:104260002F7030E0223031050CF4E0CE24303105DF +:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D +:10428000DF91CF911F910F91FF90EF9008951F93B1 +:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80 +:1042A0000FBECDBF4F83588769877A878B879C87DE +:1042B000CE0107960E94771F8823D9F02F81388579 +:1042C0008A859B85892B39F03F3F19F080E090E08B +:1042D00004C02F3FD9F781E090E0892B09F06DC031 +:1042E0004F81588569857A858B859C850E94C01E83 +:1042F00064C086E0FE013796DE01119601900D92B2 +:104300008A95E1F7FF81E8854A855B85411551056E +:1043100039F0EF3F41F481E090E0FF3F31F003C01E +:1043200081E090E002C080E090E080FD46C02091F6 +:10433000540230E0C90101968770992760915302B9 +:1043400070E08617970709F440C0F983EA835D831C +:104350004C8396E0929FD001939FB00D1124AD5DE8 +:10436000BD4FFE01319601900D929A95E1F7809331 +:1043700054020E94D01E21C0189FC00111248D5DDF +:104380009D4F0E94771F882371F1E09153021E9F79 +:10439000F0011124ED5DFD4F4081518162817381F7 +:1043A000848195810E94C01E8091530290E0019605 +:1043B000877099278093530201C016E080915302C1 +:1043C000909154028913D8CF0EC00E948C1E109277 +:1043D000540210925302EDE1F2E086E0DF011D92FB +:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98 +:1043F000CDBFDF91CF911F910895DF92EF92FF9291 +:104400000F931F93CF93DF93EC01009709F46CC0D7 +:10441000D12CEE24E394F12C8E010F5F1F4FFE018F +:104420008491843748F4843008F04AC0813071F0B8 +:10443000823009F059C01EC0853709F43DC070F1C3 +:10444000982F9458903708F04FC03DC02296F8013D +:104450008491982F905E983050F48770FE2D01C0A3 +:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A +:104470009D192DC02296F8018491982F905E983056 +:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39 +:104490000E9405241CC00E94651A19C02296F801CA +:1044A000049107C08FE99FE00197F1F700C0000079 +:1044B00001500111F7CF0BC02296F801D49007C02C +:1044C0000E949D1903C08F770E94651AE8018D2D07 +:1044D00007C08150EFE9FFE03197F1F700C000001D +:1044E000882309F499CFF5CFDF91CF911F910F91D8 +:1044F000FF90EF90DF9008956093590270935A02F5 +:1045000080935B0290935C020C947A1E6093550238 +:104510007093560280935702909358020C947A1E1F +:1045200008950C947C220F931F93009159021091CF +:104530005A0220915B0230915C02602B712B822B1E +:10454000932B1F910F910C947C220F931F9300913A +:10455000590210915A0220915B0230915C02602353 +:104560007123822393231F910F910C947C220F932C +:104570001F930091590210915A0220915B023091D1 +:104580005C0260277127822793271F910F910C945B +:104590007C2260E070E0CB010C94862241E050E088 +:1045A00060E070E004C0440F551F661F771F8A95B6 +:1045B000D2F7CB01BA010C94862241E050E060E0D2 +:1045C00070E004C0440F551F661F771F8A95D2F70D +:1045D0008091550290915602A0915702B0915802D5 +:1045E000482B592B6A2B7B2BCB01BA010C948622CA +:1045F00041E050E060E070E004C0440F551F661FCA +:10460000771F8A95D2F74095509560957095809167 +:10461000550290915602A0915702B091580248233A +:1046200059236A237B23CB01BA010C94862241E0F3 +:1046300050E060E070E004C0440F551F661F771F14 +:104640008A95D2F78091550290915602A091570217 +:10465000B0915802482759276A277B27CB01BA0116 +:104660000C9486220F931F930091550210915602CD +:104670002091570230915802602B712B822B932B83 +:104680001F910F910C9486220F931F930091550256 +:1046900010915602209157023091580260237123E5 +:1046A000822393231F910F910C9486220F931F93C3 +:1046B00000915502109156022091570230915802F4 +:1046C00060277127822793271F910F910C948622D0 +:1046D0000895CF92DF92EF92FF920F931F93CF93A3 +:1046E000DF93EC01C0905902D0905A02E0905B0237 +:1046F000F0905C028091550290915602A091570271 +:10470000B0915802C82AD92AEA2AFB2A0FE110E000 +:10471000B701A601002E04C0769567955795479579 +:104720000A94D2F740FF08C0BE01802F0E94E00328 +:104730008130910509F007C00150110948F7BE0109 +:1047400080E00E94E003DF91CF911F910F91FF90D5 +:10475000EF90DF90CF90089540911B0150911C0184 +:1047600020E030E09FEFFA01E20FF31F628168174B +:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD +:104780002630310581F707C0FA01E90FF11D97FDC9 +:10479000FA95828308959F3FB9F7089540911B01D0 +:1047A00050911C0120E030E0FA01E20FF31F9281EA +:1047B000981301C012822F5F3F4F26303105A1F7B9 +:1047C000089581E090E0E0911B01F0911C01E80F59 +:1047D000F91F1082019688309105A9F708959091EC +:1047E0005D02982B90935D020895809590915D02F3 +:1047F000982390935D02089510925D020895909120 +:104800005E02982B90935E020895809590915E02CF +:10481000982390935E02089510925E02089580930B +:104820005F02089510925F02089540911B0150911C +:104830001C0120E030E080E0FA01E20FF31F9181DB +:1048400091118F5F2F5F3F4F27303105A9F70895F2 +:10485000E0911B01F0911C0180915D028083E09149 +:104860001B01F0911C01808190915E02892B808355 +:1048700090915F02992361F0E0911B01F0911C017E +:104880008081892B80830E94152481110E9412242B +:1048900080911B0190911C010C946A1880916E0309 +:1048A000843009F11092690220E488E190E00FB6AB +:1048B000F894A895809360000FBE2093600083B7A2 +:1048C000817F846083BF83B7816083BF789488953C +:1048D00083B78E7F83BF88E10FB6F8948093600022 +:1048E000109260000FBE0895CF930E94E3020E94D1 +:1048F0007E060E94E402C0E08C2F0E94C407892B30 +:1049000029F4CF5FC430C1F780E001C081E0CF91CE +:1049100008950E948C1E0C945F2B1F920F920FB66D +:104920000F9211248F939F93AF93BF93809169024D +:10493000811113C080916A0290916B02A0916C0268 +:10494000B0916D024196A11DB11D80936A029093B2 +:104950006B02A0936C02B0936D02BF91AF919F91D7 +:104960008F910F900FBE0F901F90189582E084BD1D +:1049700093E095BD9AEF97BD80936E0008958FB731 +:10498000F89440916A0250916B0260916C027091B0 +:104990006D028FBFCA010895CF92DF92EF92FF920E +:1049A0000F931F932FB7F89440916A0250916B02B6 +:1049B00060916C0270916D022FBF6A017B01EE2441 +:1049C000FF248C0120E030E0C016D106E206F30699 +:1049D00020F09A01281B390B05C09C0120953095C9 +:1049E000240F351FC9011F910F91FF90EF90DF90A9 +:1049F000CF9008951F920F920FB60F9211248F93AC +:104A00009F93AF93BF9380916A0290916B02A091A4 +:104A10006C02B0916D020196A11DB11D80936A02D6 +:104A200090936B02A0936C02B0936D02BF91AF9113 +:104A30009F918F910F900FBE0F901F9018950E941D +:104A4000A111F8942FEF87EA91E621508040904021 +:104A5000E1F700C0000087E090EBDC018093780371 +:104A600090937903A0937A03B0937B032CE088E1C1 +:104A700090E00FB6F894A895809360000FBE209345 +:104A80006000FFCFCF92DF92EF92FF920F931F93C0 +:104A9000CF93DF93C82ED12C01E010E08D2D0E9422 +:104AA000C4077C01C0E0D0E098010C2E02C0220FA8 +:104AB000331F0A94E2F72E213F21232B29F421965C +:104AC000CC30D10589F708C06C2F7D2D80E00E9485 +:104AD000BB03C812F4CF06C0D39484E0D812DECF53 +:104AE00080E001C081E0DF91CF911F910F91FF9095 +:104AF000EF90DF90CF900895CF93C82F8CE20E9463 +:104B00004225882321F08C2FCF910C94422580E000 +:104B1000CF910895CF930E94CD26811102C00E94AB +:104B2000AE26C5E608C00E947E068FE39CE9019789 +:104B3000F1F700C00000C150B1F789E20E947C2566 +:104B400081110AC18AE20E947C2581110E94AE2651 +:104B500085E00E947C2581110E941F250E94D82695 +:104B60008093680287E00E947C25882399F18BE17D +:104B70000E947C25882351F09091680291FB882740 +:104B800080F921E0822780FB91F922C08EE00E940B +:104B90007C25882351F09091680292FB882780F948 +:104BA00021E0822780FB92F913C080E10E947C25DE +:104BB00090916802882341F093FB882780F921E0D7 +:104BC000822780FB93F904C0892F809580FB90F9A0 +:104BD00090936802809168020E94DC260E94EA2677 +:104BE00080937B0280EE0E947C25882341F0809197 +:104BF0007B02982F909590FB80F980937B0289E34C +:104C00000E947C25882359F090917B0291FB882794 +:104C100080F921E0822780FB91F990937B0282EE5C +:104C20000E947C25882359F090917B0292FB882773 +:104C300080F921E0822780FB92F990937B0286EE37 +:104C40000E947C25882359F090917B0293FB882752 +:104C500080F921E0822780FB93F990937B0283EE19 +:104C60000E947C25882359F090917B0294FB882731 +:104C700080F921E0822780FB94F990937B0285E301 +:104C80000E947C25882359F090917B0295FB882710 +:104C900080F921E0822780FB95F990937B0281E3E4 +:104CA0000E947C25882359F090917B0296FB8827EF +:104CB00080F921E0822780FB96F990937B0281E1C5 +:104CC0000E947C25882359F090917B0297FB8827CE +:104CD00080F921E0822780FB97F990937B028091F5 +:104CE0007B020E94EE2687E20E947C25C82F8EE17F +:104CF0000E947C258111C2608FE10E947C25811178 +:104D0000C46080E20E947C258111C86081E20E941B +:104D10007C258111C06182E20E947C258111C062E4 +:104D200083E20E947C258111C06484E20E947C257C +:104D3000882311F0C06802C0CC2329F08C2F0E9478 +:104D4000E5266C2F03C00E94E126682F70E080E00A +:104D500090E0CF910C949122CF9108956DEE7EEF6B +:104D600080E090E00E94BA2F60E082E090E00E9434 +:104D7000AC2F60E083E090E00E94AC2F60E084E024 +:104D800090E00E94AC2F60E085E090E00E94AC2FA4 +:104D900060E086E090E00C94AC2F80E090E00E9410 +:104DA000A62F21E08D3E9E4F09F020E0822F08952E +:104DB00082E090E00C949E2F682F82E090E00C94AB +:104DC000AC2F83E090E00C949E2F682F83E090E05E +:104DD0000C94AC2F84E090E00C949E2F682F84E01C +:104DE00090E00C94AC2F86E090E00C949E2F682FFE +:104DF00086E090E00C94AC2F8091760280FF0BC08F +:104E00006091200185E0689FB00111247595679538 +:104E1000759567952AC081FF09C06091200185E0E2 +:104E2000689FB0011124759567951FC082FF07C068 +:104E30006091200185E0689FB001112416C0409167 +:104E400070024423C9F060911F01461788F7209132 +:104E5000200185E0289F90011124429FC001439FBB +:104E6000900D112470E00E948A2F6038710540F483 +:104E70006115710539F002C065E070E0862F089574 +:104E80008FE7089581E008958091760280FF08C041 +:104E900060911E0170E0759567957595679521C0C5 +:104EA00081FF06C060911E0170E07595679519C07D +:104EB00082FF04C060911E0170E010C080917002FA +:104EC0008823C1F060911D018617A0F790911E0103 +:104ED000989FC001112470E00E948A2F60387105EC +:104EE00028F46115710521F0862F08958FE7089544 +:104EF00081E0089561E070E0F4CF803F21F40E94EA +:104F0000FC26819504C0813F29F40E94FC268093F1 +:104F100073020895823F21F40E94FC26819504C00B +:104F2000833F29F40E94FC26809372020895893FF2 +:104F300019F40E94442705C08A3F31F40E94442797 +:104F400081958093740208958B3F21F40E94442739 +:104F5000819504C08C3F29F40E94442780937502F8 +:104F60000895843F21F480917102816017C0853FCC +:104F700021F480917102826011C0863F21F48091FA +:104F8000710284600BC0873F21F4809171028860B8 +:104F900005C0883F31F48091710280618093710275 +:104FA00008958D3F21F48091760281600BC08E3F81 +:104FB00021F480917602826005C08F3F29F48091B0 +:104FC00076028460809376020895803F29F4809170 +:104FD000730287FF6EC007C0813F41F48091730266 +:104FE00018160CF066C01092730263C090917202A2 +:104FF000823F19F497FF5DC005C0833F31F4191655 +:105000000CF057C01092720254C0893F31F4809165 +:10501000740218160CF04DC006C08A3F39F4809116 +:10502000740287FF46C01092740243C08B3F29F47C +:105030008091750287FF3DC006C08C3F39F4809196 +:1050400075021816B4F51092750233C0843F21F42E +:10505000809171028E7F05C0853F31F4809171028D +:105060008D7F8093710225C0863F21F4809171026B +:105070008B7FF7CF873F21F480917102877FF1CF3B +:10508000883F21F4809171028F7EEBCF8D3F21F418 +:10509000809176028E7F0BC08E3F21F48091760244 +:1050A0008D7F05C08F3F29F4809176028B7F80939E +:1050B00076028091720281110EC08091730281117B +:1050C0000AC080917402811106C08091750281111D +:1050D00002C010927002089581E792E00E94751854 +:1050E0000E94BF2490936F0280936E020895CF9325 +:1050F00080916E0290916F020E94CC2440917002C8 +:10510000442321F02091210130E006C020912201AA +:105110005AE0259F900111248217930708F486C056 +:105120008091720281110DC090917302911109C09A +:1051300090917402911105C090917502992309F420 +:1051400075C04F3F19F04F5F40937002181624F45A +:105150000E94FC26809372028091720287FF05C034 +:105160000E94FC268195809372028091730218162A +:1051700024F40E94FC26809373028091730287FFBF +:1051800005C00E94FC268195809373026091720293 +:10519000662339F1C0917302CC2319F1772767FD9B +:1051A0007095872F972F0E94FA2C23E333E343E374 +:1051B0005FE30E94AE2D0E94C72C609372026C2F99 +:1051C000772767FD7095872F972F0E94FA2C23E38E +:1051D00033E343E35FE30E94AE2D0E94C72C60934C +:1051E000730280917402181624F40E94442780935D +:1051F00074028091740287FF05C00E944427819544 +:105200008093740280917502181624F40E9444273A +:10521000809375028091750287FF05C00E94442724 +:10522000819580937502CF910C946C28CF9108954D +:10523000E1E7F2E085E0DF011D928A95E9F710923F +:105240007002109276020895833089F130F4813033 +:1052500061F0823009F06EC019C0853009F449C090 +:10526000B8F1863009F066C055C020912201862F22 +:1052700090E0820F911D8F3F910520F4620F6093A3 +:10528000220108958FEF809322010895209121013A +:10529000862F90E0820F911D8F3F910520F4620FC1 +:1052A0006093210108958FEF80932101089520914B +:1052B0002001862F90E0820F911D8F3F910520F4F1 +:1052C000620F6093200108958FEF8093200108956D +:1052D00020911F01862F90E0820F911D8F3F910535 +:1052E00020F4620F60931F0108958FEF80931F01D8 +:1052F000089520911E01862F90E0820F911D8F3F0F +:10530000910520F4620F60931E0108958FEF809342 +:105310001E01089520911D01862F90E0820F911D9E +:105320008F3F910520F4620F60931D0108958FEF68 +:1053300080931D010895833021F130F4813059F0BC +:10534000823009F049C012C0853089F128F18630D9 +:1053500009F042C037C080912201681720F4861BF3 +:1053600080932201089510922201089580912101D5 +:10537000681720F4861B8093210108951092210163 +:10538000089580912001681720F4861B80932001E6 +:10539000089510922001089580911F01681720F44C +:1053A000861B80931F01089510921F01089580911C +:1053B0001E01681720F4861B80931E010895109229 +:1053C0001E01089580911D01681720F4861B8093AB +:1053D0001D01089510921D01089541E050E060E024 +:1053E00070E004C0440F551F661F771F8A95D2F7DF +:1053F000CB01BA010E9491220C948C1E873208F5D1 +:105400008E3108F0B9C08E3009F47EC060F4873068 +:1054100009F465C018F4863059F549C0883051F157 +:105420008B3031F5AEC0883130F4863108F0A9C038 +:105430008031F1F473C0893109F4A3C08B31C1F418 +:1054400059C08933F1F068F4893209F493C018F433 +:10545000873271F48FC0853309F48CC0883341F4EE +:1054600090C0863409F46BC008F488C0883449F1D0 +:1054700080E008950E94D8260E94EA260E94F32622 +:1054800080C00E945918892B59F00E945918909396 +:105490007902809378020E948C1E80E090E004C024 +:1054A00080917802909179020E9454186AC080918C +:1054B0006802817F8E7F8093680281E0809377020B +:1054C00008950E948C1E2FEF83ED90E321508040C1 +:1054D0009040E1F700C000000E941F2552C080915B +:1054E000680280FF03C0817F8E7F01C0816080934E +:1054F000680247C09091680291FB882780F921E0FB +:10550000822780FB91F913C09091680292FB882753 +:1055100080F921E0822780FB92F909C0909168020E +:1055200093FB882780F921E0822780FB93F99093F1 +:105530006802882331F191609093680222C081E86B +:1055400090E00E9480182FEF81EE94E0215080407F +:105550009040E1F700C0000080E090E00E948018D9 +:105560002FEF89E698E1215080409040E1F700C09C +:10557000000007C080E003C08D5101C089530E9424 +:10558000ED2981E0089580E0089580E00895CF93AB +:10559000C82F80917702813071F020F0823009F0BD +:1055A00083C037C0A0911B01B0911C018C91823245 +:1055B00009F07CC007C0A0911B01B0911C018C9127 +:1055C000823249F48C2F0E94C32A81111EC08C2F75 +:1055D0000E94FE291CC08C2F0E94C52A811115C073 +:1055E000C43169F030F4CB3081F0C03109F062C0D1 +:1055F00009C0C93221F0C83309F05CC006C010925E +:10560000770258C082E08093770281E090E0817059 +:1056100054C0C932C1F060F4C431A9F020F4C730DD +:1056200009F046C02EC0CE51CA3008F041C011C0AA +:10563000CE3409F118F4CB34D9F517C0C13599F03F +:10564000C235B1F50EC010927A0281E080937702E4 +:1056500034C0EC2FF0E0E455FE4F808180937A0255 +:1056600027C061E003C061E007C06AE080917A0270 +:105670000E9424291DC06AE080917A020E949B2921 +:1056800017C08EE18093220182E3809321018AE09A +:105690008093200184E180931F0188E080931E01A4 +:1056A00088E280931D0104C01092770280E005C05B +:1056B00081E003C080E090E0AACFCF9108950E94DE +:1056C000CD26811102C00E94AE260E94F32680934F +:1056D000770380FF02C0869501C080E00C94DF074D +:1056E00080917703982F9695292F30E0233031054C +:1056F0004CF49F5F990F8170892B816080937703B1 +:105700000E94F7268091770386950C94DF0780919D +:105710007703982F969591F09158990F8170892B66 +:10572000809377038E7F91E009F490E08091770376 +:1057300090FB80F9809377030E94F726809177038E +:1057400086950C94DF0780917703982F909590FBB6 +:1057500080F9809377030E94F7268091770380FF7A +:1057600002C0869501C080E00C94DF07309177037A +:10577000232F26952F5F2F77822F90E0317004978B +:105780002CF4220F232B2093770302C0309377034E +:1057900080917703282F2E7F91E009F490E090FB11 +:1057A00080F9809377030E94F7268091770386958E +:1057B0000C94DF0720917703922F96959827990FE5 +:1057C000822F8170892B809377038E7F91E009F47B +:1057D00090E08091770390FB80F9809377030E949B +:1057E000F7268091770386950C94DF075058BB27E6 +:1057F000AA270ED075C166D130F06BD120F031F4FC +:105800009F3F11F41EF45BC10EF4E095E7FB51C11C +:10581000E92F77D180F3BA176207730784079507DA +:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F +:10583000A02D0B01B90190010C01CA01A001112496 +:10584000FF27591B99F0593F50F4503E68F11A1642 +:10585000F040A22F232F342F4427585FF3CF4695D3 +:1058600037952795A795F0405395C9F77EF41F16F5 +:10587000BA0B620B730B840BBAF09150A1F0FF0FBF +:10588000BB1F661F771F881FC2F70EC0BA0F621FAB +:10589000731F841F48F4879577956795B795F7959B +:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D +:1058B000979587950895D9D008F481E008950CD084 +:1058C0000FC107D140F0FED030F021F45F3F19F056 +:1058D000F0C0511139C1F3C014D198F39923C9F321 +:1058E0005523B1F3951B550BBB27AA2762177307E6 +:1058F000840738F09F5F5F4F220F331F441FAA1F9A +:10590000A9F333D00E2E3AF0E0E830D09150504059 +:10591000E695001CCAF729D0FE2F27D0660F771F07 +:10592000881FBB1F261737074807AB07B0E809F0E9 +:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E +:10594000510568F0B6C000C15F3FECF3983EDCF350 +:10595000869577956795B795F7959F5FC9F7880FF7 +:10596000911D9695879597F90895E1E0660F771F49 +:10597000881FBB1F621773078407BA0720F0621BDA +:10598000730B840BBA0BEE1F88F7E095089504D0D3 +:105990006894B111D9C00895BCD088F09F5790F099 +:1059A000B92F9927B751A0F0D1F0660F771F881F44 +:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F +:1059C000B1E00895C0C0672F782F8827B85F39F0FD +:1059D000B93FCCF3869577956795B395D9F73EF4A3 +:1059E00090958095709561957F4F8F4F9F4F08954B +:1059F000E89409C097FB3EF4909580957095619569 +:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E +:105A10009395F695879577956795B795F111F8CF9A +:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 +:105A30009F4F16C0882311F096E911C0772321F0FB +:105A40009EE8872F762F05C0662371F096E8862F93 +:105A500070E060E02AF09A95660F771F881FDAF7EA +:105A6000880F9695879597F90895990F0008550F17 +:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4 +:105A800012161306E407F50798F0621B730B840BDC +:105A9000950B39F40A2661F0232B242B252B21F4B6 +:105AA00008950A2609F4A140A6958FEF811D811D56 +:105AB000089597F99F6780E870E060E008959FEF90 +:105AC00080EC089500240A94161617061806090695 +:105AD000089500240A941216130614060506089564 +:105AE000092E0394000C11F4882352F0BB0F40F4EC +:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C +:105B0000089557FD9058440F551F59F05F3F71F0AD +:105B10004795880F97FB991F61F09F3F79F0879514 +:105B20000895121613061406551FF2CF4695F1DF9D +:105B300008C0161617061806991FF1CF869571052D +:105B4000610508940895E894BB2766277727CB0161 +:105B500097F908958ADF08F48FEF08950BD0C0CF2E +:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58 +:105B70001124EACFC6DFA0F3959FD1F3950F50E033 +:105B8000551F629FF001729FBB27F00DB11D639FEF +:105B9000AA27F00DB11DAA1F649F6627B00DA11D95 +:105BA000661F829F2227B00DA11D621F739FB00D3B +:105BB000A11D621F839FA00D611D221F749F3327AB +:105BC000A00D611D231F849F600D211D822F762F44 +:105BD0006A2F11249F5750408AF0E1F088234AF041 +:105BE000EE0FFF1FBB1F661F771F881F915050408D +:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355 +:105C0000983EDCF3869577956795B795F795E79578 +:105C10009F5FC1F7FE2B880F911D9695879597F989 +:105C20000895FA01EE0FFF1F30962105310599F115 +:105C30006115710561F48038BFE39B0749F16894F1 +:105C40009038810561F08038BFEF9B0741F09923C0 +:105C500042F5FF3FE1053105210511F1E894089473 +:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313 +:105C700010C0FF5F70F4A695E0F7F73950F019F007 +:105C8000FF3A38F49F779F930CD00F9007FC905801 +:105C900008953EF014CF60E070E080E89FE308953F +:105CA0004FE79F775F934F933F932F939ED02F9112 +:105CB0003F914F915F9152DF05C019F40EF0F9CE7C +:105CC00042CFFDCE26DFC8F39638C0F707F80F9213 +:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E +:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D +:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6 +:105D0000FE57E0684427EE0F441FFA95E1F74195EE +:105D1000550B32D00F9007FE26C00895DF93CF9326 +:105D20001F930F93FF92EF92DF927B018C01689497 +:105D300005C0DA2EEF011EDFFE01E894A591259142 +:105D4000359145915591AEF3EF0162DDFE0197016A +:105D5000A801DA9479F7DF90EF90FF900F911F91EF +:105D6000CF91DF9108959B01AC0160E070E080E885 +:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A +:105D8000940F511DBBF39150504094F059F088236B +:105D900032F0660F771F881F91505040C1F79E3F29 +:105DA000510544F7880F911D9695879597F90895A9 +:105DB0005F3FACF0983E9CF0BB2786957795679542 +:105DC000B79508F4B1609395C1F7BB0F58F711F47C +:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11 +:105DE0000EF076C06CCE689464CE93DEC8F399232F +:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75 +:105E0000DD2788232AF02197660F771F881FDAF78E +:105E100020E030E040E85FEB9FE3883920F0803EEF +:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7 +:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757 +:105E400071097595771F880B990BD4DD28E132E72E +:105E500041E35FE38FDEAF2D9801AE01FF900F911C +:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68 +:105E7000BB1F9B01AC01BF5728F4222733274427BF +:105E800050781FC0B75188F4AB2F00244695379542 +:105E90002795011CA395D2F3002069F0220F331F30 +:105EA000441FB395DAF30DD0A1CC61307105A0E8A1 +:105EB0008A07B94630F49B01AC016627772788270B +:105EC0009078309621F02083318342835383089564 +:105ED0009F3F31F0915020F4879577956795B7955E +:105EE000880F911D9695879597F90895AA1BBB1B5E +:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA +:105F0000B70B881F991F5A95A9F780959095BC01EA +:105F1000CD01089597FB072E16F4009407D077FD66 +:105F200009D00E94762F07FC05D03EF4909581950C +:105F30009F4F0895709561957F4F0895F999FECF11 +:105F400092BD81BDF89A992780B50895A8E1B0E087 +:105F500042E050E00C94C12F262FF999FECF1FBAD2 +:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82 +:105F7000019608950E94AC2F272F0C94AD2FDC01C1 +:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44 +:105F9000319600B40D9241505040B8F70895F894EE +:025FA000FFCF31 +:105FA2000507000C058540000001064000000100C5 +:105FB200D80B680C440C0F0CDB0B01600228081490 +:105FC2000A321E40004500250026006100600020C4 +:105FD2000037006400650066006700440046002444 +:105FE2000047000000020004000500070009000B42 +:105FF200000C000E0010001100130015001700180D +:10600200001A001C001D001F00210023002400268E +:1060120000280029002B002D002F00300032003410 +:10602200003500370039003B008803A103BA03D3CF +:1060320003FB04AE04780458043F4D3620020302E9 +:10604200000001000101010101000101010203043C +:0660520005060708090025 +:00000001FF diff --git a/keyboard/planck/planck_pcb_r4.hex b/keyboard/planck/planck_pcb_r4.hex new file mode 100644 index 000000000..889af7f22 --- /dev/null +++ b/keyboard/planck/planck_pcb_r4.hex @@ -0,0 +1,1628 @@ +:100000000C94FE040C9442050C9442050C94420599 +:100010000C9442050C9442050C9442050C94420544 +:100020000C9442050C9442050C94A6180C94781973 +:100030000C94DB270C9442050C9442050C94420569 +:100040000C9442050C9442050C9442050C94420514 +:100050000C9442050C9443280C9442050C944205E0 +:100060000C9442050C9442050C9442050C944205F4 +:100070000C9442050C9442050C9442050C944205E4 +:100080000C94D10E0C9442050C9442050C9442053C +:100090000C9442050C9442050C9442050C944205C4 +:1000A0000C9442050C9442050C9442059D05AD0547 +:1000B000BF05CF05D505E405F005F60504060D06D8 +:1000C0001E062E06340664069013901390139013A8 +:1000D000901390139013901390139013A713A713DA +:1000E000A713A713A713A713A713A713A713A71340 +:1000F00090139013901390139013A713A713A713A3 +:10010000A713A713901390139013A713A713A71364 +:10011000E519071AF51A071AF51A4C1A6F1AF51A83 +:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C +:1001300027212721C81E2721C91FC91F8C20A320C2 +:100140002721122107634236B79BD8A71A39685670 +:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 +:10016000753EF6177231BF000000803F08000000A6 +:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C +:1001800000000080BEABAAAAAA3E00000000BF008B +:100190000000803F0000000000084178D3BB438787 +:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B +:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 +:1001C0003F00000000002B0014001A00080015007A +:1001D00017001C0018000C00120013002A00290050 +:1001E00004001600070009000A000B000D000E00B5 +:1001F0000F0033003400E1001D001B000600190051 +:1002000005001100100036003700380028000530C6 +:10021000E000E200E30003302C002C00043050002A +:10022000510052004F002B0014001A000900130067 +:100230000A000D000F0018001C0033002A002900DE +:10024000040015001600170007000B00110008003D +:100250000C0012003400E1001D001B000600190014 +:1002600005000E0010003600370038002800053069 +:10027000E000E200E30003302C002C0004305000CA +:10028000510052004F002B0034003600370013009D +:100290001C0009000A00060015000F002A002900B2 +:1002A00004001200080018000C0007000B001700E3 +:1002B000110016003800E100330014000D000E009C +:1002C0001B00050010001A0019001D002800053051 +:1002D000E000E200E30003302C002C00043050006A +:1002E000510052004F0035021E021F02200221025F +:1002F0002202230224022502260227022A004C00A1 +:100300003A003B003C003D003E003F002D022E0223 +:100310002F02300231020100400041004200430040 +:10032000440045000100010001000100010001003E +:100330000100010001000100010001000100AB000B +:10034000AA00A900AE0035001E001F0020002100F9 +:100350002200230024002500260027002A004C004C +:100360003A003B003C003D003E003F002D002E00C7 +:100370002F003000310001004000410042004300E6 +:1003800044004500010001000100010001000100DE +:100390000100010001000100010001000100AB00AB +:1003A000AA00A900AE00000000000000000000004C +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F0000000000000000330000000000430000096 +:100400000000000000001E001E001E001E001E0056 +:100410001E001E001E001E001E001E001E0000000A +:1004200014001A000800150017001C0018000C002A +:10043000120013002F00000004001600070009003E +:100440000A000B000D000E000F00330034000D30C9 +:10045000000000000600190000000000110010005C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C00000000000000001000050010001000100D5 +:1007D0000100010001000100010001004C000100C6 +:1007E0000100010007300630135012500030013074 +:1007F00002300C30010001000B300A3009300830A3 +:1008000001000100010001000100010001000100E0 +:1008100001000100010001000100010001000100D0 +:100820000100010001002803540068006500200059 +:1008300050006C0061006E0063006B0020004B00F4 +:100840006500790062006F006100720064000000C2 +:100850002C034F007200740068006F006C00690088 +:100860006E0065006100720020004B006500790099 +:1008700062006F00610072006400730000000403F6 +:10088000090409026D00040100A0FA090400000136 +:1008900003010100092111010001223F0007058128 +:1008A0000308000A090401000103010200092111E3 +:1008B000010001224D000705820308000A09040215 +:1008C0000001030000000921110100012236000788 +:1008D00005830308000A090403000103000000095E +:1008E00021110100012239000705840310000112C3 +:1008F00001100100000008EDFE606001000102002F +:100900000105010906A101050719E029E7150025E0 +:1009100001950875018102050819012905950575DC +:1009200001910295017503910105071900297715B9 +:10093000002501957875018102C005010980A1019A +:10094000850216010026B7001A01002AB7007510AB +:1009500095018100C0050C0901A101850316010064 +:10096000269C021A01002A9C02751095018100C084 +:1009700005010902A1010901A100050919012905C3 +:100980001500250195057501810295017503810109 +:100990000501093009311581257F95027508810609 +:1009A00009381581257F950175088106050C0A38DF +:1009B000021581257F950175088106C0C0050109D2 +:1009C00006A101050719E029E7150025019508751D +:1009D0000181029501750881010508190129059514 +:1009E000057501910295017503910105071900290B +:1009F000FF150025FF950675088100C011241FBE54 +:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 +:100A1000190490911A04A0911B04B0911C04873012 +:100A2000904BA740B04BB9F41092190410921A04DD +:100A300010921B0410921C0414BE84B7877F84BFDD +:100A400088E10FB6F89480936000109260000FBEAA +:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 +:100A600002C005900D92A431B107D9F714E0A4E1BA +:100A7000B3E001C01D92A931B107E1F70E94EC1566 +:100A80000C94C0310C940000279A2F988FEF9FEFA1 +:100A900090938700809386008AE08093800089E1AC +:100AA000809381000C94452D282F81110BC08091DB +:100AB0008000877F8093800010928D0010928C00C0 +:100AC0002F9808952F9880918000886080938000EF +:100AD000233019F48FEF9FEF0FC083E090E0821B6B +:100AE0009109880F991F2FEF3FEFA90102C056957A +:100AF00047958A95E2F7CA0190938D0080938C0008 +:100B00000895CF93DF93EC010E94DC28BE0180E0C2 +:100B100090E0DF91CF910C9407250F931F93462F00 +:100B200050E04E30510508F0DEC0DC01FA01EA5A0F +:100B3000FF4F12968C910C948431882309F4D3C012 +:100B400000E010E0980140E064E070E08BE292E0A9 +:100B50000E944F1281E090E00FC0882309F4C3C0C7 +:100B600000E010E0980140E066E070E08BEB91E07F +:100B70000E944F1282E090E00E948105B4C0882359 +:100B800009F4B1C000E010E0980140E068E070E0D6 +:100B90008BEE91E00E944F1284E090E0EDCF88232D +:100BA00011F083E005C083E00CC0882349F084E0A5 +:100BB0000E94842540E164E083E00E94910A93C092 +:100BC00084E00E94A525F6CF882331F085EE0E94AF +:100BD0006E1C0E949C2D87C085EE0E94361D83C02E +:100BE000882309F480C00E94E30D7DC0882309F4A6 +:100BF0007AC00E94DC0D00E010E0980140E065E062 +:100C000070E08BE492E027C0882309F46CC085E093 +:100C10000E94A5250E94040E66C0882309F463C0C3 +:100C200000E010E0980140E068E070E08BE191E0C6 +:100C30000E944F1285E00E94842555C0882309F444 +:100C400052C00E94E21200E010E0980140E068E02B +:100C500070E08BE191E00E944F1245C0882309F4B7 +:100C600042C00E94ED12EFCF8823E9F100E010E0CE +:100C7000980140E066E070E08BE891E00E944F123E +:100C800084E00E94A52583E00E94A52580E10E94C2 +:100C9000A52585E00E94A5250E94040E86E00E94FD +:100CA00084250E94C928811102C00E94A5280E94A3 +:100CB000E12890E090931804809317048068809353 +:100CC00017040E94E5280FC0882369F000E010E0B7 +:100CD000980140E066E070E08BE591E00E944F12E1 +:100CE00086E00E94A52580E090E01F910F91089575 +:100CF0000F931F932FEF89EF90E021508040904099 +:100D0000E1F700C0000000E010E0980140E065E07D +:100D100070E08BE492E00E944F121F910F910895B2 +:100D20000F931F9300E010E0980140E063E070E053 +:100D300083E091E00E944F122FEF82E597E021506F +:100D400080409040E1F700C000001F910F9108958E +:100D5000CF92DF92EF92FF920F931F93CF93DF9387 +:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 +:100D7000CDBF2091D10325FFC5C08C01FC0192811C +:100D800080910201992309F460C096E4E0E9F2E061 +:100D9000DE01A95BBF4F01900D929A95E1F7F80132 +:100DA0009081E0910001F0910101E90FF11DEE0F3A +:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F +:100DC0007181680F711D882777FD8095982F0E948B +:100DD000E02E20E030E040E451E40E94452E6B011B +:100DE0007C01F801218184E090E0821B9109BC0123 +:100DF000882777FD8095982F0E94E02E9B01AC01FB +:100E0000C701B6010E94DD2D9B01AC0160E070E0DE +:100E100080E090E40E94F72F20E030E04CE551E4C0 +:100E20000E94942F4FE050E0C457DF4F0FB6F89464 +:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D +:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 +:100E5000DE01119601900D929A95E1F7F8019081CB +:100E6000E0910001F0910101E90FF11DEE0FFF1F6C +:100E700021E030E02C0F3D1FE20FF31F60817181F4 +:100E8000680F711D882777FD8095982F0E94E02EAE +:100E900020E030E040E451E40E94452E6B017C01EB +:100EA000F801218184E090E0821B9109BC01882730 +:100EB00077FD8095982F0E94E02E9B01AC01C70121 +:100EC000B6010E94DD2D9B01AC0160E070E080E086 +:100ED00090E40E94F72F20E030E04CE551E40E94BE +:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF +:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 +:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 +:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 +:100F2000CF90089508950E9444056E9A769A0C9485 +:100F300078060C9492070C94A8060895880F991FC0 +:100F4000FC01EA5BFF4F859194910895880F991FEA +:100F5000FC01EA53FE4F8591949108950F931F93DE +:100F6000CF93DF93EC01811520E49207A0F5C11522 +:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 +:100F8000D10508F0EEC1C83AD10578F4C53AD105CB +:100F900008F074C0C130D10509F46DC008F4DEC199 +:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F +:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD +:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 +:100FD0008E01106506C2C13080E5D80709F4BDC096 +:100FE00068F5C13120E4D20709F4AEC050F4C03135 +:100FF00090E4D90708F0A5C0CF70DD278E01146DED +:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 +:10101000C115D04509F0A2C10E944B210E94040EC7 +:101020000E9490069FEF24E38CE091502040804086 +:10103000E1F700C000000E946828D3C1C11520E676 +:10104000D20730F4C11581E5D80708F48CC02DC152 +:10105000C11590E7D90708F481C1C11520E8D2076E +:1010600008F478C1C11580E9D80708F077C1DF70AE +:101070008E01106AB6C101E010E0B3C1C53AD105D6 +:1010800009F471C1C63AD10509F070C102E810E453 +:10109000A8C1C83AD10509F46CC1C93AD10509F40F +:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A +:1010B00069C1CC3AD10509F468C1CD3AD10509F42A +:1010C00067C1C03BD10509F466C1CE3AD10509F428 +:1010D00065C1CF3AD10509F464C1C13BD10509F41A +:1010E00063C1C23BD10509F462C1C33BD10509F418 +:1010F00061C1C43BD10509F460C1C53BD10509F408 +:101100005FC1C63BD10509F45EC1C73BD10509F4F7 +:101110005DC1C83BD10509F45CC1C93BD10509F4E7 +:101120005BC1CA3BD10509F45AC100E014E459C1BE +:10113000CE019F700E94A60755C1DD278E01106C5D +:1011400050C100E011ED4DC100E010ED4AC100E0DA +:1011500012ED47C100E013ED44C18091ED038160C1 +:101160008093ED033EC10E94C928811102C00E94F4 +:10117000A5280E94E12890E090931804809317041A +:10118000C23090E5D90721F480911704816086C0B0 +:10119000C43020E5D20721F48091170482607EC01C +:1011A000C63080E5D80721F480911704846076C0AA +:1011B000C83090E5D90719F48091170427C0CA30C8 +:1011C00020E5D20721F480911704806167C0CC30FC +:1011D00080E5D80721F48091170480625FC0CE308B +:1011E00090E5D90721F480911704806457C0C0317D +:1011F00020E5D20721F48091170480684FC0C231E6 +:1012000080E5D80729F4809117048460886046C07F +:10121000C33090E5D90721F4809117048E7F3EC03A +:10122000C53020E5D20721F4809117048D7F36C0A8 +:10123000C73080E5D80721F4809117048B7F2EC03A +:10124000C93090E5D90719F48091170426C0CB3036 +:1012500020E5D20721F4809117048F7E1FC0CD3086 +:1012600080E5D80721F4809117048F7D17C0CF3017 +:1012700090E5D90721F4809117048F7B0FC0C1310D +:1012800020E5D20721F4809117048F7707C0C3317E +:10129000D04531F4809117048B7F877F80931704AA +:1012A000809117040E94E5289CC08D2F99278F708C +:1012B000992781309105D9F49E012370332702C00C +:1012C000880F991F2A95E2F79C688E0144E0000F71 +:1012D000111F4A95E1F700271370802B912B53E0E3 +:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 +:1012F000910531F4DC2FCC278E01016F106A71C08B +:101300008330910569F4CE018370992701E010E0E4 +:1013100002C0000F111F8A95E2F7C8019C680FC038 +:10132000049709F05EC0CE018370992701E010E0B8 +:1013300002C0000F111F8A95E2F7C8019A6823E0E6 +:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 +:101350001D2B47C0DF708E01106243C000E010E01B +:1013600040C08E013EC001E810E43BC003E810E439 +:1013700038C002EE14E435C009EE14E432C00AEEBF +:1013800014E42FC005EB14E42CC006EB14E429C0D0 +:1013900007EB14E426C00CEC14E423C00DEC14E4B9 +:1013A00020C003E815E41DC00AE815E41AC002E9EC +:1013B00015E417C004E915E414C001E216E411C0F5 +:1013C00003E216E40EC004E216E40BC005E216E4E4 +:1013D00008C006E216E405C007E216E402C00AE20D +:1013E00016E4C801DF91CF911F910F9108959CE001 +:1013F000799FF001112490E3899FE00DF11D1124E4 +:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 +:10141000803E9105E0F4803C910558F581339105BB +:1014200009F46FC048F48932910509F463C08A3227 +:10143000910509F46DC072C089339105E9F08238D5 +:101440009105D1F08533910509F44DC067C0833E05 +:10145000910581F138F4803E9105B9F0823E910505 +:10146000D9F05CC0863E910561F1873E9105A1F1FE +:1014700055C00E949E0708952091170420FD02C0C8 +:1014800021FF4CC080EE90E049C08091170480FF9E +:10149000F9CF89E390E042C08091170482FF0EC02B +:1014A0008091170484FF03C080E090E037C083EE92 +:1014B00090E034C08091170482FFF2CF82EE90E07A +:1014C0002DC08091170483FF0BC08091170484FD09 +:1014D000EBCF87EE90E022C08091170483FFF5CF19 +:1014E00086EE90E01BC08091170485FF07C089E25B +:1014F00090E014C08091170485FFF9CF85E390E058 +:101500000DC08091170486FF07C08AE290E006C0F4 +:101510008091170486FFF9CF81E390E00E94AE0727 +:101520000895CF92DF92EF92FF920F931F9301E005 +:1015300010E020E030E06801790104C0CC0CDD1C33 +:10154000EE1CFF1C8A95D2F704C0000F111F221F4A +:10155000331F6A95D2F70C291D292E293F29C090E7 +:10156000D103D090D203E090D303F090D403C022F3 +:10157000D122E222F322842FC016D106E206F3061E +:1015800041F41F910F91FF90EF90DF90CF900C945A +:1015900084251F910F91FF90EF90DF90CF900C94D6 +:1015A000A52508950C94D10A5F926F927F928F9235 +:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 +:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C +:1015D000DEBF0FBECDBFCE0101966C014E0199E07A +:1015E000890E911C20E030E040E050E060E070E0C7 +:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 +:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA +:1016100001900D928A95E1F7F601819191916F0108 +:10162000FC01E07FFF27E032F10559F48F70992724 +:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E +:1016400037C0E033F10559F48F709927F50102C0D6 +:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 +:10166000F10559F48F709927F50102C0EE0FFF1FA5 +:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC +:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 +:101690004E2B5F2B0DC0E036F10551F48F7099276A +:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC +:1016B000C814D90409F0A7CF84B19E2D9095892331 +:1016C00084B985B1E82AE5B887B1902F9095892330 +:1016D00087B988B1082B08B98AB1962F90958923CC +:1016E0008AB98BB1682B6BB98DB1942F90958923F2 +:1016F0008DB98EB1482B4EB980B3922F9095892326 +:1017000080BB81B3282B21BB28960FB6F894DEBF8F +:101710000FBECDBFDF91CF911F910F91FF90EF9042 +:10172000DF90CF90BF90AF909F908F907F906F9001 +:101730005F9008955F926F927F928F929F92AF9287 +:10174000BF92CF92DF92EF92FF920F931F93CF93AE +:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 +:10176000CDBF85B7806885BF85B7806885BF0E947B +:10177000D40ACE0101966C014E0199E1890E911CAB +:1017800020E030E040E050E060E070E000E010E099 +:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA +:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 +:1017B0008A95E1F7F601819191916F01FC01E07F3B +:1017C000FF27E032F10559F48F709927F50102C027 +:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB +:1017E000F10559F48F709927F50102C0EE0FFF1F24 +:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E +:101800008F709927F50102C0EE0FFF1F8A95E2F74E +:101810006E2B7F2B1BC0E035F10559F48F70992793 +:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA +:101830000DC0E036F10551F48F709927F50102C013 +:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 +:1018500009F0A7CF84B19E2D9095892384B985B1D5 +:10186000E82AE5B887B1902F9095892387B988B188 +:10187000082B08B98AB1962F909589238AB98BB124 +:10188000682B6BB98DB1942F909589238DB98EB14A +:10189000482B4EB980B3922F9095892380BB81B39A +:1018A000282B21BB10921D0310921C0310921503CC +:1018B0001092140310921F0310921E03109217032C +:1018C0001092160310922103109220031092190314 +:1018D00010921803109223031092220310921B03FC +:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 +:1018F000DF91CF911F910F91FF90EF90DF90CF90EC +:10190000BF90AF909F908F907F906F905F900C945E +:1019100093077F928F929F92AF92BF92CF92DF9266 +:10192000EF92FF920F931F93CF93DF93CDB7DEB764 +:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 +:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 +:10195000BC2CAD2C01E010E028E1822E35E0932E66 +:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 +:10197000E1F7F601819191916F019C01207F33275E +:101980002032310591F424B18F709927A80102C04B +:10199000440F551F8A95E2F7CA01922F982B94B9EC +:1019A00095B18095892385B953C02033310591F4D1 +:1019B00027B18F709927F80102C0EE0FFF1F8A959B +:1019C000E2F7CF01922F982B97B998B18095892390 +:1019D00088B93EC02034310591F42AB18F7099271F +:1019E000A80102C0440F551F8A95E2F7CA01922F41 +:1019F000982B9AB99BB1809589238BB929C0203542 +:101A0000310591F42DB18F709927F80102C0EE0FC6 +:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 +:101A2000809589238EB914C02036310589F420B3FE +:101A30008F709927A80102C0440F551F8A95E2F7BD +:101A4000CA01922F982B90BB91B38095892381BBBB +:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A +:101A600040E050E0EEEDF2E0DE011196882D0190AD +:101A70000D928A95E1F7FB0181919191BF01FC01E3 +:101A8000E07FFF27E032F10511F4E3B113C0E0334A +:101A9000F10511F4E6B10EC0E034F10511F4E9B13D +:101AA00009C0E035F10511F4ECB104C0E036F105F0 +:101AB000B9F4EFB1F0E08F70992702C0F595E79582 +:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 +:101AD000991F0A94E2F702C080E090E0282B392B8E +:101AE0004F5F5F4F4C30510509F0BCCFF70180814B +:101AF00091818217930721F03183208390927302A2 +:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F +:101B1000F40609F025CF80917302882361F181508A +:101B200080937302882339F08FE99FE00197F1F7E2 +:101B300000C0000020C08091140390911503909381 +:101B40001D0380931C0380911603909117039093BB +:101B50001F0380931E0380911803909119039093A3 +:101B600021038093200380911A0390911B0390938B +:101B70002303809322030E94990781E0A0960FB669 +:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 +:101B9000FF90EF90DF90CF90BF90AF909F908F908D +:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA +:101BB00080819181089508958091020481608093CD +:101BC00002040C94F728809102048E7F8093020413 +:101BD0000C94F7280E94C928811102C00E94A528F0 +:101BE0000E94F328809302043E9A809171008D7FB9 +:101BF0008093710082E0809390008AE1809391004D +:101C000081E080932603089580912603811102C00C +:101C10000E94EA0D10927603109275038091710074 +:101C20008D7F80937100809190008F7780939000DA +:101C3000109238031092370310926F0310927003C2 +:101C4000109271031092720310926E0310926D0342 +:101C5000EDE4F3E0ADE3B3E0119211921192119231 +:101C60001D921D9283E0ED36F807B1F70895CF92EB +:101C7000DF92EF92FF920F931F93CF93DF93209108 +:101C80003703222309F484C06B017C018091260371 +:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A +:101CA000A7019601F80192918291729162918F0140 +:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 +:101CC000FF1FE35BFC4F1082118212821382DE0140 +:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B +:101CE000D105E9F021964481558166817781408351 +:101CF000518362837383148215821682178212962F +:101D00008D919C91139711969C938E9313961C9290 +:101D10001E92129734961296E2CF219708F6809180 +:101D2000750390917603019797FD05C09093760314 +:101D30008093750304C0109276031092750380910E +:101D400075039091760320917303309174032817E3 +:101D5000390724F01092740310927303892BC1F495 +:101D6000809171008D7F80937100809190008F77BA +:101D70008093900010926F03109270031092710381 +:101D80001092720310926E0310926D03109237033B +:101D9000DF91CF911F910F91FF90EF90DF90CF9047 +:101DA00008951F920F920FB60F9211244F925F92D7 +:101DB0006F927F928F929F92AF92BF92CF92DF925B +:101DC000EF92FF922F933F934F935F936F937F9385 +:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 +:101DE00080913703882309F49BC1C0917503D0917A +:101DF00076031C161D060CF093C1409027035090EB +:101E000028036090290370902A0320E030E0A901A4 +:101E1000C301B2010E94902F18160CF065C0C130AA +:101E2000D10509F452C08091730390917403BE01EF +:101E30000E9470317C0190937403809373038090AF +:101E4000390390903A03A0903B03B0903C0320E00C +:101E500030E040E85FE3C501B4010E94DD2D6093EE +:101E6000390370933A0380933B0390933C03F7014B +:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C +:101E800060817181828193810E94452E20E030E043 +:101E900040E05EE30E94942F9B01AC01C501B401B8 +:101EA0000E94902F18168CF4C7010196BE010E9463 +:101EB00070319093740380937303109239031092DE +:101EC0003A0310923B0310923C03E0917303F091AC +:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB +:101EE000718182819381D0C0C0906F03D0907003C4 +:101EF000E0907103F090720320E030E0A901C70187 +:101F0000B6010E94412E2197882309F4A2C0FE0148 +:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 +:101F2000A280B380A5019401C701B6010E94412E91 +:101F300087FF31C0A501940160E070E08CED93EC67 +:101F40000E94452E20E030E040E451E40E94452EFE +:101F500020E030E040E05FE30E94942F9B01AC0161 +:101F600060E070E080E090E40E94F72F9B01AC01FC +:101F7000C501B4010E94942F9B01AC01C701B601B9 +:101F80000E94412E87FF07C0A701960160E070E024 +:101F90008CED93E439C0A5019401C701B6010E94FC +:101FA000902F18160CF055C0A501940160E070E068 +:101FB0008CED93E40E94452E20E030E040E451E4B3 +:101FC0000E94452E20E030E040E05FE30E94942F25 +:101FD0009B01AC0160E070E080E090E40E94F72F8C +:101FE0009B01AC01C501B4010E94942F9B01AC017F +:101FF000C701B6010E94902F18165CF5A701960143 +:1020000060E070E08CED93EC0E94452E20E030E023 +:1020100040E451E40E94452E20E030E040E05FE3E0 +:102020000E94942F9B01AC0160E070E080E090E49E +:102030000E94F72F9B01AC01C701B6010E94942FAB +:1020400060936F0370937003809371039093720396 +:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF +:1020600080819181A281B38180936F0390937003EB +:10207000A0937103B093720360916F03709170032A +:102080008091710390917203209124033091250374 +:102090002F3F4FEF340731F02F5F3F4F3093250331 +:1020A000209324030E94F8126B017C0120E034E2AB +:1020B00044EF51E40E94412E87FF08C086EFC82EEE +:1020C00088E2D82E84EFE82E81E4F82E20E030E07C +:1020D00040E051E4C701B6010E94942F9B01AC017E +:1020E00060E074E284E79BE40E94452E6B017C0172 +:1020F0000E94AD2E70939700609396002091740219 +:10210000309175024091760250917702C701B60175 +:102110000E94942F0E94AD2E7093990060939800B6 +:1021200080913803882309F433C1C0903303D090E1 +:102130003403E0903503F090360320E030E0A9014D +:10214000C701B6010E94902F1816D4F58091240380 +:10215000909125038F3F2FEF920729F001969093DE +:10216000250380932403C701B6010E94F81220E0E2 +:1021700030E040E051E40E94942F9B01AC0160E00C +:1021800074E284E79BE40E94452E6B017C010E946F +:10219000AD2E709397006093960020917402309159 +:1021A00075024091760250917702C701B6010E94F4 +:1021B000942F0E94AD2E709399006093980008C0F0 +:1021C0001092970010929600109299001092980029 +:1021D00060912D0370912E036F5F7F4F70932E03DC +:1021E00060932D03209196003091970080E090E05D +:1021F000232BF1F0C0919600D09197000E94DE2E23 +:102200006B017C01BE0180E090E00E94DE2E9B010C +:10221000AC0160912F037091300380913103909154 +:1022200032030E94452E20E03FEF4FE757E410C0F5 +:102230000E94DE2E6B017C0120E030EE4FEF54E473 +:1022400060912F037091300380913103909132039C +:102250000E94942F9B01AC01C701B6010E94902FF0 +:1022600087FD96C080912B038F5F80932B0390E0B6 +:102270002091FE033091FF0382179307A0F0809115 +:102280000904882319F010922B030DC0809171006E +:102290008D7F80937100809190008F778093900064 +:1022A000109238037DC080912C03C0912B038111C3 +:1022B00028C0C0900304D0900404E0900504F0907E +:1022C000060420E030E0A901C701B6010E94902F6A +:1022D0001816BCF481E080932C0310923303109203 +:1022E00034031092350310923603C0922F03D0921C +:1022F0003003E0923103F0923203C150C0932B03BC +:1023000043C010922C031092250310922403E091F5 +:102310000004F091010448E0C49FE00DF11D112478 +:1023200080819181A281B3818093330390933403A0 +:10233000A0933503B093360320E030E040E85EE33D +:1023400064817581868197810E94942F6B017C0145 +:1023500020E030E048EC52E460917802709179021C +:1023600080917A0290917B020E94452E9B01AC01E4 +:10237000C701B6010E94942F60932F03709330031E +:10238000809331039093320310922E0310922D0309 +:102390008091020480FD04C010923803109237032C +:1023A000FF91EF91DF91CF91BF91AF919F918F916D +:1023B0007F916F915F914F913F912F91FF90EF909F +:1023C000DF90CF90BF90AF909F908F907F906F9055 +:1023D0005F904F900F900FBE0F901F901895CF9267 +:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 +:1023F00080912603811102C00E94EA0D809102049F +:1024000080FF46C0809175039091760308970CF089 +:102410003FC0809171008D7F80937100809138035F +:1024200081110E94040E81E08093370310922503EE +:102430001092240320E030E0A901C701B6010E94F8 +:10244000902F1816DCF48091750390917603FC01AF +:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 +:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D +:10247000C0830196909376038093750380917100D9 +:1024800082608093710080919000806880939000BA +:10249000DF91CF91FF90EF90DF90CF9008958F92D2 +:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 +:1024B0001F93CF93DF93EC017B01D42E4801590188 +:1024C00080912603811102C00E94EA0D80910204CE +:1024D00080FF6BC0809171008D7F8093710080912F +:1024E000370381110E94040E81E080933803D0935A +:1024F0000104C0930004F092FF03E092FE03D09227 +:1025000009048092030490920404A0920504B092FE +:1025100006041092390310923A0310923B03109272 +:102520003C0310922B0388819981AA81BB818093FF +:10253000330390933403A0933503B093360320E024 +:1025400030E040E85EE36C817D818E819F810E9456 +:10255000942F6B017C0120E030E048EC52E4609164 +:1025600078027091790280917A0290917B020E94A8 +:10257000452E9B01AC01C701B6010E94942F6093C8 +:102580002F037093300380933103909332031092A2 +:102590002E0310922D038091710082608093710050 +:1025A00080919000806880939000DF91CF911F917F +:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 +:1025C0008F9008958091770390E0019665E070E028 +:1025D0000E9470318093770308958091770390E093 +:1025E000019765E070E00E94703180937703089551 +:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 +:10260000CF93DF936B017C01C0912403D09125030C +:10261000BE0180E090E00E94DE2E4B015C01A7012C +:10262000960160E070E08CE594E40E94452E9B01E9 +:10263000AC01C501B4010E94942F0E94B22E4091BA +:102640007703423009F45CC028F4442351F0413050 +:10265000E9F0FBC0433009F481C0443009F4B4C050 +:10266000F4C080E090E0A0E0BFE380937402909318 +:102670007502A0937602B09377021092270310920E +:1026800028031092290310922A03DFC01092270317 +:10269000109228031092290310922A0364317105C5 +:1026A00040F46A307105E0F520E030E040E85EE398 +:1026B0003BC0693C710508F0C0C080E090E00E941A +:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 +:1026D00030E044E353E40E94452E9B01AC010E948C +:1026E000942F20E030E040E05EE30E94942F9B01B5 +:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 +:1027000010922703109228031092290310922A0393 +:102710006432710578F4FB01EC59FF4F0C9484315D +:1027200020E030E040E05FE3C701B6010E94942F53 +:102730006B017C0180E090E0A0E0BEE38093740236 +:1027400090937502A0937602B09377027EC0A701A2 +:102750009601C701B6010E94DD2DEACF1092270332 +:10276000109228031092290310922A032AE0269F30 +:10277000A001279F500D1124CA0168EB7BE00E9445 +:102780005C31BC016C5D754077FF03C0719561954C +:102790007109882777FD8095982F0E94E02E2EE3FF +:1027A00033EC4EE259E30E94942F20E030E040ECFD +:1027B0005EE30E94DD2D6093740270937502809336 +:1027C00076029093770241C010922703109228035B +:1027D0001092290310922A03CE0183709927892B26 +:1027E000E1F0BE016170772780E090E00E94DE2E6C +:1027F00020E030E040E05EE30E94942F20E030E0F3 +:1028000040E45FE30E94DD2D6093740270937502D3 +:1028100080937602909377020CC080E090E0A0E075 +:10282000BFE38093740290937502A0937602B093F5 +:102830007702C770DD27CD2B41F4109274021092FD +:1028400075021092760210927702C701B601DF91ED +:10285000CF91FF90EF90DF90CF90BF90AF909F907F +:102860008F900895809188030895CF93DF9300D0CF +:102870001F92CDB7DEB79C0180910E04843019F50C +:1028800093E099833B832A839093E9008FEF9091A3 +:10289000E800815095FD06C095ED9A95F1F700008E +:1028A0008111F5CF8091E80085FF0DC040E050E038 +:1028B00063E070E0CE0101960E9496168091E800D8 +:1028C0008E778093E8000F900F900F90DF91CF915B +:1028D0000895CF93DF9300D01F92CDB7DEB720913C +:1028E0000E04243021F522E029839B838A8383E030 +:1028F0008093E9008FEF9091E800815095FD06C02C +:1029000095ED9A95F1F700008111F5CF8091E800DF +:1029100085FF0DC040E050E063E070E0CE0101961D +:102920000E9496168091E8008E778093E8000F90C1 +:102930000F900F90DF91CF91089520910E042430D5 +:10294000F1F422E02093E9002FEF3091E8002150CC +:1029500035FD06C035ED3A95F1F700002111F5CFB0 +:102960002091E80025FF0BC040E050E065E070E0FA +:102970000E9496168091E8008E778093E800089573 +:10298000CF93DF93EC0190910E04943009F046C090 +:10299000809186028823D9F0809187028823B9F03C +:1029A0009093E9008FEF9091E800815095FD06C06B +:1029B00095E19A95F1F700008111F5CF8091E8003B +:1029C00085FF2CC040E050E060E170E017C081E07E +:1029D0008093E9008FEF9091E800815095FD06C04B +:1029E00095ED9A95F1F700008111F5CF8091E800FF +:1029F00085FF14C040E050E068E070E0CE010E9426 +:102A000096168091E8008E778093E80080E1FE01C1 +:102A1000A8E7B3E001900D928A95E1F7DF91CF919D +:102A2000089580910D04811109C00E942B180E9405 +:102A300088188091E20084608093E20008951092EB +:102A40000D040895089508950C94D02742E061EC98 +:102A500081E00E94A51742E061EC82E00E94A51788 +:102A600042E061EC83E00E94A51742E161EC84E062 +:102A70000C94A51780911004833009F455C030F4EC +:102A8000813071F0823009F48EC008958A3009F4E3 +:102A90007AC08B3009F460C0893009F09CC020C036 +:102AA00080910F04813A09F096C08091E800877FF9 +:102AB0008093E8008091130490911404892B21F4F1 +:102AC00060E188E793E003C060E080E090E070E0C0 +:102AD0000E94E1168091E8008B778093E8000895CA +:102AE00080910F04813209F076C080911304909197 +:102AF0001404009719F0039709F06DC08091E80065 +:102B0000877F8093E8008091E80082FD05C0809176 +:102B10000E048111F8CF5FC08091F100809388038B +:102B20008091E8008B7753C080910F04813A09F0BF +:102B300052C08091130490911404892B09F04BC06A +:102B40008091E800877F8093E8008091E80080FF13 +:102B5000FCCF8091860236C080910F048132D9F576 +:102B60008091130490911404892BA9F58091E800B9 +:102B7000877F8093E8000E94DA1780911104809388 +:102B800086020C944B2180910F04813221F58091B3 +:102B9000E800877F8093E8000E94DA178091120492 +:102BA00080938903089580910F04813AA1F4809164 +:102BB000E800877F8093E8008091E80080FFFCCFE9 +:102BC000809189038093F1008091E8008E77809353 +:102BD000E8000C94DA17089584B7877F84BF88E1F2 +:102BE0000FB6F89480936000109260000FBE90E0E2 +:102BF00080E80FB6F89480936100909361000FBE57 +:102C00000E947D1B0E942B180E9488188091E20070 +:102C100084608093E20078940E940E1B0E947F1BC8 +:102C20008CE792E00E94291B80910E04853069F4A4 +:102C30000E948A2780910C048823B1F30E94B82750 +:102C4000882391F30E948016EFCF0E94871BECCF60 +:102C5000292F332723303105C9F064F421303105A1 +:102C600081F02230310509F043C08DE690E022E882 +:102C700038E042C021323105F1F02232310541F114 +:102C800037C082E190E02FEE38E036C099278130DE +:102C9000910541F08230910541F0892B49F5EEE72D +:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 +:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 +:102CC000FF1FEE5FFC4F2081318189E090E014C04E +:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 +:102CE00020813181FB01EA50FD4F808190E004C0DA +:102CF00080E090E020E030E0FA0131832083089505 +:102D000080E189BD82E189BD09B400FEFDCF8091DB +:102D1000D8008F7D8093D8008091E00082608093FE +:102D2000E0008091E00081FDFCCF0895CF92DF921A +:102D3000EF92FF920F931F93CF93DF93EC018B01E0 +:102D40006A010E94F917811133C0C114D10439F00E +:102D5000F60180819181081B190BC80FD91FE12C46 +:102D6000F12C0115110519F18091E80085FD16C0BF +:102D70008091E8008E778093E800C114D10449F077 +:102D8000F60180819181E80EF91EF182E08285E0F2 +:102D90000FC00E94F917882321F30AC089918093FC +:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE +:102DB000DF91CF911F910F91FF90EF90DF90CF9017 +:102DC000089520911504309116042617370748F00E +:102DD0006115710539F42091E8002E772093E80001 +:102DE00001C0B90140E061157105A9F120910E04FF +:102DF000222309F443C0253009F442C02091E800A1 +:102E000023FD40C02091E80022FD32C02091E8005F +:102E100020FFE9CF4091F3002091F20030E0342B05 +:102E2000FC01CF016115710559F02830310540F4DE +:102E300081918093F100615071092F5F3F4FF1CF75 +:102E400041E02830310509F040E02091E8002E777C +:102E50002093E800C8CF4111C9CF0AC080910E0469 +:102E6000882361F0853061F08091E80083FD0AC01D +:102E70008091E80082FFF2CF80E0089582E008951B +:102E800083E0089581E0089520911504309116049F +:102E90002617370748F06115710539F42091E800CD +:102EA0002E772093E80001C0B901FC0120E06115F4 +:102EB000710591F180910E04882309F440C085309A +:102EC00009F43FC08091E80083FD3DC08091E80097 +:102ED00082FD2FC08091E80080FFE9CF2091F300B0 +:102EE0008091F20090E0922B6115710559F08830C5 +:102EF000910540F424912093F100319661507109BD +:102F00000196F2CF21E0089709F020E08091E800D7 +:102F10008E778093E800CBCF2111CCCF0AC080916F +:102F20000E04882361F0853061F08091E80083FD14 +:102F30000AC08091E80082FFF2CF80E0089582E02D +:102F4000089583E0089581E00895982F973058F50B +:102F50009093E900981739F07091EC002091ED0002 +:102F60005091F00003C0242F762F50E021FF19C0AC +:102F70003091EB003E7F3093EB003091ED003D7FD0 +:102F80003093ED003091EB0031603093EB007093A3 +:102F9000EC002093ED005093F0002091EE0027FF0D +:102FA00007C09F5FD3CF8F708093E90081E00895C1 +:102FB00080E0089580910F0487FF11C08091E800A0 +:102FC00082FD05C080910E048111F8CF11C080915F +:102FD000E8008B770BC080910E04882349F0809124 +:102FE000E80080FFF8CF8091E8008E778093E800BA +:102FF00008952091E4003091E50095E64091EC00C1 +:10300000842F817040FF22C08091E80080FD1CC0A9 +:1030100080910E04882391F0853091F08091EB002F +:1030200085FD10C04091E4005091E5004217530720 +:1030300029F39A01915011F784E0089582E00895F0 +:1030400083E0089581E0089580E008954091E800CC +:1030500042FFDECF08950E9499180E94A118E0EE69 +:10306000F0E0808181608083E8EDF0E080818F77FF +:10307000808319BCA7EDB0E08C918E7F8C9380810A +:103080008F7E808310920D0408950F931F93CF932A +:10309000DF930E9499180E94A118C8EDD0E08881A2 +:1030A0008F77888388818068888388818F7D8883F3 +:1030B00019BC10920E0410920A0410920C04109283 +:1030C0000B0400EE10E0F80180818B7F8083888103 +:1030D0008160888342E060E080E00E94A517E1EE15 +:1030E000F0E080818E7F8083E2EEF0E0808181607D +:1030F0008083808188608083F80180818E7F8083D7 +:10310000888180618883DF91CF911F910F9108950D +:10311000E8EDF0E080818F7E8083E7EDF0E0808154 +:103120008160808384E082BF81E080930D040C94F1 +:103130004518E8EDF0E080818E7F80831092E200F8 +:1031400008951092DA001092E10008951F920F92F4 +:103150000FB60F9211242F933F934F935F936F936A +:103160007F938F939F93AF93BF93EF93FF93809140 +:10317000E10082FF0BC08091E20082FF07C08091D6 +:10318000E1008B7F8093E1000E940D1B8091DA00AB +:1031900080FF1FC08091D80080FF1BC08091DA00A3 +:1031A0008E7F8093DA008091D90080FF0DC080E18E +:1031B00089BD82E189BD09B400FEFDCF81E0809325 +:1031C0000E040E94111505C019BC10920E040E9435 +:1031D0001F158091E10080FF19C08091E20080FFFF +:1031E00015C08091E2008E7F8093E2008091E20022 +:1031F00080618093E2008091D80080628093D80043 +:1032000019BC85E080930E040E9423158091E10093 +:1032100084FF30C08091E20084FF2CC080E189BD32 +:1032200082E189BD09B400FEFDCF8091D8008F7D79 +:103230008093D8008091E1008F7E8093E10080919F +:10324000E2008F7E8093E2008091E20081608093B3 +:10325000E20080910A04882311F084E007C0809185 +:10326000E30087FD02C081E001C083E080930E048B +:103270000E9424158091E10083FF29C08091E20023 +:1032800083FF25C08091E100877F8093E10082E089 +:1032900080930E0410920A048091E1008E7F809347 +:1032A000E1008091E2008E7F8093E2008091E20055 +:1032B00080618093E20042E060E080E00E94A51718 +:1032C0008091F00088608093F0000E942215FF91A9 +:1032D000EF91BF91AF919F918F917F916F915F918E +:1032E0004F913F912F910F900FBE0F901F90189507 +:1032F0001F920F920FB60F9211242F933F934F936B +:103300005F936F937F938F939F93AF93BF93CF936D +:10331000DF93EF93FF93C091E900CF708091EC00B1 +:10332000D82FD17080FDD0E81092E9008091F00094 +:10333000877F8093F00078940E94BC191092E90076 +:103340008091F00088608093F000CD2BCF70C09307 +:10335000E900FF91EF91DF91CF91BF91AF919F91E4 +:103360008F917F916F915F914F913F912F910F902E +:103370000FBE0F901F9018951F93CF93DF93CDB77B +:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 +:10339000F4E088E08E0F9091F10091938E13FBCFB3 +:1033A0000E943A158091E80083FF1FC180910F04AD +:1033B00090911004492F50E04A30510508F015C192 +:1033C000FA01E857FF4F0C948431803881F082383D +:1033D00009F00BC1809113048F708093E9008091F4 +:1033E000EB0085FB882780F91092E90006C08091E8 +:1033F0000B0490910C04911182609091E800977FEA +:103400009093E8008093F1001092F100C8C0282F3B +:103410002D7F09F0EAC0882319F0823061F0E5C001 +:1034200080911104813009F0E0C0933009F080E010 +:1034300080930C042BC080911104811127C08091CE +:1034400013048F7009F4D1C08093E9002091EB0040 +:1034500020FF1CC0933021F48091EB00806214C0E7 +:103460009091EB0090619093EB0021E030E0A90196 +:1034700002C0440F551F8A95E2F74093EA0010926C +:10348000EA008091EB0088608093EB001092E900E5 +:103490008091E800877F86C08111A7C01091110438 +:1034A0001F778091E3008078812B8093E3008091E7 +:1034B000E800877F8093E8000E94DA178091E80097 +:1034C00080FFFCCF8091E30080688093E3001111BE +:1034D00002C082E001C083E080930E0486C0805861 +:1034E000823008F082C080911104909112048C3DCA +:1034F00053E0950779F583E08A838AE289834FB7A1 +:10350000F894DE01139620E03EE051E2E32FF0E074 +:1035100050935700E49120FF03C0E295EF703F5FA6 +:10352000EF708E2F90E0EA3010F0C79601C0C09681 +:103530008D939D932F5F243149F74FBF8091E80011 +:10354000877F8093E8006AE270E0CE0101960E94D6 +:10355000E11614C0AE014F5F5F4F609113040E94EB +:103560002816BC01009709F440C09091E800977FAD +:103570009093E80089819A810E9444178091E80025 +:103580008B778093E80031C0803879F58091E8002E +:10359000877F8093E80080910A048093F1008091F6 +:1035A000E8008E778093E8000E94DA171EC0811130 +:1035B0001CC0909111049230C0F48091E800877F84 +:1035C0008093E80090930A040E94DA1780910A041D +:1035D000811106C08091E30087FD02C081E001C037 +:1035E00084E080930E040E9426158091E80083FFFA +:1035F0000AC08091E800877F8093E8008091EB000B +:1036000080628093EB00AA960FB6F894DEBF0FBEDF +:10361000CDBFDF91CF911F9108950895CF938091F1 +:103620000E048823A1F0C091E900CF709091EC00C6 +:10363000892F817090FD80E8C82B1092E90080915D +:10364000E80083FD0E94BC19CF70C093E900CF91C0 +:10365000089590938F0380938E030895E0918E03D5 +:10366000F0918F03309721F00190F081E02D0994C3 +:1036700080E00895E0918E03F0918F03309721F060 +:103680000280F381E02D09940895E0918E03F0917A +:103690008F03309721F00480F581E02D099408957F +:1036A00020918C0330918D038217930771F09093D2 +:1036B0008D0380938C03E0918E03F0918F033097FC +:1036C00021F00680F781E02D0994089520918A0366 +:1036D00030918B038217930771F090938B03809343 +:1036E0008A03E0918E03F0918F03309721F00084DC +:1036F000F185E02D0994089508950C947C1B0E9497 +:1037000004280E949A0B0E948A280C94452D4F92FF +:103710005F927F928F929F92AF92BF92CF92DF92F1 +:10372000EF92FF920F931F93CF93DF93CDB7DEB746 +:103730002A970FB6F894DEBF0FBECDBF0E94890C4A +:1037400091E9C92E93E0D92E00E010E0AA24A394B9 +:10375000B12C702E802F0E94D20D4C01F6014190A9 +:1037600051906F014826592641145104B1F40F5F5E +:103770001F4F0430110569F78FEF89838A831B82FD +:103780000E940D288160782F9D838C8349815A8106 +:103790006B818D810E94401C3AC08091ED0381FDB8 +:1037A0000E94DB0D20E030E07501022E02C0EE0C1D +:1037B000FF1C0A94E2F7C70184219521892B09F1A6 +:1037C0002E837F828E209F2091E0892809F490E04B +:1037D00098870E940D288160782F9A8789874E816B +:1037E0005F8168858A850E94401C000F111FF801C7 +:1037F000EF56FC4F80819181E826F926F182E08224 +:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC +:10381000762A109190030E942E1B1817D9F00E944F +:103820002E1B809390032A960FB6F894DEBF0FBE2E +:10383000CDBFDF91CF911F910F91FF90EF90DF905F +:10384000CF90BF90AF909F908F907F905F904F9060 +:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 +:10386000DF91CF911F910F91FF90EF90DF90CF905C +:10387000BF90AF909F908F907F905F904F900895F2 +:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B +:103890000FBECDBF4F83588769877A878B87DE013C +:1038A000119686E0FD0111928A95E9F785E0FE0107 +:1038B000379601900D928A95E1F749815A816B8183 +:1038C0007C818D819E810E94E5232B960FB6F89412 +:1038D000DEBF0FBECDBFDF91CF910895CF93882378 +:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 +:1038F000BBC089E30E948E260E945B2789E30CC02F +:10390000833879F40E942E1B80FDAEC083E50E94AF +:103910008E260E945B2783E50E94D026CF910C94CF +:103920005B27843859F40E942E1B82FD9DC087E4DA +:103930000E948E260E945B2787E4EECF8CEF8C0FCF +:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 +:103950000E948E26E3CF80E28C0F883048F4C77037 +:1039600081E001C0880FCA95EAF70E941427D6CFDC +:103970008BE58C0F833078F4C53A29F0C63A31F0E4 +:1039800083E890E005C081E890E002C082E890E022 +:10399000CF910C94501B88E58C0F833108F064C0E4 +:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 +:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F +:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F +:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D +:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 +:1039F00038C082EE90E035C089EE90E032C08AEEA9 +:103A000090E02FC085EB90E02CC086EB90E029C0C1 +:103A100087EB90E026C08CEC90E023C08DEC90E02A +:103A200020C083E891E01DC08AE891E01AC082E9D5 +:103A300091E017C084E991E014C081E292E011C0E6 +:103A400083E292E00EC084E292E00BC085E292E055 +:103A500008C086E292E005C087E292E002C08AE2F6 +:103A600092E0CF910C94661BCF910895882309F4BE +:103A70004BC0823859F40E942E1B81FF45C089E358 +:103A80000E948E260E945B2789E30CC0833871F464 +:103A90000E942E1B80FF38C083E50E948E260E9464 +:103AA0005B2783E50E94D0260C945B27843859F469 +:103AB0000E942E1B82FF28C087E40E948E260E944F +:103AC0005B2787E4EFCF9CEF980F913A58F390E291 +:103AD000980F983050F4877091E001C0990F8A9543 +:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 +:103AF00020F480E090E00C94501B885A833120F42D +:103B000080E090E00C94661B0895882321F00E94C9 +:103B100014270C945B270895882321F00E941A270C +:103B20000C945B270895BF92CF92DF92EF92FF92A1 +:103B30000F931F93CF93DF9300D000D000D0CDB769 +:103B4000DEB725E0FC01DE01119601900D922A9569 +:103B5000E1F7FC01D08011810281258122952F702F +:103B600043815481452B09F472C31F3F21F4FFEFB9 +:103B7000DF1609F46CC37C012E830E949B07D98257 +:103B80001A8369817A81802F0E948A26182FB92E84 +:103B90000E943F260E9406252E81002319F00E94D4 +:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE +:103BB0000C9484318B2D807F9B2D9F70F92E882350 +:103BC00019F0F29480EFF822002389F0FF2009F425 +:103BD0007CC280E2810F883020F48F2D0E94142750 +:103BE00003C08F2D0E9424270E945B276EC2812F65 +:103BF0000E94361DFF2009F42AC3105E8F2D183055 +:103C000018F40E941A2702C00E942A2726960FB68F +:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 +:103C2000FF90EF90DF90CF90BF900C945B278B2D8F +:103C3000807F9B2D9F70803211F4892F03C0892FC4 +:103C40008295807F112319F0113011F12BC00023D0 +:103C5000A9F0222389F1213079F526960FB6F89440 +:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF +:103C7000EF90DF90CF90BF900C944427222319F04F +:103C8000213009F4E4C28E830E9447278E819BC1B4 +:103C9000002321F0263008F0DAC20EC0253008F0EB +:103CA000D6C291C10023C9F0222331F0F7019581DA +:103CB00090FF0BC29F70958326960FB6F894DEBFD7 +:103CC0000FBECDBFDF91CF911F910F91FF90EF906D +:103CD000DF90CF90BF900C94851D222309F473C10F +:103CE00009C22B2D26952695237030E0211531052C +:103CF00021F021303105D1F0AAC2002321F0812F1B +:103D00009B2D937002C080E090E026960FB6F89449 +:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE +:103D2000EF90DF90CF90BF900C94501B002321F0B8 +:103D3000812F9B2D937002C080E090E026960FB6F5 +:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 +:103D5000FF90EF90DF90CF90BF900C94661B812F67 +:103D6000002319F00E947E2902C00E94E6292696AF +:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C +:103D80000F91FF90EF90DF90CF90BF900C946B2A33 +:103D90008B2D837009F07BC0011159C2812F829550 +:103DA00086958770880F880F912F9F70C92ED12C10 +:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 +:103DC0000A94D2F714FF12C04FE050E060E070E0B8 +:103DD00004C0440F551F661F771F8A95D2F7CB0189 +:103DE000BA01609570958095909503C060E070E091 +:103DF000CB012B2D269526952370422F50E0423083 +:103E00005105D9F04330510569F16C297D298E297E +:103E10009F294130510551F126960FB6F894DEBF27 +:103E20000FBECDBFDF91CF911F910F91FF90EF900B +:103E3000DF90CF90BF900C942D256C297D298E2981 +:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 +:103E5000CF911F910F91FF90EF90DF90CF90BF9087 +:103E60000C9449250E942D25C701B60126960FB650 +:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 +:103E8000FF90EF90DF90CF90BF900C94112500230E +:103E900019F08B2D817001C08695882309F4D7C154 +:103EA000812F829586958770880F880F912F9F703C +:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 +:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 +:103ED00060E070E004C0440F551F661F771F8A958D +:103EE000D2F7CB01BA01609570958095909503C08B +:103EF00060E070E0CB012B2D269526952370422F94 +:103F000050E042305105D9F04330510569F16C2938 +:103F10007D298E299F294130510551F126960FB6F2 +:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF +:103F3000FF90EF90DF90CF90BF900C9407266C29F4 +:103F40007D298E299F2926960FB6F894DEBF0FBED5 +:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 +:103F6000CF90BF900C9423260E940726C701B6016C +:103F700026960FB6F894DEBF0FBECDBFDF91CF916E +:103F80001F910F91FF90EF90DF90CF90BF900C9416 +:103F9000EB25103F49F118F4103E48F491C0123F50 +:103FA00009F453C0E8F1133F09F464C089C01F70DD +:103FB0008B2D8F71002321F00E948425812F7CCED0 +:103FC0000E94A525812F26960FB6F894DEBF0FBE5E +:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 +:103FE000CF90BF900C948C1D0023B1F0253008F0C9 +:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 +:10400000CDBFDF91CF911F910F91FF90EF90DF9087 +:10401000CF90BF900C94CA25263008F018C1E9CF84 +:104020000023A9F08B2D8F7126960FB6F894DEBF72 +:104030000FBECDBFDF91CF911F910F91FF90EF90F9 +:10404000DF90CF90BF900C948425002359F38B2DE3 +:104050008F7126960FB6F894DEBF0FBECDBFDF91ED +:10406000CF911F910F91FF90EF90DF90CF90BF9075 +:104070000C94A525002399F08B2D8F7126960FB6F1 +:10408000F894DEBF0FBECDBFDF91CF911F910F918E +:10409000FF90EF90DF90CF90BF900C946F25269605 +:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 +:1040B0000F91FF90EF90DF90CF90BF900C9465250B +:1040C0000023A9F0222309F4ADCF812F26960FB645 +:1040D000F894DEBF0FBECDBFDF91CF911F910F913E +:1040E000FF90EF90DF90CF90BF900C946E1C222336 +:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 +:10410000CDBFDF91CF911F910F91FF90EF90DF9086 +:10411000CF90BF900C94361D4B2D4F70612FC7016F +:104120000E948D0526960FB6F894DEBF0FBECDBF58 +:10413000DF91CF911F910F91FF90EF90DF90CF9083 +:10414000BF900C948924011182C09B2D9F70492F30 +:1041500050E04230510509F443C0C4F44115510503 +:1041600071F14130510509F072C026960FB6F894EE +:10417000DEBF0FBECDBFDF91CF911F910F91FF909A +:10418000EF90DF90CF90BF900C946D2D4330510590 +:10419000C1F14430510509F05AC0812F26960FB65F +:1041A000F894DEBF0FBECDBFDF91CF911F910F916D +:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 +:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC +:1041F0001F910F91FF90EF90DF90CF90BF900C94A4 +:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10421000CF911F910F91FF90EF90DF90CF90BF90C3 +:104220000C949C2D4B2D4F70612FC70126960FB615 +:10423000F894DEBF0FBECDBFDF91CF911F910F91DC +:10424000FF90EF90DF90CF90BF900C949D07269643 +:104250000FB6F894DEBF0FBECDBFDF91CF911F9197 +:104260000F91FF90EF90DF90CF90BF9008950E9444 +:1042700031270E9441270E9406270E945B270E9447 +:104280001C2B0E946B2A80E090E00E94501B80E073 +:1042900090E00C94661B0E9421270C9437210E9409 +:1042A0007F26292F22952F7030E02C3031054CF4D9 +:1042B0002A3031056CF4225031092230310588F45E +:1042C00007C02C30310549F02F30310531F009C0DD +:1042D000803E48F0803F29F406C093FB882780F990 +:1042E000089580E0089581E00895CF93DF9300D092 +:1042F00000D01F92CDB7DEB70F900F900F900F90A8 +:104300000F90DF91CF910895CF93DF9300D000D02D +:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D +:10432000CDBFDF91CF9108951F93CF93DF93C091BD +:10433000990316E080919A03C81799F0D0E01C9F6A +:10434000F0011D9FF00D1124E556FC4F4081518175 +:1043500062817381848195810E9484212196C77036 +:10436000E9CFDF91CF911F9108954091CB035091F8 +:10437000CC036091CD037091CE038091CF039091D7 +:10438000D0030C9484218091D00382958F7009F022 +:1043900054C08091CD03882309F44FC080919903C4 +:1043A000A0919A036091CB037091CC034091CE030E +:1043B0005091CF03B6E08A1709F43FC090E0411551 +:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A +:1043D000B99FF00D1124E556FC4F218172132AC0BC +:1043E0002081621327C02281211124C023813481BE +:1043F0002417350710F421503109241B350B283CB4 +:104400003105C0F42091D0032F7020612093D00398 +:1044100026E0289FF001299FF00D1124E056FC4F63 +:1044200080818F70806180838BEC93E00E94931D6C +:104430000C94942101968770BECF0895CF92DF929D +:10444000EF92FF920F931F93CF93DF93CDB7DEB719 +:1044500062970FB6F894DEBF0FBECDBF8C0185E02A +:10446000F801DE011D9601900D928A95E1F7D801C1 +:104470004C9111965C91119712966C91129713962C +:10448000CD90DC9014973091CB037091CC03809148 +:10449000CE039091CF03009709F46BC17F3F19F4CD +:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F +:1044B0002091D003C816D90628F0F601E81BF90BA5 +:1044C000CF0104C0809590958C0D9D1DFF24F39421 +:1044D000883C910578F0F12C207F09F0C6C07C2D36 +:1044E000D98AC88A89890E9475218BEC93E00E9441 +:1044F000931DB1C0822F807F09F046C0751314C090 +:10450000341312C0611110C02F7020612093D003AA +:104510000E94B5218BEC93E00E94931D8091D00303 +:10452000D80115968C932EC0CD2819F15F3F11F458 +:104530004F3FF9F0F62E61111CC080919903209134 +:104540009A0336E0821709F45AC090E0389FF001D0 +:10455000399FF00D1124E556FC4F7181571306C0A9 +:104560007081471303C07281711103C00196877077 +:10457000E9CFF62E662309F418C18091D00381603B +:104580008093D003F12C11C1751308C0341306C0F9 +:10459000611104C08091D003D801C3C04D875E87EC +:1045A0008D859E856A8B0E944F216A898823E1F15F +:1045B0006623D1F12091D003822F82958F7090E0F5 +:1045C000029774F08091CB039091CC0398878F83EE +:1045D0001986DB86CA862C87CE0107960E94931D1A +:1045E00086E0F801ABECB3E001900D928A95E1F71B +:1045F0000E94C3210E94B521FF24F394D6C04D87A9 +:104600005E878D859E850E947F26292F22952F709B +:1046100030E0223031050CF0BCC09F7009F0B6C00C +:10462000805E883008F4C1C0C8010E94931DE4CFA9 +:10463000C816D90608F453C0F601E81BF90BCF01E0 +:10464000883C910508F450C0F12C7C2DD98AC88A89 +:1046500089890E947521EBECF3E086E0DF011D9271 +:104660008A95E9F70E94B521A0C0751314C03413D0 +:1046700012C0611110C08091D003F8018583C80178 +:104680000E94931D86E0EBECF3E0DF011D928A951A +:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 +:1046A0000E944F216A89882309F4BECF662309F44A +:1046B000BBCF2091D003822F82958F7090E002971C +:1046C0000CF48ECF8091CB039091CC039A83898395 +:1046D0001B82DD82CC822E83CE0101967FCF809516 +:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 +:1046F00075132EC034132CC02091D00320FD1FC091 +:10470000822F82958F70D9F0D80115962C9315972A +:104710008F3049F08F5F982F9295907F822F8F7006 +:10472000892B15968C93C8010E94931D86E0F80191 +:10473000ABECB3E001900D928A95E1F793CF86E060 +:10474000F801ABECB3E001900D928A95E1F72DC032 +:104750004D875E878D859E850E944F21811140CFB8 +:104760008091D00381608093D003C8010E94931D83 +:104770001CC0662309F458CF4D875E878D859E85C2 +:104780000E944F21882309F44FCF2ACF811148CFAF +:104790000CC0243031050CF047CF9F7009F440CF96 +:1047A000F8019581907F09F03BCF8F2D62960FB66F +:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 +:1047C000FF90EF90DF90CF9008951F93CF93DF93EA +:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 +:1047E0004F83588769877A878B879C87CE01079686 +:1047F0000E941E22882369F08F8198852A853B8537 +:10480000232BF1F19F3F09F063C08F3F09F060C097 +:1048100037C086E0FE013796DE01119601900D92B9 +:104820008A95E1F76F817885EA85FB85309741F1BC +:104830007F3F11F46F3F21F120919A0330E0C901CD +:104840000196877099274091990350E08417950746 +:1048500009F447C069837A83FD83EC8396E0929FD5 +:10486000D001939FB00D1124A556BC4FFE01319687 +:1048700001900D929A95E1F780939A030E949421FA +:1048800016E08091990390919A038917C1F1189FBE +:10489000C001112485569C4F0E941E22882379F165 +:1048A000E09199031E9FF0011124E556FC4F4081D1 +:1048B000518162817381848195810E9484218091DC +:1048C000990390E001968770992780939903D9CF37 +:1048D0004F81588569857A858B859C850E948421C6 +:1048E000CFCF0E944B2110929A0310929903EBECC8 +:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F +:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 +:104910000895EF92FF920F931F93CF93DF938C0133 +:10492000009709F46CC0F12CEE24E394E801219681 +:10493000F8018491843740F4843008F051C081300C +:1049400081F0823019F15BC0853709F444C0A8F1C9 +:104950009CE7980F903708F052C08F770E94361D61 +:1049600041C00E5F1F4FFE01C49180E28C0F883062 +:1049700048F4C7708E2D01C0880FCA95EAF70E94CF +:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 +:10499000FE01C49180E28C0F883058F4C7708E2DD0 +:1049A00001C0880FCA95EAF70E943A270E945B2748 +:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD +:1049C000C491CC2381F08FE99FE00197F1F700C0FB +:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 +:1049E0000E946E1C8E018F2D882309F49FCFEFE962 +:1049F000FFE03197F1F700C000008150F5CFDF9163 +:104A0000CF911F910F91FF90EF90089508956093BB +:104A1000D5037093D6038093D7039093D8030C9457 +:104A200037210F931F930091D5031091D603209146 +:104A3000D7033091D803DC01CB01802B912BA22B23 +:104A4000B32B8093D5039093D603A093D703B09351 +:104A5000D8031F910F910C9437210F931F9300914E +:104A6000D5031091D6032091D7033091D803DC01F0 +:104A7000CB0180239123A223B3238093D50390936A +:104A8000D603A093D703B093D8031F910F910C9432 +:104A900037210F931F930091D5031091D6032091D6 +:104AA000D7033091D803DC01CB0180279127A227BF +:104AB000B3278093D5039093D603A093D703B093E5 +:104AC000D8031F910F910C9437211092D1031092AB +:104AD000D2031092D3031092D4030C94372141E0F7 +:104AE00050E060E070E004C0440F551F661F771F60 +:104AF0008A95D2F74093D1035093D2036093D303A6 +:104B00007093D4030C94372141E050E060E070E0F2 +:104B100004C0440F551F661F771F8A95D2F78091F6 +:104B2000D1039091D203A091D303B091D403482B29 +:104B3000592B6A2B7B2B4093D1035093D203609364 +:104B4000D3037093D4030C94372141E050E060E02C +:104B500070E004C0440F551F661F771F8A95D2F777 +:104B600040955095609570958091D1039091D203B6 +:104B7000A091D303B091D403482359236A237B2304 +:104B80004093D1035093D2036093D3037093D40323 +:104B90000C94372141E050E060E070E004C0440F25 +:104BA000551F661F771F8A95D2F78091D103909188 +:104BB000D203A091D303B091D403482759276A2781 +:104BC0007B274093D1035093D2036093D303709318 +:104BD000D4030C9437210F931F930091D1031091AC +:104BE000D2032091D3033091D403DC01CB01802B7D +:104BF000912BA22BB32B8093D1039093D203A0933C +:104C0000D303B093D4031F910F910C9437210F93CA +:104C10001F930091D1031091D2032091D3033091BF +:104C2000D403DC01CB0180239123A223B3238093FF +:104C3000D1039093D203A093D303B093D4031F91D5 +:104C40000F910C9437210F931F930091D103109172 +:104C5000D2032091D3033091D403DC01CB01802710 +:104C60009127A227B3278093D1039093D203A093D7 +:104C7000D303B093D4031F910F910C94372108955F +:104C8000CF92DF92EF92FF920F931F93CF93DF9318 +:104C90008C01C090D503D090D603E090D703F0905C +:104CA000D8038091D1039091D203A091D303B09106 +:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 +:104CC000C6010C2E04C0B695A795979587950A94B2 +:104CD000D2F780FF06C0B8018C2F0E94F709019718 +:104CE00021F4219760F780E001C08C2FDF91CF91F4 +:104CF0001F910F91FF90EF90DF90CF900895CF9389 +:104D0000DF93EC010E944026BE010E94F709DF916B +:104D1000CF910895CB010E947F260895909186023D +:104D2000992321F090918702911109C02091880266 +:104D300030918902F90132969FEF40E01FC0982F11 +:104D40009695969596959F3050F5E0918802F09152 +:104D50008902E90FF11D877021E030E0A90102C04E +:104D6000440F551F8A95E2F7CA019181892B8183EF +:104D700008959F3F39F04F5F4E3041F051915813E5 +:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 +:104D9000F901E90FF11D97FDFA95828308950895B1 +:104DA00090918602992321F090918702911109C078 +:104DB0002091880230918902F9013296205F3F4F9D +:104DC0001FC0982F9695969596959F30F0F4E09198 +:104DD0008802F0918902E90FF11D877021E030E02F +:104DE000A90102C0440F551F8A95E2F7CA018095B8 +:104DF00091818923818308953196E217F30729F081 +:104E000090819813F9CF1082F7CF089581E090E058 +:104E1000E0918802F0918902E80FF91F1082019653 +:104E200080319105A9F708959091EC03892B809327 +:104E3000EC03089580959091EC0389238093EC0313 +:104E400008951092EC0308959091EB03892B8093C1 +:104E5000EB03089580959091EB0389238093EB03F6 +:104E600008951092EB0308959091EA03892B8093A3 +:104E7000EA03089580959091EA0389238093EA03D9 +:104E800008951092EA0308958093D903089510922B +:104E9000D90308958091880290918902FC0131968E +:104EA0009C01205F3F4F80E0919191118F5FE2174D +:104EB000F307D1F70895E0918802F091890280917B +:104EC000EC038083E0918802F091890290818091C7 +:104ED000EB03892B8083E0918802F0918902908115 +:104EE0008091EA03892B80838091D903882361F024 +:104EF000E0918802F09189029081892B80830E9441 +:104F00004A2781111092D9038091880290918902D9 +:104F10000C943A1B80910E04843039F11092EE0308 +:104F200020E488E190E00FB6F894A89580936000A3 +:104F30000FBE2093600080E00E94540580E00E9434 +:104F4000D20A83B7817F846083BF83B7816083BFC8 +:104F50007894889583B78E7F83BF88E10FB6F894E5 +:104F600080936000109260000FBE08950895089528 +:104F7000CF9380E00E9454050E94B6270E94890CBE +:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 +:104F9000CF5FC430C1F780E001C081E0CF910895B8 +:104FA0000E944B2180E00E9454050E94452D0E94E2 +:104FB0002E1B0C94D20A1F920F920FB60F9211243F +:104FC0008F939F93AF93BF938091EE03811113C092 +:104FD0008091EF039091F003A091F103B091F2035F +:104FE0004196A11DB11D8093EF039093F003A09310 +:104FF000F103B093F203BF91AF919F918F910F9006 +:105000000FBE0F901F90189582E084BD93E095BD70 +:105010009AEF97BD80936E0008952FB7F894809112 +:10502000EF039091F003A091F103B091F2032FBF31 +:105030000895CF92DF92EF92FF920F931F932FB7B5 +:10504000F8944091EF035091F0036091F103709157 +:10505000F2032FBF6A017B01EE24FF248C0120E0C4 +:1050600030E0C016D106E206F30610F441505109B3 +:105070009A01281B390BC9011F910F91FF90EF90E6 +:10508000DF90CF9008951F920F920FB60F921124C8 +:105090008F939F93AF93BF938091EF039091F00311 +:1050A000A091F103B091F2030196A11DB11D80936F +:1050B000EF039093F003A093F103B093F203BF9139 +:1050C000AF919F918F910F900FBE0F901F901895E9 +:1050D0000E942B18F8942FEF87EA91E62150804028 +:1050E0009040E1F700C0000087E090EBDC01809386 +:1050F000190490931A04A0931B04B0931C049CE021 +:1051000088E10FB6F894A895809360000FBE909345 +:105110006000FFCF0E94C928811102C00E94A5280B +:105120000E94D4288093ED030E94E1288093170405 +:1051300087FB882780F9809387020E94D828682FF0 +:1051400070E080E090E00C9407256DEE7EEF80E04B +:1051500090E00E94AA3160E082E090E00E949831E5 +:1051600060E083E090E00E94983160E084E090E0AD +:105170000E94983160E085E090E00E94983160E004 +:1051800086E090E00E9498316FEF87E090E00C9409 +:10519000983180E090E00E94923121E08D3E9E4F58 +:1051A00009F020E0822F089582E090E00C948A318B +:1051B00083E090E00C948A31682F83E090E00C94B7 +:1051C000983184E090E00C948A31682F84E090E07C +:1051D0000C94983186E090E00C948A31682F86E038 +:1051E00090E00C94983187E090E00C948A31682F1D +:1051F00087E090E00C9498318091F50380FF0BC01C +:1052000060918D0285E0689FB001112475956795C6 +:10521000759567952BC081FF09C060918D0285E06F +:10522000689FB00111247595679520C082FF07C063 +:1052300060918D0285E0689FB001112417C09091A4 +:10524000F6039923D1F060918C02961788F720918C +:105250008D0285E0289F90011124929FA001939FC9 +:10526000500D112470E0CA010E9470316038710540 +:1052700040F46115710539F002C065E070E0862FD9 +:1052800008958FE7089581E008958091F50380FFE8 +:1052900008C060918B0270E075956795759567956C +:1052A00021C081FF06C060918B0270E07595679503 +:1052B00019C082FF04C060918B0270E010C0909111 +:1052C000F6039923C1F060918A029617A0F78091A6 +:1052D0008B02899FC001112470E00E9470316038F8 +:1052E000710528F46115710521F0862F08958FE767 +:1052F000089581E0089561E070E0F4CF803F21F4EB +:105300000E94FC28819504C0813F29F40E94FC285A +:105310008093F9030895823F21F40E94FC2881952F +:1053200004C0833F29F40E94FC288093F803089569 +:10533000893F19F40E94452905C08A3F31F40E9433 +:10534000452981958093FA0308958B3F21F40E94AB +:105350004529819504C08C3F29F40E9445298093FA +:10536000FB030895843F21F48091F703816017C007 +:10537000853F21F48091F703826011C0863F21F4BC +:105380008091F70384600BC0873F21F48091F7037D +:10539000886005C0883F31F48091F7038061809375 +:1053A000F70308958D3F21F48091F50381600BC0D0 +:1053B0008E3F21F48091F503826005C08F3F29F470 +:1053C0008091F50384608093F5030895803F39F45C +:1053D0008091F90387FF6CC01092F90369C0813F87 +:1053E00029F48091F9031816BCF362C09091F80378 +:1053F000823F29F497FF5CC01092F80359C0833FA5 +:1054000019F41916CCF354C0893F41F48091FA0382 +:1054100018160CF04DC01092FA034AC08A3F29F4C6 +:105420008091FA0387FF44C0F6CF8B3F39F4809117 +:10543000FB0387FF3DC01092FB033AC08C3F29F469 +:105440008091FB031816BCF333C0843F21F4809194 +:10545000F7038E7F17C0853F21F48091F7038D7F7E +:1054600011C0863F21F48091F7038B7F0BC0873FEB +:1054700021F48091F703877F05C0883F31F4809144 +:10548000F7038F7E8093F70313C08D3F21F4809143 +:10549000F5038E7F0BC08E3F21F48091F5038D7F45 +:1054A00005C08F3F29F48091F5038B7F8093F5032E +:1054B0008091F80381110EC08091F90381110AC017 +:1054C0008091FA03811106C08091FB03811102C013 +:1054D0001092F603089587EF93E00E94451B0E9407 +:1054E0000D289093F4038093F30308951F93CF93B3 +:1054F000DF938091F3039091F4030E941928AC018B +:105500009091F603992321F020918E0230E006C09D +:1055100020918F028AE0289F90011124421753079F +:1055200008F486C08091F803C091F903D091FA0382 +:105530001091FB03811107C0C11176C0D11174C055 +:10554000111172C075C09F3F19F09F5F9093F603D1 +:10555000181624F40E94FC288093F8038091F80325 +:1055600087FF05C00E94FC2881958093F8031C16D4 +:1055700024F40E94FC288093F9038091F90387FFAB +:1055800005C00E94FC2881958093F9036091F8037F +:10559000662339F1C091F903CC2319F1772767FD10 +:1055A0007095872F972F0E94E02E23E333E343E388 +:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E +:1055C000772767FD7095872F972F0E94E02E23E3A2 +:1055D00033E343E35FE30E94942F0E94AD2E609378 +:1055E000F9031D1624F40E9445298093FA03809143 +:1055F000FA0387FF05C00E94452981958093FA032D +:10560000111624F40E9445298093FB038091FB032B +:1056100087FF05C00E94452981958093FB03DF9198 +:10562000CF911F910C946B2A9F3F09F08ECF96CF9C +:10563000DF91CF911F910895E7EFF3E085E0DF015F +:105640001D928A95E9F71092F6031092F5030895DA +:10565000833081F128F4813059F08230D1F00895FF +:10566000853009F449C0B8F1863009F456C0089570 +:1056700080918F02262F30E0280F311D2F3F3105FA +:1056800024F4680F60938F0208958FEF80938F0248 +:10569000089580918E02262F30E0280F311D2F3F74 +:1056A000310524F4680F60938E0208958FEF809384 +:1056B0008E02089580918D02262F30E0280F311D33 +:1056C0002F3F310524F4680F60938D0208958FEF0A +:1056D00080938D02089580918C02262F30E0280F50 +:1056E000311D2F3F310524F4680F60938C0208951B +:1056F0008FEF80938C02089580918B02262F30E0EB +:10570000280F311D2F3F310524F4680F60938B0261 +:1057100008958FEF80938B02089580918A02262F3F +:1057200030E0280F311D2F3F310524F4680F6093BE +:105730008A0208958FEF80938A020895833011F1D1 +:1057400028F4813049F0823091F00895853081F15C +:1057500020F18630C1F1089580918F02681720F4FE +:10576000861B80938F02089510928F020895809176 +:105770008E02681720F4861B80938E020895109283 +:105780008E02089580918D02681720F4861B809305 +:105790008D02089510928D02089580918C026817F1 +:1057A00020F4861B80938C02089510928C02089539 +:1057B00080918B02681720F4861B80938B020895DA +:1057C00010928B02089580918A02681720F4861B3C +:1057D00080938A02089510928A0208950F931F936E +:1057E000873208F048C08E3108F094C0803109F447 +:1057F0007EC008F5873009F468C068F4863009F087 +:10580000A4C08091ED03817F8E7F8093ED0381E0C2 +:105810008093FD039BC08B3009F490C08E3009F05B +:1058200094C08091ED0382FB222720F991E092271A +:1058300090FB82F965C0863109F480C060F4813143 +:1058400009F083C00E944B219091870281E0892753 +:105850008093870273C0893109F470C08B3109F0DD +:1058600074C08091ED0381FB222720F991E09227FB +:1058700090FB81F945C0883309F460C050F4893247 +:1058800009F45EC0853309F45BC0873209F458C05F +:105890005CC0833409F454C028F48A3308F455C03A +:1058A000895339C0883409F050C00E944B210E94AE +:1058B00090060FEF13ED20E3015010402040E1F778 +:1058C00000C000000E94682839C09091ED03892F24 +:1058D0008095817080FB90F929F096609860909394 +:1058E000ED0334C0997F977F9093ED0327C080919B +:1058F000ED0383FB222720F991E0922790FB83F9A7 +:105900008093ED039923D1F08091ED038160809322 +:10591000ED0314C08D5141E050E060E070E08A0179 +:105920009B0104C0000F111F221F331F8A95D2F75D +:10593000C901B8010E9407250E944B2181E006C0E1 +:1059400061E070E080E090E0F5CF80E01F910F9182 +:10595000089580E0089580E00895CF93C82F809146 +:10596000FD03813069F018F08230C9F184C0E09104 +:105970008802F09189028081823209F07EC007C0DE +:10598000E0918802F09189028081823261F48C2F4B +:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 +:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 +:1059B000C43179F048F4CB3079F0C03109F061C0DE +:1059C00082E08093FD0308C0C93219F0C83321F08A +:1059D00058C01092FD0355C081E0817054C0C93297 +:1059E00091F120F5C43179F1B0F4C73009F047C026 +:1059F0008EE180938F0282E380938E028AE080930F +:105A00008D0284E180938C0288E080938B0288E28F +:105A100080938A0234C0CE51C63088F5EC2FF0E076 +:105A2000E65FFC4F80818093FC0329C0CE34E9F00F +:105A300020F4CB3421F56AE013C0C13579F0C235CA +:105A4000F1F461E00DC08091FC03882319F01092FD +:105A5000FC0315C081E08093FD0315C061E006C022 +:105A60008091FC030E94282B0AC06AE08091FC030D +:105A70000E949E2B04C01092FD0380E004C081E0D0 +:105A800002C080E0AACFCF9108950E94C928811159 +:105A900002C00E94A5280E94EA288093180480FF73 +:105AA00002C0869501C080E00C94540580911804D2 +:105AB000982F9695292F30E0233031054CF49F5FC5 +:105AC000990F8170892B8160809318040E94EE28C1 +:105AD0008091180486950C94540580911804982F91 +:105AE000969591F09158990F8170892B80931804A5 +:105AF0008E7F91E009F490E08091180490FB80F98A +:105B0000809318040E94EE288091180486950C94C6 +:105B1000540580911804982F909590FB80F98093FC +:105B200018040E94EE288091180480FF02C0869518 +:105B300001C080E00C94540590911804892F86953B +:105B40008F5F8F779170843028F4880F892B809332 +:105B5000180402C090931804809118048E7F91E07D +:105B600009F490E08091180490FB80F98093180468 +:105B70000E94EE288091180486950C94540520917B +:105B80001804922F96958927982F990F822F81704C +:105B9000892B809318048E7F91E009F490E0809126 +:105BA000180490FB80F9809318040E94EE288091DD +:105BB000180486950C9454055058BB27AA270ED07C +:105BC00075C166D130F06BD120F031F49F3F11F4F4 +:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC +:105BE00080F3BA17620773078407950718F071F4FA +:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 +:105C0000B90190010C01CA01A0011124FF27591B01 +:105C100099F0593F50F4503E68F11A16F040A22F07 +:105C2000232F342F4427585FF3CF46953795279578 +:105C3000A795F0405395C9F77EF41F16BA0B620B77 +:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE +:105C5000771F881FC2F70EC0BA0F621F731F841F01 +:105C600048F4879577956795B795F7959E3F08F027 +:105C7000B3CF9395880F08F09927EE0F97958795E6 +:105C80000895D9D008F481E008950CD00FC107D150 +:105C900040F0FED030F021F45F3F19F0F0C0511118 +:105CA00039C1F3C014D198F39923C9F35523B1F343 +:105CB000951B550BBB27AA2762177307840738F07B +:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA +:105CD0000E2E3AF0E0E830D091505040E695001C8E +:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A +:105CF000261737074807AB07B0E809F0BB0B802D24 +:105D0000BF01FF2793585F4F2AF09E3F510568F06F +:105D1000B6C000C15F3FECF3983EDCF38695779503 +:105D20006795B795F7959F5FC9F7880F911D969571 +:105D3000879597F90895E1E0660F771F881FBB1FCD +:105D4000621773078407BA0720F0621B730B840B7A +:105D5000BA0BEE1F88F7E095089504D06894B1114E +:105D6000D9C00895BCD088F09F5790F0B92F9927DB +:105D7000B751A0F0D1F0660F771F881F991F1AF056 +:105D8000BA95C9F712C0B13081F0C3D0B1E008951F +:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 +:105DA000869577956795B395D9F73EF4909580954C +:105DB000709561957F4F8F4F9F4F0895E89409C06C +:105DC00097FB3EF490958095709561957F4F8F4F2E +:105DD0009F4F9923A9F0F92F96E9BB279395F69544 +:105DE000879577956795B795F111F8CFFAF4BB0FC2 +:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 +:105E0000882311F096E911C0772321F09EE8872FAF +:105E1000762F05C0662371F096E8862F70E060E06B +:105E20002AF09A95660F771F881FDAF7880F9695E4 +:105E3000879597F90895990F0008550FAA0BE0E888 +:105E4000FEEF16161706E807F907C0F0121613063C +:105E5000E407F50798F0621B730B840B950B39F47C +:105E60000A2661F0232B242B252B21F408950A26E2 +:105E700009F4A140A6958FEF811D811D089597F922 +:105E80009F6780E870E060E008959FEF80EC0895E0 +:105E900000240A9416161706180609060895002409 +:105EA0000A9412161306140605060895092E039483 +:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 +:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 +:105ED0009058440F551F59F05F3F71F04795880F58 +:105EE00097FB991F61F09F3F79F0879508951216EF +:105EF00013061406551FF2CF4695F1DF08C016169B +:105F000017061806991FF1CF86957105610508944B +:105F10000895E894BB2766277727CB0197F9089562 +:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF +:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E +:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 +:105F5000F001729FBB27F00DB11D639FAA27F00DC2 +:105F6000B11DAA1F649F6627B00DA11D661F829FE9 +:105F70002227B00DA11D621F739FB00DA11D621FCE +:105F8000839FA00D611D221F749F3327A00D611DEB +:105F9000231F849F600D211D822F762F6A2F1124CD +:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 +:105FB000BB1F661F771F881F91505040A9F79E3F57 +:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 +:105FD000869577956795B795F795E7959F5FC1F794 +:105FE000FE2B880F911D9695879597F90895FA01D4 +:105FF000EE0FFF1F30962105310599F161157105EE +:1060000061F48038BFE39B0749F1689490388105BB +:1060100061F08038BFEF9B0741F0992342F5FF3FC5 +:10602000E1053105210511F1E8940894E795D901BE +:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 +:1060400070F4A695E0F7F73950F019F0FF3A38F4FC +:106050009F779F930CD00F9007FC905808953EF0C7 +:1060600014CF60E070E080E89FE308954FE79F77EA +:106070005F934F933F932F939ED02F913F914F91DA +:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C +:1060900026DFC8F39638C0F707F80F92E8942BE391 +:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F +:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B +:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 +:1060D0004427EE0F441FFA95E1F74195550B32D056 +:1060E0000F9007FE26C00895DF93CF931F930F9361 +:1060F000FF92EF92DF927B018C01689405C0DA2E4B +:10610000EF011EDFFE01E894A5912591359145919F +:106110005591AEF3EF0162DDFE019701A801DA941B +:1061200079F7DF90EF90FF900F911F91CF91DF9162 +:1061300008959B01AC0160E070E080E89FE3A5CD8D +:106140009ECEACC0CCDEE8F39923D9F3940F511D59 +:10615000BBF39150504094F059F0882332F0660F11 +:10616000771F881F91505040C1F79E3F510544F75B +:10617000880F911D9695879597F908955F3FACF02C +:10618000983E9CF0BB27869577956795B79508F460 +:10619000B1609395C1F7BB0F58F711F460FFE8CFDA +:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F +:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 +:1061C000DF93CF931F930F93FF92C92FDD2788236F +:1061D0002AF02197660F771F881FDAF720E030E05A +:1061E00040E85FEB9FE3883920F0803E30F0219655 +:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 +:1062000073DF8B01BE01EC01FB2E6F577109759591 +:10621000771F880B990BD4DD28E132E741E35FE378 +:106220008FDEAF2D9801AE01FF900F911F91CF919E +:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E +:10624000AC01BF5728F422273327442750781FC0BA +:10625000B75188F4AB2F0024469537952795011C3C +:10626000A395D2F3002069F0220F331F441FB3958A +:10627000DAF30DD0A1CC61307105A0E88A07B946E8 +:1062800030F49B01AC0166277727882790783096F9 +:1062900021F0208331834283538308959F3F31F05F +:1062A000915020F4879577956795B795880F911D44 +:1062B0009695879597F90895AA1BBB1B51E107C0D6 +:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 +:1062D000991F5A95A9F780959095BC01CD01089515 +:1062E00097FB072E16F4009407D077FD09D00E9483 +:1062F0005C3107FC05D03EF4909581959F4F089541 +:10630000709561957F4F0895EE0FFF1F0590F491F2 +:10631000E02D0994F999FECF92BD81BDF89A992795 +:1063200080B50895A8E1B0E042E050E00C94B231AD +:10633000262FF999FECF92BD81BDF89A019700B43E +:10634000021639F01FBA20BD0FB6F894FA9AF99ADE +:106350000FBE08950196272F0E9499310C94983111 +:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 +:10637000F89A319600B40D9241505040B8F7089504 +:04638000F894FFCFBF +:1063840007000C52D02445000000410000DC44000A +:1063940000004152D0A4440000404100005C44008D +:1063A40000004148F17644000000415C978A4400B3 +:1063B4000000411FD592440000004152D0A4440083 +:1063C4000000415CFFB844000000410AA7CF44002C +:1063D4000000410000DC44000000410AA7CF440053 +:1063E4000000410000DC4400000041000000000007 +:1063F40000804000005C45000040410000000000B7 +:1064040000804052D02445000040410AA7CF4400F8 +:106414000000410000DC44000000410000000000D6 +:1064240000804052D024450000404100000000009C +:1064340000804000005C45000040410AA7CF4400B2 +:106444000000410000DC44000000410000000000A6 +:1064540000804052D024450000404100000000006C +:106464000080400AA74F45000040410AA7CF4400DE +:106474000000410000DC4400000041000000000076 +:1064840000804052D024450000004100000000007C +:106494000080405CFF38450000004100000000001F +:1064A40000804052D02445000000410AA7CF440098 +:1064B4000000410000DC4400000041000000000036 +:1064C40000804052D024450000804153D024450030 +:1064D40000404160970A450000004154D0A44400A4 +:1064E4000000410000DC440000004160970A4500C0 +:1064F40000A041050000003F0000C8423214C0144F +:106504009D14691435140101DA032808140A321E93 +:106514000000020004000500070009000B000C0045 +:106524000E001000110013001500170018001A00C7 +:106534001C001D001F002100230024002600280049 +:1065440029002B002D002F003000320034003500CC +:10655400370039003B00400045002500260061005B +:106564006000200037006400650066006700440096 +:106574004600240047003F4D3639BD0970093A09E9 +:1065840001099408AD08C608DF08010203040506E2 +:0465940007080900EB +:00000001FF diff --git a/keyboard/planck/planck_pcb_r4_w_bootloader.hex b/keyboard/planck/planck_pcb_r4_w_bootloader.hex new file mode 100644 index 000000000..f2e9993ac --- /dev/null +++ b/keyboard/planck/planck_pcb_r4_w_bootloader.hex @@ -0,0 +1,1880 @@ +:020000020000FC +:047000000C948D3E21 +:047028000C94B73DD0 +:10702F0012010002FF010020EB03F42F0000010208 +:10703F00030109021200010100803209040000005F +:10704F00000000000C03410054004D0045004C00AF +:10705F001603410054006D00330032005500340018 +:10706F004400460055000C0331002E0030002E0066 +:10707F0030000403090416010C0100000C0000018C +:02708F006C7F14 +:1070920012BD01BDF89A00B5089501E00895F9996D +:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929 +:1070B200FECF0C944938F80104910895F8013491F7 +:1070C20031962491890108950091610000930C0189 +:1070D20000E80093610001E00093610005BF02E057 +:1070E20005BF0C9486380091D70001600093D70049 +:1070F200A89507EF04BF0091600000610093600053 +:1071020000E00093600001E008950E94AA3D0E9401 +:10711200B53DFDCF0CD00F7708D0006806D00061D6 +:1071220004D0016028D0789408950093D80000918B +:10713200D8000895FCDF00621ED04CD009B500FFD4 +:10714200FDCFF5DF0F7D17D00091E0000E7F009399 +:10715200E0000091E000077F0093E0000091E20070 +:1071620001600093E2000091E20008600093E200F7 +:1071720078940C94743B0093D800089500910D010B +:10718200002359F40091D90000FF07C0D0DF006846 +:10719200F2DF01E000930D01CDDFE0E2F2E00081D9 +:1071A200018100FF0DC0008111811E7F11830083C8 +:1071B20001E00093EA0000E00093EA0000931E025F +:1071C20000E00093E9000091E80003FF02C00E9482 +:1071D200F23B0895A89539D000E40093600000E0E6 +:1071E200009381000093800010E0009385000093DB +:1071F200840001E006BB00918100036000938100DE +:107202000091600007FFFCCF00E80093600010933C +:107212008100A89507EF04BF18D010936000209159 +:1072220084003091850010938100109380001093A8 +:1072320085001093840001E006BB2D3D354010F01F +:1072420002E101C002E009BD089500916000006101 +:107252000093600008950E94AD3E239741D100E063 +:1072620000930901B5D104811581012B51F437D165 +:1072720000910701002309F4B9C000E0009307015F +:10728200B5C058D102FFFDCF37D1068335D1009367 +:107292000F0132D1009310012FD1009311012CD193 +:1072A2000093120129D10093130102852091130149 +:1072B20030911201409111015091100116811A95DD +:1072C20041F01250A9F01A9599F11A9509F473C078 +:1072D2008BC010910F01113011F411E001C010E0C8 +:1072E200138799D00C3F11F414D17FC077D17DC0A0 +:1072F20092D010910F01112329F01A9549F01A9595 +:10730200A9F073C010E013870C3F09F06EC0ECCFF8 +:1073120056D103C04CD109F468C00D911C9144D1DF +:107322000F3FC1F305E0009309015FC011E0EBCF0D +:10733200D2D029F00250E1F10A9541F056C0FDD0B9 +:107342000E94A33F0FEF00930A014FC0552319F08B +:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE +:1073620003FFFDCF67D051D04AD008E00093600000 +:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F +:1073820044D00FEF1FE004C009811A810150104060 +:1073920009831A8309811A81012BB1F700E800934E +:1073A200610000910C01009361000C940000FFCF7A +:1073B20001E003871AC08FD019F00A9539F015C081 +:1073C200535098F4BAD002E000870FC0505339F0FE +:1073D2005A9541F05F52B1F35A95A1F306C002E00B +:1073E2000883F0CF01E0FCCFA8D079D02396E4E067 +:1073F2000C94BA3E01E005BF00E005BF089500917C +:10740200D8000F770093D800089509B50D7F09BD04 +:1074120000E009BD08955183408333832283109194 +:10742200E8001B7F1093E8001091E8001F7710938B +:10743200E80008955DD053D0F8940091E000016017 +:107442000093E000089579D04AC0219749D0009175 +:107452000601035019F00250B9F00BC03CD021F0E4 +:107462000A9559F00A9529F400910A010C3F19F482 +:1074720050D02196089567D0FCCF0091010100936E +:10748200F100009100010AC01091100124D019F0FE +:107492000A9549F0EECF135018F400E00093F10082 +:1074A2001ED044D0E6CF105339F01A9539F01F524E +:1074B20041F01A9541F0F4CF08E5F0CF00E006D094 +:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5 +:1074D20030E00C94113F00910F010023089521C068 +:1074E2000BD008D007D00093040106D00093050109 +:1074F20021D00BC000D008830091F10008950091C3 +:10750200EB0000620093EB0015D0077F0093E800C8 +:107512000895F5DF02E00093080103E000930901FA +:10752200089559D007D000FFFDCF089503D002FF80 +:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A +:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD +:107552002BD00093F1002BD059F43DD0082F092BEA +:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1 +:10757200042D4394003289F300910B0100230D91F5 +:107582001C9131F311970E945838E3CFD3DF00FFEB +:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B +:1075A200CCDFE5E00C94B93E11970C945C380D9158 +:1075B2001C910F5F1F4F1C930E93019708958281B8 +:1075C200938100811181801B910B0196DF01089547 +:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71 +:1075E200F7DF80819181A081B181AF710481158122 +:1075F20000521040048315830AC000910B0100233E +:1076020031F4A301920103E911E00E943B3F47D00C +:10761200B8F1662477242C0111C06EDFF301ED5618 +:10762200FE4F008301E0600E00E0701E01960091A3 +:10763200F200002311F033D0B8F47FDF30D0E8F24B +:10764200F301B096E238F040C0F674DF02FFFDCFDE +:107652000091F200BDDF24813581201B304024835C +:107662003583E5CF49DFAA95AA23E1F700910B0103 +:10767200013099F62091F1008C010E945038D6CF4A +:1076820004811581012B21F055DF02FFFDCF55DF6B +:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051 +:1076A200F1E0028113810817190708952091EB0078 +:1076B20021602093EB000093EC000091ED0002703A +:1076C200012B0093ED000091ED0002600093ED00AC +:1076D2001091EE00012F000F00E0001F0895412FCE +:1076E2000093E900089500E009D000FD05C000E024 +:1076F200F7DF10E202E0DACF00E00895F1DF009157 +:10770200EB0008950F770132A9F5112369F11A955B +:1077120059F01A9561F01A9569F01A95F9F01A95CF +:10772200C1F01A95D9F024C00E942C3920C00E94C1 +:10773200263A1DC029D00091090123D001E01FD0B3 +:1077420020D0009108011BD00E94923A0E94973AE1 +:107752000EC01AD00091080114D007C002E00093B5 +:10776200080100E0009309010FD00E94923A03C081 +:107772000E94803A02C001E0089500E0089501D01D +:1077820000E00093F10008950091E800077F009364 +:10779200E800089508950350F9F4112339F01A9579 +:1077A20051F01A9581F01A9599F016C004E016D09E +:1077B20001E810E703C011D003E510E7E7E1F2E0CA +:1077C20000831183D8CF06E109D00FE510E7F6CF89 +:1077D20004D005E710E7F2CFD0CF0CE000931A02F5 +:1077E200089527D120D100931D02E1D0212F11232A +:1077F20029F12A95E9F02250F1F0225099F02A95C8 +:1078020049F0225061F02A9581F02A95E1F02A95FB +:10781200E9F023C0003809F44FC00C94833B0038D0 +:10782200E1F7C8C00023C9F71EC00023B1F72DC07D +:10783200033098F744C1033080F70BC1003868F376 +:10784200033858F7C9C0013841F77BC1013051F400 +:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA +:1078620009F41ED008951091E3001078DCD00F7750 +:10787200012B0093E300E9D0ACD000FFFDCF0091D3 +:10788200E30000680093E300089591D0123040F4C1 +:107892000FD010931E02DAD000911E020C94CB3B43 +:1078A2000091EB0001D004C000620093EB00089548 +:1078B2000091E800077FC0C0BA93AA93229700E024 +:1078C2000093190274D0AFD0202F2A9519F02A956F +:1078D200E9F022C002E100931A020FE210E7E7E1A9 +:1078E200F2E0008311839DD008839DD00983E0DFFD +:1078F20000911A0210E02881398102171307A8F4B7 +:107902000F7181F401E00093190211C002E10093AA +:107912001A0201E410E7E3CF0E94CC3B002319F7DF +:107922008ED040C01093190202C020931A027ED05A +:10793200A7E1B2E001C08AD000911A02002309F146 +:1079420048D004FD1EC045D000FD03C042D004FF54 +:10795200FACF10E0012F1395003281F0ED91FC91E6 +:107962001197049133D02D913C912F5F3F4F3C935F +:107972002E93FD0103810A95038361F72AD004FF48 +:10798200DACF00911902013039F423D004FD04C08A +:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F +:1079A20018D00B7F49D02296A991B99108951091D0 +:1079B200F10008957DDF00911E0208D047D009D062 +:1079C2000F773AD006D002FFFDCFBFC00093F1007F +:1079D20008950091E800089524D010911D021058D6 +:1079E20029F01A9589F01A9591F019C061DF00917A +:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63 +:107A020018D0E7DF0F770CC053DF00E0F2CF51D080 +:107A12000F7710E0F801E55EFD4F0081EACF0FD04D +:107A22000BC001D000D00091F1000895D2DF0F7E8B +:107A320003C00091E8000B7F0093E80008950091D5 +:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31 +:107A5200F3CF00911D02002329F00A9509F10A953E +:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE +:107A7200B9F4D9DF0F7711F416D01BD00093E900C7 +:107A82001091EB0010FF0BC00ED010E01093E90034 +:107A920021E0F801E55EFD4F20834FD003C042D0C4 +:107AA20045D0CFDFC9CF1091EB0010621093EB00ED +:107AB20008951091E800177F1093E800089500914F +:107AC2001D02002311F4AFDF02C0013011F4B7DF51 +:107AD200B3CF023031F52DD019F52091F1002F7777 +:107AE2002093E90023D000FF19C081F01FD000616C +:107AF200DCDE01E010E0422F0E949F3E0093EA008C +:107B020000E00093EA0012D00860CFDE0BD030E034 +:107B1200F901E55EFD4F008310D0DACF03D0D7CF55 +:107B2200BFDE089500E00093E90008950091EB00A4 +:107B3200089579DF3CDF00230895BADE4ADF0E7F25 +:107B4200089583DF46DF02FFFDCF73DF42DF0F7749 +:107B520073CF0091D70001600093D7000E948B3849 +:107B620000E000931F0208950C94BF388A93FA93A1 +:107B7200EA933A922A921A920A927A936A935A93BF +:107B82004A933A932A931A930A938FB70091DA0091 +:107B920000FF24C00091D80000FF20C00EEF009328 +:107BA200DA000091D90000FF11C001E000930D013D +:107BB200ABD0026096D09AD00860A2D00E949B38C7 +:107BC2000091E0000E7F0093E00008C000E0009307 +:107BD2000D0100931E0298D0046083D07FD002FF73 +:107BE20005C084D002FF02C00BEF75D077D000FF32 +:107BF2001BC07CD000FF18C001E000930E016AD0C8 +:107C020083D000626ED00EEF6FD0006179D06ED05B +:107C12000F7D76D00091D80000620093D80009B59C +:107C22000D7F09BD00E009BD59D004FF20C05ED020 +:107C320004FF1DC009B500FD05C00E94EB3809B55F +:107C420000FFFDCF0091D8000F7D0093D80042D0F5 +:107C520000910E01002359F04CD00FEE45D00F7E5B +:107C620052D000643ED042D001604AD042D036D0D9 +:107C720005FF0FC03BD005FF0CC000E000930E01D2 +:107C820035D00F7E3DD00FED2FD00F7D3CD0006858 +:107C920028D024D003FF0DC029D003FF0AC000E082 +:107CA20000931F0207EF17D00E94743B2DD0116082 +:107CB20018D08FBF09911991299139914991599100 +:107CC200699179910990199029903990E991F991E6 +:107CD200899118950FEE0093E10008950091E1005B +:107CE20008951183008308950093E1000091E2005A +:107CF20008950091E200006203D00091E200086062 +:107D02000093E2000895FCDFE0E2F2E000811181DD +:107D1200089500008895FECF01E60DBF02E00EBF78 +:107D2200C2EED2E00E947438002311F00E94D33ECA +:107D32000E9465380E948A3E0C948A3E4A951AF047 +:107D4200000F111FFBCF0895BA92AA929A928A92BB +:107D52007A926A925A924A92BA93AA939A938A937D +:107D62000895BB84AA84998488847F806E805D8014 +:107D72004C80BB81AA8199818881F0E00FB6F8948A +:107D8200CE0FDF1F0FBE089520E006D0E9F7089559 +:107D9200259102D0E9F708952D9301501040202F2C +:107DA200212B089585E890E7FC0105911491FC01CF +:107DB2003296A591B491FC01349625913491422FCB +:107DC200432B19F0F901E4DF01C0DEDF069610E76C +:107DD2008139910748F308952F930CD02F9101D048 +:107DE20008953CD0F12FE02F45E047BFE89536D00B +:107DF20012D0089533D0F12FE02F43E047BFE8952A +:107E02002DD008952BD0F12FE02F43E047BFE89506 +:107E120025D001D0089522D041E147BFE8951EC088 +:107E22001DD0F12FE02F41E247BFC895002D16C0AB +:107E320015D0F12FE02F49E047BFC895002D0EC0A5 +:107E4200F32FE22F012E102E41E047BFE89506C026 +:107E520005D0002E29E027BFE89500C0022E27B7E3 +:107E620020FDFCCF202D0895022E27B726FDFCCF42 +:107E7200202D08950E94A53E22974801C901DA01EA +:107E820010C05BD001E0A00E00E0B01E00E4A0161E +:107E920000E0B00608F440C0830120E030E00E9418 +:107EA200F23E0A2F0B2B09F440C0082F0F7710E087 +:107EB2002C01401A510A320100E4A02E03C00A2FFD +:107EC2000B2BE1F04816590680F0F40101914F01A5 +:107ED2000983119729F001914F010883119711C06D +:107EE200F2013196049108830CC0F20104910983D6 +:107EF2003196E817F907A1F7F401EDCF1BD00883FB +:107F020019839201088119810E94213F16D0AA94F7 +:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE +:107F220009F4AFCF83011DD0B7CF01E02296ECE078 +:107F32000C94B23E82010C945F3802E0400E00E0E5 +:107F4200501E08959A938A9380E090E08C0109D0A4 +:107F520080589F4F8F3F0FE69007C0F38991999108 +:107F6200089520E030E00C94FB3E00000000000089 +:067F720000000000FC000D +:107FE4000C94ED3E0C94113F0C94193F0C94213FDA +:0C7FF4000C94F23E0C94033F0C94293FC7 +:040000030000700089 +:100000000C94FE040C9442050C9442050C94420599 +:100010000C9442050C9442050C9442050C94420544 +:100020000C9442050C9442050C94A6180C94781973 +:100030000C94DB270C9442050C9442050C94420569 +:100040000C9442050C9442050C9442050C94420514 +:100050000C9442050C9443280C9442050C944205E0 +:100060000C9442050C9442050C9442050C944205F4 +:100070000C9442050C9442050C9442050C944205E4 +:100080000C94D10E0C9442050C9442050C9442053C +:100090000C9442050C9442050C9442050C944205C4 +:1000A0000C9442050C9442050C9442059D05AD0547 +:1000B000BF05CF05D505E405F005F60504060D06D8 +:1000C0001E062E06340664069013901390139013A8 +:1000D000901390139013901390139013A713A713DA +:1000E000A713A713A713A713A713A713A713A71340 +:1000F00090139013901390139013A713A713A713A3 +:10010000A713A713901390139013A713A713A71364 +:10011000E519071AF51A071AF51A4C1A6F1AF51A83 +:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C +:1001300027212721C81E2721C91FC91F8C20A320C2 +:100140002721122107634236B79BD8A71A39685670 +:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 +:10016000753EF6177231BF000000803F08000000A6 +:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C +:1001800000000080BEABAAAAAA3E00000000BF008B +:100190000000803F0000000000084178D3BB438787 +:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B +:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 +:1001C0003F00000000002B0014001A00080015007A +:1001D00017001C0018000C00120013002A00290050 +:1001E00004001600070009000A000B000D000E00B5 +:1001F0000F0033003400E1001D001B000600190051 +:1002000005001100100036003700380028000530C6 +:10021000E000E200E30003302C002C00043050002A +:10022000510052004F002B0014001A000900130067 +:100230000A000D000F0018001C0033002A002900DE +:10024000040015001600170007000B00110008003D +:100250000C0012003400E1001D001B000600190014 +:1002600005000E0010003600370038002800053069 +:10027000E000E200E30003302C002C0004305000CA +:10028000510052004F002B0034003600370013009D +:100290001C0009000A00060015000F002A002900B2 +:1002A00004001200080018000C0007000B001700E3 +:1002B000110016003800E100330014000D000E009C +:1002C0001B00050010001A0019001D002800053051 +:1002D000E000E200E30003302C002C00043050006A +:1002E000510052004F0035021E021F02200221025F +:1002F0002202230224022502260227022A004C00A1 +:100300003A003B003C003D003E003F002D022E0223 +:100310002F02300231020100400041004200430040 +:10032000440045000100010001000100010001003E +:100330000100010001000100010001000100AB000B +:10034000AA00A900AE0035001E001F0020002100F9 +:100350002200230024002500260027002A004C004C +:100360003A003B003C003D003E003F002D002E00C7 +:100370002F003000310001004000410042004300E6 +:1003800044004500010001000100010001000100DE +:100390000100010001000100010001000100AB00AB +:1003A000AA00A900AE00000000000000000000004C +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F0000000000000000330000000000430000096 +:100400000000000000001E001E001E001E001E0056 +:100410001E001E001E001E001E001E001E0000000A +:1004200014001A000800150017001C0018000C002A +:10043000120013002F00000004001600070009003E +:100440000A000B000D000E000F00330034000D30C9 +:10045000000000000600190000000000110010005C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C00000000000000001000050010001000100D5 +:1007D0000100010001000100010001004C000100C6 +:1007E0000100010007300630135012500030013074 +:1007F00002300C30010001000B300A3009300830A3 +:1008000001000100010001000100010001000100E0 +:1008100001000100010001000100010001000100D0 +:100820000100010001002803540068006500200059 +:1008300050006C0061006E0063006B0020004B00F4 +:100840006500790062006F006100720064000000C2 +:100850002C034F007200740068006F006C00690088 +:100860006E0065006100720020004B006500790099 +:1008700062006F00610072006400730000000403F6 +:10088000090409026D00040100A0FA090400000136 +:1008900003010100092111010001223F0007058128 +:1008A0000308000A090401000103010200092111E3 +:1008B000010001224D000705820308000A09040215 +:1008C0000001030000000921110100012236000788 +:1008D00005830308000A090403000103000000095E +:1008E00021110100012239000705840310000112C3 +:1008F00001100100000008EDFE606001000102002F +:100900000105010906A101050719E029E7150025E0 +:1009100001950875018102050819012905950575DC +:1009200001910295017503910105071900297715B9 +:10093000002501957875018102C005010980A1019A +:10094000850216010026B7001A01002AB7007510AB +:1009500095018100C0050C0901A101850316010064 +:10096000269C021A01002A9C02751095018100C084 +:1009700005010902A1010901A100050919012905C3 +:100980001500250195057501810295017503810109 +:100990000501093009311581257F95027508810609 +:1009A00009381581257F950175088106050C0A38DF +:1009B000021581257F950175088106C0C0050109D2 +:1009C00006A101050719E029E7150025019508751D +:1009D0000181029501750881010508190129059514 +:1009E000057501910295017503910105071900290B +:1009F000FF150025FF950675088100C011241FBE54 +:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 +:100A1000190490911A04A0911B04B0911C04873012 +:100A2000904BA740B04BB9F41092190410921A04DD +:100A300010921B0410921C0414BE84B7877F84BFDD +:100A400088E10FB6F89480936000109260000FBEAA +:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 +:100A600002C005900D92A431B107D9F714E0A4E1BA +:100A7000B3E001C01D92A931B107E1F70E94EC1566 +:100A80000C94C0310C940000279A2F988FEF9FEFA1 +:100A900090938700809386008AE08093800089E1AC +:100AA000809381000C94452D282F81110BC08091DB +:100AB0008000877F8093800010928D0010928C00C0 +:100AC0002F9808952F9880918000886080938000EF +:100AD000233019F48FEF9FEF0FC083E090E0821B6B +:100AE0009109880F991F2FEF3FEFA90102C056957A +:100AF00047958A95E2F7CA0190938D0080938C0008 +:100B00000895CF93DF93EC010E94DC28BE0180E0C2 +:100B100090E0DF91CF910C9407250F931F93462F00 +:100B200050E04E30510508F0DEC0DC01FA01EA5A0F +:100B3000FF4F12968C910C948431882309F4D3C012 +:100B400000E010E0980140E064E070E08BE292E0A9 +:100B50000E944F1281E090E00FC0882309F4C3C0C7 +:100B600000E010E0980140E066E070E08BEB91E07F +:100B70000E944F1282E090E00E948105B4C0882359 +:100B800009F4B1C000E010E0980140E068E070E0D6 +:100B90008BEE91E00E944F1284E090E0EDCF88232D +:100BA00011F083E005C083E00CC0882349F084E0A5 +:100BB0000E94842540E164E083E00E94910A93C092 +:100BC00084E00E94A525F6CF882331F085EE0E94AF +:100BD0006E1C0E949C2D87C085EE0E94361D83C02E +:100BE000882309F480C00E94E30D7DC0882309F4A6 +:100BF0007AC00E94DC0D00E010E0980140E065E062 +:100C000070E08BE492E027C0882309F46CC085E093 +:100C10000E94A5250E94040E66C0882309F463C0C3 +:100C200000E010E0980140E068E070E08BE191E0C6 +:100C30000E944F1285E00E94842555C0882309F444 +:100C400052C00E94E21200E010E0980140E068E02B +:100C500070E08BE191E00E944F1245C0882309F4B7 +:100C600042C00E94ED12EFCF8823E9F100E010E0CE +:100C7000980140E066E070E08BE891E00E944F123E +:100C800084E00E94A52583E00E94A52580E10E94C2 +:100C9000A52585E00E94A5250E94040E86E00E94FD +:100CA00084250E94C928811102C00E94A5280E94A3 +:100CB000E12890E090931804809317048068809353 +:100CC00017040E94E5280FC0882369F000E010E0B7 +:100CD000980140E066E070E08BE591E00E944F12E1 +:100CE00086E00E94A52580E090E01F910F91089575 +:100CF0000F931F932FEF89EF90E021508040904099 +:100D0000E1F700C0000000E010E0980140E065E07D +:100D100070E08BE492E00E944F121F910F910895B2 +:100D20000F931F9300E010E0980140E063E070E053 +:100D300083E091E00E944F122FEF82E597E021506F +:100D400080409040E1F700C000001F910F9108958E +:100D5000CF92DF92EF92FF920F931F93CF93DF9387 +:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 +:100D7000CDBF2091D10325FFC5C08C01FC0192811C +:100D800080910201992309F460C096E4E0E9F2E061 +:100D9000DE01A95BBF4F01900D929A95E1F7F80132 +:100DA0009081E0910001F0910101E90FF11DEE0F3A +:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F +:100DC0007181680F711D882777FD8095982F0E948B +:100DD000E02E20E030E040E451E40E94452E6B011B +:100DE0007C01F801218184E090E0821B9109BC0123 +:100DF000882777FD8095982F0E94E02E9B01AC01FB +:100E0000C701B6010E94DD2D9B01AC0160E070E0DE +:100E100080E090E40E94F72F20E030E04CE551E4C0 +:100E20000E94942F4FE050E0C457DF4F0FB6F89464 +:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D +:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 +:100E5000DE01119601900D929A95E1F7F8019081CB +:100E6000E0910001F0910101E90FF11DEE0FFF1F6C +:100E700021E030E02C0F3D1FE20FF31F60817181F4 +:100E8000680F711D882777FD8095982F0E94E02EAE +:100E900020E030E040E451E40E94452E6B017C01EB +:100EA000F801218184E090E0821B9109BC01882730 +:100EB00077FD8095982F0E94E02E9B01AC01C70121 +:100EC000B6010E94DD2D9B01AC0160E070E080E086 +:100ED00090E40E94F72F20E030E04CE551E40E94BE +:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF +:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 +:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 +:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 +:100F2000CF90089508950E9444056E9A769A0C9485 +:100F300078060C9492070C94A8060895880F991FC0 +:100F4000FC01EA5BFF4F859194910895880F991FEA +:100F5000FC01EA53FE4F8591949108950F931F93DE +:100F6000CF93DF93EC01811520E49207A0F5C11522 +:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 +:100F8000D10508F0EEC1C83AD10578F4C53AD105CB +:100F900008F074C0C130D10509F46DC008F4DEC199 +:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F +:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD +:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 +:100FD0008E01106506C2C13080E5D80709F4BDC096 +:100FE00068F5C13120E4D20709F4AEC050F4C03135 +:100FF00090E4D90708F0A5C0CF70DD278E01146DED +:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 +:10101000C115D04509F0A2C10E944B210E94040EC7 +:101020000E9490069FEF24E38CE091502040804086 +:10103000E1F700C000000E946828D3C1C11520E676 +:10104000D20730F4C11581E5D80708F48CC02DC152 +:10105000C11590E7D90708F481C1C11520E8D2076E +:1010600008F478C1C11580E9D80708F077C1DF70AE +:101070008E01106AB6C101E010E0B3C1C53AD105D6 +:1010800009F471C1C63AD10509F070C102E810E453 +:10109000A8C1C83AD10509F46CC1C93AD10509F40F +:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A +:1010B00069C1CC3AD10509F468C1CD3AD10509F42A +:1010C00067C1C03BD10509F466C1CE3AD10509F428 +:1010D00065C1CF3AD10509F464C1C13BD10509F41A +:1010E00063C1C23BD10509F462C1C33BD10509F418 +:1010F00061C1C43BD10509F460C1C53BD10509F408 +:101100005FC1C63BD10509F45EC1C73BD10509F4F7 +:101110005DC1C83BD10509F45CC1C93BD10509F4E7 +:101120005BC1CA3BD10509F45AC100E014E459C1BE +:10113000CE019F700E94A60755C1DD278E01106C5D +:1011400050C100E011ED4DC100E010ED4AC100E0DA +:1011500012ED47C100E013ED44C18091ED038160C1 +:101160008093ED033EC10E94C928811102C00E94F4 +:10117000A5280E94E12890E090931804809317041A +:10118000C23090E5D90721F480911704816086C0B0 +:10119000C43020E5D20721F48091170482607EC01C +:1011A000C63080E5D80721F480911704846076C0AA +:1011B000C83090E5D90719F48091170427C0CA30C8 +:1011C00020E5D20721F480911704806167C0CC30FC +:1011D00080E5D80721F48091170480625FC0CE308B +:1011E00090E5D90721F480911704806457C0C0317D +:1011F00020E5D20721F48091170480684FC0C231E6 +:1012000080E5D80729F4809117048460886046C07F +:10121000C33090E5D90721F4809117048E7F3EC03A +:10122000C53020E5D20721F4809117048D7F36C0A8 +:10123000C73080E5D80721F4809117048B7F2EC03A +:10124000C93090E5D90719F48091170426C0CB3036 +:1012500020E5D20721F4809117048F7E1FC0CD3086 +:1012600080E5D80721F4809117048F7D17C0CF3017 +:1012700090E5D90721F4809117048F7B0FC0C1310D +:1012800020E5D20721F4809117048F7707C0C3317E +:10129000D04531F4809117048B7F877F80931704AA +:1012A000809117040E94E5289CC08D2F99278F708C +:1012B000992781309105D9F49E012370332702C00C +:1012C000880F991F2A95E2F79C688E0144E0000F71 +:1012D000111F4A95E1F700271370802B912B53E0E3 +:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 +:1012F000910531F4DC2FCC278E01016F106A71C08B +:101300008330910569F4CE018370992701E010E0E4 +:1013100002C0000F111F8A95E2F7C8019C680FC038 +:10132000049709F05EC0CE018370992701E010E0B8 +:1013300002C0000F111F8A95E2F7C8019A6823E0E6 +:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 +:101350001D2B47C0DF708E01106243C000E010E01B +:1013600040C08E013EC001E810E43BC003E810E439 +:1013700038C002EE14E435C009EE14E432C00AEEBF +:1013800014E42FC005EB14E42CC006EB14E429C0D0 +:1013900007EB14E426C00CEC14E423C00DEC14E4B9 +:1013A00020C003E815E41DC00AE815E41AC002E9EC +:1013B00015E417C004E915E414C001E216E411C0F5 +:1013C00003E216E40EC004E216E40BC005E216E4E4 +:1013D00008C006E216E405C007E216E402C00AE20D +:1013E00016E4C801DF91CF911F910F9108959CE001 +:1013F000799FF001112490E3899FE00DF11D1124E4 +:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 +:10141000803E9105E0F4803C910558F581339105BB +:1014200009F46FC048F48932910509F463C08A3227 +:10143000910509F46DC072C089339105E9F08238D5 +:101440009105D1F08533910509F44DC067C0833E05 +:10145000910581F138F4803E9105B9F0823E910505 +:10146000D9F05CC0863E910561F1873E9105A1F1FE +:1014700055C00E949E0708952091170420FD02C0C8 +:1014800021FF4CC080EE90E049C08091170480FF9E +:10149000F9CF89E390E042C08091170482FF0EC02B +:1014A0008091170484FF03C080E090E037C083EE92 +:1014B00090E034C08091170482FFF2CF82EE90E07A +:1014C0002DC08091170483FF0BC08091170484FD09 +:1014D000EBCF87EE90E022C08091170483FFF5CF19 +:1014E00086EE90E01BC08091170485FF07C089E25B +:1014F00090E014C08091170485FFF9CF85E390E058 +:101500000DC08091170486FF07C08AE290E006C0F4 +:101510008091170486FFF9CF81E390E00E94AE0727 +:101520000895CF92DF92EF92FF920F931F9301E005 +:1015300010E020E030E06801790104C0CC0CDD1C33 +:10154000EE1CFF1C8A95D2F704C0000F111F221F4A +:10155000331F6A95D2F70C291D292E293F29C090E7 +:10156000D103D090D203E090D303F090D403C022F3 +:10157000D122E222F322842FC016D106E206F3061E +:1015800041F41F910F91FF90EF90DF90CF900C945A +:1015900084251F910F91FF90EF90DF90CF900C94D6 +:1015A000A52508950C94D10A5F926F927F928F9235 +:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 +:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C +:1015D000DEBF0FBECDBFCE0101966C014E0199E07A +:1015E000890E911C20E030E040E050E060E070E0C7 +:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 +:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA +:1016100001900D928A95E1F7F601819191916F0108 +:10162000FC01E07FFF27E032F10559F48F70992724 +:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E +:1016400037C0E033F10559F48F709927F50102C0D6 +:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 +:10166000F10559F48F709927F50102C0EE0FFF1FA5 +:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC +:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 +:101690004E2B5F2B0DC0E036F10551F48F7099276A +:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC +:1016B000C814D90409F0A7CF84B19E2D9095892331 +:1016C00084B985B1E82AE5B887B1902F9095892330 +:1016D00087B988B1082B08B98AB1962F90958923CC +:1016E0008AB98BB1682B6BB98DB1942F90958923F2 +:1016F0008DB98EB1482B4EB980B3922F9095892326 +:1017000080BB81B3282B21BB28960FB6F894DEBF8F +:101710000FBECDBFDF91CF911F910F91FF90EF9042 +:10172000DF90CF90BF90AF909F908F907F906F9001 +:101730005F9008955F926F927F928F929F92AF9287 +:10174000BF92CF92DF92EF92FF920F931F93CF93AE +:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 +:10176000CDBF85B7806885BF85B7806885BF0E947B +:10177000D40ACE0101966C014E0199E1890E911CAB +:1017800020E030E040E050E060E070E000E010E099 +:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA +:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 +:1017B0008A95E1F7F601819191916F01FC01E07F3B +:1017C000FF27E032F10559F48F709927F50102C027 +:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB +:1017E000F10559F48F709927F50102C0EE0FFF1F24 +:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E +:101800008F709927F50102C0EE0FFF1F8A95E2F74E +:101810006E2B7F2B1BC0E035F10559F48F70992793 +:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA +:101830000DC0E036F10551F48F709927F50102C013 +:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 +:1018500009F0A7CF84B19E2D9095892384B985B1D5 +:10186000E82AE5B887B1902F9095892387B988B188 +:10187000082B08B98AB1962F909589238AB98BB124 +:10188000682B6BB98DB1942F909589238DB98EB14A +:10189000482B4EB980B3922F9095892380BB81B39A +:1018A000282B21BB10921D0310921C0310921503CC +:1018B0001092140310921F0310921E03109217032C +:1018C0001092160310922103109220031092190314 +:1018D00010921803109223031092220310921B03FC +:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 +:1018F000DF91CF911F910F91FF90EF90DF90CF90EC +:10190000BF90AF909F908F907F906F905F900C945E +:1019100093077F928F929F92AF92BF92CF92DF9266 +:10192000EF92FF920F931F93CF93DF93CDB7DEB764 +:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 +:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 +:10195000BC2CAD2C01E010E028E1822E35E0932E66 +:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 +:10197000E1F7F601819191916F019C01207F33275E +:101980002032310591F424B18F709927A80102C04B +:10199000440F551F8A95E2F7CA01922F982B94B9EC +:1019A00095B18095892385B953C02033310591F4D1 +:1019B00027B18F709927F80102C0EE0FFF1F8A959B +:1019C000E2F7CF01922F982B97B998B18095892390 +:1019D00088B93EC02034310591F42AB18F7099271F +:1019E000A80102C0440F551F8A95E2F7CA01922F41 +:1019F000982B9AB99BB1809589238BB929C0203542 +:101A0000310591F42DB18F709927F80102C0EE0FC6 +:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 +:101A2000809589238EB914C02036310589F420B3FE +:101A30008F709927A80102C0440F551F8A95E2F7BD +:101A4000CA01922F982B90BB91B38095892381BBBB +:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A +:101A600040E050E0EEEDF2E0DE011196882D0190AD +:101A70000D928A95E1F7FB0181919191BF01FC01E3 +:101A8000E07FFF27E032F10511F4E3B113C0E0334A +:101A9000F10511F4E6B10EC0E034F10511F4E9B13D +:101AA00009C0E035F10511F4ECB104C0E036F105F0 +:101AB000B9F4EFB1F0E08F70992702C0F595E79582 +:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 +:101AD000991F0A94E2F702C080E090E0282B392B8E +:101AE0004F5F5F4F4C30510509F0BCCFF70180814B +:101AF00091818217930721F03183208390927302A2 +:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F +:101B1000F40609F025CF80917302882361F181508A +:101B200080937302882339F08FE99FE00197F1F7E2 +:101B300000C0000020C08091140390911503909381 +:101B40001D0380931C0380911603909117039093BB +:101B50001F0380931E0380911803909119039093A3 +:101B600021038093200380911A0390911B0390938B +:101B70002303809322030E94990781E0A0960FB669 +:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 +:101B9000FF90EF90DF90CF90BF90AF909F908F908D +:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA +:101BB00080819181089508958091020481608093CD +:101BC00002040C94F728809102048E7F8093020413 +:101BD0000C94F7280E94C928811102C00E94A528F0 +:101BE0000E94F328809302043E9A809171008D7FB9 +:101BF0008093710082E0809390008AE1809391004D +:101C000081E080932603089580912603811102C00C +:101C10000E94EA0D10927603109275038091710074 +:101C20008D7F80937100809190008F7780939000DA +:101C3000109238031092370310926F0310927003C2 +:101C4000109271031092720310926E0310926D0342 +:101C5000EDE4F3E0ADE3B3E0119211921192119231 +:101C60001D921D9283E0ED36F807B1F70895CF92EB +:101C7000DF92EF92FF920F931F93CF93DF93209108 +:101C80003703222309F484C06B017C018091260371 +:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A +:101CA000A7019601F80192918291729162918F0140 +:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 +:101CC000FF1FE35BFC4F1082118212821382DE0140 +:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B +:101CE000D105E9F021964481558166817781408351 +:101CF000518362837383148215821682178212962F +:101D00008D919C91139711969C938E9313961C9290 +:101D10001E92129734961296E2CF219708F6809180 +:101D2000750390917603019797FD05C09093760314 +:101D30008093750304C0109276031092750380910E +:101D400075039091760320917303309174032817E3 +:101D5000390724F01092740310927303892BC1F495 +:101D6000809171008D7F80937100809190008F77BA +:101D70008093900010926F03109270031092710381 +:101D80001092720310926E0310926D03109237033B +:101D9000DF91CF911F910F91FF90EF90DF90CF9047 +:101DA00008951F920F920FB60F9211244F925F92D7 +:101DB0006F927F928F929F92AF92BF92CF92DF925B +:101DC000EF92FF922F933F934F935F936F937F9385 +:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 +:101DE00080913703882309F49BC1C0917503D0917A +:101DF00076031C161D060CF093C1409027035090EB +:101E000028036090290370902A0320E030E0A901A4 +:101E1000C301B2010E94902F18160CF065C0C130AA +:101E2000D10509F452C08091730390917403BE01EF +:101E30000E9470317C0190937403809373038090AF +:101E4000390390903A03A0903B03B0903C0320E00C +:101E500030E040E85FE3C501B4010E94DD2D6093EE +:101E6000390370933A0380933B0390933C03F7014B +:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C +:101E800060817181828193810E94452E20E030E043 +:101E900040E05EE30E94942F9B01AC01C501B401B8 +:101EA0000E94902F18168CF4C7010196BE010E9463 +:101EB00070319093740380937303109239031092DE +:101EC0003A0310923B0310923C03E0917303F091AC +:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB +:101EE000718182819381D0C0C0906F03D0907003C4 +:101EF000E0907103F090720320E030E0A901C70187 +:101F0000B6010E94412E2197882309F4A2C0FE0148 +:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 +:101F2000A280B380A5019401C701B6010E94412E91 +:101F300087FF31C0A501940160E070E08CED93EC67 +:101F40000E94452E20E030E040E451E40E94452EFE +:101F500020E030E040E05FE30E94942F9B01AC0161 +:101F600060E070E080E090E40E94F72F9B01AC01FC +:101F7000C501B4010E94942F9B01AC01C701B601B9 +:101F80000E94412E87FF07C0A701960160E070E024 +:101F90008CED93E439C0A5019401C701B6010E94FC +:101FA000902F18160CF055C0A501940160E070E068 +:101FB0008CED93E40E94452E20E030E040E451E4B3 +:101FC0000E94452E20E030E040E05FE30E94942F25 +:101FD0009B01AC0160E070E080E090E40E94F72F8C +:101FE0009B01AC01C501B4010E94942F9B01AC017F +:101FF000C701B6010E94902F18165CF5A701960143 +:1020000060E070E08CED93EC0E94452E20E030E023 +:1020100040E451E40E94452E20E030E040E05FE3E0 +:102020000E94942F9B01AC0160E070E080E090E49E +:102030000E94F72F9B01AC01C701B6010E94942FAB +:1020400060936F0370937003809371039093720396 +:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF +:1020600080819181A281B38180936F0390937003EB +:10207000A0937103B093720360916F03709170032A +:102080008091710390917203209124033091250374 +:102090002F3F4FEF340731F02F5F3F4F3093250331 +:1020A000209324030E94F8126B017C0120E034E2AB +:1020B00044EF51E40E94412E87FF08C086EFC82EEE +:1020C00088E2D82E84EFE82E81E4F82E20E030E07C +:1020D00040E051E4C701B6010E94942F9B01AC017E +:1020E00060E074E284E79BE40E94452E6B017C0172 +:1020F0000E94AD2E70939700609396002091740219 +:10210000309175024091760250917702C701B60175 +:102110000E94942F0E94AD2E7093990060939800B6 +:1021200080913803882309F433C1C0903303D090E1 +:102130003403E0903503F090360320E030E0A9014D +:10214000C701B6010E94902F1816D4F58091240380 +:10215000909125038F3F2FEF920729F001969093DE +:10216000250380932403C701B6010E94F81220E0E2 +:1021700030E040E051E40E94942F9B01AC0160E00C +:1021800074E284E79BE40E94452E6B017C010E946F +:10219000AD2E709397006093960020917402309159 +:1021A00075024091760250917702C701B6010E94F4 +:1021B000942F0E94AD2E709399006093980008C0F0 +:1021C0001092970010929600109299001092980029 +:1021D00060912D0370912E036F5F7F4F70932E03DC +:1021E00060932D03209196003091970080E090E05D +:1021F000232BF1F0C0919600D09197000E94DE2E23 +:102200006B017C01BE0180E090E00E94DE2E9B010C +:10221000AC0160912F037091300380913103909154 +:1022200032030E94452E20E03FEF4FE757E410C0F5 +:102230000E94DE2E6B017C0120E030EE4FEF54E473 +:1022400060912F037091300380913103909132039C +:102250000E94942F9B01AC01C701B6010E94902FF0 +:1022600087FD96C080912B038F5F80932B0390E0B6 +:102270002091FE033091FF0382179307A0F0809115 +:102280000904882319F010922B030DC0809171006E +:102290008D7F80937100809190008F778093900064 +:1022A000109238037DC080912C03C0912B038111C3 +:1022B00028C0C0900304D0900404E0900504F0907E +:1022C000060420E030E0A901C701B6010E94902F6A +:1022D0001816BCF481E080932C0310923303109203 +:1022E00034031092350310923603C0922F03D0921C +:1022F0003003E0923103F0923203C150C0932B03BC +:1023000043C010922C031092250310922403E091F5 +:102310000004F091010448E0C49FE00DF11D112478 +:1023200080819181A281B3818093330390933403A0 +:10233000A0933503B093360320E030E040E85EE33D +:1023400064817581868197810E94942F6B017C0145 +:1023500020E030E048EC52E460917802709179021C +:1023600080917A0290917B020E94452E9B01AC01E4 +:10237000C701B6010E94942F60932F03709330031E +:10238000809331039093320310922E0310922D0309 +:102390008091020480FD04C010923803109237032C +:1023A000FF91EF91DF91CF91BF91AF919F918F916D +:1023B0007F916F915F914F913F912F91FF90EF909F +:1023C000DF90CF90BF90AF909F908F907F906F9055 +:1023D0005F904F900F900FBE0F901F901895CF9267 +:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 +:1023F00080912603811102C00E94EA0D809102049F +:1024000080FF46C0809175039091760308970CF089 +:102410003FC0809171008D7F80937100809138035F +:1024200081110E94040E81E08093370310922503EE +:102430001092240320E030E0A901C701B6010E94F8 +:10244000902F1816DCF48091750390917603FC01AF +:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 +:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D +:10247000C0830196909376038093750380917100D9 +:1024800082608093710080919000806880939000BA +:10249000DF91CF91FF90EF90DF90CF9008958F92D2 +:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 +:1024B0001F93CF93DF93EC017B01D42E4801590188 +:1024C00080912603811102C00E94EA0D80910204CE +:1024D00080FF6BC0809171008D7F8093710080912F +:1024E000370381110E94040E81E080933803D0935A +:1024F0000104C0930004F092FF03E092FE03D09227 +:1025000009048092030490920404A0920504B092FE +:1025100006041092390310923A0310923B03109272 +:102520003C0310922B0388819981AA81BB818093FF +:10253000330390933403A0933503B093360320E024 +:1025400030E040E85EE36C817D818E819F810E9456 +:10255000942F6B017C0120E030E048EC52E4609164 +:1025600078027091790280917A0290917B020E94A8 +:10257000452E9B01AC01C701B6010E94942F6093C8 +:102580002F037093300380933103909332031092A2 +:102590002E0310922D038091710082608093710050 +:1025A00080919000806880939000DF91CF911F917F +:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 +:1025C0008F9008958091770390E0019665E070E028 +:1025D0000E9470318093770308958091770390E093 +:1025E000019765E070E00E94703180937703089551 +:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 +:10260000CF93DF936B017C01C0912403D09125030C +:10261000BE0180E090E00E94DE2E4B015C01A7012C +:10262000960160E070E08CE594E40E94452E9B01E9 +:10263000AC01C501B4010E94942F0E94B22E4091BA +:102640007703423009F45CC028F4442351F0413050 +:10265000E9F0FBC0433009F481C0443009F4B4C050 +:10266000F4C080E090E0A0E0BFE380937402909318 +:102670007502A0937602B09377021092270310920E +:1026800028031092290310922A03DFC01092270317 +:10269000109228031092290310922A0364317105C5 +:1026A00040F46A307105E0F520E030E040E85EE398 +:1026B0003BC0693C710508F0C0C080E090E00E941A +:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 +:1026D00030E044E353E40E94452E9B01AC010E948C +:1026E000942F20E030E040E05EE30E94942F9B01B5 +:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 +:1027000010922703109228031092290310922A0393 +:102710006432710578F4FB01EC59FF4F0C9484315D +:1027200020E030E040E05FE3C701B6010E94942F53 +:102730006B017C0180E090E0A0E0BEE38093740236 +:1027400090937502A0937602B09377027EC0A701A2 +:102750009601C701B6010E94DD2DEACF1092270332 +:10276000109228031092290310922A032AE0269F30 +:10277000A001279F500D1124CA0168EB7BE00E9445 +:102780005C31BC016C5D754077FF03C0719561954C +:102790007109882777FD8095982F0E94E02E2EE3FF +:1027A00033EC4EE259E30E94942F20E030E040ECFD +:1027B0005EE30E94DD2D6093740270937502809336 +:1027C00076029093770241C010922703109228035B +:1027D0001092290310922A03CE0183709927892B26 +:1027E000E1F0BE016170772780E090E00E94DE2E6C +:1027F00020E030E040E05EE30E94942F20E030E0F3 +:1028000040E45FE30E94DD2D6093740270937502D3 +:1028100080937602909377020CC080E090E0A0E075 +:10282000BFE38093740290937502A0937602B093F5 +:102830007702C770DD27CD2B41F4109274021092FD +:1028400075021092760210927702C701B601DF91ED +:10285000CF91FF90EF90DF90CF90BF90AF909F907F +:102860008F900895809188030895CF93DF9300D0CF +:102870001F92CDB7DEB79C0180910E04843019F50C +:1028800093E099833B832A839093E9008FEF9091A3 +:10289000E800815095FD06C095ED9A95F1F700008E +:1028A0008111F5CF8091E80085FF0DC040E050E038 +:1028B00063E070E0CE0101960E9496168091E800D8 +:1028C0008E778093E8000F900F900F90DF91CF915B +:1028D0000895CF93DF9300D01F92CDB7DEB720913C +:1028E0000E04243021F522E029839B838A8383E030 +:1028F0008093E9008FEF9091E800815095FD06C02C +:1029000095ED9A95F1F700008111F5CF8091E800DF +:1029100085FF0DC040E050E063E070E0CE0101961D +:102920000E9496168091E8008E778093E8000F90C1 +:102930000F900F90DF91CF91089520910E042430D5 +:10294000F1F422E02093E9002FEF3091E8002150CC +:1029500035FD06C035ED3A95F1F700002111F5CFB0 +:102960002091E80025FF0BC040E050E065E070E0FA +:102970000E9496168091E8008E778093E800089573 +:10298000CF93DF93EC0190910E04943009F046C090 +:10299000809186028823D9F0809187028823B9F03C +:1029A0009093E9008FEF9091E800815095FD06C06B +:1029B00095E19A95F1F700008111F5CF8091E8003B +:1029C00085FF2CC040E050E060E170E017C081E07E +:1029D0008093E9008FEF9091E800815095FD06C04B +:1029E00095ED9A95F1F700008111F5CF8091E800FF +:1029F00085FF14C040E050E068E070E0CE010E9426 +:102A000096168091E8008E778093E80080E1FE01C1 +:102A1000A8E7B3E001900D928A95E1F7DF91CF919D +:102A2000089580910D04811109C00E942B180E9405 +:102A300088188091E20084608093E20008951092EB +:102A40000D040895089508950C94D02742E061EC98 +:102A500081E00E94A51742E061EC82E00E94A51788 +:102A600042E061EC83E00E94A51742E161EC84E062 +:102A70000C94A51780911004833009F455C030F4EC +:102A8000813071F0823009F48EC008958A3009F4E3 +:102A90007AC08B3009F460C0893009F09CC020C036 +:102AA00080910F04813A09F096C08091E800877FF9 +:102AB0008093E8008091130490911404892B21F4F1 +:102AC00060E188E793E003C060E080E090E070E0C0 +:102AD0000E94E1168091E8008B778093E8000895CA +:102AE00080910F04813209F076C080911304909197 +:102AF0001404009719F0039709F06DC08091E80065 +:102B0000877F8093E8008091E80082FD05C0809176 +:102B10000E048111F8CF5FC08091F100809388038B +:102B20008091E8008B7753C080910F04813A09F0BF +:102B300052C08091130490911404892B09F04BC06A +:102B40008091E800877F8093E8008091E80080FF13 +:102B5000FCCF8091860236C080910F048132D9F576 +:102B60008091130490911404892BA9F58091E800B9 +:102B7000877F8093E8000E94DA1780911104809388 +:102B800086020C944B2180910F04813221F58091B3 +:102B9000E800877F8093E8000E94DA178091120492 +:102BA00080938903089580910F04813AA1F4809164 +:102BB000E800877F8093E8008091E80080FFFCCFE9 +:102BC000809189038093F1008091E8008E77809353 +:102BD000E8000C94DA17089584B7877F84BF88E1F2 +:102BE0000FB6F89480936000109260000FBE90E0E2 +:102BF00080E80FB6F89480936100909361000FBE57 +:102C00000E947D1B0E942B180E9488188091E20070 +:102C100084608093E20078940E940E1B0E947F1BC8 +:102C20008CE792E00E94291B80910E04853069F4A4 +:102C30000E948A2780910C048823B1F30E94B82750 +:102C4000882391F30E948016EFCF0E94871BECCF60 +:102C5000292F332723303105C9F064F421303105A1 +:102C600081F02230310509F043C08DE690E022E882 +:102C700038E042C021323105F1F02232310541F114 +:102C800037C082E190E02FEE38E036C099278130DE +:102C9000910541F08230910541F0892B49F5EEE72D +:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 +:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 +:102CC000FF1FEE5FFC4F2081318189E090E014C04E +:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 +:102CE00020813181FB01EA50FD4F808190E004C0DA +:102CF00080E090E020E030E0FA0131832083089505 +:102D000080E189BD82E189BD09B400FEFDCF8091DB +:102D1000D8008F7D8093D8008091E00082608093FE +:102D2000E0008091E00081FDFCCF0895CF92DF921A +:102D3000EF92FF920F931F93CF93DF93EC018B01E0 +:102D40006A010E94F917811133C0C114D10439F00E +:102D5000F60180819181081B190BC80FD91FE12C46 +:102D6000F12C0115110519F18091E80085FD16C0BF +:102D70008091E8008E778093E800C114D10449F077 +:102D8000F60180819181E80EF91EF182E08285E0F2 +:102D90000FC00E94F917882321F30AC089918093FC +:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE +:102DB000DF91CF911F910F91FF90EF90DF90CF9017 +:102DC000089520911504309116042617370748F00E +:102DD0006115710539F42091E8002E772093E80001 +:102DE00001C0B90140E061157105A9F120910E04FF +:102DF000222309F443C0253009F442C02091E800A1 +:102E000023FD40C02091E80022FD32C02091E8005F +:102E100020FFE9CF4091F3002091F20030E0342B05 +:102E2000FC01CF016115710559F02830310540F4DE +:102E300081918093F100615071092F5F3F4FF1CF75 +:102E400041E02830310509F040E02091E8002E777C +:102E50002093E800C8CF4111C9CF0AC080910E0469 +:102E6000882361F0853061F08091E80083FD0AC01D +:102E70008091E80082FFF2CF80E0089582E008951B +:102E800083E0089581E0089520911504309116049F +:102E90002617370748F06115710539F42091E800CD +:102EA0002E772093E80001C0B901FC0120E06115F4 +:102EB000710591F180910E04882309F440C085309A +:102EC00009F43FC08091E80083FD3DC08091E80097 +:102ED00082FD2FC08091E80080FFE9CF2091F300B0 +:102EE0008091F20090E0922B6115710559F08830C5 +:102EF000910540F424912093F100319661507109BD +:102F00000196F2CF21E0089709F020E08091E800D7 +:102F10008E778093E800CBCF2111CCCF0AC080916F +:102F20000E04882361F0853061F08091E80083FD14 +:102F30000AC08091E80082FFF2CF80E0089582E02D +:102F4000089583E0089581E00895982F973058F50B +:102F50009093E900981739F07091EC002091ED0002 +:102F60005091F00003C0242F762F50E021FF19C0AC +:102F70003091EB003E7F3093EB003091ED003D7FD0 +:102F80003093ED003091EB0031603093EB007093A3 +:102F9000EC002093ED005093F0002091EE0027FF0D +:102FA00007C09F5FD3CF8F708093E90081E00895C1 +:102FB00080E0089580910F0487FF11C08091E800A0 +:102FC00082FD05C080910E048111F8CF11C080915F +:102FD000E8008B770BC080910E04882349F0809124 +:102FE000E80080FFF8CF8091E8008E778093E800BA +:102FF00008952091E4003091E50095E64091EC00C1 +:10300000842F817040FF22C08091E80080FD1CC0A9 +:1030100080910E04882391F0853091F08091EB002F +:1030200085FD10C04091E4005091E5004217530720 +:1030300029F39A01915011F784E0089582E00895F0 +:1030400083E0089581E0089580E008954091E800CC +:1030500042FFDECF08950E9499180E94A118E0EE69 +:10306000F0E0808181608083E8EDF0E080818F77FF +:10307000808319BCA7EDB0E08C918E7F8C9380810A +:103080008F7E808310920D0408950F931F93CF932A +:10309000DF930E9499180E94A118C8EDD0E08881A2 +:1030A0008F77888388818068888388818F7D8883F3 +:1030B00019BC10920E0410920A0410920C04109283 +:1030C0000B0400EE10E0F80180818B7F8083888103 +:1030D0008160888342E060E080E00E94A517E1EE15 +:1030E000F0E080818E7F8083E2EEF0E0808181607D +:1030F0008083808188608083F80180818E7F8083D7 +:10310000888180618883DF91CF911F910F9108950D +:10311000E8EDF0E080818F7E8083E7EDF0E0808154 +:103120008160808384E082BF81E080930D040C94F1 +:103130004518E8EDF0E080818E7F80831092E200F8 +:1031400008951092DA001092E10008951F920F92F4 +:103150000FB60F9211242F933F934F935F936F936A +:103160007F938F939F93AF93BF93EF93FF93809140 +:10317000E10082FF0BC08091E20082FF07C08091D6 +:10318000E1008B7F8093E1000E940D1B8091DA00AB +:1031900080FF1FC08091D80080FF1BC08091DA00A3 +:1031A0008E7F8093DA008091D90080FF0DC080E18E +:1031B00089BD82E189BD09B400FEFDCF81E0809325 +:1031C0000E040E94111505C019BC10920E040E9435 +:1031D0001F158091E10080FF19C08091E20080FFFF +:1031E00015C08091E2008E7F8093E2008091E20022 +:1031F00080618093E2008091D80080628093D80043 +:1032000019BC85E080930E040E9423158091E10093 +:1032100084FF30C08091E20084FF2CC080E189BD32 +:1032200082E189BD09B400FEFDCF8091D8008F7D79 +:103230008093D8008091E1008F7E8093E10080919F +:10324000E2008F7E8093E2008091E20081608093B3 +:10325000E20080910A04882311F084E007C0809185 +:10326000E30087FD02C081E001C083E080930E048B +:103270000E9424158091E10083FF29C08091E20023 +:1032800083FF25C08091E100877F8093E10082E089 +:1032900080930E0410920A048091E1008E7F809347 +:1032A000E1008091E2008E7F8093E2008091E20055 +:1032B00080618093E20042E060E080E00E94A51718 +:1032C0008091F00088608093F0000E942215FF91A9 +:1032D000EF91BF91AF919F918F917F916F915F918E +:1032E0004F913F912F910F900FBE0F901F90189507 +:1032F0001F920F920FB60F9211242F933F934F936B +:103300005F936F937F938F939F93AF93BF93CF936D +:10331000DF93EF93FF93C091E900CF708091EC00B1 +:10332000D82FD17080FDD0E81092E9008091F00094 +:10333000877F8093F00078940E94BC191092E90076 +:103340008091F00088608093F000CD2BCF70C09307 +:10335000E900FF91EF91DF91CF91BF91AF919F91E4 +:103360008F917F916F915F914F913F912F910F902E +:103370000FBE0F901F9018951F93CF93DF93CDB77B +:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 +:10339000F4E088E08E0F9091F10091938E13FBCFB3 +:1033A0000E943A158091E80083FF1FC180910F04AD +:1033B00090911004492F50E04A30510508F015C192 +:1033C000FA01E857FF4F0C948431803881F082383D +:1033D00009F00BC1809113048F708093E9008091F4 +:1033E000EB0085FB882780F91092E90006C08091E8 +:1033F0000B0490910C04911182609091E800977FEA +:103400009093E8008093F1001092F100C8C0282F3B +:103410002D7F09F0EAC0882319F0823061F0E5C001 +:1034200080911104813009F0E0C0933009F080E010 +:1034300080930C042BC080911104811127C08091CE +:1034400013048F7009F4D1C08093E9002091EB0040 +:1034500020FF1CC0933021F48091EB00806214C0E7 +:103460009091EB0090619093EB0021E030E0A90196 +:1034700002C0440F551F8A95E2F74093EA0010926C +:10348000EA008091EB0088608093EB001092E900E5 +:103490008091E800877F86C08111A7C01091110438 +:1034A0001F778091E3008078812B8093E3008091E7 +:1034B000E800877F8093E8000E94DA178091E80097 +:1034C00080FFFCCF8091E30080688093E3001111BE +:1034D00002C082E001C083E080930E0486C0805861 +:1034E000823008F082C080911104909112048C3DCA +:1034F00053E0950779F583E08A838AE289834FB7A1 +:10350000F894DE01139620E03EE051E2E32FF0E074 +:1035100050935700E49120FF03C0E295EF703F5FA6 +:10352000EF708E2F90E0EA3010F0C79601C0C09681 +:103530008D939D932F5F243149F74FBF8091E80011 +:10354000877F8093E8006AE270E0CE0101960E94D6 +:10355000E11614C0AE014F5F5F4F609113040E94EB +:103560002816BC01009709F440C09091E800977FAD +:103570009093E80089819A810E9444178091E80025 +:103580008B778093E80031C0803879F58091E8002E +:10359000877F8093E80080910A048093F1008091F6 +:1035A000E8008E778093E8000E94DA171EC0811130 +:1035B0001CC0909111049230C0F48091E800877F84 +:1035C0008093E80090930A040E94DA1780910A041D +:1035D000811106C08091E30087FD02C081E001C037 +:1035E00084E080930E040E9426158091E80083FFFA +:1035F0000AC08091E800877F8093E8008091EB000B +:1036000080628093EB00AA960FB6F894DEBF0FBEDF +:10361000CDBFDF91CF911F9108950895CF938091F1 +:103620000E048823A1F0C091E900CF709091EC00C6 +:10363000892F817090FD80E8C82B1092E90080915D +:10364000E80083FD0E94BC19CF70C093E900CF91C0 +:10365000089590938F0380938E030895E0918E03D5 +:10366000F0918F03309721F00190F081E02D0994C3 +:1036700080E00895E0918E03F0918F03309721F060 +:103680000280F381E02D09940895E0918E03F0917A +:103690008F03309721F00480F581E02D099408957F +:1036A00020918C0330918D038217930771F09093D2 +:1036B0008D0380938C03E0918E03F0918F033097FC +:1036C00021F00680F781E02D0994089520918A0366 +:1036D00030918B038217930771F090938B03809343 +:1036E0008A03E0918E03F0918F03309721F00084DC +:1036F000F185E02D0994089508950C947C1B0E9497 +:1037000004280E949A0B0E948A280C94452D4F92FF +:103710005F927F928F929F92AF92BF92CF92DF92F1 +:10372000EF92FF920F931F93CF93DF93CDB7DEB746 +:103730002A970FB6F894DEBF0FBECDBF0E94890C4A +:1037400091E9C92E93E0D92E00E010E0AA24A394B9 +:10375000B12C702E802F0E94D20D4C01F6014190A9 +:1037600051906F014826592641145104B1F40F5F5E +:103770001F4F0430110569F78FEF89838A831B82FD +:103780000E940D288160782F9D838C8349815A8106 +:103790006B818D810E94401C3AC08091ED0381FDB8 +:1037A0000E94DB0D20E030E07501022E02C0EE0C1D +:1037B000FF1C0A94E2F7C70184219521892B09F1A6 +:1037C0002E837F828E209F2091E0892809F490E04B +:1037D00098870E940D288160782F9A8789874E816B +:1037E0005F8168858A850E94401C000F111FF801C7 +:1037F000EF56FC4F80819181E826F926F182E08224 +:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC +:10381000762A109190030E942E1B1817D9F00E944F +:103820002E1B809390032A960FB6F894DEBF0FBE2E +:10383000CDBFDF91CF911F910F91FF90EF90DF905F +:10384000CF90BF90AF909F908F907F905F904F9060 +:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 +:10386000DF91CF911F910F91FF90EF90DF90CF905C +:10387000BF90AF909F908F907F905F904F900895F2 +:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B +:103890000FBECDBF4F83588769877A878B87DE013C +:1038A000119686E0FD0111928A95E9F785E0FE0107 +:1038B000379601900D928A95E1F749815A816B8183 +:1038C0007C818D819E810E94E5232B960FB6F89412 +:1038D000DEBF0FBECDBFDF91CF910895CF93882378 +:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 +:1038F000BBC089E30E948E260E945B2789E30CC02F +:10390000833879F40E942E1B80FDAEC083E50E94AF +:103910008E260E945B2783E50E94D026CF910C94CF +:103920005B27843859F40E942E1B82FD9DC087E4DA +:103930000E948E260E945B2787E4EECF8CEF8C0FCF +:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 +:103950000E948E26E3CF80E28C0F883048F4C77037 +:1039600081E001C0880FCA95EAF70E941427D6CFDC +:103970008BE58C0F833078F4C53A29F0C63A31F0E4 +:1039800083E890E005C081E890E002C082E890E022 +:10399000CF910C94501B88E58C0F833108F064C0E4 +:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 +:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F +:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F +:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D +:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 +:1039F00038C082EE90E035C089EE90E032C08AEEA9 +:103A000090E02FC085EB90E02CC086EB90E029C0C1 +:103A100087EB90E026C08CEC90E023C08DEC90E02A +:103A200020C083E891E01DC08AE891E01AC082E9D5 +:103A300091E017C084E991E014C081E292E011C0E6 +:103A400083E292E00EC084E292E00BC085E292E055 +:103A500008C086E292E005C087E292E002C08AE2F6 +:103A600092E0CF910C94661BCF910895882309F4BE +:103A70004BC0823859F40E942E1B81FF45C089E358 +:103A80000E948E260E945B2789E30CC0833871F464 +:103A90000E942E1B80FF38C083E50E948E260E9464 +:103AA0005B2783E50E94D0260C945B27843859F469 +:103AB0000E942E1B82FF28C087E40E948E260E944F +:103AC0005B2787E4EFCF9CEF980F913A58F390E291 +:103AD000980F983050F4877091E001C0990F8A9543 +:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 +:103AF00020F480E090E00C94501B885A833120F42D +:103B000080E090E00C94661B0895882321F00E94C9 +:103B100014270C945B270895882321F00E941A270C +:103B20000C945B270895BF92CF92DF92EF92FF92A1 +:103B30000F931F93CF93DF9300D000D000D0CDB769 +:103B4000DEB725E0FC01DE01119601900D922A9569 +:103B5000E1F7FC01D08011810281258122952F702F +:103B600043815481452B09F472C31F3F21F4FFEFB9 +:103B7000DF1609F46CC37C012E830E949B07D98257 +:103B80001A8369817A81802F0E948A26182FB92E84 +:103B90000E943F260E9406252E81002319F00E94D4 +:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE +:103BB0000C9484318B2D807F9B2D9F70F92E882350 +:103BC00019F0F29480EFF822002389F0FF2009F425 +:103BD0007CC280E2810F883020F48F2D0E94142750 +:103BE00003C08F2D0E9424270E945B276EC2812F65 +:103BF0000E94361DFF2009F42AC3105E8F2D183055 +:103C000018F40E941A2702C00E942A2726960FB68F +:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 +:103C2000FF90EF90DF90CF90BF900C945B278B2D8F +:103C3000807F9B2D9F70803211F4892F03C0892FC4 +:103C40008295807F112319F0113011F12BC00023D0 +:103C5000A9F0222389F1213079F526960FB6F89440 +:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF +:103C7000EF90DF90CF90BF900C944427222319F04F +:103C8000213009F4E4C28E830E9447278E819BC1B4 +:103C9000002321F0263008F0DAC20EC0253008F0EB +:103CA000D6C291C10023C9F0222331F0F7019581DA +:103CB00090FF0BC29F70958326960FB6F894DEBFD7 +:103CC0000FBECDBFDF91CF911F910F91FF90EF906D +:103CD000DF90CF90BF900C94851D222309F473C10F +:103CE00009C22B2D26952695237030E0211531052C +:103CF00021F021303105D1F0AAC2002321F0812F1B +:103D00009B2D937002C080E090E026960FB6F89449 +:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE +:103D2000EF90DF90CF90BF900C94501B002321F0B8 +:103D3000812F9B2D937002C080E090E026960FB6F5 +:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 +:103D5000FF90EF90DF90CF90BF900C94661B812F67 +:103D6000002319F00E947E2902C00E94E6292696AF +:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C +:103D80000F91FF90EF90DF90CF90BF900C946B2A33 +:103D90008B2D837009F07BC0011159C2812F829550 +:103DA00086958770880F880F912F9F70C92ED12C10 +:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 +:103DC0000A94D2F714FF12C04FE050E060E070E0B8 +:103DD00004C0440F551F661F771F8A95D2F7CB0189 +:103DE000BA01609570958095909503C060E070E091 +:103DF000CB012B2D269526952370422F50E0423083 +:103E00005105D9F04330510569F16C297D298E297E +:103E10009F294130510551F126960FB6F894DEBF27 +:103E20000FBECDBFDF91CF911F910F91FF90EF900B +:103E3000DF90CF90BF900C942D256C297D298E2981 +:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 +:103E5000CF911F910F91FF90EF90DF90CF90BF9087 +:103E60000C9449250E942D25C701B60126960FB650 +:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 +:103E8000FF90EF90DF90CF90BF900C94112500230E +:103E900019F08B2D817001C08695882309F4D7C154 +:103EA000812F829586958770880F880F912F9F703C +:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 +:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 +:103ED00060E070E004C0440F551F661F771F8A958D +:103EE000D2F7CB01BA01609570958095909503C08B +:103EF00060E070E0CB012B2D269526952370422F94 +:103F000050E042305105D9F04330510569F16C2938 +:103F10007D298E299F294130510551F126960FB6F2 +:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF +:103F3000FF90EF90DF90CF90BF900C9407266C29F4 +:103F40007D298E299F2926960FB6F894DEBF0FBED5 +:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 +:103F6000CF90BF900C9423260E940726C701B6016C +:103F700026960FB6F894DEBF0FBECDBFDF91CF916E +:103F80001F910F91FF90EF90DF90CF90BF900C9416 +:103F9000EB25103F49F118F4103E48F491C0123F50 +:103FA00009F453C0E8F1133F09F464C089C01F70DD +:103FB0008B2D8F71002321F00E948425812F7CCED0 +:103FC0000E94A525812F26960FB6F894DEBF0FBE5E +:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 +:103FE000CF90BF900C948C1D0023B1F0253008F0C9 +:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 +:10400000CDBFDF91CF911F910F91FF90EF90DF9087 +:10401000CF90BF900C94CA25263008F018C1E9CF84 +:104020000023A9F08B2D8F7126960FB6F894DEBF72 +:104030000FBECDBFDF91CF911F910F91FF90EF90F9 +:10404000DF90CF90BF900C948425002359F38B2DE3 +:104050008F7126960FB6F894DEBF0FBECDBFDF91ED +:10406000CF911F910F91FF90EF90DF90CF90BF9075 +:104070000C94A525002399F08B2D8F7126960FB6F1 +:10408000F894DEBF0FBECDBFDF91CF911F910F918E +:10409000FF90EF90DF90CF90BF900C946F25269605 +:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 +:1040B0000F91FF90EF90DF90CF90BF900C9465250B +:1040C0000023A9F0222309F4ADCF812F26960FB645 +:1040D000F894DEBF0FBECDBFDF91CF911F910F913E +:1040E000FF90EF90DF90CF90BF900C946E1C222336 +:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 +:10410000CDBFDF91CF911F910F91FF90EF90DF9086 +:10411000CF90BF900C94361D4B2D4F70612FC7016F +:104120000E948D0526960FB6F894DEBF0FBECDBF58 +:10413000DF91CF911F910F91FF90EF90DF90CF9083 +:10414000BF900C948924011182C09B2D9F70492F30 +:1041500050E04230510509F443C0C4F44115510503 +:1041600071F14130510509F072C026960FB6F894EE +:10417000DEBF0FBECDBFDF91CF911F910F91FF909A +:10418000EF90DF90CF90BF900C946D2D4330510590 +:10419000C1F14430510509F05AC0812F26960FB65F +:1041A000F894DEBF0FBECDBFDF91CF911F910F916D +:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 +:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC +:1041F0001F910F91FF90EF90DF90CF90BF900C94A4 +:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10421000CF911F910F91FF90EF90DF90CF90BF90C3 +:104220000C949C2D4B2D4F70612FC70126960FB615 +:10423000F894DEBF0FBECDBFDF91CF911F910F91DC +:10424000FF90EF90DF90CF90BF900C949D07269643 +:104250000FB6F894DEBF0FBECDBFDF91CF911F9197 +:104260000F91FF90EF90DF90CF90BF9008950E9444 +:1042700031270E9441270E9406270E945B270E9447 +:104280001C2B0E946B2A80E090E00E94501B80E073 +:1042900090E00C94661B0E9421270C9437210E9409 +:1042A0007F26292F22952F7030E02C3031054CF4D9 +:1042B0002A3031056CF4225031092230310588F45E +:1042C00007C02C30310549F02F30310531F009C0DD +:1042D000803E48F0803F29F406C093FB882780F990 +:1042E000089580E0089581E00895CF93DF9300D092 +:1042F00000D01F92CDB7DEB70F900F900F900F90A8 +:104300000F90DF91CF910895CF93DF9300D000D02D +:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D +:10432000CDBFDF91CF9108951F93CF93DF93C091BD +:10433000990316E080919A03C81799F0D0E01C9F6A +:10434000F0011D9FF00D1124E556FC4F4081518175 +:1043500062817381848195810E9484212196C77036 +:10436000E9CFDF91CF911F9108954091CB035091F8 +:10437000CC036091CD037091CE038091CF039091D7 +:10438000D0030C9484218091D00382958F7009F022 +:1043900054C08091CD03882309F44FC080919903C4 +:1043A000A0919A036091CB037091CC034091CE030E +:1043B0005091CF03B6E08A1709F43FC090E0411551 +:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A +:1043D000B99FF00D1124E556FC4F218172132AC0BC +:1043E0002081621327C02281211124C023813481BE +:1043F0002417350710F421503109241B350B283CB4 +:104400003105C0F42091D0032F7020612093D00398 +:1044100026E0289FF001299FF00D1124E056FC4F63 +:1044200080818F70806180838BEC93E00E94931D6C +:104430000C94942101968770BECF0895CF92DF929D +:10444000EF92FF920F931F93CF93DF93CDB7DEB719 +:1044500062970FB6F894DEBF0FBECDBF8C0185E02A +:10446000F801DE011D9601900D928A95E1F7D801C1 +:104470004C9111965C91119712966C91129713962C +:10448000CD90DC9014973091CB037091CC03809148 +:10449000CE039091CF03009709F46BC17F3F19F4CD +:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F +:1044B0002091D003C816D90628F0F601E81BF90BA5 +:1044C000CF0104C0809590958C0D9D1DFF24F39421 +:1044D000883C910578F0F12C207F09F0C6C07C2D36 +:1044E000D98AC88A89890E9475218BEC93E00E9441 +:1044F000931DB1C0822F807F09F046C0751314C090 +:10450000341312C0611110C02F7020612093D003AA +:104510000E94B5218BEC93E00E94931D8091D00303 +:10452000D80115968C932EC0CD2819F15F3F11F458 +:104530004F3FF9F0F62E61111CC080919903209134 +:104540009A0336E0821709F45AC090E0389FF001D0 +:10455000399FF00D1124E556FC4F7181571306C0A9 +:104560007081471303C07281711103C00196877077 +:10457000E9CFF62E662309F418C18091D00381603B +:104580008093D003F12C11C1751308C0341306C0F9 +:10459000611104C08091D003D801C3C04D875E87EC +:1045A0008D859E856A8B0E944F216A898823E1F15F +:1045B0006623D1F12091D003822F82958F7090E0F5 +:1045C000029774F08091CB039091CC0398878F83EE +:1045D0001986DB86CA862C87CE0107960E94931D1A +:1045E00086E0F801ABECB3E001900D928A95E1F71B +:1045F0000E94C3210E94B521FF24F394D6C04D87A9 +:104600005E878D859E850E947F26292F22952F709B +:1046100030E0223031050CF0BCC09F7009F0B6C00C +:10462000805E883008F4C1C0C8010E94931DE4CFA9 +:10463000C816D90608F453C0F601E81BF90BCF01E0 +:10464000883C910508F450C0F12C7C2DD98AC88A89 +:1046500089890E947521EBECF3E086E0DF011D9271 +:104660008A95E9F70E94B521A0C0751314C03413D0 +:1046700012C0611110C08091D003F8018583C80178 +:104680000E94931D86E0EBECF3E0DF011D928A951A +:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 +:1046A0000E944F216A89882309F4BECF662309F44A +:1046B000BBCF2091D003822F82958F7090E002971C +:1046C0000CF48ECF8091CB039091CC039A83898395 +:1046D0001B82DD82CC822E83CE0101967FCF809516 +:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 +:1046F00075132EC034132CC02091D00320FD1FC091 +:10470000822F82958F70D9F0D80115962C9315972A +:104710008F3049F08F5F982F9295907F822F8F7006 +:10472000892B15968C93C8010E94931D86E0F80191 +:10473000ABECB3E001900D928A95E1F793CF86E060 +:10474000F801ABECB3E001900D928A95E1F72DC032 +:104750004D875E878D859E850E944F21811140CFB8 +:104760008091D00381608093D003C8010E94931D83 +:104770001CC0662309F458CF4D875E878D859E85C2 +:104780000E944F21882309F44FCF2ACF811148CFAF +:104790000CC0243031050CF047CF9F7009F440CF96 +:1047A000F8019581907F09F03BCF8F2D62960FB66F +:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 +:1047C000FF90EF90DF90CF9008951F93CF93DF93EA +:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 +:1047E0004F83588769877A878B879C87CE01079686 +:1047F0000E941E22882369F08F8198852A853B8537 +:10480000232BF1F19F3F09F063C08F3F09F060C097 +:1048100037C086E0FE013796DE01119601900D92B9 +:104820008A95E1F76F817885EA85FB85309741F1BC +:104830007F3F11F46F3F21F120919A0330E0C901CD +:104840000196877099274091990350E08417950746 +:1048500009F447C069837A83FD83EC8396E0929FD5 +:10486000D001939FB00D1124A556BC4FFE01319687 +:1048700001900D929A95E1F780939A030E949421FA +:1048800016E08091990390919A038917C1F1189FBE +:10489000C001112485569C4F0E941E22882379F165 +:1048A000E09199031E9FF0011124E556FC4F4081D1 +:1048B000518162817381848195810E9484218091DC +:1048C000990390E001968770992780939903D9CF37 +:1048D0004F81588569857A858B859C850E948421C6 +:1048E000CFCF0E944B2110929A0310929903EBECC8 +:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F +:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 +:104910000895EF92FF920F931F93CF93DF938C0133 +:10492000009709F46CC0F12CEE24E394E801219681 +:10493000F8018491843740F4843008F051C081300C +:1049400081F0823019F15BC0853709F444C0A8F1C9 +:104950009CE7980F903708F052C08F770E94361D61 +:1049600041C00E5F1F4FFE01C49180E28C0F883062 +:1049700048F4C7708E2D01C0880FCA95EAF70E94CF +:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 +:10499000FE01C49180E28C0F883058F4C7708E2DD0 +:1049A00001C0880FCA95EAF70E943A270E945B2748 +:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD +:1049C000C491CC2381F08FE99FE00197F1F700C0FB +:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 +:1049E0000E946E1C8E018F2D882309F49FCFEFE962 +:1049F000FFE03197F1F700C000008150F5CFDF9163 +:104A0000CF911F910F91FF90EF90089508956093BB +:104A1000D5037093D6038093D7039093D8030C9457 +:104A200037210F931F930091D5031091D603209146 +:104A3000D7033091D803DC01CB01802B912BA22B23 +:104A4000B32B8093D5039093D603A093D703B09351 +:104A5000D8031F910F910C9437210F931F9300914E +:104A6000D5031091D6032091D7033091D803DC01F0 +:104A7000CB0180239123A223B3238093D50390936A +:104A8000D603A093D703B093D8031F910F910C9432 +:104A900037210F931F930091D5031091D6032091D6 +:104AA000D7033091D803DC01CB0180279127A227BF +:104AB000B3278093D5039093D603A093D703B093E5 +:104AC000D8031F910F910C9437211092D1031092AB +:104AD000D2031092D3031092D4030C94372141E0F7 +:104AE00050E060E070E004C0440F551F661F771F60 +:104AF0008A95D2F74093D1035093D2036093D303A6 +:104B00007093D4030C94372141E050E060E070E0F2 +:104B100004C0440F551F661F771F8A95D2F78091F6 +:104B2000D1039091D203A091D303B091D403482B29 +:104B3000592B6A2B7B2B4093D1035093D203609364 +:104B4000D3037093D4030C94372141E050E060E02C +:104B500070E004C0440F551F661F771F8A95D2F777 +:104B600040955095609570958091D1039091D203B6 +:104B7000A091D303B091D403482359236A237B2304 +:104B80004093D1035093D2036093D3037093D40323 +:104B90000C94372141E050E060E070E004C0440F25 +:104BA000551F661F771F8A95D2F78091D103909188 +:104BB000D203A091D303B091D403482759276A2781 +:104BC0007B274093D1035093D2036093D303709318 +:104BD000D4030C9437210F931F930091D1031091AC +:104BE000D2032091D3033091D403DC01CB01802B7D +:104BF000912BA22BB32B8093D1039093D203A0933C +:104C0000D303B093D4031F910F910C9437210F93CA +:104C10001F930091D1031091D2032091D3033091BF +:104C2000D403DC01CB0180239123A223B3238093FF +:104C3000D1039093D203A093D303B093D4031F91D5 +:104C40000F910C9437210F931F930091D103109172 +:104C5000D2032091D3033091D403DC01CB01802710 +:104C60009127A227B3278093D1039093D203A093D7 +:104C7000D303B093D4031F910F910C94372108955F +:104C8000CF92DF92EF92FF920F931F93CF93DF9318 +:104C90008C01C090D503D090D603E090D703F0905C +:104CA000D8038091D1039091D203A091D303B09106 +:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 +:104CC000C6010C2E04C0B695A795979587950A94B2 +:104CD000D2F780FF06C0B8018C2F0E94F709019718 +:104CE00021F4219760F780E001C08C2FDF91CF91F4 +:104CF0001F910F91FF90EF90DF90CF900895CF9389 +:104D0000DF93EC010E944026BE010E94F709DF916B +:104D1000CF910895CB010E947F260895909186023D +:104D2000992321F090918702911109C02091880266 +:104D300030918902F90132969FEF40E01FC0982F11 +:104D40009695969596959F3050F5E0918802F09152 +:104D50008902E90FF11D877021E030E0A90102C04E +:104D6000440F551F8A95E2F7CA019181892B8183EF +:104D700008959F3F39F04F5F4E3041F051915813E5 +:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 +:104D9000F901E90FF11D97FDFA95828308950895B1 +:104DA00090918602992321F090918702911109C078 +:104DB0002091880230918902F9013296205F3F4F9D +:104DC0001FC0982F9695969596959F30F0F4E09198 +:104DD0008802F0918902E90FF11D877021E030E02F +:104DE000A90102C0440F551F8A95E2F7CA018095B8 +:104DF00091818923818308953196E217F30729F081 +:104E000090819813F9CF1082F7CF089581E090E058 +:104E1000E0918802F0918902E80FF91F1082019653 +:104E200080319105A9F708959091EC03892B809327 +:104E3000EC03089580959091EC0389238093EC0313 +:104E400008951092EC0308959091EB03892B8093C1 +:104E5000EB03089580959091EB0389238093EB03F6 +:104E600008951092EB0308959091EA03892B8093A3 +:104E7000EA03089580959091EA0389238093EA03D9 +:104E800008951092EA0308958093D903089510922B +:104E9000D90308958091880290918902FC0131968E +:104EA0009C01205F3F4F80E0919191118F5FE2174D +:104EB000F307D1F70895E0918802F091890280917B +:104EC000EC038083E0918802F091890290818091C7 +:104ED000EB03892B8083E0918802F0918902908115 +:104EE0008091EA03892B80838091D903882361F024 +:104EF000E0918802F09189029081892B80830E9441 +:104F00004A2781111092D9038091880290918902D9 +:104F10000C943A1B80910E04843039F11092EE0308 +:104F200020E488E190E00FB6F894A89580936000A3 +:104F30000FBE2093600080E00E94540580E00E9434 +:104F4000D20A83B7817F846083BF83B7816083BFC8 +:104F50007894889583B78E7F83BF88E10FB6F894E5 +:104F600080936000109260000FBE08950895089528 +:104F7000CF9380E00E9454050E94B6270E94890CBE +:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 +:104F9000CF5FC430C1F780E001C081E0CF910895B8 +:104FA0000E944B2180E00E9454050E94452D0E94E2 +:104FB0002E1B0C94D20A1F920F920FB60F9211243F +:104FC0008F939F93AF93BF938091EE03811113C092 +:104FD0008091EF039091F003A091F103B091F2035F +:104FE0004196A11DB11D8093EF039093F003A09310 +:104FF000F103B093F203BF91AF919F918F910F9006 +:105000000FBE0F901F90189582E084BD93E095BD70 +:105010009AEF97BD80936E0008952FB7F894809112 +:10502000EF039091F003A091F103B091F2032FBF31 +:105030000895CF92DF92EF92FF920F931F932FB7B5 +:10504000F8944091EF035091F0036091F103709157 +:10505000F2032FBF6A017B01EE24FF248C0120E0C4 +:1050600030E0C016D106E206F30610F441505109B3 +:105070009A01281B390BC9011F910F91FF90EF90E6 +:10508000DF90CF9008951F920F920FB60F921124C8 +:105090008F939F93AF93BF938091EF039091F00311 +:1050A000A091F103B091F2030196A11DB11D80936F +:1050B000EF039093F003A093F103B093F203BF9139 +:1050C000AF919F918F910F900FBE0F901F901895E9 +:1050D0000E942B18F8942FEF87EA91E62150804028 +:1050E0009040E1F700C0000087E090EBDC01809386 +:1050F000190490931A04A0931B04B0931C049CE021 +:1051000088E10FB6F894A895809360000FBE909345 +:105110006000FFCF0E94C928811102C00E94A5280B +:105120000E94D4288093ED030E94E1288093170405 +:1051300087FB882780F9809387020E94D828682FF0 +:1051400070E080E090E00C9407256DEE7EEF80E04B +:1051500090E00E94AA3160E082E090E00E949831E5 +:1051600060E083E090E00E94983160E084E090E0AD +:105170000E94983160E085E090E00E94983160E004 +:1051800086E090E00E9498316FEF87E090E00C9409 +:10519000983180E090E00E94923121E08D3E9E4F58 +:1051A00009F020E0822F089582E090E00C948A318B +:1051B00083E090E00C948A31682F83E090E00C94B7 +:1051C000983184E090E00C948A31682F84E090E07C +:1051D0000C94983186E090E00C948A31682F86E038 +:1051E00090E00C94983187E090E00C948A31682F1D +:1051F00087E090E00C9498318091F50380FF0BC01C +:1052000060918D0285E0689FB001112475956795C6 +:10521000759567952BC081FF09C060918D0285E06F +:10522000689FB00111247595679520C082FF07C063 +:1052300060918D0285E0689FB001112417C09091A4 +:10524000F6039923D1F060918C02961788F720918C +:105250008D0285E0289F90011124929FA001939FC9 +:10526000500D112470E0CA010E9470316038710540 +:1052700040F46115710539F002C065E070E0862FD9 +:1052800008958FE7089581E008958091F50380FFE8 +:1052900008C060918B0270E075956795759567956C +:1052A00021C081FF06C060918B0270E07595679503 +:1052B00019C082FF04C060918B0270E010C0909111 +:1052C000F6039923C1F060918A029617A0F78091A6 +:1052D0008B02899FC001112470E00E9470316038F8 +:1052E000710528F46115710521F0862F08958FE767 +:1052F000089581E0089561E070E0F4CF803F21F4EB +:105300000E94FC28819504C0813F29F40E94FC285A +:105310008093F9030895823F21F40E94FC2881952F +:1053200004C0833F29F40E94FC288093F803089569 +:10533000893F19F40E94452905C08A3F31F40E9433 +:10534000452981958093FA0308958B3F21F40E94AB +:105350004529819504C08C3F29F40E9445298093FA +:10536000FB030895843F21F48091F703816017C007 +:10537000853F21F48091F703826011C0863F21F4BC +:105380008091F70384600BC0873F21F48091F7037D +:10539000886005C0883F31F48091F7038061809375 +:1053A000F70308958D3F21F48091F50381600BC0D0 +:1053B0008E3F21F48091F503826005C08F3F29F470 +:1053C0008091F50384608093F5030895803F39F45C +:1053D0008091F90387FF6CC01092F90369C0813F87 +:1053E00029F48091F9031816BCF362C09091F80378 +:1053F000823F29F497FF5CC01092F80359C0833FA5 +:1054000019F41916CCF354C0893F41F48091FA0382 +:1054100018160CF04DC01092FA034AC08A3F29F4C6 +:105420008091FA0387FF44C0F6CF8B3F39F4809117 +:10543000FB0387FF3DC01092FB033AC08C3F29F469 +:105440008091FB031816BCF333C0843F21F4809194 +:10545000F7038E7F17C0853F21F48091F7038D7F7E +:1054600011C0863F21F48091F7038B7F0BC0873FEB +:1054700021F48091F703877F05C0883F31F4809144 +:10548000F7038F7E8093F70313C08D3F21F4809143 +:10549000F5038E7F0BC08E3F21F48091F5038D7F45 +:1054A00005C08F3F29F48091F5038B7F8093F5032E +:1054B0008091F80381110EC08091F90381110AC017 +:1054C0008091FA03811106C08091FB03811102C013 +:1054D0001092F603089587EF93E00E94451B0E9407 +:1054E0000D289093F4038093F30308951F93CF93B3 +:1054F000DF938091F3039091F4030E941928AC018B +:105500009091F603992321F020918E0230E006C09D +:1055100020918F028AE0289F90011124421753079F +:1055200008F486C08091F803C091F903D091FA0382 +:105530001091FB03811107C0C11176C0D11174C055 +:10554000111172C075C09F3F19F09F5F9093F603D1 +:10555000181624F40E94FC288093F8038091F80325 +:1055600087FF05C00E94FC2881958093F8031C16D4 +:1055700024F40E94FC288093F9038091F90387FFAB +:1055800005C00E94FC2881958093F9036091F8037F +:10559000662339F1C091F903CC2319F1772767FD10 +:1055A0007095872F972F0E94E02E23E333E343E388 +:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E +:1055C000772767FD7095872F972F0E94E02E23E3A2 +:1055D00033E343E35FE30E94942F0E94AD2E609378 +:1055E000F9031D1624F40E9445298093FA03809143 +:1055F000FA0387FF05C00E94452981958093FA032D +:10560000111624F40E9445298093FB038091FB032B +:1056100087FF05C00E94452981958093FB03DF9198 +:10562000CF911F910C946B2A9F3F09F08ECF96CF9C +:10563000DF91CF911F910895E7EFF3E085E0DF015F +:105640001D928A95E9F71092F6031092F5030895DA +:10565000833081F128F4813059F08230D1F00895FF +:10566000853009F449C0B8F1863009F456C0089570 +:1056700080918F02262F30E0280F311D2F3F3105FA +:1056800024F4680F60938F0208958FEF80938F0248 +:10569000089580918E02262F30E0280F311D2F3F74 +:1056A000310524F4680F60938E0208958FEF809384 +:1056B0008E02089580918D02262F30E0280F311D33 +:1056C0002F3F310524F4680F60938D0208958FEF0A +:1056D00080938D02089580918C02262F30E0280F50 +:1056E000311D2F3F310524F4680F60938C0208951B +:1056F0008FEF80938C02089580918B02262F30E0EB +:10570000280F311D2F3F310524F4680F60938B0261 +:1057100008958FEF80938B02089580918A02262F3F +:1057200030E0280F311D2F3F310524F4680F6093BE +:105730008A0208958FEF80938A020895833011F1D1 +:1057400028F4813049F0823091F00895853081F15C +:1057500020F18630C1F1089580918F02681720F4FE +:10576000861B80938F02089510928F020895809176 +:105770008E02681720F4861B80938E020895109283 +:105780008E02089580918D02681720F4861B809305 +:105790008D02089510928D02089580918C026817F1 +:1057A00020F4861B80938C02089510928C02089539 +:1057B00080918B02681720F4861B80938B020895DA +:1057C00010928B02089580918A02681720F4861B3C +:1057D00080938A02089510928A0208950F931F936E +:1057E000873208F048C08E3108F094C0803109F447 +:1057F0007EC008F5873009F468C068F4863009F087 +:10580000A4C08091ED03817F8E7F8093ED0381E0C2 +:105810008093FD039BC08B3009F490C08E3009F05B +:1058200094C08091ED0382FB222720F991E092271A +:1058300090FB82F965C0863109F480C060F4813143 +:1058400009F083C00E944B219091870281E0892753 +:105850008093870273C0893109F470C08B3109F0DD +:1058600074C08091ED0381FB222720F991E09227FB +:1058700090FB81F945C0883309F460C050F4893247 +:1058800009F45EC0853309F45BC0873209F458C05F +:105890005CC0833409F454C028F48A3308F455C03A +:1058A000895339C0883409F050C00E944B210E94AE +:1058B00090060FEF13ED20E3015010402040E1F778 +:1058C00000C000000E94682839C09091ED03892F24 +:1058D0008095817080FB90F929F096609860909394 +:1058E000ED0334C0997F977F9093ED0327C080919B +:1058F000ED0383FB222720F991E0922790FB83F9A7 +:105900008093ED039923D1F08091ED038160809322 +:10591000ED0314C08D5141E050E060E070E08A0179 +:105920009B0104C0000F111F221F331F8A95D2F75D +:10593000C901B8010E9407250E944B2181E006C0E1 +:1059400061E070E080E090E0F5CF80E01F910F9182 +:10595000089580E0089580E00895CF93C82F809146 +:10596000FD03813069F018F08230C9F184C0E09104 +:105970008802F09189028081823209F07EC007C0DE +:10598000E0918802F09189028081823261F48C2F4B +:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 +:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 +:1059B000C43179F048F4CB3079F0C03109F061C0DE +:1059C00082E08093FD0308C0C93219F0C83321F08A +:1059D00058C01092FD0355C081E0817054C0C93297 +:1059E00091F120F5C43179F1B0F4C73009F047C026 +:1059F0008EE180938F0282E380938E028AE080930F +:105A00008D0284E180938C0288E080938B0288E28F +:105A100080938A0234C0CE51C63088F5EC2FF0E076 +:105A2000E65FFC4F80818093FC0329C0CE34E9F00F +:105A300020F4CB3421F56AE013C0C13579F0C235CA +:105A4000F1F461E00DC08091FC03882319F01092FD +:105A5000FC0315C081E08093FD0315C061E006C022 +:105A60008091FC030E94282B0AC06AE08091FC030D +:105A70000E949E2B04C01092FD0380E004C081E0D0 +:105A800002C080E0AACFCF9108950E94C928811159 +:105A900002C00E94A5280E94EA288093180480FF73 +:105AA00002C0869501C080E00C94540580911804D2 +:105AB000982F9695292F30E0233031054CF49F5FC5 +:105AC000990F8170892B8160809318040E94EE28C1 +:105AD0008091180486950C94540580911804982F91 +:105AE000969591F09158990F8170892B80931804A5 +:105AF0008E7F91E009F490E08091180490FB80F98A +:105B0000809318040E94EE288091180486950C94C6 +:105B1000540580911804982F909590FB80F98093FC +:105B200018040E94EE288091180480FF02C0869518 +:105B300001C080E00C94540590911804892F86953B +:105B40008F5F8F779170843028F4880F892B809332 +:105B5000180402C090931804809118048E7F91E07D +:105B600009F490E08091180490FB80F98093180468 +:105B70000E94EE288091180486950C94540520917B +:105B80001804922F96958927982F990F822F81704C +:105B9000892B809318048E7F91E009F490E0809126 +:105BA000180490FB80F9809318040E94EE288091DD +:105BB000180486950C9454055058BB27AA270ED07C +:105BC00075C166D130F06BD120F031F49F3F11F4F4 +:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC +:105BE00080F3BA17620773078407950718F071F4FA +:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 +:105C0000B90190010C01CA01A0011124FF27591B01 +:105C100099F0593F50F4503E68F11A16F040A22F07 +:105C2000232F342F4427585FF3CF46953795279578 +:105C3000A795F0405395C9F77EF41F16BA0B620B77 +:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE +:105C5000771F881FC2F70EC0BA0F621F731F841F01 +:105C600048F4879577956795B795F7959E3F08F027 +:105C7000B3CF9395880F08F09927EE0F97958795E6 +:105C80000895D9D008F481E008950CD00FC107D150 +:105C900040F0FED030F021F45F3F19F0F0C0511118 +:105CA00039C1F3C014D198F39923C9F35523B1F343 +:105CB000951B550BBB27AA2762177307840738F07B +:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA +:105CD0000E2E3AF0E0E830D091505040E695001C8E +:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A +:105CF000261737074807AB07B0E809F0BB0B802D24 +:105D0000BF01FF2793585F4F2AF09E3F510568F06F +:105D1000B6C000C15F3FECF3983EDCF38695779503 +:105D20006795B795F7959F5FC9F7880F911D969571 +:105D3000879597F90895E1E0660F771F881FBB1FCD +:105D4000621773078407BA0720F0621B730B840B7A +:105D5000BA0BEE1F88F7E095089504D06894B1114E +:105D6000D9C00895BCD088F09F5790F0B92F9927DB +:105D7000B751A0F0D1F0660F771F881F991F1AF056 +:105D8000BA95C9F712C0B13081F0C3D0B1E008951F +:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 +:105DA000869577956795B395D9F73EF4909580954C +:105DB000709561957F4F8F4F9F4F0895E89409C06C +:105DC00097FB3EF490958095709561957F4F8F4F2E +:105DD0009F4F9923A9F0F92F96E9BB279395F69544 +:105DE000879577956795B795F111F8CFFAF4BB0FC2 +:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 +:105E0000882311F096E911C0772321F09EE8872FAF +:105E1000762F05C0662371F096E8862F70E060E06B +:105E20002AF09A95660F771F881FDAF7880F9695E4 +:105E3000879597F90895990F0008550FAA0BE0E888 +:105E4000FEEF16161706E807F907C0F0121613063C +:105E5000E407F50798F0621B730B840B950B39F47C +:105E60000A2661F0232B242B252B21F408950A26E2 +:105E700009F4A140A6958FEF811D811D089597F922 +:105E80009F6780E870E060E008959FEF80EC0895E0 +:105E900000240A9416161706180609060895002409 +:105EA0000A9412161306140605060895092E039483 +:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 +:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 +:105ED0009058440F551F59F05F3F71F04795880F58 +:105EE00097FB991F61F09F3F79F0879508951216EF +:105EF00013061406551FF2CF4695F1DF08C016169B +:105F000017061806991FF1CF86957105610508944B +:105F10000895E894BB2766277727CB0197F9089562 +:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF +:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E +:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 +:105F5000F001729FBB27F00DB11D639FAA27F00DC2 +:105F6000B11DAA1F649F6627B00DA11D661F829FE9 +:105F70002227B00DA11D621F739FB00DA11D621FCE +:105F8000839FA00D611D221F749F3327A00D611DEB +:105F9000231F849F600D211D822F762F6A2F1124CD +:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 +:105FB000BB1F661F771F881F91505040A9F79E3F57 +:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 +:105FD000869577956795B795F795E7959F5FC1F794 +:105FE000FE2B880F911D9695879597F90895FA01D4 +:105FF000EE0FFF1F30962105310599F161157105EE +:1060000061F48038BFE39B0749F1689490388105BB +:1060100061F08038BFEF9B0741F0992342F5FF3FC5 +:10602000E1053105210511F1E8940894E795D901BE +:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 +:1060400070F4A695E0F7F73950F019F0FF3A38F4FC +:106050009F779F930CD00F9007FC905808953EF0C7 +:1060600014CF60E070E080E89FE308954FE79F77EA +:106070005F934F933F932F939ED02F913F914F91DA +:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C +:1060900026DFC8F39638C0F707F80F92E8942BE391 +:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F +:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B +:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 +:1060D0004427EE0F441FFA95E1F74195550B32D056 +:1060E0000F9007FE26C00895DF93CF931F930F9361 +:1060F000FF92EF92DF927B018C01689405C0DA2E4B +:10610000EF011EDFFE01E894A5912591359145919F +:106110005591AEF3EF0162DDFE019701A801DA941B +:1061200079F7DF90EF90FF900F911F91CF91DF9162 +:1061300008959B01AC0160E070E080E89FE3A5CD8D +:106140009ECEACC0CCDEE8F39923D9F3940F511D59 +:10615000BBF39150504094F059F0882332F0660F11 +:10616000771F881F91505040C1F79E3F510544F75B +:10617000880F911D9695879597F908955F3FACF02C +:10618000983E9CF0BB27869577956795B79508F460 +:10619000B1609395C1F7BB0F58F711F460FFE8CFDA +:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F +:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 +:1061C000DF93CF931F930F93FF92C92FDD2788236F +:1061D0002AF02197660F771F881FDAF720E030E05A +:1061E00040E85FEB9FE3883920F0803E30F0219655 +:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 +:1062000073DF8B01BE01EC01FB2E6F577109759591 +:10621000771F880B990BD4DD28E132E741E35FE378 +:106220008FDEAF2D9801AE01FF900F911F91CF919E +:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E +:10624000AC01BF5728F422273327442750781FC0BA +:10625000B75188F4AB2F0024469537952795011C3C +:10626000A395D2F3002069F0220F331F441FB3958A +:10627000DAF30DD0A1CC61307105A0E88A07B946E8 +:1062800030F49B01AC0166277727882790783096F9 +:1062900021F0208331834283538308959F3F31F05F +:1062A000915020F4879577956795B795880F911D44 +:1062B0009695879597F90895AA1BBB1B51E107C0D6 +:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 +:1062D000991F5A95A9F780959095BC01CD01089515 +:1062E00097FB072E16F4009407D077FD09D00E9483 +:1062F0005C3107FC05D03EF4909581959F4F089541 +:10630000709561957F4F0895EE0FFF1F0590F491F2 +:10631000E02D0994F999FECF92BD81BDF89A992795 +:1063200080B50895A8E1B0E042E050E00C94B231AD +:10633000262FF999FECF92BD81BDF89A019700B43E +:10634000021639F01FBA20BD0FB6F894FA9AF99ADE +:106350000FBE08950196272F0E9499310C94983111 +:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 +:10637000F89A319600B40D9241505040B8F7089504 +:04638000F894FFCFBF +:1063840007000C52D02445000000410000DC44000A +:1063940000004152D0A4440000404100005C44008D +:1063A40000004148F17644000000415C978A4400B3 +:1063B4000000411FD592440000004152D0A4440083 +:1063C4000000415CFFB844000000410AA7CF44002C +:1063D4000000410000DC44000000410AA7CF440053 +:1063E4000000410000DC4400000041000000000007 +:1063F40000804000005C45000040410000000000B7 +:1064040000804052D02445000040410AA7CF4400F8 +:106414000000410000DC44000000410000000000D6 +:1064240000804052D024450000404100000000009C +:1064340000804000005C45000040410AA7CF4400B2 +:106444000000410000DC44000000410000000000A6 +:1064540000804052D024450000404100000000006C +:106464000080400AA74F45000040410AA7CF4400DE +:106474000000410000DC4400000041000000000076 +:1064840000804052D024450000004100000000007C +:106494000080405CFF38450000004100000000001F +:1064A40000804052D02445000000410AA7CF440098 +:1064B4000000410000DC4400000041000000000036 +:1064C40000804052D024450000804153D024450030 +:1064D40000404160970A450000004154D0A44400A4 +:1064E4000000410000DC440000004160970A4500C0 +:1064F40000A041050000003F0000C8423214C0144F +:106504009D14691435140101DA032808140A321E93 +:106514000000020004000500070009000B000C0045 +:106524000E001000110013001500170018001A00C7 +:106534001C001D001F002100230024002600280049 +:1065440029002B002D002F003000320034003500CC +:10655400370039003B00400045002500260061005B +:106564006000200037006400650066006700440096 +:106574004600240047003F4D3639BD0970093A09E9 +:1065840001099408AD08C608DF08010203040506E2 +:0465940007080900EB +:00000001FF diff --git a/keyboard/preonic/preonic_pcb_r1.hex b/keyboard/preonic/preonic_pcb_r1.hex new file mode 100644 index 000000000..5bdc190e1 --- /dev/null +++ b/keyboard/preonic/preonic_pcb_r1.hex @@ -0,0 +1,1702 @@ +:100000000C94D4020C9418030C9418030C94180349 +:100010000C9418030C9418030C9418030C941803F4 +:100020000C9418030C9418030C94E8160C94BA174B +:100030000C946C290C9418030C9418030C9418035A +:100040000C9418030C9418030C9418030C941803C4 +:100050000C9418030C94D9290C9418030C941803CD +:100060000C9418030C9418030C9418030C941803A4 +:100070000C9418030C9418030C9418030C94180394 +:100080000C941C0E0C9418030C9418030C94180375 +:100090000C9418030C9418030C9418030C94180374 +:1000A0000C9418030C9418030C941803076342363D +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F00000000003500EC +:100130001E001F00200021002200230024002500B3 +:10014000260027002A002B0014001A0008001500C2 +:1001500017001C0018000C00120013002A002900D0 +:1001600004001600070009000A000B000D000E0035 +:100170000F0033003400E1001D001B0006001900D1 +:10018000050011001000360037003800280000304C +:10019000E000E200E30003522C002C000452500067 +:1001A000510052004F0035001E001F0020002100AA +:1001B0002200230024002500260027002A002B000F +:1001C00014001A00090013000A000D000F001800A7 +:1001D0001C0033002A002900040015001600170037 +:1001E00007000B00110008000C0012003400E100B1 +:1001F0001D001B000600190005000E00100036004F +:100200003700380028000030E000E200E30003522D +:100210002C002C0004525000510052004F003500B9 +:100220001E001F00200021002200230024002500C2 +:10023000260027002A002B00340036003700130068 +:100240001C0009000A00060015000F002A00290002 +:1002500004001200080018000C0007000B00170033 +:10026000110016003800E100330014000D000E00EC +:100270001B00050010001A0019001D0028000030A6 +:10028000E000E200E30003522C002C000452500076 +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00350212 +:1002B0001E021F0220022102220223022402250222 +:1002C000260227022A0001003A003B003C003D00C4 +:1002D0003E003F002D022E022F02300231020100AB +:1002E00040004100420043004400450000530153D8 +:1002F0000253005001000100010001000100010053 +:10030000010001000100AB00AA00A900AE00350009 +:100310001E001F00200021002200230024002500D1 +:10032000260027002A0035001E001F0020002100A3 +:100330002200230024002500260027002A000100B7 +:100340003A003B003C003D003E003F002D002E00E7 +:100350002F00300031000100400041004200430006 +:1003600044004500005301530253005001000100B6 +:100370000100010001000100010001000100AB00CB +:10038000AA00A900AE002A035400680065002000FE +:100390005000720065006F006E006900630020006D +:1003A0004B006500790062006F006100720064001C +:1003B00000002C034F007200740068006F006C0096 +:1003C00069006E0065006100720020004B0065004E +:1003D000790062006F006100720064007300000029 +:1003E000040309040902D000060100A0FA09040070 +:1003F000000103010100092111010001223F000752 +:1004000005810308000A0904010001030102000933 +:100410002111010001224D000705820308000A098D +:10042000040200010300000009211101000122362D +:10043000000705830308000A090403000203000003 +:10044000000921110100012220000705840320007A +:100450000107050403200001090404000001010054 +:100460000009240100010900010509040500020139 +:1004700003000007240100014100062402010100DD +:1004800006240202020009240301030102010009FB +:1004900024030204010101000905060240000500D1 +:1004A0000005250101010905850240000500000540 +:1004B000250101031201100100000008EDFE61603A +:1004C0000100010200010631FF0974A1010975153F +:1004D0000025FF9520750881020976150025FF95F6 +:1004E0002075089102C005010980A101850216014D +:1004F0000026B7001A01002AB70075109501810087 +:10050000C0050C0901A1018503160100269C021AF1 +:1005100001002A9C02751095018100C005010902A5 +:10052000A1010901A10005091901290515002501ED +:100530009505750181029501750381010501093059 +:1005400009311581257F95027508810609381581C5 +:10055000257F950175088106050C0A38021581254D +:100560007F950175088106C0C005010906A1010536 +:100570000719E029E7150025019508750181029505 +:100580000175088101050819012905950575019175 +:10059000029501750391010507190029FF15002532 +:1005A000FF950675088100C011241FBECFEFDAE069 +:1005B000DEBFCDBF04B603FE24C080910404909139 +:1005C0000504A0910604B09107048730904BA74022 +:1005D000B04BB9F410920404109205041092060472 +:1005E0001092070414BE84B7877F84BF88E10FB6DA +:1005F000F89480936000109260000FBEE0E0F8E392 +:10060000099512E0A0E0B1E0EEE1F9E602C0059044 +:100610000D92A832B107D9F714E0A8E2B2E001C008 +:100620001D92A430B107E1F70E94A0130C948D3401 +:100630000C94000061110DC0FC018281882331F00F +:1006400085EE0E94671E0E94683003C085EE0E94FE +:100650002F1F80E090E008950E940F0E40E050E0D0 +:1006600069E070E080E091E00C94600F08950E94D2 +:1006700049036E9A769A8CE293E0892B11F00C94E0 +:100680002C03089586E393E0892B11F00C94360334 +:100690000895279A2F988FEF9FEF9093870080936C +:1006A00086008AE08093800089E1809381000C9429 +:1006B000113081110BC080918000877F8093800072 +:1006C00010928D0010928C002F9808952F988330EF +:1006D00041F4809180008860809380008FEF9FEFCD +:1006E00012C09091800098609093800023E030E0E9 +:1006F000281B3109220F331F8FEF9FEF02C0969501 +:1007000087952A95E2F790938D0080938C00089549 +:100710008B3B910568F4883A910530F5853A91054F +:10072000C0F48430910598F4019709F06FC071C04E +:10073000803E910508F46AC0883E910540F09C0116 +:10074000205F31092031310508F060C05CC09C0198 +:10075000A1C0853A910509F45FC0863A910509F474 +:100760005EC023E830E496C0883A910509F45AC087 +:10077000893A910509F459C08A3A910509F458C09B +:100780008B3A910509F457C08C3A910509F456C08B +:100790008D3A910509F455C0803B910509F454C088 +:1007A0008E3A910509F453C08F3A910509F452C06D +:1007B000813B910509F451C0823B910509F450C079 +:1007C000833B910509F44FC0843B910509F44EC069 +:1007D000853B910509F44DC0863B910509F44CC059 +:1007E000873B910509F44BC0883B910509F44AC049 +:1007F000893B910509F449C08A3B910509F048C03D +:100800002AE236E447C09C01306544C020E030E075 +:1008100041C021E030E03EC021E830E43BC022E8A6 +:1008200030E438C022EE34E435C029EE34E432C07E +:100830002AEE34E42FC025EB34E42CC026EB34E45C +:1008400029C027EB34E426C02CEC34E423C02DEC83 +:1008500034E420C023E835E41DC02AE835E41AC09A +:1008600022E935E417C024E935E414C021E236E476 +:1008700011C023E236E40EC024E236E40BC025E2C8 +:1008800036E408C026E236E405C027E236E402C0BA +:1008900020E034E4C90108959CE0799FF00111241F +:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71 +:1008B000FF1FE25DFE4F25913491C9010895880F15 +:1008C000991F82559040FC0125913491C9010895EA +:1008D000880F991F825D9E4FFC0125913491C901BB +:1008E00008950E944C049C019A9581159F4110F433 +:1008F000C9010895C90190528115904128F4C90198 +:100900009F700E9468040895C90190538115904119 +:1009100020F4C9019927906C0895C901905440971B +:1009200028F4C9018F709927946D0895203180E4CF +:10093000380719F480E091ED0895213190E43907EA +:1009400019F480E090ED0895223140E4340719F461 +:1009500080E092ED0895233180E4380719F480E0B7 +:1009600093ED0895211590E5390799F40E945623D7 +:1009700040E065E088E491E00E94600F2FEF44E3DF +:100980008CE0215040408040E1F700C000000C9412 +:10099000FE29213090E5390731F48091F002816021 +:1009A0008093F0020895C90190558115904108F097 +:1009B00062C0432F55274F70552741305105F9F438 +:1009C000C90174E0880F991F7A95E1F78827937021 +:1009D000B901E3E0660F771FEA95E1F760767727C4 +:1009E000862B972B9C682370332702C0440F551F1A +:1009F0002A95E2F74F715527842B952B08954230A5 +:100A0000510529F4922F8827816F906A0895433009 +:100A10005105B9F4C90153E0880F991F5A95E1F7C0 +:100A2000807E97702370332741E050E002C0440F6E +:100A3000551F2A95E2F74F715527842B952B9C68FB +:100A400008954430510589F5C90143E0880F991F85 +:100A50004A95E1F7807E97702370332741E050E09C +:100A600002C0440F551F2A95E2F74F715527842B7A +:100A7000952B9A680895C90190568115904118F4F4 +:100A8000C901906F0895C90190578115904120F4D4 +:100A9000C9019F7090620895C901905881159041D5 +:100AA00020F4C9019F70906A0895203E3105E0F45A +:100AB000203C310568F52133310509F475C048F44F +:100AC0002932310509F46BC02A32310509F07BC0A7 +:100AD00075C02933310501F122383105E9F025339C +:100AE000310509F070C051C0233E3105B1F140F429 +:100AF000203E3105D1F0223E310509F064C01CC012 +:100B0000263E310579F1273E310509F05CC038C039 +:100B1000C9010E945F0408958091010380FD02C015 +:100B200081FF51C080EE90E04FC08091010380FFB3 +:100B3000F9CF89E390E048C08091010382FF0AC0A9 +:100B40008091010384FF03C080E090E03DC083EE0C +:100B500090E03AC082EE90E037C08091010382FFBE +:100B6000EFCFF8CF8091010383FF07C0809101038D +:100B700084FDEACF87EE90E027C086EE90E024C0A7 +:100B80008091010383FFF2CFF8CF8091010385FFAD +:100B900003C089E290E018C085E390E015C0809121 +:100BA000010385FDF9CFF5CF8091010386FF03C0D6 +:100BB0008AE290E009C081E390E006C080910103E1 +:100BC00086FDF9CFF5CFC9010E94880308950895E5 +:100BD0005F926F927F928F929F92AF92BF92CF92CD +:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6 +:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9 +:100C00002F5F3F4F4E018BE0880E911C60E070E03B +:100C100000E010E0E12CF12CC12CD12CA12CB12C46 +:100C20008AE0782E622E532E41E050E0E3E9F1E0B5 +:100C3000A62DB52D872D01900D928A95E1F7F9012A +:100C4000819191919F01FC01E07FFF27E032F10546 +:100C500059F48F709927FA0102C0EE0FFF1F8A9591 +:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E +:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC +:100C8000DF2A29C0E034F10559F48F709927FA0161 +:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063 +:100CA000E035F10559F48F709927FA0102C0EE0F73 +:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2 +:100CC00051F48F709927FA0102C0EE0FFF1F8A9529 +:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9 +:100CE0008A2D8095892384B985B18A2985B997B1E0 +:100CF0008C2D8095892387B988B18C2988B99AB1C0 +:100D00008E2D809589238AB98BB18E298BB99DB19F +:100D1000802F809589238DB98EB1802B8EB990B3A9 +:100D2000862F8095892380BB81B3862B81BB2A9631 +:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC +:100D40000F91FF90EF90DF90CF90BF90AF909F906A +:100D50008F907F906F905F9008955F926F927F92D7 +:100D60008F929F92AF92BF92CF92DF92EF92FF92BB +:100D70000F931F93CF93DF93CDB7DEB768970FB66E +:100D8000F894DEBF0FBECDBF85B7806885BF85B73D +:100D9000806885BF0E94E8059E012F5F3F4F4E018E +:100DA00089E1880E911C60E070E000E010E0E12C29 +:100DB000F12CC12CD12CA12CB12C98E1792E622ED2 +:100DC000532E41E050E0EDE9F1E0A62DB52D872D41 +:100DD00001900D928A95E1F7F901819191919F011E +:100DE000FC01E07FFF27E032F10559F48F7099276D +:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62 +:100E000037C0E033F10559F48F709927FA0102C019 +:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1 +:100E2000F10559F48F709927FA0102C0EE0FFF1FE8 +:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446 +:100E40008F709927FA0102C0EE0FFF1F8A95E2F713 +:100E50000E2B1F2B0DC0E036F10551F48F70992732 +:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F +:100E70002815390509F0A7CF94B18A2D80958923CB +:100E800084B985B18A2985B997B18C2D809589233C +:100E900087B988B18C2988B99AB18E2D809589231C +:100EA0008AB98BB18E298BB99DB1802F809589230A +:100EB0008DB98EB1802B8EB990B3862F8095892302 +:100EC00080BB81B3862B81BB10922902109228022D +:100ED000109233021092320210922B0210922A02C8 +:100EE000109235021092340210922D0210922C02B0 +:100EF000109237021092360210922F0210922E0298 +:100F0000109239021092380210923102109230027F +:100F100010923B0210923A0287E393E0892BB9F0DA +:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC +:100F30001F910F91FF90EF90DF90CF90BF90AF90F7 +:100F40009F908F907F906F905F900C94370368967E +:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA +:100F60000F91FF90EF90DF90CF90BF90AF909F9048 +:100F70008F907F906F905F9008955F926F927F92B5 +:100F80008F929F92AF92BF92CF92DF92EF92FF9299 +:100F90000F931F93CF93DF93CDB7DEB7A2970FB612 +:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17 +:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26 +:100FC0003AE0532E470101E010E048E1642E55E07D +:100FD000752EE3E9F1E0D401852D01900D928A95FB +:100FE000E1F7F701819191917F019C01207F3327E7 +:100FF0002032310589F424B18F709927A80102C0ED +:10100000440F551F8A95E2F7CA01242B24B995B1E4 +:101010008095892385B94FC02033310589F427B1E4 +:101020008F709927F80102C0EE0FFF1F8A95E2F733 +:10103000CF012E2B27B998B18095892388B93BC061 +:101040002034310589F42AB18F709927A80102C094 +:10105000440F551F8A95E2F7CA01242B2AB99BB188 +:10106000809589238BB927C02035310589F42DB1AE +:101070008F709927F80102C0EE0FFF1F8A95E2F7E3 +:10108000CF012E2B2DB99EB1809589238EB913C027 +:101090002036310581F420B38F709927A80102C052 +:1010A000440F551F8A95E2F7CA01242B20BB91B348 +:1010B0008095892381BB50EA5A95F1F7BE016F5F95 +:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC +:1010D0001196462D01900D924A95E1F7FB01419141 +:1010E0005191BF01FA01E07FFF27E032F10511F4D1 +:1010F000E3B113C0E033F10511F4E6B10EC0E03402 +:10110000F10511F4E9B109C0E035F10511F4ECB1D4 +:1011100004C0E036F105B9F4EFB1F0E04F705527A7 +:1011200002C0F595E7954A95E2F7E0FD08C0A801F1 +:10113000022E02C0440F551F0A94E2F702C040E09D +:1011400050E0842B952B2F5F3F4F2C30310509F059 +:10115000BCCFF601208131812817390721F0918316 +:101160008083709270010E94E805F2E0CF0ED11CDE +:10117000EA14FB0409F02DCF809170018823A1F1BE +:10118000815080937001882339F08FE99FE00197A7 +:10119000F1F700C0000028C0809132029091330224 +:1011A0009093290280932802809134029091350215 +:1011B00090932B0280932A028091360290913702FD +:1011C00090932D0280932C028091380290913902E5 +:1011D00090932F0280932E0280913A0290913B02CD +:1011E000909331028093300282E493E0892B11F0D6 +:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4 +:10120000CDBFDF91CF911F910F91FF90EF90DF90B5 +:10121000CF90BF90AF909F908F907F906F905F9096 +:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D +:10123000918108950895CF92DF92EF92FF920F93DC +:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601 +:10125000F894DEBF0FBECDBF8C01862F642F88238C +:1012600079F0F80192812FE7482F992329F083E044 +:1012700093E00E94C41904C083E093E00E94D41953 +:10128000F80180818B3091F59181943009F0A8C2EA +:101290009281809173019923B1F08F5F80937301E4 +:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207 +:1012B0009A95E1F7E0917101F0917201EE0FFF1F35 +:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03 +:1012D000BD4F01900D929A95E1F7E0917101F09167 +:1012E0007201EE0FFF1F21E332E093C08A3009F054 +:1012F000CBC0F8019181943009F072C29281809143 +:101300007301992309F473C081508093730196E4AB +:10131000E5EBF1E0DE01A551BE4F01900D929A95EB +:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA +:1013300031E02C0F3D1FE20FF31F60817181680FB8 +:10134000711D882777FD8095982F0E94AC3120E091 +:1013500030E040E451E40E94113120E030E040E808 +:1013600050E40E94A9309B01AC0160E070E080E095 +:1013700090E40E94C33221E230ED42E053E40E9447 +:1013800060324CE050E00E94BB0F20E04BE760E091 +:1013900083E093E00E94B41920E04BE761E083E032 +:1013A00093E00E94B41920E04BE762E083E093E011 +:1013B0000E94B41920E04BE763E083E093E00E94D1 +:1013C000B41920E04BE764E083E093E0C454DD4FC0 +:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146 +:1013E0000F91FF90EF90DF90CF900C94B41996E49A +:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501 +:10140000E1F7E0917101F0917201EE0FFF1F25EA03 +:1014100031E02C0F3D1FE20FF31F60817181680FD7 +:10142000711D882777FD8095982F0E94AC3120E0B0 +:1014300030E040E451E40E94113120E030E040E827 +:1014400050E40E94A9309B01AC0160E070E080E0B4 +:1014500090E40E94C33221E230ED42E053E40E9466 +:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F +:101470000FBECDBFDF91CF911F910F91FF90EF90E5 +:10148000DF90CF900C94BE0C893009F0D3C0F801E6 +:101490009181943009F0A4C19281992309F4A0C1EB +:1014A00080917101909172010196909372018093E5 +:1014B000710120E04BE760E083E093E00E94B41903 +:1014C00020E04BE761E083E093E00E94B41920E064 +:1014D0004BE762E083E093E00E94B41920E04BE721 +:1014E00063E083E093E00E94B41920E04BE764E0FE +:1014F00083E093E00E94B4190E94BE0C00E010E06B +:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5 +:10151000BE4F9F2D01900D929A95E1F7E0917101D8 +:10152000F0917201E00FF11FEE0FFF1F2FE531E088 +:101530002C0F3D1FE20FF31F60817181680F711D39 +:10154000882777FD8095982F0E94AC3120E030E00D +:1015500040E451E40E94113120E030E040E850E4E2 +:101560000E94A9309B01AC0160E070E080E090E453 +:101570000E94C33221E230ED42E053E40E94603227 +:101580004CE050E00E94BB0F3FEF87EE93E03150FC +:1015900080409040E1F700C0000080917301E5EBCE +:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E +:1015B000E1F7E0917101F0917201E00FF11FEE0F80 +:1015C000FF1F29E131E02C0F3D1FE20FF31F608167 +:1015D0007181680F711D882777FD8095982F0E9473 +:1015E000AC3120E030E040E451E40E94113120E0D1 +:1015F00030E040E850E40E94A9309B01AC0160E07B +:1016000070E080E090E40E94C33221E230ED42E0DD +:1016100053E40E9460320E94EB0C8FEF9CE701972D +:10162000F1F700C000000F5F1F4F0830110509F0EF +:1016300069CF94C1883009F0D3C0F801918194300A +:1016400009F0CEC09281992309F4CAC0809171013A +:10165000909172010197909372018093710120E043 +:101660004BE760E083E093E00E94B41920E04BE791 +:1016700061E083E093E00E94B41920E04BE762E070 +:1016800083E093E00E94B41920E04BE763E083E03D +:1016900093E00E94B41920E04BE764E083E093E01C +:1016A0000E94B4190E94BE0C00E010E056E4F52E32 +:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C +:1016C00001900D929A95E1F7E0917101F09172010C +:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39 +:1016E000E20FF31F60817181680F711D882777FDFC +:1016F0008095982F0E94AC3120E030E040E451E426 +:101700000E94113120E030E040E850E40E94A9300E +:101710009B01AC0160E070E080E090E40E94C33285 +:1017200021E230ED42E053E40E9460324CE050E0B0 +:101730000E94BB0F3FEF87EE93E031508040904016 +:10174000E1F700C0000080917301E5EBF1E0DE01FC +:10175000A357BF4F9F2D01900D929A95E1F7E0910D +:101760007101F0917201E00FF11FEE0FFF1F2DE8E4 +:1017700030E02C0F3D1FE20FF31F60817181680F75 +:10178000711D882777FD8095982F0E94AC3120E04D +:1017900030E040E451E40E94113120E030E040E8C4 +:1017A00050E40E94A9309B01AC0160E070E080E051 +:1017B00090E40E94C33221E230ED42E053E40E9403 +:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD +:1017D00000000F5F1F4F0830110509F069CFBEC030 +:1017E000F801228190917301222309F45DC026E45F +:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568 +:10180000E1F7E0917101F0917201E80FF11DEE0F27 +:10181000FF1F27E430E02C0F3D1FE20FF31F608114 +:101820007181690F711D882777FD8095982F0E941F +:10183000AC3120E030E040E451E40E9411316B0112 +:101840007C01F801818165E070E0681B71098827DF +:1018500077FD8095982F0E94AC319B01AC01C701A8 +:10186000B6010E94A9309B01AC0160E070E080E00D +:1018700090E40E94C33221E230ED42E053E40E9442 +:1018800060324FE050E0C454DD4F0FB6F894DEBF35 +:101890000FBECDBFDF91CF911F910F91FF90EF90C1 +:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176 +:1018B000119601900D922A95E1F7E0917101F09156 +:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39 +:1018D0003D1FE20FF31F60817181690F711D882721 +:1018E00077FD8095982F0E94AC3120E030E040E4F5 +:1018F00051E40E9411316B017C01F801818165E0A6 +:1019000070E0681B7109882777FD8095982F0E94E9 +:10191000AC319B01AC01C701B6010E94A9309B010B +:10192000AC0160E070E080E090E40E94C33221E20C +:1019300030ED42E053E40E946032C454DD4F0FB6F4 +:10194000F894DEBF0FBECDBFDF91CF911F910F91F5 +:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0 +:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0 +:101970000F91FF90EF90DF90CF9008951092870223 +:1019800010928602809171008D7F8093710080910A +:1019900090008F7780939000109248021092470237 +:1019A00010928002109281021092820210928302A1 +:1019B00010927F0210927E02EEE5F2E0AEE4B2E019 +:1019C00011921192119211921D921D9282E0EE37A6 +:1019D000F807B1F708956F927F928F929F92AF921E +:1019E000BF92CF92DF92EF92FF920F931F93CF930C +:1019F000DF936B017C010EE712E04CE5A42E42E080 +:101A0000B42EC7E0D0E0A7019601F801929182912F +:101A1000729162918F010E940D31882349F02197C4 +:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB +:101A3000F8011082118212821382F5011182108244 +:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA +:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5 +:101A600055816681778140835183628373831482B9 +:101A700015821682178212962D913C91139711961A +:101A80003C932E9313961C921E92129734961296A4 +:101A90008730910519F7C3CF809186029091870214 +:101AA000019797FD05C0909387028093860204C03A +:101AB0001092870210928602E0918602F0918702CE +:101AC0003097C9F4809171008D7F8093710080916F +:101AD00090008F7780939000109280021092810284 +:101AE000109282021092830210927F0210927E0264 +:101AF0001092470285C03197DF01AA0FBB1FAA0FC2 +:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23 +:101B1000FF1FE25BFD4FC081D18160908002709019 +:101B200081028090820290908302A7019601662D27 +:101B3000772D882D992D0E940D3187FF25C0262DE8 +:101B4000372D482D592DC701B6010E94A83020E03D +:101B500030E04AEF54E40E9411315B018C012A2DE0 +:101B60003B2D402F512F662D772D882D992D0E94CA +:101B7000A9303B014C01A7019601772D992D0E94B8 +:101B80000D31181664F72EC0A7019601662D772D2A +:101B9000882D992D0E945C32181634F5A701960104 +:101BA000662D772D882D992D0E94A83020E030E0F9 +:101BB0004AEF54E40E9411315B018C012A2D3B2D28 +:101BC000402F512F662D772D882D992D0E94A830FA +:101BD0003B014C01A7019601772D992D0E945C32A3 +:101BE00087FFECCF10924D02C0928002D09281020A +:101BF000E0928202F0928302D0937F02C0937E0231 +:101C0000DF91CF911F910F91FF90EF90DF90CF90D8 +:101C1000BF90AF909F908F907F906F9008953E9A65 +:101C2000E1E7F0E080818D7F808382E08093900007 +:101C30008AE18093910008951F920F920FB60F9240 +:101C40001124CF92DF92EF92FF922F933F934F9305 +:101C50005F936F937F938F939F93AF93BF93CF9334 +:101C6000DF93EF93FF9380914702882309F479C0B3 +:101C700020E030E0A90160918002709181028091A2 +:101C80008202909183020E945C3218160CF069C0A7 +:101C900020E030E040E251E46091490270914A0254 +:101CA00080914B0290914C020E945C321816BCF459 +:101CB00080918402909185020196609186027091D4 +:101CC00087020E9448349093850280938402109288 +:101CD000490210924A0210924B0210924C02C0919B +:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC +:101CF000DD4F288139814A815B8160E074E284E7AD +:101D00009BE40E9411310E94793170939700609397 +:101D10009600288139814A815B8160E074E284E722 +:101D20009BE40E9411310E947931759567957093FB +:101D300099006093980020E030E040E85FE3609114 +:101D4000490270914A0280914B0290914C020E948C +:101D5000A9306093490270934A0280934B0290939A +:101D60004C0280914802882309F493C0C09043023A +:101D7000D0904402E0904502F090460220E030E02E +:101D8000A901C701B6010E945C321816F4F4A7013C +:101D9000960160E074E284E79BE40E9411310E94A6 +:101DA00079317093970060939600A701960160E0E7 +:101DB00074E284E79BE40E9411310E9479317595A9 +:101DC0006795709399006093980060913D027091BF +:101DD0003E026F5F7F4F70933E0260933D0280E052 +:101DE00090E00E94AA3120913F0230914002409140 +:101DF0004102509142020E945C3287FD4AC08091AC +:101E00003C028F5F80933C029091F0038917A0F011 +:101E10008091F503882319F010923C020DC0809147 +:101E200071008D7F80937100809190008F778093F7 +:101E30009000109248022DC0E091F103F091F2035E +:101E400080913C0298E0899FE00DF11D1124808172 +:101E50009181A281B3818093430290934402A09325 +:101E60004502B093460220E030E040E85EE3648142 +:101E70007581868197810E94603260933F027093E2 +:101E80004002809341029093420210923E021092CF +:101E90003D02FF91EF91DF91CF91BF91AF919F9163 +:101EA0008F917F916F915F914F913F912F91FF9013 +:101EB000EF90DF90CF900F900FBE0F901F9018956E +:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174 +:101ED00080914702882331F04A8369830E94BE0CB7 +:101EE00069814A8181E0809348021093F203009354 +:101EF000F1036093F0034093F503109249021092AE +:101F00004A0210924B0210924C0210923C02F801CD +:101F10004081518162817381409343025093440216 +:101F2000609345027093460220E030E040E85EE3B3 +:101F300064817581868197810E94603260933F023F +:101F400070934002809341029093420210923E02AD +:101F500010923D02809171008260809371008091A7 +:101F600090008068809390000F900F90DF91CF9148 +:101F70001F910F9108956F927F928F929F92AF92CF +:101F8000BF92CF92DF92EF92FF920F931F93CF9366 +:101F9000DF936B017C01EA018091480281110E946C +:101FA000BE0C81E08093470220E030E0A901C70128 +:101FB000B6010E945C3218160CF09AC06090800244 +:101FC00070908102809082029090830220E030E045 +:101FD000A901662D772D882D992D0E940D31811133 +:101FE00028C0C0928002D0928102E0928202F092D8 +:101FF0008302D0937F02C0937E02809186029091EB +:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C +:10201000C082D182E282F382FC01EE0FFF1FE25BFD +:10202000FD4FD183C08301969093870280938602EF +:102030005FC0A7019601662D772D882D992D0E94EE +:102040000D3187FF25C0262D372D482D592DC7016D +:10205000B6010E94A83020E030E04AEF54E40E942C +:1020600011315B018C012A2D3B2D402F512F662D04 +:10207000772D882D992D0E94A9303B014C01A70195 +:102080009601772D992D0E940D31181664F7A9CF6E +:10209000A7019601662D772D882D992D0E945C321F +:1020A00018160CF09ECFA7019601662D772D882D6E +:1020B000992D0E94A83020E030E04AEF54E40E94BD +:1020C00011315B018C012A2D3B2D402F512F662DA4 +:1020D000772D882D992D0E94A8303B014C01A70136 +:1020E0009601772D992D0E945C3287FFECCF79CF36 +:1020F000809171008260809371008091900080686F +:1021000080939000DF91CF911F910F91FF90EF90FE +:10211000DF90CF90BF90AF909F908F907F906F9007 +:102120000895809191020895CF93DF9300D01F927C +:10213000CDB7DEB72091FA03243021F523E02983BF +:102140009B838A832093E9008FEF06C095ED9A95D3 +:10215000F1F70000882329F09091E800815095FF65 +:10216000F5CF8091E80085FF0DC040E050E063E0CE +:1021700070E0CE0101960E947E148091E8008E7777 +:102180008093E8000F900F900F90DF91CF9108950A +:10219000CF93DF9300D01F92CDB7DEB72091FA0323 +:1021A000243029F522E029839B838A8383E080936E +:1021B000E9008FEF06C095ED9A95F1F700008823AE +:1021C00029F09091E800815095FFF5CF8091E800CB +:1021D00085FF0DC040E050E063E070E0CE01019665 +:1021E0000E947E148091E8008E778093E8000F9023 +:1021F0000F900F90DF91CF9108952091FA03243032 +:10220000F9F422E02093E9002FEF06C035ED3A956E +:10221000F1F70000222329F03091E800215035FF2A +:10222000F5CF2091E80025FF0BC040E050E065E0CD +:1022300070E00E947E148091E8008E778093E80021 +:102240000895CF93DF93EC018091FA03843041F538 +:1022500081E08093E9008FEF06C095ED9A95F1F744 +:102260000000882329F09091E800815095FFF5CF78 +:102270008091E80085FF14C040E050E068E070E025 +:10228000CE010E947E148091E8008E778093E80052 +:1022900088E0FE01A9E8B2E001900D928A95E1F78D +:1022A000DF91CF910895BF92CF92DF92EF92FF928C +:1022B0000F931F93CF93DF937C01B62EE90100E0CB +:1022C00010E0C42ED12C0BC04991202F2B0D2F775D +:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5 +:1022E0001D0594F3DF91CF911F910F91FF90EF9017 +:1022F000DF90CF90BF90089570E06F5F7F4F6F7059 +:1023000077270C94B4190F931F93CF93C42F633086 +:10231000710509F04AC0842F807F803849F18039E7 +:1023200009F043C0622F6F7770E080E090E00E9478 +:10233000AC3120E030E040E451E40E9411319B01D7 +:10234000AC0160E070E080E090E40E94C3320F775F +:1023500010E023E0159507952A95E1F72DEC3CEC6C +:1023600042E053E40E946032A8010E94BB0F1DC0EE +:10237000622F6F7770E080E090E00E94AC3120E047 +:1023800030E040E451E40E9411319B01AC0160E077 +:1023900070E080E090E40E94C3322DEC3CEC42E01F +:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1 +:1023B0001F910F910C94BE0CCF911F910F91089516 +:1023C0000F931F93CF93DF93CDB7DEB727970FB649 +:1023D000F894DEBF0FBECDBF8C0114C08A810E946D +:1023E0008E199A819D839B819E839C819F838111FD +:1023F0001EC089818430B1F08730A1F08630A1F011 +:102400008530A1F0BE016F5F7F4F84E791E00E94AD +:10241000FB1C8111E3CF84E791E00E94EC1C0E9439 +:1024200067190DC083E003C082E001C081E0AE0106 +:102430004B5F5F4F682FC8010E94211AE3CF279698 +:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5 +:102450000F910895EF92FF920F93CF93DF9300D0E7 +:1024600000D000D0CDB7DEB77B014A832B830C832D +:10247000842F2E834D830E948E192E814D818111D0 +:102480001BC082E0E816F10479F083E0E816F1045D +:1024900021F0EA94EF2821F50BC0073F11F487E003 +:1024A00001C084E089830BC0273FD9F786E0FACFCB +:1024B000473FB9F785E0F6CF42954F704983BE019B +:1024C0006F5F7F4F84E791E00E94B11C84E791E049 +:1024D0000E94CF1C84E791E00E94EC1C0E946719C7 +:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 +:1024F0000F91FF90EF9008958091F903811109C029 +:102500000E946D160E94CA168091E200846080933A +:10251000E20008951092F9030895089508950C9427 +:102520006129809192028F5F8093920262E30E9400 +:102530002834911135C01092920280919302882321 +:1025400079F18091FA03843049F58091E9008F7028 +:102550009091EC0090FF02C090E801C090E0982BB1 +:1025600084E08093E9008091EB0080FF14C08091AB +:10257000EE0087FD03C00FC01092F1008091E800CB +:1025800085FDFACF8091E80080FF05C08091E800CA +:102590008E778093E8009F709093E90010929302E9 +:1025A000089542E061EC81E00E94E31542E061ECB5 +:1025B00082E00E94E31542E061EC83E00E94E315B3 +:1025C00042E261EC84E00E94E31542E361E885E0C9 +:1025D0000E94E31542E360E886E00C94E3158091E5 +:1025E000FC03833009F454C030F4813071F0823040 +:1025F00009F0A5C08CC08A3009F479C08B3009F489 +:102600005FC0893009F09BC020C08091FB03813AF4 +:1026100009F095C08091E800877F8093E800809161 +:10262000FF0390910004892B21F060E080E090E0AE +:1026300003C068E089E892E070E00E941C15809178 +:10264000E8008B778093E80008958091FB03813246 +:1026500009F075C08091FF0390910004892B09F067 +:102660006EC08091E800877F8093E80005C080916C +:10267000FA03882309F463C08091E80082FFF7CF52 +:102680008091F100809391028091E8008B7753C094 +:102690008091FB03813A09F052C08091FF03909131 +:1026A0000004892B09F04BC08091E800877F80935C +:1026B000E8008091E80080FFFCCF80918A0136C05D +:1026C0008091FB038132D9F58091FF039091000442 +:1026D000892BA9F58091E800877F8093E8000E940C +:1026E0001A168091FD0380938A010C9456238091E1 +:1026F000FB03813221F58091E800877F8093E80019 +:102700000E941A168091FE0380938802089580919A +:10271000FB03813AA1F48091E800877F8093E80071 +:102720008091E80080FFFCCF809188028093F100C7 +:102730008091E8008E778093E8000C941A16089533 +:1027400083E093E00E94F0196AE272E183E093E093 +:102750000E94461A60EE71E183E093E00E944A1AFB +:1027600084B7877F84BF88E10FB6F89480936000B8 +:10277000109260000FBE90E080E80FB6F89480934E +:102780006100909361000FBE0E94741D0E946D163F +:102790000E94CA168091E20084608093E2007894DF +:1027A00063E871E183E093E00E94EC196CE771E16A +:1027B00083E093E00E94E41963E571E183E093E034 +:1027C0000E94E8190E940F0E0E9467190E94761D50 +:1027D00080E891E00E94201D0BC00E941E2980917C +:1027E000F803882329F00E94492981110E94681466 +:1027F0008091FA03853089F383E093E00E94F91B0E +:102800000E94801DF5CF292F332723303105B1F0E9 +:102810004CF42130310509F44DC02230310509F066 +:102820004EC007C02132310541F12232310591F10C +:1028300046C0E0EDF0E084EE93E045C0992781309A +:10284000910569F08230910589F0892B09F037C034 +:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0 +:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2 +:10287000E491F0E086E893E026C0643000F5E62FAE +:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF +:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1 +:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA +:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085 +:1028C000F0E080E090E0DA018D939C93CF010895D1 +:1028D00080E189BD82E189BD09B400FEFDCF809110 +:1028E000D8008F7D8093D8008091E0008260809333 +:1028F000E0008091E00081FDFCCF0895BF92CF926F +:10290000DF92EF92FF920F931F93CF93DF937C019F +:102910008B01EA010E943B16B82E811133C020972B +:1029200031F028813981021B130BE20EF31EC12CFA +:10293000D12C23C08091E80085FD15C08091E8006E +:102940008E778093E800209749F0888199818C0DDB +:102950009D1D9983888325E0B22E14C00E943B16EA +:10296000882359F00EC0F70181917F018093F10017 +:1029700001501109FFEFCF1ADF0A01151105D1F639 +:1029800001C0B82E8B2DDF91CF911F910F91FF9039 +:10299000EF90DF90CF90BF900895BF92CF92DF92DB +:1029A000EF92FF920F931F93CF93DF937C018B01E4 +:1029B000EA010E943B16B82E811133C0209731F0F6 +:1029C00028813981021B130BE20EF31EC12CD12C7E +:1029D00023C08091E80085FD15C08091E8008B77C9 +:1029E0008093E800209749F0888199818C0D9D1D86 +:1029F0009983888345E0B42E14C00E943B16882337 +:102A000059F00EC08091F100F70181937F010150D0 +:102A10001109FFEFCF1ADF0A01151105D1F601C028 +:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA +:102A3000DF90CF90BF90089540910104509102041F +:102A40004617570748F06115710539F44091E800C1 +:102A50004E774093E80001C0BA01FC0140E033C06A +:102A60008091FA03882309F444C0853009F443C0F7 +:102A70008091E80083FD41C08091E80082FD33C071 +:102A80008091E80080FF1FC09091F3008091F200D8 +:102A9000392F20E0A901482BCA0106C0419140937B +:102AA000F1006150710901966115710519F08830C6 +:102AB0009105A0F341E0089709F040E08091E8001B +:102AC0008E778093E8006115710551F64111C8CFEA +:102AD0000AC08091FA03882361F0853061F080910B +:102AE000E80083FD0AC08091E80082FFF2CF80E019 +:102AF000089582E0089583E0089581E0089540916B +:102B00000104509102044617570748F061157105FA +:102B100039F44091E8004E774093E80001C0BA01D3 +:102B2000FC0140E034C08091FA03882309F445C0D9 +:102B3000853009F444C08091E80083FD42C0809153 +:102B4000E80082FD34C08091E80080FF20C09091B1 +:102B5000F3008091F200392F20E0A901482BCA012F +:102B600007C044914093F10031966150710901967C +:102B70006115710519F08830910598F341E00897C7 +:102B800009F040E08091E8008E778093E8006115BD +:102B9000710549F64111C7CF0AC08091FA03882315 +:102BA00061F0853061F08091E80083FD0AC080917A +:102BB000E80082FFF2CF80E0089582E0089583E08C +:102BC000089581E00895982F2CC09093E9009817FC +:102BD00039F07091EC002091ED005091F00003C0AD +:102BE000242F762F50E021FD02C09F5F1AC0309144 +:102BF000EB003E7F3093EB003091ED003D7F309352 +:102C0000ED003091EB0031603093EB007093EC00FD +:102C10002093ED005093F0002091EE0027FDE5CFCA +:102C200007C0973090F28F708093E90081E008959B +:102C300080E008958091FB0387FD05C08091E80046 +:102C400080FF0EC012C08091E80082FD05C0809117 +:102C5000FA038111F8CF08958091E8008B7708C0BE +:102C60008091FA038111EACF08958091E8008E7770 +:102C70008093E80008958091E4009091E50045E696 +:102C80002091EC0020FD1FC023C02091FA032223D5 +:102C900091F0253091F02091EB0025FD10C020919E +:102CA000E4003091E5002817390751F34150C9017C +:102CB00039F784E0089582E0089583E0089581E083 +:102CC000089580E008952091E80020FFDECFF9CF3D +:102CD0002091E80022FFD9CFF4CF0E94DB160E949A +:102CE000E316E0EEF0E0808181608083E8EDF0E0C3 +:102CF00080818F77808319BCA7EDB0E08C918E7FA7 +:102D00008C9380818F7E80831092F90308950F93B6 +:102D10001F93CF93DF930E94DB160E94E316C8ED4A +:102D2000D0E088818F7788838881806888838881D4 +:102D30008F7D888319BC1092FA031092F6031092CB +:102D4000F8031092F70300EE10E0F80180818B7F0A +:102D5000808388818160888342E060E080E00E9417 +:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B +:102D7000808181608083808188608083F801808188 +:102D80008E7F8083888180618883DF91CF911F91BE +:102D90000F910895E8EDF0E080818F7E8083E7ED6C +:102DA000F0E080818160808384E082BF81E0809355 +:102DB000F9030C948716E8EDF0E080818E7F808324 +:102DC0001092E20008951092DA001092E100089546 +:102DD0001F920F920FB60F9211242F933F934F9390 +:102DE0005F936F937F938F939F93AF93BF93EF9373 +:102DF000FF938091E10082FF0BC08091E20082FF8F +:102E000007C08091E1008B7F8093E1000E949112C6 +:102E10008091DA0080FF1FC08091D80080FF1BC026 +:102E20008091DA008E7F8093DA008091D90080FF54 +:102E30000DC080E189BD82E189BD09B400FEFDCFEE +:102E400081E08093FA030E947C1205C019BC1092A5 +:102E5000FA030E948A128091E10080FF19C08091DC +:102E6000E20080FF15C08091E2008E7F8093E20037 +:102E70008091E20080618093E2008091D8008062BE +:102E80008093D80019BC85E08093FA030E948E12CB +:102E90008091E10084FF30C08091E20084FF2CC06B +:102EA00080E189BD82E189BD09B400FEFDCF80913A +:102EB000D8008F7D8093D8008091E1008F7E809331 +:102EC000E1008091E2008F7E8093E2008091E20039 +:102ED00081608093E2008091F603882311F084E002 +:102EE00007C08091E30087FF02C083E001C081E05A +:102EF0008093FA030E948F128091E10083FF29C022 +:102F00008091E20083FF25C08091E100877F80935C +:102F1000E10082E08093FA031092F6038091E100D1 +:102F20008E7F8093E1008091E2008E7F8093E200AB +:102F30008091E20080618093E20042E060E080E006 +:102F40000E94E3158091F00088608093F0000E9459 +:102F50008D12FF91EF91BF91AF919F918F917F91D2 +:102F60006F915F914F913F912F910F900FBE0F90F6 +:102F70001F9018951F920F920FB60F9211242F9346 +:102F80003F934F935F936F937F938F939F93AF93F1 +:102F9000BF93CF93EF93FF938091E9008F7090914F +:102FA000EC0090FF02C090E801C090E0C92FC82B50 +:102FB0001092E9008091F000877F8093F000789470 +:102FC0000E94FE171092E9008091F00088608093C3 +:102FD000F000CF70C093E900FF91EF91CF91BF91C6 +:102FE000AF919F918F917F916F915F914F913F91A1 +:102FF0002F910F900FBE0F901F9018951F93CF9396 +:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37 +:10301000CDBFEBEFF3E08091F100819324E0E3304A +:10302000F207C9F70E94EF128091E80083FF37C1D1 +:103030008091FB039091FC03953009F488C038F42B +:103040009130B1F170F0933009F029C131C098305E +:1030500009F4F8C0993009F404C1963009F01FC191 +:103060009DC0803821F0823809F019C108C08091D4 +:10307000F7039091F803992389F082600FC0809143 +:10308000FF03909100048F7099278093E90080914D +:10309000EB0085FB882780F91092E9009091E80009 +:1030A000977F9093E8008093F1001092F100D5C0D3 +:1030B000882319F0823009F0F2C08F7121F082303C +:1030C00009F0EDC00BC08091FD03813009F0E7C02D +:1030D000933009F080E08093F8032FC08091FD03C6 +:1030E00081112BC08091FF03909100048F7099276C +:1030F000009709F4D4C08093E9002091EB0020FFF1 +:103100001CC02091FC03233021F48091EB008062ED +:1031100012C09091EB0090619093EB0021E030E0C1 +:1031200001C0220F8A95EAF72093EA001092EA0084 +:103130008091EB0088608093EB001092E900809111 +:10314000E800877F8093E8000E941A16A8C08111CA +:10315000A6C08091FD039091FE038F779927182FC9 +:103160009091E3009078982B9093E3008091E80091 +:10317000877F8093E8000E941A168091E80080FF04 +:10318000FCCF8091E30080688093E300112311F06D +:1031900083E001C082E08093FA0381C080588230CE +:1031A00008F07DC08091FD039091FE038C3D23E0EB +:1031B000920779F583E08A838AE289834FB7F8948E +:1031C000DE01139620E03EE051E2E32FF0E0509361 +:1031D0005700E49120FF03C0E295EF703F5FEF706E +:1031E0008E2F90E0EA3010F0C79601C0C0968D9304 +:1031F0009D932F5F243149F74FBF8091E800877F6F +:103200008093E8006AE270E0CE0101960E941C15EE +:1032100013C0AE01455D5F4F6091FF030E94031430 +:103220000097E9F12091E800277F2093E800BC0196 +:103230008BA59CA50E947F158091E8008B778093D9 +:10324000E8002DC0803859F58091E800877F809391 +:10325000E8008091F6038093F1008091E8008E777A +:1032600071CF81111CC09091FD039230C0F4809108 +:10327000E800877F8093E8009093F6030E941A1677 +:103280008091F603811104C08091E30087FF02C0A2 +:1032900084E001C081E08093FA030E94D112809102 +:1032A000E80083FF0AC08091E800877F8093E800F0 +:1032B0008091EB0080628093EB00AC960FB6F8949F +:1032C000DEBF0FBECDBFDF91CF911F910895CF9389 +:1032D0008091FA038823B1F08091E9008F7090917A +:1032E000EC0090FF02C090E801C090E0C92FC82B0D +:1032F0001092E9008091E80083FD0E94FE17CF70D4 +:10330000C093E900CF910895881F8827881F0895EA +:1033100091E0883F08F490E0892F0895982F907FDE +:10332000903B99F038F4903981F0903A71F09038F0 +:10333000C9F40BC0903DA1F018F4903C99F410C072 +:10334000903E19F0903F71F402C083E00895E82F99 +:10335000E15FEF3038F4F0E0E15FFD4F80810895E8 +:1033600082E0089580E008950F932F774F776F7074 +:10337000606BDC01ED91FC91022F242F462F63E05E +:1033800070E009950F9108950F932F774F776F7025 +:103390006069DC01ED91FC91022F242F462F63E040 +:1033A00070E009950F9108950F932F774F776F7005 +:1033B0006068DC01ED91FC91022F242F462F63E021 +:1033C00070E009950F910895FC017383628308955D +:1033D000FC01738F628F0895FC01758F648F0895CF +:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A +:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8 +:103400001D821C821F821E82198618861B861A86C0 +:103410001D861C861F861E86198A188A1B8A1A8A90 +:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60 +:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199 +:103440000895CF92DF92FF920F931F93CF93DF9354 +:103450001F92CDB7DEB7F62E6A018C0108511F4FBF +:1034600008C0F60161916F01C80149830E94341CB4 +:1034700049818C2D841B8F15A0F30F90DF91CF9184 +:103480001F910F91FF90DF90CF900895FC01718301 +:1034900060830895FC0171A360A30895AF92BF9269 +:1034A000CF92DF92EF92FF920F931F93CF93DF9310 +:1034B00000D01F92CDB7DEB77C016B01142FB22E66 +:1034C000A02EDC0195968C9195978430F1F45A9654 +:1034D000ED91FC915B97309709F4D8C0CB0101972F +:1034E00063E070E00E943434DB01AA0FBB1FA60F1B +:1034F000B71F49832A830B834C2D4A1B9E012F5FE4 +:103500003F4FBD01C7010995B1C06230710509F493 +:1035100053C06330710529F06130710509F09CC01A +:1035200083C0842F807F803A01F130F48038B9F075 +:10353000803909F0ABC00DC0803EE9F0803F09F151 +:10354000803B09F0A3C0D7011296ED91FC9113972F +:1035500023C0D7011496ED91FC9115971DC0D7019A +:103560001696ED91FC91179717C0D7011896ED911B +:10357000FC91199711C0D7011A96ED91FC911B97F8 +:103580000BC0423F09F082C0D7011C96ED91FC911F +:103590001D97309731F47AC0309709F477C0123F05 +:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C +:1035B0004B2DC70109955AC0842F807F803D59F05B +:1035C000803F79F0803C09F061C0D7011E96ED91F3 +:1035D000FC911F9719C0D7015096ED91FC9151971E +:1035E00013C0433F31F4D7015296ED91FC915397AC +:1035F00008C0413F09F04AC0D7015496ED91FC91B3 +:103600005597309741F442C0309709F43FC0133FBB +:1036100011F0113F19F44B2D612F03C0612F6F7012 +:103620004B2DC701099522C0842F0E948819882339 +:1036300031F0D7015696ED91FC91579707C0163F90 +:1036400029F5D7015896ED91FC9159973097F1F0F3 +:10365000612FC70109950AC064307105A8F416C02E +:103660000A2D2B2D412FB601C7010995D7015E9672 +:10367000ED91FC915F97309789F00A2D2B2D412F0A +:10368000B601C70109950AC0C12CD12CD7015C969F +:10369000ED91FC915D97309719F7E8CF0F900F905F +:1036A0000F90DF91CF911F910F91FF90EF90DF90DE +:1036B000CF90BF90AF900895EF92FF920F931F931A +:1036C000CF93DF93EC01162F862F0E948819882351 +:1036D00069F0FDA081E08DA300E020E0412F61E0D2 +:1036E00070E0CE010E944E1AFDA27CC0812F0E9484 +:1036F00084194DA1882309F440C0443029F01AA34D +:1037000021E030E03FA32EA3812F0E948E1981304B +:1037100031F070F0823051F0833059F507C08DA33D +:1037200000E020E0412F61E070E01EC08DA35AC090 +:10373000103F19F0173FE9F404C084E08DA31AA3E9 +:103740003FC02EA13FA1C90163E070E00E94343464 +:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8 +:103760006EA30CA12BA14AA1CE010E944E1A1DA24C +:1037700039C01DA21FA21EA235C0442399F12EA15B +:103780003FA1C90163E070E00E9434347C01FE0176 +:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC +:1037A0008130910591F082E0E816F104D9F40CA182 +:1037B0002BA14AA1CE010E944E1A8DA1843091F016 +:1037C00081E090E09FA38EA30DC0423059F400E049 +:1037D0002BA14AA1CE010E944E1A8DA1843011F076 +:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A +:1037F0000895CF92DF92EF92FF920F931F93CF9392 +:10380000DF93EC01E8A1F9A1309709F009958E0149 +:1038100008511F4FC8010E94661CE12CF12CC82ED4 +:10382000D12C0FC060E0C8010E947A1C682FCE0125 +:103830000E945C1B61E0C8010E948B1C8FEFE81A9C +:10384000F80AEC14FD0470F3DF91CF911F910F91F2 +:10385000FF90EF90DF90CF900895FC014283748336 +:1038600063831182108208950F931F93CF93DF9388 +:10387000EC01062F0E94AC1C182F298130E0C901F1 +:1038800001966A8170E00E944834488150E08417B4 +:10389000950729F4812F0E94AF1C80E012C0EB81B4 +:1038A000FC81E20FF31F00832981822F90E00196B3 +:1038B0006A8170E00E9448348983812F0E94AF1C86 +:1038C00081E0DF91CF911F910F910895CF93DF9306 +:1038D000EC010E94AC1C29819881291710F0C22F9D +:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E +:1038F000CF910895FC012081862F90E0820F911DC9 +:10390000628170E00E9448340380F481E02DE80F6A +:10391000F91F808108950F931F93CF93DF931F9218 +:10392000CDB7DEB78C0169830E94AC1C482FF8012B +:1039300080816981262F30E0280F311D6281C90105 +:1039400070E00E9448348083842F0F90DF91CF91E4 +:103950001F910F910C94AF1C8FB7F89408958FBFEF +:103960000895FC01CB012091FA032430B1F42181A8 +:103970002F702093E90040E050E064E070E00E9486 +:103980007E1481110BC09091E80095FD07C09091C5 +:10399000E8009E779093E800089582E008952091D2 +:1039A000FA032430A9F4FC0181818F708093E9002F +:1039B0003091F3002091F200932F80E0822B892B2D +:1039C00049F08091E8008E778093E8000C943B16D4 +:1039D00082E0089580E008952091FA03243051F4A4 +:1039E000FC0121812F702093E9002091E80020FD47 +:1039F0000C94CF1C0895FC01CB012091FA032430D4 +:103A000011F080E0089526812F702093E900209125 +:103A1000E80022FFF6CF2091E80025FFF2CF40E03A +:103A200050E064E070E00E94CD148091E80085FDD4 +:103A300005C08091E8008B778093E80081E00895CD +:103A400090939502809394020895E0919402F091EE +:103A50009502309721F00190F081E02D099480E0EB +:103A60000895E0919402F0919502309721F0028040 +:103A7000F381E02D09940895E0919402F09195026C +:103A8000309721F00480F581E02D0994089520916C +:103A90009602309197028217930771F090939702E4 +:103AA00080939602E0919402F0919502309721F074 +:103AB0000680F781E02D09940895209198023091B5 +:103AC00099028217930771F090939902809398025C +:103AD000E0919402F0919502309721F00084F185F5 +:103AE000E02D0994089508950C94731D0E94952962 +:103AF0000E94AD060E94692A0C9411300C94E705CF +:103B00005F926F927F928F929F92AF92BF92CF926D +:103B1000DF92EF92FF920F931F93CF93DF93CDB776 +:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456 +:103B3000BD079AE9C92E92E0D92E00E010E0AA2430 +:103B4000A394B12C502E802F0E9411093C01F60144 +:103B5000E190F1906F01E826F926E114F10431F4C7 +:103B60000F5F1F4F0530110569F73AC08091F002D1 +:103B700081FD0E941A0920E030E04501022E02C0BA +:103B8000880C991C0A94E2F7C4018E219F21892B8D +:103B900009F12E835F826820792081E0672809F48B +:103BA00080E088870E949E298160782F9A87898784 +:103BB0004E815F8168858A850E94391EF801EE0F6B +:103BC000FF1FE656FD4F80819181882599259183BD +:103BD000808316C02F5F3F4F2C30310571F6C0CF68 +:103BE0008FEF89838A831B820E949E298160782FB0 +:103BF0009D838C8349815A816B818D810E94391EFE +:103C00000E94562D1091A4020E94251D1817D9F06C +:103C10000E94251D8093A4022A960FB6F894DEBF59 +:103C20000FBECDBFDF91CF911F910F91FF90EF900D +:103C3000DF90CF90BF90AF909F908F907F906F90CC +:103C40005F900C947E1D2A960FB6F894DEBF0FBECF +:103C5000CDBFDF91CF911F910F91FF90EF90DF903B +:103C6000CF90BF90AF909F908F907F906F905F901C +:103C70000895CF93DF93CDB7DEB72B970FB6F894A7 +:103C8000DEBF0FBECDBF4F83588769877A878B878A +:103C9000DE01119686E0FD0111928A95E9F785E033 +:103CA000FE01379601900D928A95E1F749815A817C +:103CB0006B817C818D819E810E9415262B960FB68B +:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3 +:103CD000C82F882309F4C1C0823859F40E94251DD9 +:103CE00081FDBBC089E30E947C280E94F82889E3FB +:103CF0000CC0833879F40E94251D80FDAEC083E599 +:103D00000E947C280E94F82883E50E949E28CF917B +:103D10000C94F828843859F40E94251D82FD9DC01A +:103D200087E40E947C280E94F82887E4EECF845024 +:103D3000813A48F48C2F0E94732F81118EC08C2FF2 +:103D40000E947C28E4CF8C2F805E883050F4C770AE +:103D500081E090E001C0880FCA95EAF70E94BF2871 +:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD +:103D700031F482E890E005C081E890E002C083E879 +:103D800090E0CF910C94471D8C2F885A833108F016 +:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B +:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB +:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B +:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9 +:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF +:103DE00092E038C082EE90E035C089EE90E032C0BB +:103DF0008AEE90E02FC085EB90E02CC086EB90E03F +:103E000029C087EB90E026C08CEC90E023C08DECBD +:103E100090E020C083E891E01DC08AE891E01AC0DC +:103E200082E991E017C084E991E014C081E292E058 +:103E300011C083E292E00EC084E292E00BC085E202 +:103E400092E008C086E292E005C087E292E002C0FC +:103E500080E090E0CF910C945D1DCF910895882370 +:103E600009F44DC0823859F40E94251D81FF47C0D6 +:103E700089E30E947C280E94F82889E30CC08338DB +:103E800071F40E94251D80FF3AC083E50E947C28C2 +:103E90000E94F82883E50E949E280C94F828843814 +:103EA00059F40E94251D82FF2AC087E40E947C28C5 +:103EB0000E94F82887E4EFCF982F9450913A08F4A5 +:103EC000EACF982F905E983058F4282F277081E021 +:103ED00090E001C0880F2A95EAF70E94C528DDCF3F +:103EE000982F955A933020F480E090E00C94471D71 +:103EF000885A833120F480E090E00C945D1D089591 +:103F0000882321F00E94BF280C94F8280895882364 +:103F100021F00E94C5280C94F8280895BF92CF92F2 +:103F2000DF92EF92FF920F931F93CF93DF93CDB762 +:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A +:103F400085E0F801DE01119601900D928A95E1F766 +:103F5000F80130812181F280558152955F70838113 +:103F60009481892B39F02F3F41F481E090E03F3F6D +:103F700031F003C081E090E002C080E090E080FD7D +:103F800073C339832A8389819A815E830E94392889 +:103F9000B92E8F830E9438280E9460272B2D2295EE +:103FA0002F7030E05E816F812530310509F4E6C065 +:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA +:103FC0008F70223031050CF045C017C02C30310500 +:103FD0004CF42A3031050CF0E7C12830310509F0E6 +:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6 +:103FF0002F30310509F038C323C3182F411101C0F8 +:1040000002C01295107FFF2059F0112309F46BC2F2 +:10401000812F6F830E94CF280E94F8286F8163C28E +:10402000862F0E942F1F112309F41EC3812F0E9487 +:10403000D52827960FB6F894DEBF0FBECDBFDF910F +:10404000CF911F910F91FF90EF90DF90CF90BF9095 +:104050000C94F828403211F08295807F662319F085 +:10406000613071F523C0FF20B1F0511101C032C0A1 +:10407000513081F527960FB6F894DEBF0FBECDBF45 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94DF28511101C003C0513009F4C6 +:1040A000E3C28E830E94E2288E819AC1FF2021F014 +:1040B000563008F0D9C20EC0553008F0D5C290C1B4 +:1040C000FF20C9F0552331F0F801958190FF0BC214 +:1040D0009F70958327960FB6F894DEBF0FBECDBFB5 +:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 +:1040F000BF900C94801F552309F472C109C22B2D67 +:1041000026952695237030E02115310529F02130C0 +:10411000310509F0A9C219C0FF2021F0862F9B2D7F +:10412000937002C080E090E027960FB6F894DEBF4F +:104130000FBECDBFDF91CF911F910F91FF90EF90F8 +:10414000DF90CF90BF900C94471DFF2021F0862F69 +:104150009B2D937002C080E090E027960FB6F894F4 +:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA +:10417000EF90DF90CF90BF900C945D1D862FFF20B5 +:1041800019F00E945C2C02C00E94C42C27960FB626 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14 +:1041B000837009F079C0F11057C2262F22952695F9 +:1041C0002770220F220F862F8F70C82ED12CE12C42 +:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A +:1041E000D2F764FF10C06FE070E080E090E004C0A0 +:1041F000660F771F881F991F2A95D2F760957095D3 +:104200008095909503C060E070E0CB012B2D269542 +:1042100026952370422F50E042305105D9F04330AB +:10422000510569F16C297D298E299F29413051055D +:1042300051F127960FB6F894DEBF0FBECDBFDF91C8 +:10424000CF911F910F91FF90EF90DF90CF90BF9093 +:104250000C9475276C297D298E299F2927960FB6E6 +:10426000F894DEBF0FBECDBFDF91CF911F910F91AC +:10427000FF90EF90DF90CF90BF900C9487270E9423 +:104280007527C701B60127960FB6F894DEBF0FBE9B +:10429000CDBFDF91CF911F910F91FF90EF90DF90F5 +:1042A000CF90BF900C946327FF2019F08B2D817065 +:1042B00001C08695882309F4D7C1262F229526951B +:1042C0002770220F220F862F8F70C82ED12CE12C41 +:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439 +:1042E000D2F764FF10C06FE070E080E090E004C09F +:1042F000660F771F881F991F2A95D2F760957095D2 +:104300008095909503C060E070E0CB012B2D269541 +:1043100026952370422F50E042305105D9F04330AA +:10432000510569F16C297D298E299F29413051055C +:1043300051F127960FB6F894DEBF0FBECDBFDF91C7 +:10434000CF911F910F91FF90EF90DF90CF90BF9092 +:104350000C9414286C297D298E299F2927960FB645 +:10436000F894DEBF0FBECDBFDF91CF911F910F91AB +:10437000FF90EF90DF90CF90BF900C9426280E9482 +:104380001428C701B60127960FB6F894DEBF0FBEFA +:10439000CDBFDF91CF911F910F91FF90EF90DF90F4 +:1043A000CF90BF900C940228603F59F120F4603EFA +:1043B00008F494C008C0623F09F467C0F0F1633F9D +:1043C00009F08CC065C0162F1F708B2D8F71FF20D8 +:1043D00021F00E94AD27812F7DCE0E94C827812F1A +:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9 +:1043F0001F910F91FF90EF90DF90CF90BF900C94A2 +:10440000871FFF20B1F0553008F02EC18B2D8F7122 +:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8 +:104420001F910F91FF90EF90DF90CF90BF900C9471 +:10443000E727563008F018C1E9CFFF2099F08B2DFF +:104440008F7127960FB6F894DEBF0FBECDBFDF91F8 +:10445000CF911F910F91FF90EF90DF90CF90BF9081 +:104460000C94AD278B2D8F7127960FB6F894DEBF75 +:104470000FBECDBFDF91CF911F910F91FF90EF90B5 +:10448000DF90CF90BF900C94C827F110EBCFD7CF1F +:10449000FF2099F08B2D8F7127960FB6F894DEBF11 +:1044A0000FBECDBFDF91CF911F910F91FF90EF9085 +:1044B000DF90CF90BF900C949E2727960FB6F8946C +:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047 +:1044D000EF90DF90CF90BF900C949927FF20A9F028 +:1044E000552309F4ACCF862F27960FB6F894DEBF7C +:1044F0000FBECDBFDF91CF911F910F91FF90EF9035 +:10450000DF90CF90BF900C94671E552309F4AACF7B +:10451000862F27960FB6F894DEBF0FBECDBFDF9172 +:10452000CF911F910F91FF90EF90DF90CF90BF90B0 +:104530000C942F1F4B2D4F70C8010E941A03279611 +:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:104550000F91FF90EF90DF90CF90BF900C94CB26FF +:10456000F11082C09B2D9F70492F50E042305105C1 +:1045700099F144F44115510569F04130510509F0B4 +:1045800073C019C043305105C1F14430510509F0E1 +:104590006BC044C027960FB6F894DEBF0FBECDBFE8 +:1045A000DF91CF911F910F91FF90EF90DF90CF900F +:1045B000BF900C94223027960FB6F894DEBF0FBE42 +:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2 +:1045D000CF90BF900C94393027960FB6F894DEBF79 +:1045E0000FBECDBFDF91CF911F910F91FF90EF9044 +:1045F000DF90CF90BF900C94553027960FB6F8946B +:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 +:10461000EF90DF90CF90BF900C946830862F279654 +:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3 +:104630000F91FF90EF90DF90CF90BF900C948C3053 +:104640004B2D4F70C80127960FB6F894DEBF0FBEF2 +:10465000CDBFDF91CF911F910F91FF90EF90DF9031 +:10466000CF90BF900C941B0927960FB6F894DEBF2D +:104670000FBECDBFDF91CF911F910F91FF90EF90B3 +:10468000DF90CF90BF9008950E94DC280E94B1284F +:104690000E94F8280E94F72D0E944B2D80E090E0A8 +:1046A0000E94471D80E090E00C945D1D0E94CC2884 +:1046B0000C9444230E943928292F22952F7030E032 +:1046C0002C3031054CF42A3031056CF4225031097C +:1046D0002230310590F407C02C30310551F02F30D5 +:1046E000310559F406C0803E10F0803F31F481E07E +:1046F000089593FB882780F9089580E00895CF936B +:10470000DF9300D000D01F92CDB7DEB70F900F908F +:104710000F900F900F90DF91CF910895CF93DF937B +:1047200000D000D000D0CDB7DEB726960FB6F894F3 +:10473000DEBF0FBECDBFDF91CF9108951F93CF9302 +:10474000DF93C091DB0216E012C0D0E01C9FF001A5 +:104750001D9FF00D1124E555FD4F4081518162816F +:104760007381848195810E948E232196C7708091E8 +:10477000DC02C813EACFDF91CF911F9108954091D9 +:10478000A5025091A6026091A7027091A8028091A3 +:10479000A9029091AA020C948E230F931F93CF939A +:1047A000DF938091AA0282958F7009F069C0809191 +:1047B000A702882309F464C0A091DB02D091DC0237 +:1047C000B091A502C091A6028091A8029091A90281 +:1047D00021E030E0BF3F11F020E030E0122FBC01BB +:1047E0006095709506E04AC0009721F0CF3F29F40C +:1047F000212F05C021E030E002C020E030E020FDA4 +:104800003BC04A2F50E0049FF001059FF00D11249A +:10481000E555FD4F2181C2132FC02081B2132CC05A +:104820002281211129C0238134812817390718F0EA +:10483000281B390B02C0260F371F283C3105E0F436 +:104840008091AA028F7080618093AA0286E0849F83 +:10485000F001859FF00D1124E055FD4F80818F7090 +:104860008061808385EA92E00E948E1FDF91CF9164 +:104870001F910F910C949E23AF5FA770AD13B4CF1F +:10488000DF91CF911F910F910895EF92FF920F93B7 +:104890001F93CF93DF93CDB7DEB762970FB6F8942F +:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695 +:1048B00001900D928A95E1F7D8014C9111965C9187 +:1048C000119712966C9112971396ED90FC90149795 +:1048D0007091A502E091A6028091A8029091A90290 +:1048E000009739F0EF3F41F421E030E07F3F31F0B5 +:1048F00003C021E030E002C020E030E020FD5CC1D8 +:104900002091A702222309F4F1C0E816F90628F045 +:104910009701281B390BC90104C0809590958E0D15 +:104920009F1D883C910508F098C08091AA02982F9D +:10493000907F09F064C0E51314C0741312C06111B4 +:1049400010C08F7080618093AA020E94BF2385EA05 +:1049500092E00E948E1F8091AA02D80115968C9336 +:1049600043C1EF2839F05F3F41F481E090E04F3FD1 +:1049700031F003C081E090E002C080E090E080FD73 +:1049800003C081E0862702C080E090E080FF2EC057 +:104990008091DB022091DC0236E013C090E0389F6A +:1049A000F001399FF00D1124E555FD4F718157132A +:1049B00006C07081471303C07281671317C0019648 +:1049C00087708213EBCF12C19F7059F0882309F4CE +:1049D0000BC107C09F7029F0F8019581907F09F401 +:1049E00003C1805E883008F4FFC0D2C0662309F49A +:1049F000FBC08091AA0281608093AA02F5C0E513F2 +:104A000008C0741306C0611104C0D80115968C93B8 +:104A10009DC04D875E878D859E856A8B0E945A2337 +:104A20006A89882309F4B4C0662309F4B1C02091CF +:104A3000AA02822F82958F7090E002970CF4C6C074 +:104A40008091A5029091A60298878F831986FB8694 +:104A5000EA862C87CE01079646C08091AA02982F3D +:104A6000907F59F47E2DF98AE88A89890E947F23F4 +:104A700085EA92E00E948E1F95C0E51311C0741361 +:104A80000FC061110DC0F8018583C8010E948E1FFF +:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F +:104AA0004D875E878D859E856A8B0E945A236A8911 +:104AB000882309F46DC0662309F46AC02091AA0214 +:104AC000822F82958F7090E002970CF47FC08091C6 +:104AD000A5029091A6029A8389831B82FD82EC82B3 +:104AE0002E83CE0101960E948E1F70C0E816F90633 +:104AF00028F09701281B390BC90104C080959095B7 +:104B00008E0D9F1D883C910508F046C0662309F470 +:104B10003FC0E51330C074132EC02091AA0220FDBF +:104B200021C0322F32953F70832F90E00097D1F053 +:104B3000D80115962C9315970F9741F0832F8F5F0F +:104B40008295807F2F70282B15962C93C8010E9488 +:104B50008E1F86E0F801A5EAB2E001900D928A95D9 +:104B6000E1F73EC086E0F801A5EAB2E001900D92BF +:104B70008A95E1F737C04D875E878D859E850E94B7 +:104B80005A23811123C08091AA0281608093AA02D6 +:104B9000C8010E948E1F26C07E2DF98AE88A898965 +:104BA0000E947F23E5EAF2E086E0DF011D928A950C +:104BB000E9F70E94BF2318C0662351F34D875E8733 +:104BC0008D859E850E945A23882311F386E0F80183 +:104BD000A5EAB2E001900D928A95E1F70E94CD23FB +:104BE0000E94BF2381E014C080E012C04D875E8721 +:104BF0008D859E850E943928292F22952F7030E0BF +:104C0000223031050CF4E0CE243031050CF6E2CE32 +:104C100062960FB6F894DEBF0FBECDBFDF91CF9185 +:104C20001F910F91FF90EF9008951F93CF93DF9303 +:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51 +:104C40004F83588769877A878B879C87CE01079621 +:104C50000E9445248823D9F02F8138858A859B8539 +:104C6000892B39F03F3F19F080E090E004C02F3FDE +:104C7000D9F781E090E0892B09F06DC04F8158850C +:104C800069857A858B859C850E948E2364C086E029 +:104C9000FE013796DE01119601900D928A95E1F79B +:104CA000FF81E8854A855B854115510539F0EF3F65 +:104CB00041F481E090E0FF3F31F003C081E090E0FB +:104CC00002C080E090E080FD46C02091DC0230E030 +:104CD000C9010196877099276091DB0270E0861701 +:104CE000970709F440C0F983EA835D834C8396E01B +:104CF000929FD001939FB00D1124A555BD4FFE0189 +:104D0000319601900D929A95E1F78093DC020E9412 +:104D10009E2321C0189FC001112485559D4F0E94DC +:104D20004524882371F1E091DB021E9FF0011124DC +:104D3000E555FD4F40815181628173818481958168 +:104D40000E948E238091DB0290E001968770992764 +:104D50008093DB0201C016E08091DB029091DC02BF +:104D60008913D8CF0EC00E9456231092DC021092F5 +:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1 +:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1 +:104D9000CF911F910895DF92EF92FF920F931F938F +:104DA000CF93DF93EC01009709F46EC0D12CEE2471 +:104DB000E394F12C8E010F5F1F4FFE018491843725 +:104DC00048F4843008F04CC0813071F0823009F032 +:104DD0005BC01EC0853709F43FC080F1982F9458FE +:104DE000903708F051C03FC02296F8018491982F67 +:104DF000905E983050F48770FE2D01C0FF0F8A95A9 +:104E0000EAF78F2F0E94CF2813C00E94671E2FC081 +:104E10002296F8018491982F905E983060F4877004 +:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B +:104E30000E94F8281CC00E942F1F19C02296F8015A +:104E4000049107C08FE99FE00197F1F700C00000CF +:104E500001500111F7CF0BC02296F801D49007C082 +:104E60000E94671E03C08F770E942F1FE8018D2DBF +:104E700007C08150EFE9FFE03197F1F700C0000073 +:104E8000882309F497CFF5CFDF91CF911F910F9130 +:104E9000FF90EF90DF9008956093E1027093E2023B +:104EA0008093E3029093E4020C9444236093DD0228 +:104EB0007093DE028093DF029093E0020C9444230F +:104EC00008950C944C270F931F930091E1021091C9 +:104ED000E2022091E3023091E402602B712B822BDD +:104EE000932B1F910F910C944C270F931F930091BC +:104EF000E1021091E2022091E3023091E40260238A +:104F00007123822393231F910F910C944C270F93AD +:104F10001F930091E1021091E2022091E30230918F +:104F2000E40260277127822793271F910F910C9429 +:104F30004C2760E070E0CB010C94562741E050E034 +:104F400060E070E004C0440F551F661F771F8A950C +:104F5000D2F7CB01BA010C94562741E050E060E053 +:104F600070E004C0440F551F661F771F8A95D2F763 +:104F70008091DD029091DE02A091DF02B091E0020B +:104F8000482B592B6A2B7B2BCB01BA010C9456274B +:104F900041E050E060E070E004C0440F551F661F20 +:104FA000771F8A95D2F740955095609570958091BE +:104FB000DD029091DE02A091DF02B091E002482371 +:104FC00059236A237B23CB01BA010C94562741E075 +:104FD00050E060E070E004C0440F551F661F771F6B +:104FE0008A95D2F78091DD029091DE02A091DF02D6 +:104FF000B091E002482759276A277B27CB01BA01E5 +:105000000C9456270F931F930091DD021091DE023E +:105010002091DF023091E002602B712B822B932BC9 +:105020001F910F910C9456270F931F930091DD024F +:105030001091DE022091DF023091E00260237123A3 +:10504000822393231F910F910C9456270F931F9344 +:105050000091DD021091DE022091DF023091E0022A +:1050600060277127822793271F910F910C94562751 +:105070000895CF92DF92EF92FF920F931F93CF93F9 +:10508000DF93EC01C090E102D090E202E090E302F5 +:10509000F090E4028091DD029091DE02A091DF02A7 +:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF +:1050B000B701A601002E04C07695679557954795D0 +:1050C0000A94D2F740FF08C0BE01802F0E947104ED +:1050D0008130910509F007C00150110948F7BE0160 +:1050E00080E00E947104DF91CF911F910F91FF909A +:1050F000EF90DF90CF90089540918B0150918C01FB +:1051000020E030E09FEFFA01E20FF31F62816817A1 +:10511000A1F09F3F19F4611101C0922F2F5F3F4F03 +:105120002630310581F707C0FA01E90FF11D97FD1F +:10513000FA95828308959F3FB9F7089540918B01B6 +:1051400050918C0120E030E0FA01E20FF31F9281D0 +:10515000981301C012822F5F3F4F26303105A1F70F +:10516000089581E090E0E0918B01F0918C01E80FCF +:10517000F91F1082019688309105A9F70895909142 +:10518000E502982B9093E502089580959091E502B1 +:1051900098239093E50208951092E5020895909166 +:1051A000E602982B9093E602089580959091E6028E +:1051B00098239093E60208951092E6020895809352 +:1051C000E70208951092E702089540918B015091F3 +:1051D0008C0120E030E080E0FA01E20FF31F9181C2 +:1051E00091118F5F2F5F3F4F27303105A9F7089549 +:1051F000E0918B01F0918C018091E5028083E09138 +:105200008B01F0918C0180819091E602892B808343 +:105210009091E702992361F0E0918B01F0918C016C +:105220008081892B80830E94E52881110E94E228D9 +:1052300080918B0190918C010C94311D8091FA0327 +:10524000843021F11092F10220E488E190E00FB661 +:10525000F894A895809360000FBE2093600080E0D2 +:105260000E94590383B7817F846083BF83B78160C5 +:1052700083BF7894889583B78E7F83BF88E10FB60C +:10528000F89480936000109260000FBE0895089516 +:105290000895CF9380E00E9459030E9447290E94FD +:1052A000BD070E944829C0E08C2F0E941109892B5C +:1052B00029F4CF5FC530C1F780E001C081E0CF9114 +:1052C00008950E94562380E00E9459030E941130E5 +:1052D0000E94251D0C94E7051F920F920FB60F92A6 +:1052E00011248F939F93AF93BF938091F10281110B +:1052F00013C08091F2029091F302A091F402B09158 +:10530000F5024196A11DB11D8093F2029093F30224 +:10531000A093F402B093F502BF91AF919F918F914A +:105320000F900FBE0F901F90189582E084BD93E000 +:1053300095BD9AEF97BD80936E0008958FB7F8944E +:105340004091F2025091F3026091F4027091F502E3 +:105350008FBFCA010895CF92DF92EF92FF920F9311 +:105360001F932FB7F8944091F2025091F30260918D +:10537000F4027091F5022FBF6A017B01EE24FF2435 +:105380008C0120E030E0C016D106E206F30620F0E2 +:105390009A01281B390B05C09C0120953095240FDC +:1053A000351FC9011F910F91FF90EF90DF90CF90B3 +:1053B00008951F920F920FB60F9211248F939F930F +:1053C000AF93BF938091F2029091F302A091F40207 +:1053D000B091F5020196A11DB11D8093F202909348 +:1053E000F302A093F402B093F502BF91AF919F91A5 +:1053F0008F910F900FBE0F901F9018950E946D1601 +:10540000F8942FEF87EA91E6215080409040E1F731 +:1054100000C0000087E090EBDC01809304049093CF +:105420000504A0930604B09307042CE088E190E003 +:105430000FB6F894A895809360000FBE209360008B +:10544000FFCFCF92DF92EF92FF920F931F93CF93F4 +:10545000DF93C82ED12C01E010E08D2D0E941109A0 +:105460007C01C0E0D0E098010C2E02C0220F331F57 +:105470000A94E2F72E213F21232B29F42196CC30E8 +:10548000D10589F708C06C2F7D2D80E00E944C0467 +:10549000C812F4CF06C0D39485E0D812DECF80E0E6 +:1054A00001C081E0DF91CF911F910F91FF90EF90AC +:1054B000DF90CF900895CF93C82F8CE20E94212ACD +:1054C000882321F08C2FCF910C94212A80E0CF915A +:1054D0000895CF930E94AC2B811102C00E948D2BA6 +:1054E000C5E608C00E94BD078FE39CE90197F1F76C +:1054F00000C00000C150B1F789E20E945B2A81110F +:105500000AC18AE20E945B2A81110E948D2B85E0EC +:105510000E945B2A81110E94FE290E94B72B809372 +:10552000F00287E00E945B2A882399F18BE10E94B8 +:105530005B2A882351F09091F00291FB882780F933 +:1055400021E0822780FB91F922C08EE00E945B2A35 +:10555000882351F09091F00292FB882780F921E096 +:10556000822780FB92F913C080E10E945B2A909110 +:10557000F002882341F093FB882780F921E08227FD +:1055800080FB93F904C0892F809580FB90F990935C +:10559000F0028091F0020E94BB2B0E94C92B8093E5 +:1055A000010380EE0E945B2A882341F08091010371 +:1055B000982F909590FB80F98093010389E30E94D6 +:1055C0005B2A882359F09091010391FB882780F989 +:1055D00021E0822780FB91F99093010382EE0E94E3 +:1055E0005B2A882359F09091010392FB882780F968 +:1055F00021E0822780FB92F99093010386EE0E94BE +:105600005B2A882359F09091010393FB882780F946 +:1056100021E0822780FB93F99093010383EE0E949F +:105620005B2A882359F09091010394FB882780F925 +:1056300021E0822780FB94F99093010385E30E9487 +:105640005B2A882359F09091010395FB882780F904 +:1056500021E0822780FB95F99093010381E30E946A +:105660005B2A882359F09091010396FB882780F9E3 +:1056700021E0822780FB96F99093010381E10E944B +:105680005B2A882359F09091010397FB882780F9C2 +:1056900021E0822780FB97F9909301038091010319 +:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8 +:1056B0005B2A8111C2608FE10E945B2A8111C46064 +:1056C00080E20E945B2A8111C86081E20E945B2A0D +:1056D0008111C06182E20E945B2A8111C06283E273 +:1056E0000E945B2A8111C06484E20E945B2A8823A5 +:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B +:105700006C2F03C00E94C02B682F70E080E090E0F7 +:10571000CF910C946127CF9108956DEE7EEF80E0DC +:1057200090E00E94783460E082E090E00E946A3469 +:1057300060E083E090E00E946A3460E084E090E002 +:105740000E946A3460E085E090E00E946A3460E084 +:1057500086E090E00C946A3480E090E00E9464342B +:1057600021E08D3E9E4F09F020E0822F089582E0D7 +:1057700090E00C945C34682F82E090E00C946A34E2 +:1057800083E090E00C945C34682F83E090E00C940C +:105790006A3484E090E00C945C34682F84E090E0FC +:1057A0000C946A3486E090E00C945C34682F86E0B8 +:1057B00090E00C946A348091FE0280FF0BC06091EF +:1057C000900185E0689FB0011124759567957595E6 +:1057D00067952AC081FF09C06091900185E0689FAC +:1057E000B0011124759567951FC082FF07C06091B5 +:1057F000900185E0689FB001112416C04091F80225 +:105800004423C9F060918F01461788F720919001D9 +:1058100085E0289F90011124429FC001439F900D75 +:10582000112470E00E9448346038710540F461151D +:10583000710539F002C065E070E0862F08958FE7AA +:10584000089581E008958091FE0280FF08C0609174 +:105850008E0170E0759567957595679521C081FFFC +:1058600006C060918E0170E07595679519C082FF42 +:1058700004C060918E0170E010C08091F80288230E +:10588000C1F060918D018617A0F790918E01989FCD +:10589000C001112470E00E9448346038710528F47A +:1058A0006115710521F0862F08958FE7089581E035 +:1058B000089561E070E0F4CF803F21F40E94DB2B7B +:1058C000819504C0813F29F40E94DB2B8093FB0269 +:1058D0000895823F21F40E94DB2B819504C0833F11 +:1058E00029F40E94DB2B8093FA020895893F19F472 +:1058F0000E94232C05C08A3F31F40E94232C8195FD +:105900008093FC0208958B3F21F40E94232C819503 +:1059100004C08C3F29F40E94232C8093FD0208953B +:10592000843F21F48091F902816017C0853F21F402 +:105930008091F902826011C0863F21F48091F902C2 +:1059400084600BC0873F21F48091F902886005C014 +:10595000883F31F48091F90280618093F9020895C3 +:105960008D3F21F48091FE0281600BC08E3F21F4B7 +:105970008091FE02826005C08F3F29F48091FE0273 +:1059800084608093FE020895803F29F48091FB0299 +:1059900087FF6EC007C0813F41F48091FB0218165B +:1059A0000CF066C01092FB0263C09091FA02823F35 +:1059B00019F497FF5DC005C0833F31F419160CF050 +:1059C00057C01092FA0254C0893F31F48091FC0212 +:1059D00018160CF04DC006C08A3F39F48091FC02C5 +:1059E00087FF46C01092FC0243C08B3F29F4809190 +:1059F000FD0287FF3DC006C08C3F39F48091FD0257 +:105A00001816B4F51092FD0233C0843F21F4809142 +:105A1000F9028E7F05C0853F31F48091F9028D7FB8 +:105A20008093F90225C0863F21F48091F9028B7F93 +:105A3000F7CF873F21F48091F902877FF1CF883F2C +:105A400021F48091F9028F7EEBCF8D3F21F480917C +:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F +:105A600005C08F3F29F48091FE028B7F8093FE0258 +:105A70008091FA0281110EC08091FB0281110AC04F +:105A80008091FC02811106C08091FD02811102C04B +:105A90001092F802089589EF92E00E943C1D0E9446 +:105AA0009E299093F7028093F6020895CF938091F8 +:105AB000F6029091F7020E94AB294091F80244232C +:105AC00021F02091910130E006C0209192015AE02E +:105AD000259F900111248217930708F486C08091B6 +:105AE000FA0281110DC09091FB02911109C09091B1 +:105AF000FC02911105C09091FD02992309F475C033 +:105B00004F3F19F04F5F4093F802181624F40E949B +:105B1000DB2B8093FA028091FA0287FF05C00E9476 +:105B2000DB2B81958093FA028091FB02181624F4F6 +:105B30000E94DB2B8093FB028091FB0287FF05C054 +:105B40000E94DB2B81958093FB026091FA02662311 +:105B500039F1C091FB02CC2319F1772767FD7095CD +:105B6000872F972F0E94AC3123E333E343E35FE3B6 +:105B70000E9460320E9479316093FA026C2F77277D +:105B800067FD7095872F972F0E94AC3123E333E395 +:105B900043E35FE30E9460320E9479316093FB022D +:105BA0008091FC02181624F40E94232C8093FC029E +:105BB0008091FC0287FF05C00E94232C8195809371 +:105BC000FC028091FD02181624F40E94232C80937D +:105BD000FD028091FD0287FF05C00E94232C819564 +:105BE0008093FD02CF910C944B2DCF910895E9EF56 +:105BF000F2E085E0DF011D928A95E9F71092F80244 +:105C00001092FE020895833089F130F4813061F002 +:105C1000823009F06EC019C0853009F449C0B8F16E +:105C2000863009F066C055C020919201862F90E021 +:105C3000820F911D8F3F910520F4620F60939201B6 +:105C400008958FEF80939201089520919101862FFE +:105C500090E0820F911D8F3F910520F4620F6093B9 +:105C6000910108958FEF8093910108952091900103 +:105C7000862F90E0820F911D8F3F910520F4620FD7 +:105C80006093900108958FEF809390010895209183 +:105C90008F01862F90E0820F911D8F3F910520F498 +:105CA000620F60938F0108958FEF80938F010895A5 +:105CB00020918E01862F90E0820F911D8F3F9105DC +:105CC00020F4620F60938E0108958FEF80938E0110 +:105CD000089520918D01862F90E0820F911D8F3FB6 +:105CE000910520F4620F60938D0108958FEF8093EA +:105CF0008D010895833021F130F4813059F08230E4 +:105D000009F049C012C0853089F128F1863009F0C8 +:105D100042C037C080919201681720F4861B80939F +:105D2000920108951092920108958091910168174F +:105D300020F4861B8093910108951092910108959B +:105D400080919001681720F4861B8093900108953C +:105D500010929001089580918F01681720F4861B9E +:105D600080938F01089510928F01089580918E0184 +:105D7000681720F4861B80938E01089510928E017F +:105D8000089580918D01681720F4861B80938D0102 +:105D9000089510928D01089541E050E060E070E0B8 +:105DA00004C0440F551F661F771F8A95D2F7CB0199 +:105DB000BA010E9461270C945623873200F58E3178 +:105DC00008F086C08E3009F466C060F4873009F4AC +:105DD0004DC018F4863049F531C0883041F18B3020 +:105DE00021F57BC0863109F478C018F48031E9F4DC +:105DF0005CC0893109F471C08B31B9F442C0883379 +:105E000009F46BC048F4893209F460C0853309F4A1 +:105E10005DC0873251F45AC0833409F457C018F476 +:105E20008A3318F057C0883499F080E008950E94B2 +:105E3000B72B0E94C92B0E94D22B4FC08091F00239 +:105E4000817F8E7F8093F00281E08093FF0208952E +:105E50000E9456232FEF83ED90E321508040904025 +:105E6000E1F700C000000E94FE2937C08091F002D7 +:105E700080FF03C0817F8E7F01C081608093F0022C +:105E80002CC09091F00291FB882780F921E08227B5 +:105E900080FB91F913C09091F00292FB882780F962 +:105EA00021E0822780FB92F909C09091F00293FBD8 +:105EB000882780F921E0822780FB93F99093F002F4 +:105EC000882359F091609093F00207C080E003C0EE +:105ED0008D5101C089530E94CC2E81E0089580E04D +:105EE000089580E00895CF93C82F8091FF028130FC +:105EF00071F020F0823009F089C037C0A0918B0189 +:105F0000B0918C018C91823209F082C007C0A091BF +:105F10008B01B0918C018C91823249F48C2F0E94BC +:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64 +:105F30000E94712F811115C0C43169F030F4CB304B +:105F400081F0C03109F068C009C0C93221F0C833FE +:105F500009F062C006C01092FF025EC082E080932A +:105F6000FF0281E090E081705AC0C932C9F060F44C +:105F7000C431B1F020F4C73009F04CC034C0CE5168 +:105F8000C63008F047C017C0CE3439F120F4CB3406 +:105F900009F040C01CC0C135C1F0C235D9F513C0ED +:105FA00080910003882319F01092000333C081E030 +:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161 +:105FC0008093000327C061E003C061E007C06AE07E +:105FD000809100030E94032E1DC06AE0809100039F +:105FE0000E947A2E17C08EE18093920182E3809303 +:105FF00091018AE08093900184E180938F0188E091 +:1060000080938E0188E280938D0104C01092FF027C +:1060100080E005C081E003C080E090E0A4CFCF9194 +:1060200008950E94AC2B811102C00E948D2B0E940A +:10603000D22B8093030480FF02C0869501C080E0CC +:106040000C94590380910304982F9695292F30E0E2 +:10605000233031054CF49F5F990F8170892B81604B +:10606000809303040E94D62B8091030486950C94A0 +:10607000590380910304982F969591F09158990FA8 +:106080008170892B809303048E7F91E009F490E066 +:106090008091030490FB80F9809303040E94D62B27 +:1060A0008091030486950C94590380910304982FE2 +:1060B000909590FB80F9809303040E94D62B8091E9 +:1060C000030480FF02C0869501C080E00C94590350 +:1060D00030910304232F26952F5F2F77822F90E096 +:1060E000317004972CF4220F232B2093030402C059 +:1060F0003093030480910304282F2E7F91E009F44C +:1061000090E090FB80F9809303040E94D62B80914D +:10611000030486950C94590320910304922F9695BD +:106120009827990F822F8170892B809303048E7F8B +:1061300091E009F490E08091030490FB80F9809352 +:1061400003040E94D62B8091030486950C94590376 +:106150005058BB27AA270ED075C166D130F06BD13D +:1061600020F031F49F3F11F41EF45BC10EF4E09572 +:10617000E7FB51C1E92F77D180F3BA1762077307A4 +:106180008407950718F071F49EF58FC10EF4E09521 +:106190000B2EBA2FA02D0B01B90190010C01CA01E1 +:1061A000A0011124FF27591B99F0593F50F4503E8C +:1061B00068F11A16F040A22F232F342F4427585F7E +:1061C000F3CF469537952795A795F0405395C9F796 +:1061D0007EF41F16BA0B620B730B840BBAF091504E +:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED +:1061F000BA0F621F731F841F48F4879577956795C0 +:10620000B795F7959E3F08F0B3CF9395880F08F0A8 +:106210009927EE0F979587950895D9D008F481E0D6 +:1062200008950CD00FC107D140F0FED030F021F41A +:106230005F3F19F0F0C0511139C1F3C014D198F388 +:106240009923C9F35523B1F3951B550BBB27AA27F7 +:1062500062177307840738F09F5F5F4F220F331F69 +:10626000441FAA1FA9F333D00E2E3AF0E0E830D035 +:1062700091505040E695001CCAF729D0FE2F27D038 +:10628000660F771F881FBB1F261737074807AB0706 +:10629000B0E809F0BB0B802DBF01FF2793585F4F7B +:1062A0002AF09E3F510568F0B6C000C15F3FECF395 +:1062B000983EDCF3869577956795B795F7959F5F40 +:1062C000C9F7880F911D9695879597F90895E1E094 +:1062D000660F771F881FBB1F621773078407BA07F3 +:1062E00020F0621B730B840BBA0BEE1F88F7E0954E +:1062F000089504D06894B111D9C00895BCD088F035 +:106300009F5790F0B92F9927B751A0F0D1F0660FA1 +:10631000771F881F991F1AF0BA95C9F712C0B130BC +:1063200081F0C3D0B1E00895C0C0672F782F8827CF +:10633000B85F39F0B93FCCF3869577956795B395FB +:10634000D9F73EF490958095709561957F4F8F4F6A +:106350009F4F0895E89409C097FB3EF4909580956F +:10636000709561957F4F8F4F9F4F9923A9F0F92F1B +:1063700096E9BB279395F695879577956795B79599 +:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F +:106390007F4F8F4F9F4F16C0882311F096E911C091 +:1063A000772321F09EE8872F762F05C0662371F0B2 +:1063B00096E8862F70E060E02AF09A95660F771FC6 +:1063C000881FDAF7880F9695879597F90895990FA2 +:1063D0000008550FAA0BE0E8FEEF16161706E807AF +:1063E000F907C0F012161306E407F50798F0621BD0 +:1063F000730B840B950B39F40A2661F0232B242BA5 +:10640000252B21F408950A2609F4A140A6958FEFC3 +:10641000811D811D089597F99F6780E870E060E015 +:1064200008959FEF80EC089500240A94161617062D +:1064300018060906089500240A9412161306140675 +:1064400005060895092E0394000C11F4882352F0D8 +:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90 +:106460008F4F9F4F089557FD9058440F551F59F077 +:106470005F3F71F04795880F97FB991F61F09F3F31 +:1064800079F087950895121613061406551FF2CF5A +:106490004695F1DF08C0161617061806991FF1CFAA +:1064A00086957105610508940895E894BB276627D1 +:1064B0007727CB0197F908958ADF08F48FEF0895C5 +:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C +:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7 +:1064E000950F50E0551F629FF001729FBB27F00D82 +:1064F000B11D639FAA27F00DB11DAA1F649F6627D7 +:10650000B00DA11D661F829F2227B00DA11D621F25 +:10651000739FB00DA11D621F839FA00D611D221FDF +:10652000749F3327A00D611D231F849F600D211DC3 +:10653000822F762F6A2F11249F5750408AF0E1F066 +:1065400088234AF0EE0FFF1FBB1F661F771F881FAF +:1065500091505040A9F79E3F510570F05CCFA6CFF7 +:106560005F3FECF3983EDCF3869577956795B7959A +:10657000F795E7959F5FC1F7FE2B880F911D9695C4 +:10658000879597F90895FA01EE0FFF1F30962105C0 +:10659000310599F16115710561F48038BFE39B07FE +:1065A00049F168949038810561F08038BFEF9B070E +:1065B00041F0992342F5FF3FE1053105210511F135 +:1065C000E8940894E795D901AA2329F4AB2FBE2FAC +:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD +:1065E00050F019F0FF3A38F49F779F930CD00F903A +:1065F00007FC905808953EF014CF60E070E080E80A +:106600009FE308954FE79F775F934F933F932F93B7 +:106610009ED02F913F914F915F9152DF05C019F4A9 +:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784 +:1066300007F80F92E8942BE33AEA48EB5FE74EDF66 +:106640000F920F920F924DB75EB70F92C0D0ECEA47 +:10665000F0E016D04F915F91EF91FF91E595EE1F1D +:10666000FF1F49F0FE57E0684427EE0F441FFA95DC +:10667000E1F74195550B32D00F9007FE26C00895E3 +:10668000DF93CF931F930F93FF92EF92DF927B01E3 +:106690008C01689405C0DA2EEF011EDFFE01E8943C +:1066A000A5912591359145915591AEF3EF0162DDAC +:1066B000FE019701A801DA9479F7DF90EF90FF903F +:1066C0000F911F91CF91DF9108959B01AC0160E084 +:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1 +:1066E0009923D9F3940F511DBBF39150504094F06E +:1066F00059F0882332F0660F771F881F9150504061 +:10670000C1F79E3F510544F7880F911D96958795D7 +:1067100097F908955F3FACF0983E9CF0BB278695B3 +:1067200077956795B79508F4B1609395C1F7BB0F5E +:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87 +:10674000E3CFB4CE0EF076C06CCE689464CE93DE08 +:10675000C8F39923D1F3C6F3DF93CF931F930F931D +:10676000FF92C92FDD2788232AF02197660F771F14 +:10677000881FDAF720E030E040E85FEB9FE38839DC +:1067800020F0803E30F021968F77E3DCE4EDF0E0FE +:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F +:1067A000FB2E6F5771097595771F880B990BD4DDF8 +:1067B00028E132E741E35FE38FDEAF2D9801AE01C0 +:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166 +:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785 +:1067E0003327442750781FC0B75188F4AB2F0024BB +:1067F000469537952795011CA395D2F3002069F0A3 +:10680000220F331F441FB395DAF30DD0A1CC6130B2 +:106810007105A0E88A07B94630F49B01AC016627F0 +:10682000772788279078309621F020833183428320 +:10683000538308959F3F31F0915020F487957795C9 +:106840006795B795880F911D9695879597F9089547 +:10685000991B79E004C0991F961708F0961B881FB2 +:106860007A95C9F780950895AA1BBB1B51E107C013 +:10687000AA1FBB1FA617B70710F0A61BB70B881FD0 +:10688000991F5A95A9F780959095BC01CD0108955F +:1068900097FB072E16F4009407D077FD09D00E94CD +:1068A000343407FC05D03EF4909581959F4F0895B0 +:1068B000709561957F4F0895F999FECF92BD81BD86 +:1068C000F89A992780B50895A8E1B0E042E050E039 +:1068D0000C947F34262FF999FECF1FBA92BD81BD4B +:1068E00020BD0FB6F894FA9AF99A0FBE0196089552 +:1068F0000E946A34272F0C946B34DC01CB01FC011D +:10690000F999FECF06C0F2BDE1BDF89A319600B408 +:0E6910000D9241505040B8F70895F894FFCF13 +:10691E0055D0A44600001644000000000000484276 +:10692E0061978A460000C8430000000000004842FC +:10693E0055D024460000C843000000000000484225 +:10694E0000005C460000C843000000000000484202 +:10695E0061978A4600007A4455D0A4460000C84389 +:10696E00000000000000484200005C460000C843E2 +:10697E00000000000000484255D024460000164496 +:10698E000507000C058540000001064000000100CF +:10699E0091102111FD10C810941001E8022808145E +:1069AE000A321E42004500250026004300610060A9 +:1069BE000020003700640065006600670044004652 +:1069CE000024004700000002000400050007000933 +:1069DE00000B000C000E0010001100130015001724 +:1069EE000018001A001C001D001F002100230024A7 +:1069FE00002600280029002B002D002F0030003229 +:106A0E000034003500370039003B00F6030F042830 +:106A1E0004410469051C05E604C6043F4D362002F8 +:106A2E000302000001000101010101000101010248 +:086A3E00030405060708090026 +:00000001FF diff --git a/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex new file mode 100644 index 000000000..a29f23c00 --- /dev/null +++ b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex @@ -0,0 +1,1863 @@ +:020000020000FC +:047000000C948D3E21 +:047028000C94B73DD0 +:10702F0012010002FF010020EB03F42F0000010208 +:10703F00030109021200010100803209040000005F +:10704F00000000000C03410054004D0045004C00AF +:10705F001603410054006D00330032005500340018 +:10706F004400460055000C0331002E0030002E0066 +:10707F0030000403090416010C0100000C0000018C +:02708F006C7F14 +:1070920012BD01BDF89A00B5089501E00895F9996D +:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929 +:1070B200FECF0C944938F80104910895F8013491F7 +:1070C20031962491890108950091610000930C0189 +:1070D20000E80093610001E00093610005BF02E057 +:1070E20005BF0C9486380091D70001600093D70049 +:1070F200A89507EF04BF0091600000610093600053 +:1071020000E00093600001E008950E94AA3D0E9401 +:10711200B53DFDCF0CD00F7708D0006806D00061D6 +:1071220004D0016028D0789408950093D80000918B +:10713200D8000895FCDF00621ED04CD009B500FFD4 +:10714200FDCFF5DF0F7D17D00091E0000E7F009399 +:10715200E0000091E000077F0093E0000091E20070 +:1071620001600093E2000091E20008600093E200F7 +:1071720078940C94743B0093D800089500910D010B +:10718200002359F40091D90000FF07C0D0DF006846 +:10719200F2DF01E000930D01CDDFE0E2F2E00081D9 +:1071A200018100FF0DC0008111811E7F11830083C8 +:1071B20001E00093EA0000E00093EA0000931E025F +:1071C20000E00093E9000091E80003FF02C00E9482 +:1071D200F23B0895A89539D000E40093600000E0E6 +:1071E200009381000093800010E0009385000093DB +:1071F200840001E006BB00918100036000938100DE +:107202000091600007FFFCCF00E80093600010933C +:107212008100A89507EF04BF18D010936000209159 +:1072220084003091850010938100109380001093A8 +:1072320085001093840001E006BB2D3D354010F01F +:1072420002E101C002E009BD089500916000006101 +:107252000093600008950E94AD3E239741D100E063 +:1072620000930901B5D104811581012B51F437D165 +:1072720000910701002309F4B9C000E0009307015F +:10728200B5C058D102FFFDCF37D1068335D1009367 +:107292000F0132D1009310012FD1009311012CD193 +:1072A2000093120129D10093130102852091130149 +:1072B20030911201409111015091100116811A95DD +:1072C20041F01250A9F01A9599F11A9509F473C078 +:1072D2008BC010910F01113011F411E001C010E0C8 +:1072E200138799D00C3F11F414D17FC077D17DC0A0 +:1072F20092D010910F01112329F01A9549F01A9595 +:10730200A9F073C010E013870C3F09F06EC0ECCFF8 +:1073120056D103C04CD109F468C00D911C9144D1DF +:107322000F3FC1F305E0009309015FC011E0EBCF0D +:10733200D2D029F00250E1F10A9541F056C0FDD0B9 +:107342000E94A33F0FEF00930A014FC0552319F08B +:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE +:1073620003FFFDCF67D051D04AD008E00093600000 +:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F +:1073820044D00FEF1FE004C009811A810150104060 +:1073920009831A8309811A81012BB1F700E800934E +:1073A200610000910C01009361000C940000FFCF7A +:1073B20001E003871AC08FD019F00A9539F015C081 +:1073C200535098F4BAD002E000870FC0505339F0FE +:1073D2005A9541F05F52B1F35A95A1F306C002E00B +:1073E2000883F0CF01E0FCCFA8D079D02396E4E067 +:1073F2000C94BA3E01E005BF00E005BF089500917C +:10740200D8000F770093D800089509B50D7F09BD04 +:1074120000E009BD08955183408333832283109194 +:10742200E8001B7F1093E8001091E8001F7710938B +:10743200E80008955DD053D0F8940091E000016017 +:107442000093E000089579D04AC0219749D0009175 +:107452000601035019F00250B9F00BC03CD021F0E4 +:107462000A9559F00A9529F400910A010C3F19F482 +:1074720050D02196089567D0FCCF0091010100936E +:10748200F100009100010AC01091100124D019F0FE +:107492000A9549F0EECF135018F400E00093F10082 +:1074A2001ED044D0E6CF105339F01A9539F01F524E +:1074B20041F01A9541F0F4CF08E5F0CF00E006D094 +:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5 +:1074D20030E00C94113F00910F010023089521C068 +:1074E2000BD008D007D00093040106D00093050109 +:1074F20021D00BC000D008830091F10008950091C3 +:10750200EB0000620093EB0015D0077F0093E800C8 +:107512000895F5DF02E00093080103E000930901FA +:10752200089559D007D000FFFDCF089503D002FF80 +:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A +:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD +:107552002BD00093F1002BD059F43DD0082F092BEA +:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1 +:10757200042D4394003289F300910B0100230D91F5 +:107582001C9131F311970E945838E3CFD3DF00FFEB +:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B +:1075A200CCDFE5E00C94B93E11970C945C380D9158 +:1075B2001C910F5F1F4F1C930E93019708958281B8 +:1075C200938100811181801B910B0196DF01089547 +:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71 +:1075E200F7DF80819181A081B181AF710481158122 +:1075F20000521040048315830AC000910B0100233E +:1076020031F4A301920103E911E00E943B3F47D00C +:10761200B8F1662477242C0111C06EDFF301ED5618 +:10762200FE4F008301E0600E00E0701E01960091A3 +:10763200F200002311F033D0B8F47FDF30D0E8F24B +:10764200F301B096E238F040C0F674DF02FFFDCFDE +:107652000091F200BDDF24813581201B304024835C +:107662003583E5CF49DFAA95AA23E1F700910B0103 +:10767200013099F62091F1008C010E945038D6CF4A +:1076820004811581012B21F055DF02FFFDCF55DF6B +:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051 +:1076A200F1E0028113810817190708952091EB0078 +:1076B20021602093EB000093EC000091ED0002703A +:1076C200012B0093ED000091ED0002600093ED00AC +:1076D2001091EE00012F000F00E0001F0895412FCE +:1076E2000093E900089500E009D000FD05C000E024 +:1076F200F7DF10E202E0DACF00E00895F1DF009157 +:10770200EB0008950F770132A9F5112369F11A955B +:1077120059F01A9561F01A9569F01A95F9F01A95CF +:10772200C1F01A95D9F024C00E942C3920C00E94C1 +:10773200263A1DC029D00091090123D001E01FD0B3 +:1077420020D0009108011BD00E94923A0E94973AE1 +:107752000EC01AD00091080114D007C002E00093B5 +:10776200080100E0009309010FD00E94923A03C081 +:107772000E94803A02C001E0089500E0089501D01D +:1077820000E00093F10008950091E800077F009364 +:10779200E800089508950350F9F4112339F01A9579 +:1077A20051F01A9581F01A9599F016C004E016D09E +:1077B20001E810E703C011D003E510E7E7E1F2E0CA +:1077C20000831183D8CF06E109D00FE510E7F6CF89 +:1077D20004D005E710E7F2CFD0CF0CE000931A02F5 +:1077E200089527D120D100931D02E1D0212F11232A +:1077F20029F12A95E9F02250F1F0225099F02A95C8 +:1078020049F0225061F02A9581F02A95E1F02A95FB +:10781200E9F023C0003809F44FC00C94833B0038D0 +:10782200E1F7C8C00023C9F71EC00023B1F72DC07D +:10783200033098F744C1033080F70BC1003868F376 +:10784200033858F7C9C0013841F77BC1013051F400 +:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA +:1078620009F41ED008951091E3001078DCD00F7750 +:10787200012B0093E300E9D0ACD000FFFDCF0091D3 +:10788200E30000680093E300089591D0123040F4C1 +:107892000FD010931E02DAD000911E020C94CB3B43 +:1078A2000091EB0001D004C000620093EB00089548 +:1078B2000091E800077FC0C0BA93AA93229700E024 +:1078C2000093190274D0AFD0202F2A9519F02A956F +:1078D200E9F022C002E100931A020FE210E7E7E1A9 +:1078E200F2E0008311839DD008839DD00983E0DFFD +:1078F20000911A0210E02881398102171307A8F4B7 +:107902000F7181F401E00093190211C002E10093AA +:107912001A0201E410E7E3CF0E94CC3B002319F7DF +:107922008ED040C01093190202C020931A027ED05A +:10793200A7E1B2E001C08AD000911A02002309F146 +:1079420048D004FD1EC045D000FD03C042D004FF54 +:10795200FACF10E0012F1395003281F0ED91FC91E6 +:107962001197049133D02D913C912F5F3F4F3C935F +:107972002E93FD0103810A95038361F72AD004FF48 +:10798200DACF00911902013039F423D004FD04C08A +:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F +:1079A20018D00B7F49D02296A991B99108951091D0 +:1079B200F10008957DDF00911E0208D047D009D062 +:1079C2000F773AD006D002FFFDCFBFC00093F1007F +:1079D20008950091E800089524D010911D021058D6 +:1079E20029F01A9589F01A9591F019C061DF00917A +:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63 +:107A020018D0E7DF0F770CC053DF00E0F2CF51D080 +:107A12000F7710E0F801E55EFD4F0081EACF0FD04D +:107A22000BC001D000D00091F1000895D2DF0F7E8B +:107A320003C00091E8000B7F0093E80008950091D5 +:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31 +:107A5200F3CF00911D02002329F00A9509F10A953E +:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE +:107A7200B9F4D9DF0F7711F416D01BD00093E900C7 +:107A82001091EB0010FF0BC00ED010E01093E90034 +:107A920021E0F801E55EFD4F20834FD003C042D0C4 +:107AA20045D0CFDFC9CF1091EB0010621093EB00ED +:107AB20008951091E800177F1093E800089500914F +:107AC2001D02002311F4AFDF02C0013011F4B7DF51 +:107AD200B3CF023031F52DD019F52091F1002F7777 +:107AE2002093E90023D000FF19C081F01FD000616C +:107AF200DCDE01E010E0422F0E949F3E0093EA008C +:107B020000E00093EA0012D00860CFDE0BD030E034 +:107B1200F901E55EFD4F008310D0DACF03D0D7CF55 +:107B2200BFDE089500E00093E90008950091EB00A4 +:107B3200089579DF3CDF00230895BADE4ADF0E7F25 +:107B4200089583DF46DF02FFFDCF73DF42DF0F7749 +:107B520073CF0091D70001600093D7000E948B3849 +:107B620000E000931F0208950C94BF388A93FA93A1 +:107B7200EA933A922A921A920A927A936A935A93BF +:107B82004A933A932A931A930A938FB70091DA0091 +:107B920000FF24C00091D80000FF20C00EEF009328 +:107BA200DA000091D90000FF11C001E000930D013D +:107BB200ABD0026096D09AD00860A2D00E949B38C7 +:107BC2000091E0000E7F0093E00008C000E0009307 +:107BD2000D0100931E0298D0046083D07FD002FF73 +:107BE20005C084D002FF02C00BEF75D077D000FF32 +:107BF2001BC07CD000FF18C001E000930E016AD0C8 +:107C020083D000626ED00EEF6FD0006179D06ED05B +:107C12000F7D76D00091D80000620093D80009B59C +:107C22000D7F09BD00E009BD59D004FF20C05ED020 +:107C320004FF1DC009B500FD05C00E94EB3809B55F +:107C420000FFFDCF0091D8000F7D0093D80042D0F5 +:107C520000910E01002359F04CD00FEE45D00F7E5B +:107C620052D000643ED042D001604AD042D036D0D9 +:107C720005FF0FC03BD005FF0CC000E000930E01D2 +:107C820035D00F7E3DD00FED2FD00F7D3CD0006858 +:107C920028D024D003FF0DC029D003FF0AC000E082 +:107CA20000931F0207EF17D00E94743B2DD0116082 +:107CB20018D08FBF09911991299139914991599100 +:107CC200699179910990199029903990E991F991E6 +:107CD200899118950FEE0093E10008950091E1005B +:107CE20008951183008308950093E1000091E2005A +:107CF20008950091E200006203D00091E200086062 +:107D02000093E2000895FCDFE0E2F2E000811181DD +:107D1200089500008895FECF01E60DBF02E00EBF78 +:107D2200C2EED2E00E947438002311F00E94D33ECA +:107D32000E9465380E948A3E0C948A3E4A951AF047 +:107D4200000F111FFBCF0895BA92AA929A928A92BB +:107D52007A926A925A924A92BA93AA939A938A937D +:107D62000895BB84AA84998488847F806E805D8014 +:107D72004C80BB81AA8199818881F0E00FB6F8948A +:107D8200CE0FDF1F0FBE089520E006D0E9F7089559 +:107D9200259102D0E9F708952D9301501040202F2C +:107DA200212B089585E890E7FC0105911491FC01CF +:107DB2003296A591B491FC01349625913491422FCB +:107DC200432B19F0F901E4DF01C0DEDF069610E76C +:107DD2008139910748F308952F930CD02F9101D048 +:107DE20008953CD0F12FE02F45E047BFE89536D00B +:107DF20012D0089533D0F12FE02F43E047BFE8952A +:107E02002DD008952BD0F12FE02F43E047BFE89506 +:107E120025D001D0089522D041E147BFE8951EC088 +:107E22001DD0F12FE02F41E247BFC895002D16C0AB +:107E320015D0F12FE02F49E047BFC895002D0EC0A5 +:107E4200F32FE22F012E102E41E047BFE89506C026 +:107E520005D0002E29E027BFE89500C0022E27B7E3 +:107E620020FDFCCF202D0895022E27B726FDFCCF42 +:107E7200202D08950E94A53E22974801C901DA01EA +:107E820010C05BD001E0A00E00E0B01E00E4A0161E +:107E920000E0B00608F440C0830120E030E00E9418 +:107EA200F23E0A2F0B2B09F440C0082F0F7710E087 +:107EB2002C01401A510A320100E4A02E03C00A2FFD +:107EC2000B2BE1F04816590680F0F40101914F01A5 +:107ED2000983119729F001914F010883119711C06D +:107EE200F2013196049108830CC0F20104910983D6 +:107EF2003196E817F907A1F7F401EDCF1BD00883FB +:107F020019839201088119810E94213F16D0AA94F7 +:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE +:107F220009F4AFCF83011DD0B7CF01E02296ECE078 +:107F32000C94B23E82010C945F3802E0400E00E0E5 +:107F4200501E08959A938A9380E090E08C0109D0A4 +:107F520080589F4F8F3F0FE69007C0F38991999108 +:107F6200089520E030E00C94FB3E00000000000089 +:067F720000000000FC000D +:107FE4000C94ED3E0C94113F0C94193F0C94213FDA +:0C7FF4000C94F23E0C94033F0C94293FC7 +:040000030000700089 +:100000000C94A0050C94E4050C94E4050C94E40510 +:100010000C94E4050C94E4050C94E4050C94E405BC +:100020000C94E4050C94E4050C94B6180C9488190F +:100030000C94A1270C94E4050C94E4050C94E405BD +:100040000C94E4050C94E4050C94E4050C94E4058C +:100050000C94E4050C9409280C94E4050C94E40534 +:100060000C94E4050C94E4050C94E4050C94E4056C +:100070000C94E4050C94E4050C94E4050C94E4055C +:100080000C94090F0C94E4050C94E4050C94E4051D +:100090000C94E4050C94E4050C94E4050C94E4053C +:1000A0000C94E4050C94E4050C94E4053F064F061B +:1000B000610671067706860692069706A406AC06C8 +:1000C000BC06C106C813C813C813C813C813C81385 +:1000D000C813C813C813C813DF13DF13DF13DF13EC +:1000E000DF13DF13DF13DF13DF13DF13C813C813AE +:1000F000C813C813C813DF13DF13DF13DF13DF13B5 +:10010000C813C813C813DF13DF13DF13F519171A49 +:10011000051B171A051B5C1A7F1A051BD41AE71A50 +:10012000EA1DEA1D271E271E811EBF1E372137210B +:10013000D81E3721D91FD91F9C20B3203721222157 +:1001400007634236B79BD8A71A39685618AEBAABC0 +:10015000558C1D3CB7CC5763BD6DEDFD753EF61754 +:100160007231BF000000803F08000000BE922449A9 +:10017000123EABAAAA2ABECDCCCC4C3E00000080D9 +:10018000BEABAAAAAA3E00000000BF000000803F4C +:100190000000000000084178D3BB4387D1133D190C +:1001A0000E3CC3BD4282AD2B3E68EC8276BED98F39 +:1001B000E1A93E4C80EFFFBE01C4FF7F3F0000007D +:1001C000000035001E001F00200021002200230037 +:1001D00024002500260027002A002B0014001A0006 +:1001E0000800150017001C0018000C001200130076 +:1001F0004C00290004001600070009000A000B004B +:100200000D000E000F0033003400E1001D001B0044 +:1002100006001900050011001000360037003800F4 +:1002200028000530E000E200E30003302C002C0041 +:1002300004305000510052004F0035001E001F00D6 +:100240002000210022002300240025002600270092 +:100250002A002B0014001A00090013000A000D00E8 +:100260000F0018001C0033004C002900040015008A +:100270001600170007000B00110008000C00120008 +:100280003400E1001D001B000600190005000E00EF +:10029000100036003700380028000530E000E2008A +:1002A000E30003302C002C000430500051005200B9 +:1002B0004F0035001E001F002000210022002300F7 +:1002C00024002500260027002A002B0034003600D9 +:1002D000370013001C0009000A00060015000F007B +:1002E0004C00290004001200080018000C00070050 +:1002F0000B001700110016003800E1003300140055 +:100300000D000E001B00050010001A0019001D0052 +:1003100028000530E000E200E30003302C002C0050 +:1003200004305000510052004F0035021E021F02DF +:100330002002210222022302240225022602270291 +:100340002A0035021E021F0220022102220223027D +:1003500024022502260227024C004C003A003B00F2 +:100360003C003D003E003F002D022E022F023002D5 +:1003700031020100400041004200430044004500BA +:100380000100010001000100010001000100010065 +:1003900001000100010001000100AB00AA00A9005A +:1003A000AE0035001E001F002000210022002300A7 +:1003B00024002500260027002A0035001E001F000B +:1003C0002000210022002300240025002600270011 +:1003D0004C004C003A003B003C003D003E003F001A +:1003E0002D002E002F0030003100010040004100A0 +:1003F00042004300440045000100010001000100EB +:1004000001000100010001000100010001000100E4 +:100410000100AB00AA00A900AE000000000000002F +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:100480000000033000000000043000000000000005 +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000003A003B003C003D003E003F004000FC +:1009500041004200430044004500010000500100F6 +:10096000010001000100010001000100010001007F +:100970004C000100010001000730063013501250F6 +:100980000030013002300100010001000B300A305C +:1009900009300830010001000100010001000100E0 +:1009A000010001000100010001000100010001003F +:1009B000010001000100010001002A035400680049 +:1009C000650020005000720065006F006E00690035 +:1009D000630020004B006500790062006F00610039 +:1009E0007200640000002C034F0072007400680065 +:1009F0006F006C0069006E006500610072002000ED +:100A00004B006500790062006F00610072006400B5 +:100A1000730000000403090409025400030100A04C +:100A2000FA0904000001030101000921110100017C +:100A3000223F000705810308000A090401000103A1 +:100A4000010200092111010001224D000705820366 +:100A500008000A0904020001030000000921110135 +:100A600000012236000705830308000A1201100165 +:100A700000000008EDFE61600100010200010501B7 +:100A80000980A101850216010026B7001A01002A7B +:100A9000B700751095018100C0050C0901A1018501 +:100AA00003160100269C021A01002A9C027510956B +:100AB000018100C005010902A1010901A100050988 +:100AC000190129051500250195057501810295017A +:100AD000750381010501093009311581257F9502D2 +:100AE0007508810609381581257F950175088106ED +:100AF000050C0A38021581257F950175088106C00D +:100B0000C005010906A101050719E029E71500251F +:100B10000195087501810295017508810105081983 +:100B2000012905950575019102950175039101054E +:100B300007190029FF150025FF950675088100C0DB +:100B400011241FBECFEFDAE0DEBFCDBF04B603FE37 +:100B500024C08091A3039091A403A091A503B09118 +:100B6000A6038730904BA740B04BB9F41092A30373 +:100B70001092A4031092A5031092A60314BE84B78A +:100B8000877F84BF88E10FB6F8948093600010924D +:100B900060000FBEE0E0F8E3099512E0A0E0B1E0EC +:100BA000EAEEF2E602C005900D92A83AB107D9F735 +:100BB00013E0A8EAB2E001C01D92A33AB107E1F741 +:100BC0000E94FC150C9473310C940000279A2F9806 +:100BD0008FEF9FEF90938700809386008AE0809349 +:100BE000800089E1809381000C94F82C282F8111DA +:100BF0000BC080918000877F8093800010928D00D1 +:100C000010928C002F9808952F9880918000886012 +:100C100080938000233019F48FEF9FEF0FC083E0A3 +:100C200090E0821B9109880F991F2FEF3FEFA901D8 +:100C300002C0569547958A95E2F7CA0190938D00B8 +:100C400080938C000895CF93DF93EC010E949D2840 +:100C5000BE0180E090E0DF91CF910C9417250F93B7 +:100C60001F93462F50E04C30510508F098C0DC012E +:100C7000FA01EA5AFF4F12968C910C94373188236F +:100C800009F48DC000E010E0980140E064E070E0FD +:100C90008BEC91E00E94871281E090E00FC08823E6 +:100CA00009F47DC000E010E0980140E066E070E0EB +:100CB0008BE591E00E94871282E090E00E9423067B +:100CC0006EC0882309F46BC000E010E0980140E09A +:100CD00068E070E08BE891E00E94871284E090E089 +:100CE000EDCF882311F083E005C083E00CC088239A +:100CF00049F084E00E94942540E164E083E00E9492 +:100D0000ED0A4DC084E00E94B525F6CF882331F06E +:100D100085EE0E947E1C0E944F2D41C085EE0E94F0 +:100D2000461D3DC08823D9F10E941B0E38C0882380 +:100D3000B1F10E94140E00E010E0980140E064E080 +:100D400070E08BEE91E029C0882349F185E00E9494 +:100D5000B5250E943C0E23C0882309F100E010E075 +:100D6000980140E068E070E08BE191E00E9487121A +:100D700085E00E94942513C0882389F00E941A13ED +:100D800004C0882361F00E94251300E010E0980160 +:100D900040E068E070E08BE191E00E94871280E023 +:100DA00090E01F910F9108950F931F932FEF89EFFC +:100DB00090E0215080409040E1F700C0000000E04A +:100DC00010E0980140E064E070E08BEE91E00E945A +:100DD00087121F910F910895CF92DF92EF92FF92A9 +:100DE0000F931F93CF93DF93CDB7DEB7CC58D109C4 +:100DF0000FB6F894DEBF0FBECDBF2091630325FF71 +:100E0000C5C08C01FC01928180910201992309F4F3 +:100E100060C096E4E7E2F2E0DE01A95BBF4F01901B +:100E20000D929A95E1F7F8019081E0910001F0911F +:100E30000101E90FF11DEE0FFF1F27E430E02C0F39 +:100E40003D1FE20FF31F60817181680F711D8827BC +:100E500077FD8095982F0E94932E20E030E040E4AB +:100E600051E40E94F82D6B017C01F801218185E09D +:100E700090E0821B9109BC01882777FD8095982F0F +:100E80000E94932E9B01AC01C701B6010E94902DD8 +:100E90009B01AC0160E070E080E090E40E94AA2F2A +:100EA00020E030E04CE551E40E94472F4FE050E055 +:100EB000C457DF4F0FB6F894DEBF0FBECDBFDF9132 +:100EC000CF911F910F91FF90EF90DF90CF900C94F6 +:100ED000271296E4E7E2F2E0DE01119601900D920E +:100EE0009A95E1F7F8019081E0910001F0910101FC +:100EF000E90FF11DEE0FFF1F21E030E02C0F3D1F29 +:100F0000E20FF31F60817181680F711D882777FDE3 +:100F10008095982F0E94932E20E030E040E451E429 +:100F20000E94F82D6B017C01F801218185E090E0A1 +:100F3000821B9109BC01882777FD8095982F0E941C +:100F4000932E9B01AC01C701B6010E94902D9B011D +:100F5000AC0160E070E080E090E40E94AA2F20E005 +:100F600030E04CE551E40E94472FC457DF4F0FB6E5 +:100F7000F894DEBF0FBECDBFDF91CF911F910F91CF +:100F8000FF90EF90DF90CF900C946F0EC457DF4F1F +:100F90000FB6F894DEBF0FBECDBFDF91CF911F918A +:100FA0000F91FF90EF90DF90CF9008950F931F93D4 +:100FB00000E010E0980140E063E070E083E091E041 +:100FC0000E9487122FEF82E597E0215080409040E9 +:100FD000E1F700C000001F910F91089508950E944D +:100FE000E6056E9A769A0C94D4060C94EE070C944F +:100FF000EC060895880F991FFC01EE5BFF4F859169 +:1010000094910895880F991FFC01EE53FE4F85912E +:10101000949108950F931F93CF93DF93EC01811563 +:1010200020E49207A0F5C11580E3D80708F0E1C0DD +:10103000C83ED105D8F4C03ED10508F0EEC1C83A8B +:10104000D10578F4C53AD10508F074C0C130D10596 +:1010500009F46DC008F4DEC1C430D10508F0DDC16B +:10106000D9C1CB3BD10508F470C0D4C1C11590E201 +:10107000D90708F0B9C0C11521E0D20708F0CDC1E9 +:10108000C03FD10508F4C6C18E01106506C2C1304B +:1010900080E5D80709F4BDC068F5C13120E4D20766 +:1010A00009F4AEC050F4C03190E4D90708F0A5C0EF +:1010B000CF70DD278E01146DF0C1C33120E4D2075B +:1010C00009F4A4C008F49FC0C115D04509F0A2C11D +:1010D0000E945B210E943C0E0E94D6079FEF24E3F2 +:1010E0008CE0915020408040E1F700C000000E9459 +:1010F0002E28D3C1C11520E6D20730F4C11581E5F1 +:10110000D80708F48CC02DC1C11590E7D90708F4A1 +:1011100081C1C11520E8D20708F478C1C11580E962 +:10112000D80708F077C1DF708E01106AB6C101E000 +:1011300010E0B3C1C53AD10509F471C1C63AD10571 +:1011400009F070C102E810E4A8C1C83AD10509F459 +:101150006CC1C93AD10509F46BC1CA3AD10509F489 +:101160006AC1CB3AD10509F469C1CC3AD10509F479 +:1011700068C1CD3AD10509F467C1C03BD10509F476 +:1011800066C1CE3AD10509F465C1CF3AD10509F45B +:1011900064C1C13BD10509F463C1C23BD10509F467 +:1011A00062C1C33BD10509F461C1C43BD10509F457 +:1011B00060C1C53BD10509F45FC1C63BD10509F447 +:1011C0005EC1C73BD10509F45DC1C83BD10509F437 +:1011D0005CC1C93BD10509F45BC1CA3BD10509F427 +:1011E0005AC100E014E459C1CE019F700E94020868 +:1011F00055C1DD278E01106C50C100E011ED4DC1CD +:1012000000E010ED4AC100E012ED47C100E013ED2F +:1012100044C1809177038160809377033EC10E942F +:101220008A28811102C00E9466280E94A22890E0AC +:101230009093A2038093A103C23090E5D90721F4D3 +:101240008091A103816086C0C43020E5D20721F4DB +:101250008091A10382607EC0C63080E5D80721F46A +:101260008091A103846076C0C83090E5D90719F455 +:101270008091A10327C0CA3020E5D20721F48091D4 +:10128000A103806167C0CC3080E5D80721F480914C +:10129000A10380625FC0CE3090E5D90721F4809130 +:1012A000A103806457C0C03120E5D20721F48091AA +:1012B000A10380684FC0C23180E5D80729F480912E +:1012C000A1038460886046C0C33090E5D90721F44B +:1012D0008091A1038E7F3EC0C53020E5D20721F466 +:1012E0008091A1038D7F36C0C73080E5D80721F4F7 +:1012F0008091A1038B7F2EC0C93090E5D90719F4E6 +:101300008091A10326C0CB3020E5D20721F4809143 +:10131000A1038F7E1FC0CD3080E5D80721F48091D6 +:10132000A1038F7D17C0CF3090E5D90721F48091BC +:10133000A1038F7B0FC0C13120E5D20721F480913A +:10134000A1038F7707C0C331D04531F48091A10349 +:101350008B7F877F8093A1038091A1030E94A628A1 +:101360009CC08D2F99278F70992781309105D9F4D2 +:101370009E012370332702C0880F991F2A95E2F738 +:101380009C688E0144E0000F111F4A95E1F7002789 +:101390001370802B912B53E0CC0FDD1F5A95E1F792 +:1013A000C076DD272FC08230910531F4DC2FCC27A9 +:1013B0008E01016F106A71C08330910569F4CE010E +:1013C0008370992701E010E002C0000F111F8A9579 +:1013D000E2F7C8019C680FC0049709F05EC0CE0117 +:1013E0008370992701E010E002C0000F111F8A9559 +:1013F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D8 +:10140000C07ED7708C010C2B1D2B47C0DF708E0166 +:10141000106243C000E010E040C08E013EC001E811 +:1014200010E43BC003E810E438C002EE14E435C019 +:1014300009EE14E432C00AEE14E42FC005EB14E404 +:101440002CC006EB14E429C007EB14E426C00CEC16 +:1014500014E423C00DEC14E420C003E815E41DC01F +:101460000AE815E41AC002E915E417C004E915E416 +:1014700014C001E216E411C003E216E40EC004E257 +:1014800016E40BC005E216E408C006E216E405C047 +:1014900007E216E402C00AE216E4C801DF91CF9128 +:1014A0001F910F9108959CE0799FF00111249CE316 +:1014B000899FE00DF11D1124E60FF11DEE0FFF1FB6 +:1014C000EE53FE4F85919491803E9105E0F4803C6F +:1014D000910558F58133910509F46FC048F48932BC +:1014E000910509F463C08A32910509F46DC072C098 +:1014F00089339105E9F082389105D1F08533910562 +:1015000009F44DC067C0833E910581F138F4803EF7 +:101510009105B9F0823E9105D9F05CC0863E9105F7 +:1015200061F1873E9105A1F155C00E94FA07089527 +:101530002091A10320FD02C021FF4CC080EE90E06D +:1015400049C08091A10380FFF9CF89E390E042C0B8 +:101550008091A10382FF0EC08091A10384FF03C08C +:1015600080E090E037C083EE90E034C08091A1032A +:1015700082FFF2CF82EE90E02DC08091A10383FF25 +:101580000BC08091A10384FDEBCF87EE90E022C0D9 +:101590008091A10383FFF5CF86EE90E01BC0809180 +:1015A000A10385FF07C089E290E014C08091A103E8 +:1015B00085FFF9CF85E390E00DC08091A10386FF00 +:1015C00007C08AE290E006C08091A10386FFF9CFB0 +:1015D00081E390E00E940A080895CF92DF92EF9293 +:1015E000FF920F931F9301E010E020E030E06801CC +:1015F000790104C0CC0CDD1CEE1CFF1C8A95D2F7CF +:1016000004C0000F111F221F331F6A95D2F70C2947 +:101610001D292E293F29C0906303D0906403E090D8 +:101620006503F0906603C022D122E222F322842FC8 +:10163000C016D106E206F30641F41F910F91FF9008 +:10164000EF90DF90CF900C9494251F910F91FF9015 +:10165000EF90DF90CF900C94B52508950C942D0B4E +:101660005F926F927F928F929F92AF92BF92CF9232 +:10167000DF92EF92FF920F931F93CF93DF93CDB73B +:10168000DEB72A970FB6F894DEBF0FBECDBFCE01EE +:1016900001966C014E019BE0890E911C20E030E028 +:1016A00040E050E060E070E000E010E0E12CF12C60 +:1016B0006C2C5D2C8AE0782EAA24A394B12CEDE644 +:1016C000F2E0A62DB52D872D01900D928A95E1F7B8 +:1016D000F601819191916F01FC01E07FFF27E032DB +:1016E000F10559F48F709927F50102C0EE0FFF1F25 +:1016F0008A95E2F7EE2AFF2A37C0E033F10559F464 +:101700008F709927F50102C0EE0FFF1F8A95E2F74F +:101710000E2B1F2B29C0E034F10559F48F70992747 +:10172000F50102C0EE0FFF1F8A95E2F76E2B7F2BAB +:101730001BC0E035F10559F48F709927F50102C0FF +:10174000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A0 +:10175000F10551F48F709927F50102C0EE0FFF1FBC +:101760008A95E2F72E2B3F2BC814D90409F0A7CF96 +:1017700084B19E2D9095892384B985B1E82AE5B876 +:1017800087B1902F9095892387B988B1082B08B924 +:101790008AB1962F909589238AB98BB1682B6BB942 +:1017A0008DB1942F909589238DB98EB1482B4EB968 +:1017B00080B3922F9095892380BB81B3282B21BBC6 +:1017C0002A960FB6F894DEBF0FBECDBFDF91CF9142 +:1017D0001F910F91FF90EF90DF90CF90BF90AF904F +:1017E0009F908F907F906F905F9008955F926F921F +:1017F0007F928F929F92AF92BF92CF92DF92EF92A1 +:10180000FF920F931F93CF93DF93CDB7DEB7689707 +:101810000FB6F894DEBF0FBECDBF85B7806885BF19 +:1018200085B7806885BF0E94300BCE0101966C01A0 +:101830004E0199E1890E911C20E030E040E050E03B +:1018400060E070E000E010E0E12CF12C6C2C5D2CED +:1018500088E1782EAA24A394B12CE7E7F2E0A62D24 +:10186000B52D872D01900D928A95E1F7F6018191B2 +:1018700091916F01FC01E07FFF27E032F10559F4FF +:101880008F709927F50102C0EE0FFF1F8A95E2F7CE +:10189000EE2AFF2A37C0E033F10559F48F709927FB +:1018A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEA +:1018B00029C0E034F10559F48F709927F50102C071 +:1018C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D2 +:1018D000F10559F48F709927F50102C0EE0FFF1F33 +:1018E0008A95E2F74E2B5F2B0DC0E036F10551F4DF +:1018F0008F709927F50102C0EE0FFF1F8A95E2F75E +:101900002E2B3F2BC814D90409F0A7CF84B19E2DEC +:101910009095892384B985B1E82AE5B887B1902FDD +:101920009095892387B988B1082B08B98AB1962F79 +:10193000909589238AB98BB1682B6BB98DB1942F9F +:10194000909589238DB98EB1482B4EB980B3922FD3 +:101950009095892380BB81B3282B21BBE2EBF2E079 +:10196000A8EAB2E0119211921D921D9282E0EC3B26 +:10197000F807C1F768960FB6F894DEBF0FBECDBF6B +:10198000DF91CF911F910F91FF90EF90DF90CF905B +:10199000BF90AF909F908F907F906F905F900C94CE +:1019A000EF075F926F927F928F929F92AF92BF925A +:1019B000CF92DF92EF92FF920F931F93CF93DF931B +:1019C000CDB7DEB7A2970FB6F894DEBF0FBECDBF7E +:1019D0006E0149E1C40ED11C88EAA82E82E0B82E1F +:1019E00075019AE0592E460101E010E028E1622ECF +:1019F00035E0732EEDE6F2E0D401852D01900D92D5 +:101A00008A95E1F7D6018D919D916D019C01207F12 +:101A100033272032310591F424B18F709927F801D2 +:101A200002C0EE0FFF1F8A95E2F7CF01922F982B8D +:101A300094B995B18095892385B953C02033310578 +:101A400091F427B18F709927A80102C0440F551F48 +:101A50008A95E2F7CA01922F982B97B998B1809591 +:101A6000892388B93EC02034310591F42AB18F70A2 +:101A70009927D80102C0AA0FBB1F8A95E2F7CD01B2 +:101A8000922F982B9AB99BB1809589238BB929C045 +:101A90002035310591F42DB18F709927F80102C0DE +:101AA000EE0FFF1F8A95E2F7CF01922F982B9DB979 +:101AB0009EB1809589238EB914C02036310589F4F2 +:101AC00020B38F709927A80102C0440F551F8A9533 +:101AD000E2F7CA01922F982B90BB91B3809589238E +:101AE00081BB50EA5A95F1F7BE016F5F7F4F20E04E +:101AF00030E040E050E0E7E7F2E0DE011196862DAD +:101B000001900D928A95E1F7DB018D919D91BD01C8 +:101B1000FC01E07FFF27E032F10511F4E3B113C0CF +:101B2000E033F10511F4E6B10EC0E034F10511F433 +:101B3000E9B109C0E035F10511F4ECB104C0E036BB +:101B4000F105B9F4EFB1F0E08F70992702C0F59577 +:101B5000E7958A95E2F7E0FD08C0C801042E02C0AF +:101B6000880F991F0A94E2F702C080E090E0282BCA +:101B7000392B4F5F5F4F4C30510509F0BCCFF70157 +:101B8000808191818217930721F0318320837092A5 +:101B90000B020E94300BF2E0EF0EF11C42EBE41658 +:101BA00042E0F40609F026CF80910B028823C9F0A9 +:101BB000815080930B02882339F08FE99FE00197D1 +:101BC000F1F700C000000DC0E2EBF2E0D5018D910D +:101BD0009D915D0181939193B2EBAB16B2E0BB0690 +:101BE000A9F70E94F50781E0A2960FB6F894DEBF30 +:101BF0000FBECDBFDF91CF911F910F91FF90EF905E +:101C0000DF90CF90BF90AF909F908F907F906F901C +:101C10005F900895E82FF0E0EE0FFF1FEE54FD4FA8 +:101C2000808191810895089580918C0381608093D3 +:101C30008C030C94B82880918C038E7F80938C0346 +:101C40000C94B8280E948A28811102C00E9466283C +:101C50000E94B42880938C033E9A809171008D7FFE +:101C60008093710082E0809390008AE180939100DC +:101C700081E08093BE0208958091BE02811102C06E +:101C80000E94220E10920E0310920D03809171009B +:101C90008D7F80937100809190008F77809390006A +:101CA0001092D0021092CF021092070310920803F4 +:101CB0001092090310920A03109206031092050372 +:101CC000E5EEF2E0A5EDB2E01192119211921192BF +:101CD0001D921D9283E0E530F807B1F70895CF9289 +:101CE000DF92EF92FF920F931F93CF93DF93209198 +:101CF000CF02222309F484C06B017C018091BE02D3 +:101D0000811102C00E94220E05E013E0C7E0D0E07E +:101D1000A7019601F80192918291729162918F01CF +:101D20000E94F42D811131C0FE01EE0FFF1FEE0F56 +:101D3000FF1FEB51FD4F1082118212821382DE01D0 +:101D4000AA0FBB1FAB52BD4F11961C921E92C730FB +:101D5000D105E9F0219644815581668177814083E0 +:101D600051836283738314821582168217821296BE +:101D70008D919C91139711969C938E9313961C9220 +:101D80001E92129734961296E2CF219708F6809110 +:101D90000D0390910E03019797FD05C090930E03DC +:101DA00080930D0304C010920E0310920D038091D6 +:101DB0000D0390910E0320910B0330910C03281713 +:101DC000390724F010920C0310920B03892BC1F4F5 +:101DD000809171008D7F80937100809190008F774A +:101DE0008093900010920703109208031092090349 +:101DF00010920A0310920603109205031092CF026C +:101E0000DF91CF911F910F91FF90EF90DF90CF90D6 +:101E100008951F920F920FB60F9211244F925F9266 +:101E20006F927F928F929F92AF92BF92CF92DF92EA +:101E3000EF92FF922F933F934F935F936F937F9314 +:101E40008F939F93AF93BF93CF93DF93EF93FF93C2 +:101E50008091CF02882309F49BC1C0910D03D091DA +:101E60000E031C161D060CF093C14090BF0250904B +:101E7000C0026090C1027090C20220E030E0A9016F +:101E8000C301B2010E94432F18160CF065C0C13087 +:101E9000D10509F452C080910B0390910C03BE014F +:101EA0000E9423317C0190930C0380930B0380905C +:101EB000D1029090D202A090D302B090D40220E040 +:101EC00030E040E85FE3C501B4010E94902D6093CB +:101ED000D1027093D2028093D3029093D402F7017F +:101EE000EE0FFF1FEE0FFF1FEB51FD4FA3019201FD +:101EF00060817181828193810E94F82D20E030E021 +:101F000040E05EE30E94472F9B01AC01C501B40194 +:101F10000E94432F18168CF4C7010196BE010E943F +:101F2000233190930C0380930B031092D1021092F3 +:101F3000D2021092D3021092D402E0910B03F091DE +:101F40000C03EE0FFF1FEE0FFF1FEB51FD4F6081E3 +:101F5000718182819381D0C0C0900703D090080323 +:101F6000E0900903F0900A0320E030E0A901C701E6 +:101F7000B6010E94F42D2197882309F4A2C0FE0126 +:101F8000EE0FFF1FEE0FFF1FEB51FD4F8080918082 +:101F9000A280B380A5019401C701B6010E94F42D6F +:101FA00087FF31C0A501940160E070E08CED93ECF7 +:101FB0000E94F82D20E030E040E451E40E94F82D2A +:101FC00020E030E040E05FE30E94472F9B01AC013E +:101FD00060E070E080E090E40E94AA2F9B01AC01D9 +:101FE000C501B4010E94472F9B01AC01C701B60196 +:101FF0000E94F42D87FF07C0A701960160E070E002 +:102000008CED93E439C0A5019401C701B6010E948B +:10201000432F18160CF055C0A501940160E070E044 +:102020008CED93E40E94F82D20E030E040E451E490 +:102030000E94F82D20E030E040E05FE30E94472F4F +:102040009B01AC0160E070E080E090E40E94AA2F68 +:102050009B01AC01C501B4010E94472F9B01AC015B +:10206000C701B6010E94432F18165CF5A70196011F +:1020700060E070E08CED93EC0E94F82D20E030E001 +:1020800040E451E40E94F82D20E030E040E05FE3BE +:102090000E94472F9B01AC0160E070E080E090E47B +:1020A0000E94AA2F9B01AC01C701B6010E94472FD5 +:1020B00060930703709308038093090390930A03C6 +:1020C00013C0FE01EE0FFF1FEE0FFF1FEB51FD4F80 +:1020D00080819181A281B38180930703909308034B +:1020E000A0930903B0930A0360910703709108035A +:1020F0008091090390910A032091BC023091BD02A6 +:102100002F3F4FEF340731F02F5F3F4F3093BD0229 +:102110002093BC020E9430136B017C0120E034E26A +:1021200044EF51E40E94F42D87FF08C086EFC82ECB +:1021300088E2D82E84EFE82E81E4F82E20E030E00B +:1021400040E051E4C701B6010E94472F9B01AC015A +:1021500060E074E284E79BE40E94F82D6B017C014F +:102160000E94602E709397006093960020910C025D +:1021700030910D0240910E0250910F02C701B6013D +:102180000E94472F0E94602E7093990060939800E0 +:102190008091D002882309F433C1C090CB02D09043 +:1021A000CC02E090CD02F090CE0220E030E0A90118 +:1021B000C701B6010E94432F1816D4F58091BC02C6 +:1021C0009091BD028F3F2FEF920729F001969093D7 +:1021D000BD028093BC02C701B6010E94301320E00B +:1021E00030E040E051E40E94472F9B01AC0160E0E9 +:1021F00074E284E79BE40E94F82D6B017C010E944D +:10220000602E709397006093960020910C0230919D +:102210000D0240910E0250910F02C701B6010E94BB +:10222000472F0E94602E709399006093980008C019 +:1022300010929700109296001092990010929800B8 +:102240006091C5027091C6026F5F7F4F7093C602A6 +:102250006093C502209196003091970080E090E055 +:10226000232BF1F0C0919600D09197000E94912EFF +:102270006B017C01BE0180E090E00E94912E9B01E9 +:10228000AC016091C7027091C8028091C90290911F +:10229000CA020E94F82D20E03FEF4FE757E410C03C +:1022A0000E94912E6B017C0120E030EE4FEF54E450 +:1022B0006091C7027091C8028091C9029091CA02D0 +:1022C0000E94472F9B01AC01C701B6010E94432F1A +:1022D00087FD96C08091C3028F5F8093C30290E018 +:1022E000209188033091890382179307A0F0809191 +:1022F0009303882319F01092C3020DC080917100DE +:102300008D7F80937100809190008F7780939000F3 +:102310001092D0027DC08091C402C091C30281118D +:1023200028C0C0908D03D0908E03E0908F03F09072 +:10233000900320E030E0A901C701B6010E94432FBD +:102340001816BCF481E08093C4021092CB02109264 +:10235000CC021092CD021092CE02C092C702D0924F +:10236000C802E092C902F092CA02C150C093C302EF +:1023700043C01092C4021092BD021092BC02E091C0 +:102380008A03F0918B0348E0C49FE00DF11D1124F6 +:1023900080819181A281B3818093CB029093CC0202 +:1023A000A093CD02B093CE0220E030E040E85EE39F +:1023B00064817581868197810E94472F6B017C0122 +:1023C00020E030E048EC52E460911002709111027C +:1023D00080911202909113020E94F82D9B01AC0192 +:1023E000C701B6010E94472F6093C7027093C802CD +:1023F0008093C9029093CA021092C6021092C5023D +:1024000080918C0380FD04C01092D0021092CF0204 +:10241000FF91EF91DF91CF91BF91AF919F918F91FC +:102420007F916F915F914F913F912F91FF90EF902E +:10243000DF90CF90BF90AF909F908F907F906F90E4 +:102440005F904F900F900FBE0F901F901895CF92F6 +:10245000DF92EF92FF92CF93DF936B017C01EA0151 +:102460008091BE02811102C00E94220E80918C03D5 +:1024700080FF46C080910D0390910E0308970CF0E9 +:102480003FC0809171008D7F809371008091D00258 +:1024900081110E943C0E81E08093CF021092BD0218 +:1024A0001092BC0220E030E0A901C701B6010E94F1 +:1024B000432F1816DCF480910D0390910E03FC015C +:1024C000EE0FFF1FEE0FFF1FEB51FD4FC082D182B9 +:1024D000E282F382FC01EE0FFF1FEB52FD4FD1832E +:1024E000C083019690930E0380930D038091710039 +:1024F000826080937100809190008068809390004A +:10250000DF91CF91FF90EF90DF90CF9008958F9261 +:102510009F92AF92BF92CF92DF92EF92FF920F9372 +:102520001F93CF93DF93EC017B01D42E4801590117 +:102530008091BE02811102C00E94220E80918C0304 +:1025400080FF6BC0809171008D7F809371008091BE +:10255000CF0281110E943C0E81E08093D002D09383 +:102560008B03C0938A03F0928903E0928803D09290 +:10257000930380928D0390928E03A0928F03B0926A +:1025800090031092D1021092D2021092D3021092B4 +:10259000D4021092C30288819981AA81BB81809361 +:1025A000CB029093CC02A093CD02B093CE0220E058 +:1025B00030E040E85EE36C817D818E819F810E94E6 +:1025C000472F6B017C0120E030E048EC52E4609141 +:1025D00010027091110280911202909113020E94D8 +:1025E000F82D9B01AC01C701B6010E94472F6093F3 +:1025F000C7027093C8028093C9029093CA021092D6 +:10260000C6021092C50280917100826080937100B1 +:1026100080919000806880939000DF91CF911F910E +:102620000F91FF90EF90DF90CF90BF90AF909F9071 +:102630008F90089580910F0390E0019665E070E01F +:102640000E94233180930F03089580910F0390E03F +:10265000019765E070E00E94233180930F03089595 +:102660008F929F92AF92BF92CF92DF92EF92FF92A2 +:10267000CF93DF936B017C01C091BC02D091BD026E +:10268000BE0180E090E00E94912E4B015C01A70109 +:10269000960160E070E08CE594E40E94F82D9B01C7 +:1026A000AC01C501B4010E94472F0E94652E4091E4 +:1026B0000F03423009F45CC028F4442351F0413048 +:1026C000E9F0FBC0433009F481C0443009F4B4C0E0 +:1026D000F4C080E090E0A0E0BFE380930C02909310 +:1026E0000D02A0930E02B0930F021092BF0210923F +:1026F000C0021092C1021092C202DFC01092BF024B +:102700001092C0021092C1021092C202643171058F +:1027100040F46A307105E0F520E030E040E85EE327 +:102720003BC0693C710508F0C0C080E090E00E94A9 +:10273000912E20E030E040EA51E40E948F2D20E00D +:1027400030E044E353E40E94F82D9B01AC010E9469 +:10275000472F20E030E040E05EE30E94472F9B01DE +:10276000AC0160E070E080E09EE30E948F2D5BC0D2 +:102770001092BF021092C0021092C1021092C202C7 +:102780006432710578F4FB01EE59FF4F0C94373138 +:1027900020E030E040E05FE3C701B6010E94472F30 +:1027A0006B017C0180E090E0A0E0BEE380930C022E +:1027B00090930D02A0930E02B0930F027EC0A7016A +:1027C0009601C701B6010E94902DEACF1092BF0278 +:1027D0001092C0021092C1021092C2022AE0269FFB +:1027E000A001279F500D1124CA0168EB7BE00E94D5 +:1027F0000F31BC016C5D754077FF03C07195619529 +:102800007109882777FD8095982F0E94932E2EE3DB +:1028100033EC4EE259E30E94472F20E030E040ECD9 +:102820005EE30E94902D60930C0270930D028093E2 +:102830000E0290930F0241C01092BF021092C0028C +:102840001092C1021092C202CE0183709927892B87 +:10285000E1F0BE016170772780E090E00E94912E48 +:1028600020E030E040E05EE30E94472F20E030E0CF +:1028700040E45FE30E94902D60930C0270930D0280 +:1028800080930E0290930F020CC080E090E0A0E0D5 +:10289000BFE380930C0290930D02A0930E02B093BD +:1028A0000F02C770DD27CD2B41F410920C0210925D +:1028B0000D0210920E0210920F02C701B601DF91B5 +:1028C000CF91FF90EF90DF90CF90BF90AF909F900F +:1028D0008F900895809118030895CF93DF9300D0CF +:1028E0001F92CDB7DEB79C0180919803843019F513 +:1028F00093E099833B832A839093E9008FEF909133 +:10290000E800815095FD06C095ED9A95F1F700001D +:102910008111F5CF8091E80085FF0DC040E050E0C7 +:1029200063E070E0CE0101960E94A6168091E80057 +:102930008E778093E8000F900F900F90DF91CF91EA +:102940000895CF93DF9300D01F92CDB7DEB72091CB +:102950009803243021F522E029839B838A8383E036 +:102960008093E9008FEF9091E800815095FD06C0BB +:1029700095ED9A95F1F700008111F5CF8091E8006F +:1029800085FF0DC040E050E063E070E0CE010196AD +:102990000E94A6168091E8008E778093E8000F9041 +:1029A0000F900F90DF91CF910895209198032430DC +:1029B000F1F422E02093E9002FEF3091E80021505C +:1029C00035FD06C035ED3A95F1F700002111F5CF40 +:1029D0002091E80025FF0BC040E050E065E070E08A +:1029E0000E94A6168091E8008E778093E8000895F3 +:1029F000CF93DF9320919803243039F521E0209381 +:102A0000E9002FEF3091E800215035FD06C035ED8B +:102A10003A95F1F700002111F5CF2091E80025FF4C +:102A200014C0EC0140E050E068E070E00E94A6169F +:102A30008091E8008E778093E80088E0FE01A0E1B5 +:102A4000B3E001900D928A95E1F7DF91CF9108955F +:102A500080919703811109C00E943B180E94981829 +:102A60008091E20084608093E200089510929703C1 +:102A70000895089508950C94962742E061EC81E052 +:102A80000E94B51742E061EC82E00E94B51742E077 +:102A900061EC83E00C94B51780919A03833009F4BC +:102AA00053C030F4813071F0823009F48CC0089545 +:102AB0008A3009F478C08B3009F45EC0893009F09F +:102AC0009AC020C080919903813A09F094C0809106 +:102AD000E800877F8093E80080919D0390919E039A +:102AE000892B21F468E080E193E003C060E080E09E +:102AF00090E070E00E94F1168091E8008B7780935F +:102B0000E800089580919903813209F074C08091A2 +:102B10009D0390919E03892B09F06DC08091E80080 +:102B2000877F8093E8008091E80082FD05C0809156 +:102B300098038111F8CF5FC08091F1008093180352 +:102B40008091E8008B7753C080919903813A09F016 +:102B500052C080919D0390919E03892B09F04BC038 +:102B60008091E800877F8093E8008091E80080FFF3 +:102B7000FCCF80911E0236C0809199038132D9F535 +:102B800080919D0390919E03892BA9F58091E80087 +:102B9000877F8093E8000E94EA1780919B038093CF +:102BA0001E020C945B2180919903813221F5809162 +:102BB000E800877F8093E8000E94EA1780919C03D9 +:102BC00080931903089580919903813AA1F480912B +:102BD000E800877F8093E8008091E80080FFFCCFC9 +:102BE000809119038093F1008091E8008E778093A3 +:102BF000E8000C94EA17089584B7877F84BF88E1C2 +:102C00000FB6F89480936000109260000FBE90E0C1 +:102C100080E80FB6F89480936100909361000FBE36 +:102C20000E948D1B0E943B180E9498188091E20020 +:102C300084608093E20078940E941E1B0E948F1B88 +:102C400084E192E00E94391B80919803853069F4F9 +:102C50000E945027809196038823B1F30E947E271B +:102C6000882391F30E949016EFCF0E94971BECCF20 +:102C7000292F332723303105C9F064F42130310581 +:102C800081F02230310509F043C084E590E028E16D +:102C90003AE042C021323105F1F02232310541F1F2 +:102CA00037C082E190E02CE63AE036C099278130C7 +:102CB000910541F08230910541F0892B49F5E4E11D +:102CC000FAE005C0E6EEF9E002C0EAEBF9E0849133 +:102CD00090E09F0121C06330D8F4E62FF0E0EE0FC2 +:102CE000FF1FE856FD4F2081318189E090E014C03C +:102CF000633070F470E0FB01EE0FFF1FEE56FD4FE6 +:102D000020813181FB01E157FD4F808190E004C0BB +:102D100080E090E020E030E0FA01318320830895E4 +:102D200080E189BD82E189BD09B400FEFDCF8091BB +:102D3000D8008F7D8093D8008091E00082608093DE +:102D4000E0008091E00081FDFCCF0895CF92DF92FA +:102D5000EF92FF920F931F93CF93DF93EC018B01C0 +:102D60006A010E940918811133C0C114D10439F0DD +:102D7000F60180819181081B190BC80FD91FE12C26 +:102D8000F12C0115110519F18091E80085FD16C09F +:102D90008091E8008E778093E800C114D10449F057 +:102DA000F60180819181E80EF91EF182E08285E0D2 +:102DB0000FC00E940918882321F30AC089918093CB +:102DC000F10001501109FFEFEF1AFF0ADACF80E09E +:102DD000DF91CF911F910F91FF90EF90DF90CF90F7 +:102DE000089520919F033091A0032617370748F0DC +:102DF0006115710539F42091E8002E772093E800E1 +:102E000001C0B90140E061157105A9F12091980355 +:102E1000222309F443C0253009F442C02091E80080 +:102E200023FD40C02091E80022FD32C02091E8003F +:102E300020FFE9CF4091F3002091F20030E0342BE5 +:102E4000FC01CF016115710559F02830310540F4BE +:102E500081918093F100615071092F5F3F4FF1CF55 +:102E600041E02830310509F040E02091E8002E775C +:102E70002093E800C8CF4111C9CF0AC080919803C0 +:102E8000882361F0853061F08091E80083FD0AC0FD +:102E90008091E80082FFF2CF80E0089582E00895FB +:102EA00083E0089581E0089520919F033091A0036D +:102EB0002617370748F06115710539F42091E800AD +:102EC0002E772093E80001C0B901FC0120E06115D4 +:102ED000710591F180919803882309F440C08530F1 +:102EE00009F43FC08091E80083FD3DC08091E80077 +:102EF00082FD2FC08091E80080FFE9CF2091F30090 +:102F00008091F20090E0922B6115710559F08830A4 +:102F1000910540F424912093F1003196615071099C +:102F20000196F2CF21E0089709F020E08091E800B7 +:102F30008E778093E800CBCF2111CCCF0AC080914F +:102F40009803882361F0853061F08091E80083FD6B +:102F50000AC08091E80082FFF2CF80E0089582E00D +:102F6000089583E0089581E00895982F973058F5EB +:102F70009093E900981739F07091EC002091ED00E2 +:102F80005091F00003C0242F762F50E021FF19C08C +:102F90003091EB003E7F3093EB003091ED003D7FB0 +:102FA0003093ED003091EB0031603093EB00709383 +:102FB000EC002093ED005093F0002091EE0027FFED +:102FC00007C09F5FD3CF8F708093E90081E00895A1 +:102FD00080E008958091990387FF11C08091E800F7 +:102FE00082FD05C0809198038111F8CF11C08091B6 +:102FF000E8008B770BC080919803882349F080917B +:10300000E80080FFF8CF8091E8008E778093E80099 +:1030100008952091E4003091E50095E64091EC00A0 +:10302000842F817040FF22C08091E80080FD1CC089 +:1030300080919803882391F0853091F08091EB0086 +:1030400085FD10C04091E4005091E5004217530700 +:1030500029F39A01915011F784E0089582E00895D0 +:1030600083E0089581E0089580E008954091E800AC +:1030700042FFDECF08950E94A9180E94B118E0EE29 +:10308000F0E0808181608083E8EDF0E080818F77DF +:10309000808319BCA7EDB0E08C918E7F8C938081EA +:1030A0008F7E80831092970308950F931F93CF9381 +:1030B000DF930E94A9180E94B118C8EDD0E0888162 +:1030C0008F77888388818068888388818F7D8883D3 +:1030D00019BC1092980310929403109296031092C8 +:1030E000950300EE10E0F80180818B7F808388815A +:1030F0008160888342E060E080E00E94B517E1EEE5 +:10310000F0E080818E7F8083E2EEF0E0808181605C +:103110008083808188608083F80180818E7F8083B6 +:10312000888180618883DF91CF911F910F910895ED +:10313000E8EDF0E080818F7E8083E7EDF0E0808134 +:103140008160808384E082BF81E0809397030C9448 +:103150005518E8EDF0E080818E7F80831092E200C8 +:1031600008951092DA001092E10008951F920F92D4 +:103170000FB60F9211242F933F934F935F936F934A +:103180007F938F939F93AF93BF93EF93FF93809120 +:10319000E10082FF0BC08091E20082FF07C08091B6 +:1031A000E1008B7F8093E1000E941D1B8091DA007B +:1031B00080FF1FC08091D80080FF1BC08091DA0083 +:1031C0008E7F8093DA008091D90080FF0DC080E16E +:1031D00089BD82E189BD09B400FEFDCF81E0809305 +:1031E00098030E94281505C019BC109298030E94EC +:1031F00036158091E10080FF19C08091E20080FFC8 +:1032000015C08091E2008E7F8093E2008091E20001 +:1032100080618093E2008091D80080628093D80022 +:1032200019BC85E0809398030E943A158091E100D3 +:1032300084FF30C08091E20084FF2CC080E189BD12 +:1032400082E189BD09B400FEFDCF8091D8008F7D59 +:103250008093D8008091E1008F7E8093E10080917F +:10326000E2008F7E8093E2008091E2008160809393 +:10327000E20080919403882311F084E007C08091DC +:10328000E30087FD02C081E001C083E080939803E2 +:103290000E943B158091E10083FF29C08091E200EC +:1032A00083FF25C08091E100877F8093E10082E069 +:1032B00080939803109294038091E1008E7F809315 +:1032C000E1008091E2008E7F8093E2008091E20035 +:1032D00080618093E20042E060E080E00E94B517E8 +:1032E0008091F00088608093F0000E943915FF9172 +:1032F000EF91BF91AF919F918F917F916F915F916E +:103300004F913F912F910F900FBE0F901F901895E6 +:103310001F920F920FB60F9211242F933F934F934A +:103320005F936F937F938F939F93AF93BF93CF934D +:10333000DF93EF93FF93C091E900CF708091EC0091 +:10334000D82FD17080FDD0E81092E9008091F00074 +:10335000877F8093F00078940E94CC191092E90046 +:103360008091F00088608093F000CD2BCF70C093E7 +:10337000E900FF91EF91DF91CF91BF91AF919F91C4 +:103380008F917F916F915F914F913F912F910F900E +:103390000FBE0F901F9018951F93CF93DF93CDB75B +:1033A000DEB7AA970FB6F894DEBF0FBECDBFE9E92E +:1033B000F3E088E08E0F9091F10091938E13FBCF94 +:1033C0000E944C158091E80083FF1FC180919903F2 +:1033D00090919A03492F50E04A30510508F015C1E9 +:1033E000FA01EA57FF4F0C943731803881F0823868 +:1033F00009F00BC180919D038F708093E90080914B +:10340000EB0085FB882780F91092E90006C08091C7 +:10341000950390919603911182609091E800977FB7 +:103420009093E8008093F1001092F100C8C0282F1B +:103430002D7F09F0EAC0882319F0823061F0E5C0E1 +:1034400080919B03813009F0E0C0933009F080E067 +:10345000809396032BC080919B03811127C080919C +:103460009D038F7009F4D1C08093E9002091EB0097 +:1034700020FF1CC0933021F48091EB00806214C0C7 +:103480009091EB0090619093EB0021E030E0A90176 +:1034900002C0440F551F8A95E2F74093EA0010924C +:1034A000EA008091EB0088608093EB001092E900C5 +:1034B0008091E800877F86C08111A7C010919B038F +:1034C0001F778091E3008078812B8093E3008091C7 +:1034D000E800877F8093E8000E94EA178091E80067 +:1034E00080FFFCCF8091E30080688093E30011119E +:1034F00002C082E001C083E08093980386C08058B8 +:10350000823008F082C080919B0390919C038C3D97 +:1035100053E0950779F583E08A838AE289834FB780 +:10352000F894DE01139620E03EE051E2E32FF0E054 +:1035300050935700E49120FF03C0E295EF703F5F86 +:10354000EF708E2F90E0EA3010F0C79601C0C09661 +:103550008D939D932F5F243149F74FBF8091E800F1 +:10356000877F8093E8006AE270E0CE0101960E94B6 +:10357000F11614C0AE014F5F5F4F60919D030E9432 +:103580003816BC01009709F440C09091E800977F7D +:103590009093E80089819A810E9454178091E800F5 +:1035A0008B778093E80031C0803879F58091E8000E +:1035B000877F8093E800809194038093F10080914D +:1035C000E8008E778093E8000E94EA171EC0811100 +:1035D0001CC090919B039230C0F48091E800877FDB +:1035E0008093E800909394030E94EA1780919403DB +:1035F000811106C08091E30087FD02C081E001C017 +:1036000084E0809398030E943D158091E80083FF39 +:103610000AC08091E800877F8093E8008091EB00EA +:1036200080628093EB00AA960FB6F894DEBF0FBEBF +:10363000CDBFDF91CF911F9108950895CF938091D1 +:1036400098038823A1F0C091E900CF709091EC001D +:10365000892F817090FD80E8C82B1092E90080913D +:10366000E80083FD0E94CC19CF70C093E900CF9190 +:10367000089590931F0380931E030895E0911E0305 +:10368000F0911F03309721F00190F081E02D099413 +:1036900080E00895E0911E03F0911F03309721F020 +:1036A0000280F381E02D09940895E0911E03F091CA +:1036B0001F03309721F00480F581E02D09940895CF +:1036C00020911C0330911D038217930771F0909392 +:1036D0001D0380931C03E0911E03F0911F0330979C +:1036E00021F00680F781E02D0994089520911A03B6 +:1036F00030911B038217930771F090931B03809303 +:103700001A03E0911E03F0911F03309721F000840B +:10371000F185E02D0994089508950C948C1B0E9466 +:10372000CA270E94F60B0E9450280C94F82C4F9246 +:103730005F927F928F929F92AF92BF92CF92DF92D1 +:10374000EF92FF920F931F93CF93DF93CDB7DEB726 +:103750002A970FB6F894DEBF0FBECDBF0E94D10CE2 +:1037600091E2C92E93E0D92E00E010E0AA24A394A0 +:10377000B12C702E802F0E940A0E4C01F601419050 +:1037800051906F014826592641145104B1F40F5F3E +:103790001F4F0530110569F78FEF89838A831B82DC +:1037A0000E94D3278160782F9D838C8349815A8121 +:1037B0006B818D810E94501C3AC08091770381FDFE +:1037C0000E94130E20E030E07501022E02C0EE0CC4 +:1037D000FF1C0A94E2F7C70184219521892B09F186 +:1037E0002E837F828E209F2091E0892809F490E02B +:1037F00098870E94D3278160782F9A8789874E8186 +:103800005F8168858A850E94501C000F111FF80196 +:10381000EF5DFC4F80819181E826F926F182E082FC +:1038200006C02F5F3F4F2C30310571F6B0CF0E949C +:10383000372A109120030E943E1B1817D9F00E94CE +:103840003E1B809320032A960FB6F894DEBF0FBE6E +:10385000CDBFDF91CF911F910F91FF90EF90DF903F +:10386000CF90BF90AF909F908F907F905F904F9040 +:103870000C942E0B2A960FB6F894DEBF0FBECDBF68 +:10388000DF91CF911F910F91FF90EF90DF90CF903C +:10389000BF90AF909F908F907F905F904F900895D2 +:1038A000CF93DF93CDB7DEB72B970FB6F894DEBF7B +:1038B0000FBECDBF4F83588769877A878B87DE011C +:1038C000119686E0FD0111928A95E9F785E0FE01E7 +:1038D000379601900D928A95E1F749815A816B8163 +:1038E0007C818D819E810E94F5232B960FB6F894E2 +:1038F000DEBF0FBECDBFDF91CF910895CF93882358 +:1039000009F4C2C0C82F823859F40E943E1B81FDC1 +:10391000BBC089E30E949E260E94212789E30CC038 +:10392000833879F40E943E1B80FDAEC083E50E947F +:103930009E260E94212783E50E94BB26CF910C94EE +:103940002127843859F40E943E1B82FD9DC087E4E4 +:103950000E949E260E94212787E4EECF8CEF8C0FD9 +:10396000813A48F48C2F0E94602C81118DC08C2FDD +:103970000E949E26E3CF80E28C0F883048F4C77007 +:1039800081E001C0880FCA95EAF70E94DA26D6CFF7 +:103990008BE58C0F833078F4C53A29F0C63A31F0C4 +:1039A00083E890E005C081E890E002C082E890E002 +:1039B000CF910C94601B88E58C0F833108F064C0B4 +:1039C000C83A39F1C93A41F1CA3A49F1CB3A51F111 +:1039D000CC3A59F1CD3A61F1C03B69F1CE3A71F17F +:1039E000CF3A79F1C13B81F1C23B89F1C33B91F1FF +:1039F000C43B99F1C53BA1F1C63BA9F1C73BB1F16D +:103A0000C83BB9F1C93BC1F1CA3BC9F180E090E0C4 +:103A100038C082EE90E035C089EE90E032C08AEE88 +:103A200090E02FC085EB90E02CC086EB90E029C0A1 +:103A300087EB90E026C08CEC90E023C08DEC90E00A +:103A400020C083E891E01DC08AE891E01AC082E9B5 +:103A500091E017C084E991E014C081E292E011C0C6 +:103A600083E292E00EC084E292E00BC085E292E035 +:103A700008C086E292E005C087E292E002C08AE2D6 +:103A800092E0CF910C94761BCF910895882309F48E +:103A90004BC0823859F40E943E1B81FF45C089E328 +:103AA0000E949E260E94212789E30CC0833871F46E +:103AB0000E943E1B80FF38C083E50E949E260E9424 +:103AC000212783E50E94BB260C942127843859F4D2 +:103AD0000E943E1B82FF28C087E40E949E260E940F +:103AE000212787E4EFCF9CEF980F913A58F390E2AB +:103AF000980F983050F4877091E001C0990F8A9523 +:103B0000EAF7892F0E94E026DFCF9BE5980F9330DC +:103B100020F480E090E00C94601B885A833120F4FC +:103B200080E090E00C94761B0895882321F00E9499 +:103B3000DA260C9421270895882321F00E94E0269C +:103B40000C9421270895BF92CF92DF92EF92FF92BB +:103B50000F931F93CF93DF9300D000D000D0CDB749 +:103B6000DEB725E0FC01DE01119601900D922A9549 +:103B7000E1F7FC01D08011810281258122952F700F +:103B800043815481452B09F472C31F3F21F4FFEF99 +:103B9000DF1609F46CC37C012E830E94F707D982DB +:103BA0001A8369817A81802F0E949A26182FB92E54 +:103BB0000E944F260E9416252E81002319F00E9494 +:103BC000F7262E81EB2DE295EF70F0E0E057FF4FE6 +:103BD0000C9437318B2D807F9B2D9F70F92E88237D +:103BE00019F0F29480EFF822002389F0FF2009F405 +:103BF0007CC280E2810F883020F48F2D0E94DA266B +:103C000003C08F2D0E94EA260E9421276EC2812FB9 +:103C10000E94461DFF2009F42AC3105E8F2D183024 +:103C200018F40E94E02602C00E94F02626960FB6E5 +:103C3000F894DEBF0FBECDBFDF91CF911F910F91E2 +:103C4000FF90EF90DF90CF90BF900C9421278B2DA9 +:103C5000807F9B2D9F70803211F4892F03C0892FA4 +:103C60008295807F112319F0113011F12BC00023B0 +:103C7000A9F0222389F1213079F526960FB6F89420 +:103C8000DEBF0FBECDBFDF91CF911F910F91FF908F +:103C9000EF90DF90CF90BF900C940A27222319F069 +:103CA000213009F4E4C28E830E940D278E819BC1CE +:103CB000002321F0263008F0DAC20EC0253008F0CB +:103CC000D6C291C10023C9F0222331F0F7019581BA +:103CD00090FF0BC29F70958326960FB6F894DEBFB7 +:103CE0000FBECDBFDF91CF911F910F91FF90EF904D +:103CF000DF90CF90BF900C94951D222309F473C1DF +:103D000009C22B2D26952695237030E0211531050B +:103D100021F021303105D1F0AAC2002321F0812FFA +:103D20009B2D937002C080E090E026960FB6F89429 +:103D3000DEBF0FBECDBFDF91CF911F910F91FF90DE +:103D4000EF90DF90CF90BF900C94601B002321F088 +:103D5000812F9B2D937002C080E090E026960FB6D5 +:103D6000F894DEBF0FBECDBFDF91CF911F910F91B1 +:103D7000FF90EF90DF90CF90BF900C94761B812F37 +:103D8000002319F00E943F2902C00E94A72926960D +:103D90000FB6F894DEBF0FBECDBFDF91CF911F915C +:103DA0000F91FF90EF90DF90CF90BF900C942C2A52 +:103DB0008B2D837009F07BC0011159C2812F829530 +:103DC00086958770880F880F912F9F70C92ED12CF0 +:103DD000E12CF12C082E04C0CC0CDD1CEE1CFF1CC9 +:103DE0000A94D2F714FF12C04FE050E060E070E098 +:103DF00004C0440F551F661F771F8A95D2F7CB0169 +:103E0000BA01609570958095909503C060E070E070 +:103E1000CB012B2D269526952370422F50E0423062 +:103E20005105D9F04330510569F16C297D298E295E +:103E30009F294130510551F126960FB6F894DEBF07 +:103E40000FBECDBFDF91CF911F910F91FF90EF90EB +:103E5000DF90CF90BF900C943D256C297D298E2951 +:103E60009F2926960FB6F894DEBF0FBECDBFDF9117 +:103E7000CF911F910F91FF90EF90DF90CF90BF9067 +:103E80000C9459250E943D25C701B60126960FB610 +:103E9000F894DEBF0FBECDBFDF91CF911F910F9180 +:103EA000FF90EF90DF90CF90BF900C9421250023DE +:103EB00019F08B2D817001C08695882309F4D7C134 +:103EC000812F829586958770880F880F912F9F701C +:103ED000C92ED12CE12CF12C082E04C0CC0CDD1CF9 +:103EE000EE1CFF1C0A94D2F714FF12C04FE050E002 +:103EF00060E070E004C0440F551F661F771F8A956D +:103F0000D2F7CB01BA01609570958095909503C06A +:103F100060E070E0CB012B2D269526952370422F73 +:103F200050E042305105D9F04330510569F16C2918 +:103F30007D298E299F294130510551F126960FB6D2 +:103F4000F894DEBF0FBECDBFDF91CF911F910F91CF +:103F5000FF90EF90DF90CF90BF900C9417266C29C4 +:103F60007D298E299F2926960FB6F894DEBF0FBEB5 +:103F7000CDBFDF91CF911F910F91FF90EF90DF9018 +:103F8000CF90BF900C9433260E941726C701B6012C +:103F900026960FB6F894DEBF0FBECDBFDF91CF914E +:103FA0001F910F91FF90EF90DF90CF90BF900C94F6 +:103FB000FB25103F49F118F4103E48F491C0123F20 +:103FC00009F453C0E8F1133F09F464C089C01F70BD +:103FD0008B2D8F71002321F00E949425812F7CCEA0 +:103FE0000E94B525812F26960FB6F894DEBF0FBE2E +:103FF000CDBFDF91CF911F910F91FF90EF90DF9098 +:10400000CF90BF900C949C1D0023B1F0253008F098 +:104010002EC18B2D8F7126960FB6F894DEBF0FBE82 +:10402000CDBFDF91CF911F910F91FF90EF90DF9067 +:10403000CF90BF900C94DA25263008F018C1E9CF54 +:104040000023A9F08B2D8F7126960FB6F894DEBF52 +:104050000FBECDBFDF91CF911F910F91FF90EF90D9 +:10406000DF90CF90BF900C949425002359F38B2DB3 +:104070008F7126960FB6F894DEBF0FBECDBFDF91CD +:10408000CF911F910F91FF90EF90DF90CF90BF9055 +:104090000C94B525002399F08B2D8F7126960FB6C1 +:1040A000F894DEBF0FBECDBFDF91CF911F910F916E +:1040B000FF90EF90DF90CF90BF900C947F252696D5 +:1040C0000FB6F894DEBF0FBECDBFDF91CF911F9129 +:1040D0000F91FF90EF90DF90CF90BF900C947525DB +:1040E0000023A9F0222309F4ADCF812F26960FB625 +:1040F000F894DEBF0FBECDBFDF91CF911F910F911E +:10410000FF90EF90DF90CF90BF900C947E1C222305 +:1041100009F4ADCF812F26960FB6F894DEBF0FBEFF +:10412000CDBFDF91CF911F910F91FF90EF90DF9066 +:10413000CF90BF900C94461D4B2D4F70612FC7013F +:104140000E942F0626960FB6F894DEBF0FBECDBF95 +:10415000DF91CF911F910F91FF90EF90DF90CF9063 +:10416000BF900C949924011182C09B2D9F70492F00 +:1041700050E04230510509F443C0C4F441155105E3 +:1041800071F14130510509F072C026960FB6F894CE +:10419000DEBF0FBECDBFDF91CF911F910F91FF907A +:1041A000EF90DF90CF90BF900C94202D43305105BD +:1041B000C1F14430510509F05AC0812F26960FB63F +:1041C000F894DEBF0FBECDBFDF91CF911F910F914D +:1041D000FF90EF90DF90CF90BF900C94722D2696B9 +:1041E0000FB6F894DEBF0FBECDBFDF91CF911F9108 +:1041F0000F91FF90EF90DF90CF90BF900C94092D1E +:1042000026960FB6F894DEBF0FBECDBFDF91CF91DB +:104210001F910F91FF90EF90DF90CF90BF900C9483 +:104220003C2D26960FB6F894DEBF0FBECDBFDF91B2 +:10423000CF911F910F91FF90EF90DF90CF90BF90A3 +:104240000C944F2D4B2D4F70612FC70126960FB642 +:10425000F894DEBF0FBECDBFDF91CF911F910F91BC +:10426000FF90EF90DF90CF90BF900C94F9072696C7 +:104270000FB6F894DEBF0FBECDBFDF91CF911F9177 +:104280000F91FF90EF90DF90CF90BF9008950E9424 +:10429000F7260E9407270E94CC260E9421270E9411 +:1042A000DD2A0E942C2A80E090E00E94601B80E0C2 +:1042B00090E00C94761B0E94E7260C9447210E9404 +:1042C0008F26292F22952F7030E02C3031054CF4A9 +:1042D0002A3031056CF4225031092230310588F43E +:1042E00007C02C30310549F02F30310531F009C0BD +:1042F000803E48F0803F29F406C093FB882780F970 +:10430000089580E0089581E00895CF93DF9300D071 +:1043100000D01F92CDB7DEB70F900F900F900F9087 +:104320000F90DF91CF910895CF93DF9300D000D00D +:1043300000D0CDB7DEB726960FB6F894DEBF0FBE1D +:10434000CDBFDF91CF9108951F93CF93DF93C0919D +:104350002B0316E080912C03C81799F0D0E01C9F26 +:10436000F0011D9FF00D1124E35DFC4F4081518150 +:1043700062817381848195810E9494212196C77006 +:10438000E9CFDF91CF911F91089540915D03509146 +:104390005E0360915F03709160038091610390916F +:1043A00062030C9494218091620382958F7009F0CE +:1043B00054C080915F03882309F44FC080912B0380 +:1043C000A0912C0360915D0370915E0340916003A6 +:1043D00050916103B6E08A1709F43FC090E041159F +:1043E0005105C1F17F3F11F46F3FA1F1B89FF0017A +:1043F000B99FF00D1124E35DFC4F218172132AC097 +:104400002081621327C02281211124C0238134819D +:104410002417350710F421503109241B350B283C93 +:104420003105C0F4209162032F7020612093620354 +:1044300026E0289FF001299FF00D1124EE5CFC4F2F +:1044400080818F70806180838DE593E00E94A31D41 +:104450000C94A42101968770BECF0895CF92DF926D +:10446000EF92FF920F931F93CF93DF93CDB7DEB7F9 +:1044700062970FB6F894DEBF0FBECDBF8C0185E00A +:10448000F801DE011D9601900D928A95E1F7D801A1 +:104490004C9111965C91119712966C91129713960C +:1044A000CD90DC90149730915D0370915E03809104 +:1044B000600390916103009709F46BC17F3F19F489 +:1044C0003F3F09F466C1E0905F03EE2009F4C0C0ED +:1044D00020916203C816D90628F0F601E81BF90BF3 +:1044E000CF0104C0809590958C0D9D1DFF24F39401 +:1044F000883C910578F0F12C207F09F0C6C07C2D16 +:10450000D98AC88A89890E9485218DE593E00E9415 +:10451000A31DB1C0822F807F09F046C0751314C05F +:10452000341312C0611110C02F70206120936203F8 +:104530000E94C5218DE593E00E94A31D8091620336 +:10454000D80115968C932EC0CD2819F15F3F11F438 +:104550004F3FF9F0F62E61111CC080912B03209182 +:104560002C0336E0821709F45AC090E0389FF0011E +:10457000399FF00D1124E35DFC4F7181571306C084 +:104580007081471303C07281711103C00196877057 +:10459000E9CFF62E662309F418C180916203816089 +:1045A00080936203F12C11C1751308C0341306C047 +:1045B000611104C080916203D801C3C04D875E873A +:1045C0008D859E856A8B0E945F216A898823E1F12F +:1045D0006623D1F120916203822F82958F7090E043 +:1045E000029774F080915D0390915E0398878F83AA +:1045F0001986DB86CA862C87CE0107960E94A31DEA +:1046000086E0F801ADE5B3E001900D928A95E1F7FF +:104610000E94D3210E94C521FF24F394D6C04D8768 +:104620005E878D859E850E948F26292F22952F706B +:1046300030E0223031050CF0BCC09F7009F0B6C0EC +:10464000805E883008F4C1C0C8010E94A31DE4CF79 +:10465000C816D90608F453C0F601E81BF90BCF01C0 +:10466000883C910508F450C0F12C7C2DD98AC88A69 +:1046700089890E948521EDE5F3E086E0DF011D9246 +:104680008A95E9F70E94C521A0C0751314C03413A0 +:1046900012C0611110C080916203F8018583C801C6 +:1046A0000E94A31D86E0EDE5F3E0DF011D928A95EF +:1046B000E9F7FE2C8AC04D875E878D859E856A8BC3 +:1046C0000E945F216A89882309F4BECF662309F41A +:1046D000BBCF20916203822F82958F7090E002976A +:1046E0000CF48ECF80915D0390915E039A83898351 +:1046F0001B82DD82CC822E83CE0101967FCF8095F6 +:1047000090958C0D9D1DACCFF62E662309F49CCFA1 +:1047100075132EC034132CC02091620320FD1FC0DE +:10472000822F82958F70D9F0D80115962C9315970A +:104730008F3049F08F5F982F9295907F822F8F70E6 +:10474000892B15968C93C8010E94A31D86E0F80161 +:10475000ADE5B3E001900D928A95E1F793CF86E045 +:10476000F801ADE5B3E001900D928A95E1F72DC017 +:104770004D875E878D859E850E945F21811140CF88 +:1047800080916203816080936203C8010E94A31D2F +:104790001CC0662309F458CF4D875E878D859E85A2 +:1047A0000E945F21882309F44FCF2ACF811148CF7F +:1047B0000CC0243031050CF047CF9F7009F440CF76 +:1047C000F8019581907F09F03BCF8F2D62960FB64F +:1047D000F894DEBF0FBECDBFDF91CF911F910F9137 +:1047E000FF90EF90DF90CF9008951F93CF93DF93CA +:1047F000CDB7DEB72C970FB6F894DEBF0FBECDBF96 +:104800004F83588769877A878B879C87CE01079665 +:104810000E942E22882369F08F8198852A853B8506 +:10482000232BF1F19F3F09F063C08F3F09F060C077 +:1048300037C086E0FE013796DE01119601900D9299 +:104840008A95E1F76F817885EA85FB85309741F19C +:104850007F3F11F46F3F21F120912C0330E0C9011B +:1048600001968770992740912B0350E08417950794 +:1048700009F447C069837A83FD83EC8396E0929FB5 +:10488000D001939FB00D1124A35DBC4FFE01319662 +:1048900001900D929A95E1F780932C030E94A42138 +:1048A00016E080912B0390912C038917C1F1189F7A +:1048B000C0011124835D9C4F0E942E22882379F130 +:1048C000E0912B031E9FF0011124E35DFC4F40811A +:1048D000518162817381848195810E9494218091AC +:1048E0002B0390E001968770992780932B03D9CFF3 +:1048F0004F81588569857A858B859C850E94942196 +:10490000CFCF0E945B2110922C0310922B03EDE578 +:10491000F3E086E0DF011D928A95E9F7C1CF2C967E +:104920000FB6F894DEBF0FBECDBFDF91CF911F91C0 +:104930000895EF92FF920F931F93CF93DF938C0113 +:10494000009709F46CC0F12CEE24E394E801219661 +:10495000F8018491843740F4843008F051C08130EC +:1049600081F0823019F15BC0853709F444C0A8F1A9 +:104970009CE7980F903708F052C08F770E94461D31 +:1049800041C00E5F1F4FFE01C49180E28C0F883042 +:1049900048F4C7708E2D01C0880FCA95EAF70E94AF +:1049A000FA2614C08C2F0E947E1C2DC00E5F1F4F54 +:1049B000FE01C49180E28C0F883058F4C7708E2DB0 +:1049C00001C0880FCA95EAF70E9400270E9421279C +:1049D0001AC08C2F0E94461D16C00E5F1F4FFE018D +:1049E000C491CC2381F08FE99FE00197F1F700C0DB +:1049F0000000C150F6CF0E5F1F4FFE01F49003C0C0 +:104A00000E947E1C8E018F2D882309F49FCFEFE931 +:104A1000FFE03197F1F700C000008150F5CFDF9142 +:104A2000CF911F910F91FF90EF900895089560939B +:104A30006703709368038093690390936A030C94EF +:104A400047210F931F9300916703109168032091F2 +:104A5000690330916A03DC01CB01802B912BA22BDF +:104A6000B32B8093670390936803A0936903B0937B +:104A70006A031F910F910C9447210F931F9300918C +:104A80006703109168032091690330916A03DC0188 +:104A9000CB0180239123A223B323809367039093B8 +:104AA0006803A0936903B0936A031F910F910C945C +:104AB00047210F931F930091670310916803209182 +:104AC000690330916A03DC01CB0180279127A2277B +:104AD000B3278093670390936803A0936903B0930F +:104AE0006A031F910F910C94472110926303109257 +:104AF000640310926503109266030C94472141E011 +:104B000050E060E070E004C0440F551F661F771F3F +:104B10008A95D2F7409363035093640360936503CF +:104B2000709366030C94472141E050E060E070E030 +:104B300004C0440F551F661F771F8A95D2F78091D6 +:104B4000630390916403A0916503B0916603482BC1 +:104B5000592B6A2B7B2B4093630350936403609320 +:104B60006503709366030C94472141E050E060E0D8 +:104B700070E004C0440F551F661F771F8A95D2F757 +:104B80004095509560957095809163039091640372 +:104B9000A0916503B0916603482359236A237B23C0 +:104BA00040936303509364036093650370936603BB +:104BB0000C94472141E050E060E070E004C0440FF5 +:104BC000551F661F771F8A95D2F7809163039091D6 +:104BD0006403A0916503B0916603482759276A27AB +:104BE0007B27409363035093640360936503709342 +:104BF00066030C9447210F931F9300916303109158 +:104C000064032091650330916603DC01CB01802BA6 +:104C1000912BA22BB32B8093630390936403A093F7 +:104C20006503B09366031F910F910C9447210F9376 +:104C30001F930091630310916403209165033091E9 +:104C40006603DC01CB0180239123A223B32380934D +:104C5000630390936403A0936503B09366031F916D +:104C60000F910C9447210F931F93009163031091B0 +:104C700064032091650330916603DC01CB0180273A +:104C80009127A227B3278093630390936403A09393 +:104C90006503B09366031F910F910C94472108950B +:104CA000CF92DF92EF92FF920F931F93CF93DF93F8 +:104CB0008C01C0906703D0906803E0906903F09086 +:104CC0006A038091630390916403A0916503B0919E +:104CD0006603C82AD92AEA2AFB2ACFE1D0E0D70105 +:104CE000C6010C2E04C0B695A795979587950A9492 +:104CF000D2F780FF06C0B8018C2F0E94530A01979B +:104D000021F4219760F780E001C08C2FDF91CF91D3 +:104D10001F910F91FF90EF90DF90CF900895CF9368 +:104D2000DF93EC010E945026BE010E94530ADF91DE +:104D3000CF910895CB010E948F26089520911F02E4 +:104D400030912002F90132969FEF40E051915817BF +:104D500089F09F3F19F4511101C0942F4F5F4630E5 +:104D6000A9F79F3F39F0F901E90FF11D97FDFA9579 +:104D700082830895089520911F0230912002F90145 +:104D80003296285F3F4F9081981301C01082319670 +:104D9000E217F307C1F7089581E090E0E0911F0268 +:104DA000F0912002E80FF91F1082019688309105DA +:104DB000A9F7089590917603892B8093760308953F +:104DC00080959091760389238093760308951092BD +:104DD0007603089590917503892B80937503089548 +:104DE000809590917503892380937503089510929F +:104DF0007503089590917403892B8093740308952B +:104E00008095909174038923809374030895109280 +:104E10007403089580936B03089510926B030895B3 +:104E200080911F0290912002FC0131969C01285F25 +:104E30003F4F80E0919191118F5FE217F307D1F717 +:104E40000895E0911F02F091200280917603808303 +:104E5000E0911F02F0912002908180917503892BCF +:104E60008083E0911F02F091200290818091740371 +:104E7000892B808380916B03882361F0E0911F026E +:104E8000F09120029081892B80830E94102781114C +:104E900010926B0380911F02909120020C944A1B88 +:104EA00080919803843039F11092780320E488E1EE +:104EB00090E00FB6F894A895809360000FBE209301 +:104EC000600080E00E94F60580E00E942E0B83B710 +:104ED000817F846083BF83B7816083BF7894889526 +:104EE00083B78E7F83BF88E10FB6F894809360000C +:104EF000109260000FBE089508950895CF9380E04A +:104F00000E94F6050E947C270E94D10C0E947D27FA +:104F1000C0E08C2F0E940A0E892B29F4CF5FC53088 +:104F2000C1F780E001C081E0CF9108950E945B212C +:104F300080E00E94F6050E94F82C0E943E1B0C9413 +:104F40002E0B1F920F920FB60F9211248F939F93E7 +:104F5000AF93BF9380917803811113C0809179033F +:104F600090917A03A0917B03B0917C034196A11D9F +:104F7000B11D8093790390937A03A0937B03B09340 +:104F80007C03BF91AF919F918F910F900FBE0F90B7 +:104F90001F90189582E084BD93E095BD9AEF97BD70 +:104FA00080936E0008952FB7F894809179039091C3 +:104FB0007A03A0917B03B0917C032FBF0895CF9219 +:104FC000DF92EF92FF920F931F932FB7F8944091C7 +:104FD000790350917A0360917B0370917C032FBF1A +:104FE0006A017B01EE24FF248C0120E030E0C01632 +:104FF000D106E206F30610F4415051099A01281B2C +:10500000390BC9011F910F91FF90EF90DF90CF9066 +:1050100008951F920F920FB60F9211248F939F93B2 +:10502000AF93BF938091790390917A03A0917B0312 +:10503000B0917C030196A11DB11D809379039093DB +:105040007A03A0937B03B0937C03BF91AF919F91B0 +:105050008F910F900FBE0F901F9018950E943B18D4 +:10506000F8942FEF87EA91E6215080409040E1F7D5 +:1050700000C0000087E090EBDC018093A3039093D5 +:10508000A403A093A503B093A6039CE088E10FB608 +:10509000F894A895809360000FBE90936000FFCFB6 +:1050A0000E948A28811102C00E9466280E949528C9 +:1050B000809377030E94A2288093A1030E949928DD +:1050C000682F70E080E090E00C9417256DEE7EEF85 +:1050D00080E090E00E945D3160E082E090E00E941C +:1050E0004B3160E083E090E00E944B3160E084E06F +:1050F00090E00E944B3160E085E090E00E944B31EF +:1051000060E086E090E00E944B316FEF87E090E036 +:105110000C944B3180E090E00E94453121E08D3EBF +:105120009E4F09F020E0822F089582E090E00C94D9 +:105130003D3183E090E00C943D31682F83E090E0B6 +:105140000C944B3184E090E00C943D31682F84E066 +:1051500090E00C944B3186E090E00C943D31682F48 +:1051600086E090E00C944B3187E090E00C943D3168 +:10517000682F87E090E00C944B3180917F0380FF93 +:105180000BC06091240285E0689FB00111247595E1 +:105190006795759567952BC081FF09C060912402C2 +:1051A00085E0689FB00111247595679520C082FF46 +:1051B00007C06091240285E0689FB001112417C0E8 +:1051C000909180039923D1F060912302961788F77C +:1051D0002091240285E0289F90011124929FA00134 +:1051E000939F500D112470E0CA010E942331603852 +:1051F000710540F46115710539F002C065E070E099 +:10520000862F08958FE7089581E0089580917F03A8 +:1052100080FF08C06091220270E0759567957595D2 +:10522000679521C081FF06C06091220270E07595EC +:10523000679519C082FF04C06091220270E010C01F +:10524000909180039923C1F0609121029617A0F7F5 +:1052500080912202899FC001112470E00E942331B5 +:105260006038710528F46115710521F0862F0895C5 +:105270008FE7089581E0089561E070E0F4CF803F0A +:1052800021F40E94BD28819504C0813F29F40E9429 +:10529000BD28809383030895823F21F40E94BD2896 +:1052A000819504C0833F29F40E94BD288093820326 +:1052B0000895893F19F40E94062905C08A3F31F4F8 +:1052C0000E94062981958093840308958B3F21F4E1 +:1052D0000E940629819504C08C3F29F40E9406296A +:1052E000809385030895843F21F480918103816038 +:1052F00017C0853F21F480918103826011C0863FF1 +:1053000021F48091810384600BC0873F21F4809158 +:105310008103886005C0883F31F4809181038061FA +:105320008093810308958D3F21F480917F038160F4 +:105330000BC08E3F21F480917F03826005C08F3FB8 +:1053400029F480917F03846080937F030895803FD8 +:1053500039F48091830387FF6CC01092830369C086 +:10536000813F29F4809183031816BCF362C09091A9 +:105370008203823F29F497FF5CC01092820359C0D8 +:10538000833F19F41916CCF354C0893F41F480913E +:10539000840318160CF04DC0109284034AC08A3F53 +:1053A00029F48091840387FF44C0F6CF8B3F39F402 +:1053B0008091850387FF3DC0109285033AC08C3FE2 +:1053C00029F4809185031816BCF333C0843F21F47F +:1053D000809181038E7F17C0853F21F480918103E6 +:1053E0008D7F11C0863F21F4809181038B7F0BC09C +:1053F000873F21F480918103877F05C0883F31F486 +:10540000809181038F7E8093810313C08D3F21F4AF +:1054100080917F038E7F0BC08E3F21F480917F03AC +:105420008D7F05C08F3F29F480917F038B7F809310 +:105430007F038091820381110EC0809183038111CB +:105440000AC080918403811106C080918503811177 +:1054500002C010928003089581E893E00E94551BDA +:105460000E94D32790937E0380937D0308951F931A +:10547000CF93DF9380917D0390917E030E94DF277D +:10548000AC0190918003992321F02091250230E016 +:1054900006C0209126028AE0289F9001112442171D +:1054A000530708F486C080918203C0918303D09192 +:1054B000840310918503811107C0C11176C0D111F9 +:1054C00074C0111172C075C09F3F19F09F5F909317 +:1054D0008003181624F40E94BD28809382038091D3 +:1054E000820387FF05C00E94BD28819580938203B7 +:1054F0001C1624F40E94BD288093830380918303AB +:1055000087FF05C00E94BD28819580938303609129 +:105510008203662339F1C0918303CC2319F17727E5 +:1055200067FD7095872F972F0E94932E23E333E317 +:1055300043E35FE30E94472F0E94602E6093820343 +:105540006C2F772767FD7095872F972F0E94932EDA +:1055500023E333E343E35FE30E94472F0E94602E7F +:10556000609383031D1624F40E940629809384030C +:105570008091840387FF05C00E940629819580934E +:105580008403111624F40E940629809385038091D8 +:10559000850387FF05C00E940629819580938503B6 +:1055A000DF91CF911F910C942C2A9F3F09F08ECF51 +:1055B00096CFDF91CF911F910895E1E8F3E085E068 +:1055C000DF011D928A95E9F71092800310927F0304 +:1055D0000895833081F128F4813059F08230D1F080 +:1055E0000895853009F449C0B8F1863009F456C0F1 +:1055F000089580912602262F30E0280F311D2F3F7D +:10560000310524F4680F6093260208958FEF80938C +:105610002602089580912502262F30E0280F311DA3 +:105620002F3F310524F4680F6093250208958FEF12 +:1056300080932502089580912402262F30E0280FC0 +:10564000311D2F3F310524F4680F60932402089523 +:105650008FEF80932402089580912302262F30E05B +:10566000280F311D2F3F310524F4680F609323026A +:1056700008958FEF80932302089580912202262FB0 +:1056800030E0280F311D2F3F310524F4680F60935F +:10569000220208958FEF80932202089580912102C3 +:1056A000262F30E0280F311D2F3F310524F4680FDD +:1056B0006093210208958FEF809321020895833033 +:1056C00011F128F4813049F0823091F0089585304D +:1056D00081F120F18630C1F108958091260268178A +:1056E00020F4861B809326020895109226020895C6 +:1056F00080912502681720F4861B80932502089567 +:1057000010922502089580912402681720F4861BC8 +:105710008093240208951092240208958091230218 +:10572000681720F4861B80932302089510922302A9 +:10573000089580912202681720F4861B809322022C +:10574000089510922202089580912102681720F492 +:10575000861B8093210208951092210208950F93D1 +:105760001F938732D8F58E3108F087C08E3009F448 +:1057700071C098F4873009F45BC08B3009F491C094 +:10578000863009F095C080917703817F8E7F80936A +:10579000770381E0809387038CC0863109F481C050 +:1057A00068F4803109F084C08091770383FB22275D +:1057B00020F991E0922790FB83F955C0893109F4D3 +:1057C00070C08B3109F074C08091770381FB222770 +:1057D00020F991E0922790FB81F945C0883309F4C4 +:1057E00060C050F4893209F45EC0853309F45BC0AF +:1057F000873209F458C05CC0833409F454C028F4DB +:105800008A3308F455C0895339C0883409F050C030 +:105810000E945B210E94D6070FEF13ED20E3015099 +:1058200010402040E1F700C000000E942E2839C03F +:1058300090917703892F8095817080FB90F929F0F2 +:10584000966098609093770334C0997F977F909388 +:10585000770327C08091770382FB222720F991E00C +:10586000922790FB82F9809377039923D1F080915E +:10587000770381608093770314C08D5141E050E03D +:1058800060E070E08A019B0104C0000F111F221F1D +:10589000331F8A95D2F7C901B8010E9417250E94CB +:1058A0005B2181E006C061E070E080E090E0F5CF30 +:1058B00080E01F910F91089580E0089580E00895A1 +:1058C000CF93C82F80918703813069F018F0823020 +:1058D000C9F184C0E0911F02F091200280818232E0 +:1058E00009F07EC007C0E0911F02F0912002808184 +:1058F000823261F48C2F0E945C2C811104C08C2FA9 +:105900000E94AF2B1DC081E090E01AC08C2F0E9436 +:105910005E2C811114C0C43179F048F4CB3079F099 +:10592000C03109F061C082E08093870308C0C932AA +:1059300019F0C83321F058C01092870355C081E098 +:10594000817054C0C93291F120F5C43179F1B0F4BD +:10595000C73009F047C08EE18093260282E380932E +:1059600025028AE08093240284E18093230288E068 +:105970008093220288E28093210234C0CE51C63047 +:1059800088F5EC2FF0E0E256FD4F8081809386038E +:1059900029C0CE34E9F020F4CB3421F56AE013C0FD +:1059A000C13579F0C235F1F461E00DC08091860314 +:1059B000882319F01092860315C081E08093870335 +:1059C00015C061E006C0809186030E94E92A0AC0E2 +:1059D0006AE0809186030E945F2B04C010928703C7 +:1059E00080E004C081E002C080E0AACFCF9108959A +:1059F0000E948A28811102C00E9466280E94AB285A +:105A00008093A20380FF02C0869501C080E00C94C1 +:105A1000F6058091A203982F9695292F30E0233028 +:105A200031054CF49F5F990F8170892B81608093C1 +:105A3000A2030E94AF288091A20386950C94F605DC +:105A40008091A203982F969591F09158990F8170AB +:105A5000892B8093A2038E7F91E009F490E08091DE +:105A6000A20390FB80F98093A2030E94AF2880914B +:105A7000A20386950C94F6058091A203982F909529 +:105A800090FB80F98093A2030E94AF288091A2032B +:105A900080FF02C0869501C080E00C94F6059091CD +:105AA000A203892F86958F5F8F779170843028F4B9 +:105AB000880F892B8093A20302C09093A203809148 +:105AC000A2038E7F91E009F490E08091A20390FB05 +:105AD00080F98093A2030E94AF288091A20386954B +:105AE0000C94F6052091A203922F96958927982F62 +:105AF000990F822F8170892B8093A2038E7F91E072 +:105B000009F490E08091A20390FB80F98093A203B6 +:105B10000E94AF288091A20386950C94F6055058F8 +:105B2000BB27AA270ED075C166D130F06BD120F00B +:105B300031F49F3F11F41EF45BC10EF4E095E7FBD6 +:105B400051C1E92F77D180F3BA1762077307840731 +:105B5000950718F071F49EF58FC10EF4E0950B2EA9 +:105B6000BA2FA02D0B01B90190010C01CA01A001AF +:105B70001124FF27591B99F0593F50F4503E68F10A +:105B80001A16F040A22F232F342F4427585FF3CF4B +:105B9000469537952795A795F0405395C9F77EF41C +:105BA0001F16BA0B620B730B840BBAF09150A1F065 +:105BB000FF0FBB1F661F771F881FC2F70EC0BA0FEB +:105BC000621F731F841F48F4879577956795B79573 +:105BD000F7959E3F08F0B3CF9395880F08F099276B +:105BE000EE0F979587950895D9D008F481E0089530 +:105BF0000CD00FC107D140F0FED030F021F45F3F50 +:105C000019F0F0C0511139C1F3C014D198F39923A0 +:105C1000C9F35523B1F3951B550BBB27AA27621770 +:105C20007307840738F09F5F5F4F220F331F441FB5 +:105C3000AA1FA9F333D00E2E3AF0E0E830D09150ED +:105C40005040E695001CCAF729D0FE2F27D0660FDA +:105C5000771F881FBB1F261737074807AB07B0E819 +:105C600009F0BB0B802DBF01FF2793585F4F2AF02F +:105C70009E3F510568F0B6C000C15F3FECF3983E0F +:105C8000DCF3869577956795B795F7959F5FC9F78C +:105C9000880F911D9695879597F90895E1E0660F15 +:105CA000771F881FBB1F621773078407BA0720F08E +:105CB000621B730B840BBA0BEE1F88F7E0950895F7 +:105CC00004D06894B111D9C00895BCD088F09F5712 +:105CD00090F0B92F9927B751A0F0D1F0660F771F38 +:105CE000881F991F1AF0BA95C9F712C0B13081F018 +:105CF000C3D0B1E00895C0C0672F782F8827B85F60 +:105D000039F0B93FCCF3869577956795B395D9F778 +:105D10003EF490958095709561957F4F8F4F9F4F82 +:105D20000895E89409C097FB3EF49095809570958E +:105D300061957F4F8F4F9F4F9923A9F0F92F96E9D7 +:105D4000BB279395F695879577956795B795F1114C +:105D5000F8CFFAF4BB0F11F460FF1BC06F5F7F4FE9 +:105D60008F4F9F4F16C0882311F096E911C07723FB +:105D700021F09EE8872F762F05C0662371F096E804 +:105D8000862F70E060E02AF09A95660F771F881FD3 +:105D9000DAF7880F9695879597F90895990F000877 +:105DA000550FAA0BE0E8FEEF16161706E807F907ED +:105DB000C0F012161306E407F50798F0621B730B88 +:105DC000840B950B39F40A2661F0232B242B252B09 +:105DD00021F408950A2609F4A140A6958FEF811DAC +:105DE000811D089597F99F6780E870E060E008954D +:105DF0009FEF80EC089500240A94161617061806E3 +:105E00000906089500240A941216130614060506BE +:105E10000895092E0394000C11F4882352F0BB0F4F +:105E200040F4BF2B11F460FF04C06F5F7F4F8F4FB2 +:105E30009F4F089557FD9058440F551F59F05F3FED +:105E400071F04795880F97FB991F61F09F3F79F09C +:105E500087950895121613061406551FF2CF46951E +:105E6000F1DF08C0161617061806991FF1CF8695A0 +:105E70007105610508940895E894BB276627772784 +:105E8000CB0197F908958ADF08F48FEF08950BD0BE +:105E9000C0CFB1DF28F0B6DF18F0952309F0A2CF0C +:105EA000A7CF1124EACFC6DFA0F3959FD1F3950FBA +:105EB00050E0551F629FF001729FBB27F00DB11D8E +:105EC000639FAA27F00DB11DAA1F649F6627B00D1E +:105ED000A11D661F829F2227B00DA11D621F739F07 +:105EE000B00DA11D621F839FA00D611D221F749F15 +:105EF0003327A00D611D231F849F600D211D822F5C +:105F0000762F6A2F11249F5750408AF0E1F08823A2 +:105F10004AF0EE0FFF1FBB1F661F771F881F9150AF +:105F20005040A9F79E3F510570F05CCFA6CF5F3F70 +:105F3000ECF3983EDCF3869577956795B795F795E2 +:105F4000E7959F5FC1F7FE2B880F911D969587956A +:105F500097F90895FA01EE0FFF1F309621053105DC +:105F600099F16115710561F48038BFE39B0749F130 +:105F700068949038810561F08038BFEF9B0741F04D +:105F8000992342F5FF3FE1053105210511F1E89420 +:105F90000894E795D901AA2329F4AB2FBE2FF85F07 +:105FA000D0F310C0FF5F70F4A695E0F7F73950F01A +:105FB00019F0FF3A38F49F779F930CD00F9007FCAD +:105FC000905808953EF014CF60E070E080E89FE3C1 +:105FD00008954FE79F775F934F933F932F939ED002 +:105FE0002F913F914F915F9152DF05C019F40EF050 +:105FF000F9CE42CFFDCE26DFC8F39638C0F707F8BA +:106000000F92E8942BE33AEA48EB5FE74EDF0F92FA +:106010000F920F924DB75EB70F92C0D0E0E4F1E05F +:1060200016D04F915F91EF91FF91E595EE1FFF1F05 +:1060300049F0FE57E0684427EE0F441FFA95E1F758 +:106040004195550B32D00F9007FE26C00895DF937F +:10605000CF931F930F93FF92EF92DF927B018C01FE +:10606000689405C0DA2EEF011EDFFE01E894A591C9 +:106070002591359145915591AEF3EF0162DDFE0119 +:106080009701A801DA9479F7DF90EF90FF900F91D4 +:106090001F91CF91DF9108959B01AC0160E070E00A +:1060A00080E89FE3A5CD9ECEACC0CCDEE8F399237B +:1060B000D9F3940F511DBBF39150504094F059F017 +:1060C000882332F0660F771F881F91505040C1F728 +:1060D0009E3F510544F7880F911D9695879597F936 +:1060E00008955F3FACF0983E9CF0BB27869577956E +:1060F0006795B79508F4B1609395C1F7BB0F58F752 +:1061000011F460FFE8CF6F5F7F4F8F4F9F4FE3CF5A +:10611000B4CE0EF076C06CCE689464CE93DEC8F335 +:106120009923D1F3C6F3DF93CF931F930F93FF927D +:10613000C92FDD2788232AF02197660F771F881F34 +:10614000DAF720E030E040E85FEB9FE3883920F0A9 +:10615000803E30F021968F77E3DCE8E6F1E003C083 +:10616000DFDCE5E9F1E073DF8B01BE01EC01FB2E22 +:106170006F5771097595771F880B990BD4DD28E14E +:1061800032E741E35FE38FDEAF2D9801AE01FF9070 +:106190000F911F91CF91DF91D4DC3BCEFA01DC014E +:1061A000AA0FBB1F9B01AC01BF5728F4222733273E +:1061B000442750781FC0B75188F4AB2F0024469570 +:1061C00037952795011CA395D2F3002069F0220F83 +:1061D000331F441FB395DAF30DD0A1CC61307105A4 +:1061E000A0E88A07B94630F49B01AC0166277727FF +:1061F00088279078309621F020833183428353831F +:1062000008959F3F31F0915020F4879577956795D9 +:10621000B795880F911D9695879597F90895AA1BB4 +:10622000BB1B51E107C0AA1FBB1FA617B70710F081 +:10623000A61BB70B881F991F5A95A9F780959095B3 +:10624000BC01CD01089597FB072E16F4009407D0EA +:1062500077FD09D00E940F3107FC05D03EF49095E0 +:1062600081959F4F0895709561957F4F0895EE0F2A +:10627000FF1F0590F491E02D0994F999FECF92BD8E +:1062800081BDF89A992780B50895A8E1B0E042E071 +:1062900050E00C946531262FF999FECF92BD81BD57 +:1062A000F89A019700B4021639F01FBA20BD0FB654 +:1062B000F894FA9AF99A0FBE08950196272F0E9432 +:1062C0004C310C944B31DC01CB01FC01F999FECF30 +:1062D00006C0F2BDE1BDF89A319600B40D9241506E +:0A62E0005040B8F70895F894FFCF7E +:1062EA0007000C52D02445000000410000DC4400A5 +:1062FA0000004152D0A4440000404100005C440028 +:10630A0000004148F17644000000415C978A44004D +:10631A000000411FD592440000004152D0A444001D +:10632A000000415CFFB844000000410AA7CF4400C6 +:10633A000000410000DC44000000410AA7CF4400ED +:10634A000000410000DC44000000410000000000A1 +:10635A0000804052D0244500004041000000000067 +:10636A000080400AA74F45000040410AA7CF4400D9 +:10637A000000410000DC4400000041000000000071 +:10638A0000804052D0244500000041000000000077 +:10639A000080405CFF38450000004100000000001A +:1063AA0000804052D02445000000410AA7CF440093 +:1063BA000000410000DC4400000041000000000031 +:1063CA0000804052D024450000804110F1764400FC +:1063DA0000A04112F1F6440000004141909B4400A4 +:1063EA0000A04112F1F64400000041050000003F00 +:1063FA000000C8426A14F814D514A1146D14016C73 +:10640A00032808140A321E000002000400050007CF +:10641A000009000B000C000E0010001100130015FB +:10642A0000170018001A001C001D001F002100237D +:10643A000024002600280029002B002D002F003000 +:10644A0000320034003500370039003B0042004575 +:10645A000025002600430061006000200037006428 +:10646A000065006600670044004600240047003FBC +:10647A004D36010BB40A7E0A2A0A430A5C0A010253 +:08648A000304050607080900E0 +:00000001FF -- cgit v1.2.3-70-g09d2 From ce75a7675e10e24e7ecd7bc3575c0e0fc1bc34b5 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 26 Apr 2016 23:25:16 -0500 Subject: Updated personal layouts (#291) --- keyboard/atomic/keymaps/pvc/keymap.c | 28 +- keyboard/planck/keymaps/pvc/config.h | 88 ++++++ keyboard/planck/keymaps/pvc/keymap.c | 536 ++++++++++++++++++++++++++++++++ keyboard/planck/keymaps/pvc/makefile.mk | 16 + keyboard/planck/keymaps/pvc_planck.c | 179 ----------- 5 files changed, 658 insertions(+), 189 deletions(-) create mode 100644 keyboard/planck/keymaps/pvc/config.h create mode 100644 keyboard/planck/keymaps/pvc/keymap.c create mode 100644 keyboard/planck/keymaps/pvc/makefile.mk delete mode 100644 keyboard/planck/keymaps/pvc_planck.c (limited to 'keyboard/planck') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 28aa2c359..e17c41e23 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* COLEMAK @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* DVORAK @@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL }, { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_ENT, KC_PGUP }, { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, @@ -255,7 +255,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { persistant_default_layer_set(1UL<event.pressed) { persistant_default_layer_set(1UL<event.pressed) { persistant_default_layer_set(1UL<event.pressed) { @@ -324,6 +329,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #endif /* MOUSEKEY_ENABLE */ +#ifdef AUDIO_ENABLE case MACRO_TIMBRE_1: if (record->event.pressed) set_timbre(TIMBRE_12); @@ -416,6 +422,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; +#endif /* AUDIO_ENABLE */ + default: break; diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h new file mode 100644 index 000000000..7d64f0977 --- /dev/null +++ b/keyboard/planck/keymaps/pvc/config.h @@ -0,0 +1,88 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Planck Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define ROWS (int []){ D0, D5, B5, B6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c new file mode 100644 index 000000000..27850b215 --- /dev/null +++ b/keyboard/planck/keymaps/pvc/keymap.c @@ -0,0 +1,536 @@ +#include "planck.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "led.h" + +#ifdef AUDIO_ENABLE + #include "audio.h" + #include "song_list.h" +#endif + +#define LAYER_QWERTY 0 +#define LAYER_COLEMAK 1 +#define LAYER_DVORAK 2 +#define LAYER_LOWER 3 +#define LAYER_RAISE 4 +#define LAYER_FUNCTION 5 +#define LAYER_MOUSE 6 +#define LAYER_MUSIC 7 +#define LAYER_ADJUST 8 + +#define MACRO_QWERTY 0 +#define MACRO_COLEMAK 1 +#define MACRO_DVORAK 2 +#define MACRO_LOWER 3 +#define MACRO_RAISE 4 +#define MACRO_FUNCTION 5 +#define MACRO_MOUSE 6 +#define MACRO_TIMBRE_1 7 +#define MACRO_TIMBRE_2 8 +#define MACRO_TIMBRE_3 9 +#define MACRO_TIMBRE_4 10 +#define MACRO_TEMPO_U 11 +#define MACRO_TEMPO_D 12 +#define MACRO_TONE_DEFAULT 13 +#define MACRO_MUSIC_ON 14 +#define MACRO_MUSIC_OFF 15 +#define MACRO_AUDIO_ON 16 +#define MACRO_AUDIO_OFF 17 +#define MACRO_INC_VOICE 18 +#define MACRO_DEC_VOICE 19 + +#define M_QWRTY M(MACRO_QWERTY) +#define M_COLMK M(MACRO_COLEMAK) +#define M_DVORK M(MACRO_DVORAK) +#define M_LOWER M(MACRO_LOWER) +#define M_RAISE M(MACRO_RAISE) +#define M_FUNCT M(MACRO_FUNCTION) +#define M_MOUSE M(MACRO_MOUSE) +#define TIMBR_1 M(MACRO_TIMBRE_1) +#define TIMBR_2 M(MACRO_TIMBRE_2) +#define TIMBR_3 M(MACRO_TIMBRE_3) +#define TIMBR_4 M(MACRO_TIMBRE_4) +#define TMPO_UP M(MACRO_TEMPO_U) +#define TMPO_DN M(MACRO_TEMPO_D) +#define TMPO_DF M(MACRO_TONE_DEFAULT) + + +#define MUS_ON M(MACRO_MUSIC_ON) +#define MUS_OFF M(MACRO_MUSIC_OFF) +#define AUD_OFF M(MACRO_AUDIO_OFF) +#define AUD_ON M(MACRO_AUDIO_ON) +#define VC_UP M(MACRO_INC_VOICE) +#define VC_DOWN M(MACRO_DEC_VOICE) + + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + + +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define ________________ _______, _______ +#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_QWERTY] = { /* QWERTY */ + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + { KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + }, + +/* COLEMAK + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | Q | W | F | P | G | J | L | U | Y | ; | ESC | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_COLEMAK] = { /* COLEMAK */ + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC }, + { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + }, + +/* DVORAK + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ESC | A | O | E | U | I | D | H | T | N | S | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_DVORAK] = { /* DVORAK */ + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, + { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + }, + +/* Raise + * .-----------------------------------------------------------------------------------------------------------. + * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | [ | ] | \ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_RAISE] = { /* RAISED */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + { XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END }, + }, + + +/* LOWERED + * .-----------------------------------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_LOWER] = { /* LOWERED */ + { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS }, + { XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END }, + }, + +/* FUNCTION + * .-----------------------------------------------------------------------------------------------------------. + * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | PAUSE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAP LK | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | PRINT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV | + * '-----------------------------------------------------------------------------------------------------------' + */ + [LAYER_FUNCTION] = { /* FUNCTION */ + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS }, + { KC_CAPS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_PSCR }, + { KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE }, + { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT }, + }, + +#ifdef MOUSEKEY_ENABLE + + [LAYER_MOUSE] = { /* MOUSE */ + { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R }, + }, + +#endif + + [LAYER_MUSIC] = { /* MUSIC */ + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + }, + + [LAYER_ADJUST] = { /* ADJUST */ + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF }, + { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ }, + }, + + +/* + [LAYER_EMPTY] = { + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, }, + }, +*/ + +}; + +#ifdef AUDIO_ENABLE + +float tone_my_startup[][2] = SONG(ODE_TO_JOY); +float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); +float tone_music_on[][2] = SONG(DOE_A_DEER); +float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); +float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); +float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); +float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +#endif /* AUDIO_ENABLE */ + +void persistant_default_layer_set(uint16_t default_layer) +{ + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + + // MACRODOWN only works in this function + switch(id) + { + + case MACRO_QWERTY: + if (record->event.pressed) + { + persistant_default_layer_set(1UL<event.pressed) + { + persistant_default_layer_set(1UL<event.pressed) + { + persistant_default_layer_set(1UL<event.pressed) + { + layer_on(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + break; + + case MACRO_RAISE: + if (record->event.pressed) + { + layer_on(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + break; + + case MACRO_FUNCTION: + if (record->event.pressed) + { + layer_on(LAYER_FUNCTION); + } + else + { + layer_off(LAYER_FUNCTION); + } + break; + +#ifdef MOUSEKEY_ENABLE + + case MACRO_MOUSE: + if (record->event.pressed) + { + layer_invert(LAYER_MOUSE); + } + break; + +#endif /* MOUSEKEY_ENABLE */ + +#ifdef AUDIO_ENABLE + + case MACRO_TIMBRE_1: + if (record->event.pressed) set_timbre(TIMBRE_12); + break; + + case MACRO_TIMBRE_2: + if (record->event.pressed) set_timbre(TIMBRE_25); + break; + + case MACRO_TIMBRE_3: + if (record->event.pressed) set_timbre(TIMBRE_50); + break; + + case MACRO_TIMBRE_4: + if (record->event.pressed) set_timbre(TIMBRE_75); + break; + + case MACRO_TEMPO_U: + if (record->event.pressed) increase_tempo(10); + break; + + case MACRO_TEMPO_D: + if (record->event.pressed) decrease_tempo(10); + break; + + case MACRO_TONE_DEFAULT: + if (record->event.pressed) + { + set_timbre(TIMBRE_DEFAULT); + set_tempo(TEMPO_DEFAULT); + } + break; + + case MACRO_AUDIO_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + + case MACRO_AUDIO_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); + #endif + } + break; + + case MACRO_MUSIC_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); + layer_on(LAYER_MUSIC); + #endif + } + break; + + case MACRO_MUSIC_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + layer_off(LAYER_MUSIC); + stop_all_notes(); + #endif + } + break; + + case MACRO_INC_VOICE: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + #endif + } + break; + + case MACRO_DEC_VOICE: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + #endif + } + break; + +#endif /* AUDIO_ENABLE */ + + default: + break; + + } + return MACRO_NONE; +}; + + +#ifdef AUDIO_ENABLE + + +void process_action_user(keyrecord_t *record) +{ + + uint8_t starting_note = 0x0C; + int offset = 7; + + if (IS_LAYER_ON(LAYER_MUSIC)) + { + if (record->event.pressed) + { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } + else + { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } +} + + +void matrix_init_user(void) +{ + set_voice(default_voice); + play_startup_tone(); + println("Matrix Init"); +} + +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + + _delay_ms(10); // gets rid of tick + + if ((usb_led & (1<event.pressed) { - print("RS_DN"); - layer_on(_RS); - update_tri_layer(_RS, _LW, _FN); - } else { - print("RS_UP"); - layer_off(_RS); - update_tri_layer(_RS, _LW, _FN); - phex(layer_state); - } - break; - - case _LW: - if (record->event.pressed) { - print("LW_DN"); - layer_on(_LW); - update_tri_layer(_RS, _LW, _FN); - } else { - print("LW_UP"); - layer_off(_LW); - update_tri_layer(_RS, _LW, _FN); - } - break; - - default: - break; - } - return MACRO_NONE; -}; -- cgit v1.2.3-70-g09d2 From 27d24faf396367d9f8fadd86324e584b5403d261 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 28 Apr 2016 23:10:40 -0400 Subject: adds condition to one last audio ref in planck default --- keyboard/planck/keymaps/default/keymap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index fa9c3915a..e120d358a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -325,7 +325,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_LOWER); layer_off(_ADJUST); layer_off(_MUSIC); - stop_all_notes(); + #ifdef AUDIO_ENABLE + stop_all_notes(); + #endif layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.3-70-g09d2 From 66e0323881a5a3da65e14daeec41a1e9cfbda431 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 29 Apr 2016 12:42:55 -0400 Subject: removes extra voices, updates .hex files --- keyboard/planck/keymaps/default/keymap.c | 2 +- keyboard/planck/planck_pcb_r4.hex | 3159 ++++++++++---------- keyboard/planck/planck_pcb_r4_w_bootloader.hex | 3159 ++++++++++---------- keyboard/preonic/keymaps/default/keymap.c | 2 +- keyboard/preonic/preonic_pcb_r1.hex | 3328 +++++++++++----------- keyboard/preonic/preonic_pcb_r1_w_bootloader.hex | 3071 ++++++++++---------- quantum/audio/voices.c | 42 +- 7 files changed, 6370 insertions(+), 6393 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index e120d358a..e7a9ea9e4 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -365,7 +365,7 @@ void play_goodbye_tone() } uint8_t starting_note = 0x0C; -int offset = 7; +int offset = 0; void process_action_user(keyrecord_t *record) { diff --git a/keyboard/planck/planck_pcb_r4.hex b/keyboard/planck/planck_pcb_r4.hex index 889af7f22..bd68d9e90 100644 --- a/keyboard/planck/planck_pcb_r4.hex +++ b/keyboard/planck/planck_pcb_r4.hex @@ -1,73 +1,73 @@ -:100000000C94FE040C9442050C9442050C94420599 -:100010000C9442050C9442050C9442050C94420544 -:100020000C9442050C9442050C94A6180C94781973 -:100030000C94DB270C9442050C9442050C94420569 -:100040000C9442050C9442050C9442050C94420514 -:100050000C9442050C9443280C9442050C944205E0 -:100060000C9442050C9442050C9442050C944205F4 -:100070000C9442050C9442050C9442050C944205E4 -:100080000C94D10E0C9442050C9442050C9442053C -:100090000C9442050C9442050C9442050C944205C4 -:1000A0000C9442050C9442050C9442059D05AD0547 -:1000B000BF05CF05D505E405F005F60504060D06D8 -:1000C0001E062E06340664069013901390139013A8 -:1000D000901390139013901390139013A713A713DA -:1000E000A713A713A713A713A713A713A713A71340 -:1000F00090139013901390139013A713A713A713A3 -:10010000A713A713901390139013A713A713A71364 -:10011000E519071AF51A071AF51A4C1A6F1AF51A83 -:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C -:1001300027212721C81E2721C91FC91F8C20A320C2 -:100140002721122107634236B79BD8A71A39685670 -:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 -:10016000753EF6177231BF000000803F08000000A6 -:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C -:1001800000000080BEABAAAAAA3E00000000BF008B -:100190000000803F0000000000084178D3BB438787 -:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B -:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 -:1001C0003F00000000002B0014001A00080015007A -:1001D00017001C0018000C00120013002A00290050 -:1001E00004001600070009000A000B000D000E00B5 -:1001F0000F0033003400E1001D001B000600190051 -:1002000005001100100036003700380028000530C6 -:10021000E000E200E30003302C002C00043050002A -:10022000510052004F002B0014001A000900130067 -:100230000A000D000F0018001C0033002A002900DE -:10024000040015001600170007000B00110008003D -:100250000C0012003400E1001D001B000600190014 -:1002600005000E0010003600370038002800053069 -:10027000E000E200E30003302C002C0004305000CA -:10028000510052004F002B0034003600370013009D -:100290001C0009000A00060015000F002A002900B2 -:1002A00004001200080018000C0007000B001700E3 -:1002B000110016003800E100330014000D000E009C -:1002C0001B00050010001A0019001D002800053051 -:1002D000E000E200E30003302C002C00043050006A -:1002E000510052004F0035021E021F02200221025F -:1002F0002202230224022502260227022A004C00A1 -:100300003A003B003C003D003E003F002D022E0223 -:100310002F02300231020100400041004200430040 -:10032000440045000100010001000100010001003E -:100330000100010001000100010001000100AB000B -:10034000AA00A900AE0035001E001F0020002100F9 -:100350002200230024002500260027002A004C004C -:100360003A003B003C003D003E003F002D002E00C7 -:100370002F003000310001004000410042004300E6 -:1003800044004500010001000100010001000100DE -:100390000100010001000100010001000100AB00AB -:1003A000AA00A900AE00000000000000000000004C -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F0000000000000000330000000000430000096 -:100400000000000000001E001E001E001E001E0056 -:100410001E001E001E001E001E001E001E0000000A -:1004200014001A000800150017001C0018000C002A -:10043000120013002F00000004001600070009003E -:100440000A000B000D000E000F00330034000D30C9 -:10045000000000000600190000000000110010005C +:100000000C94DA040C941E050C941E050C941E0529 +:100010000C941E050C941E050C941E050C941E05D4 +:100020000C941E050C941E050C94B7180C94891999 +:100030000C94EC270C941E050C941E050C941E05C4 +:100040000C941E050C941E050C941E050C941E05A4 +:100050000C941E050C9454280C941E050C941E053B +:100060000C941E050C941E050C941E050C941E0584 +:100070000C941E050C941E050C941E050C941E0574 +:100080000C94AD0E0C941E050C941E050C941E05CC +:100090000C941E050C941E050C941E050C941E0554 +:1000A0000C941E050C941E050C941E0579058905FB +:1000B0009B05AB05B105C005CC05D205E005E905FA +:1000C000FA050A0610064006F619181A061B181A31 +:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC +:1000E000281E281E821EC01E38213821D91E382104 +:1000F000DA1FDA1F9D20B4203821232107634236FE +:10010000B79BD8A71A39685618AEBAAB558C1D3CA8 +:10011000B7CC5763BD6DEDFD753EF6177231BF006C +:100120000000803F08000000BE922449123EABAAA6 +:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01 +:10014000AA3E00000000BF000000803F0000000049 +:1001500000084178D3BB4387D1133D190E3CC3BD82 +:100160004282AD2B3E68EC8276BED98FE1A93E4C2F +:1001700080EFFFBE01C4FF7F3F00000000002B00A6 +:1001800014001A000800150017001C0018000C00CD +:10019000120013002A0029000400160007000900BD +:1001A0000A000B000D000E000F0033003400E100C8 +:1001B0001D001B000600190005001100100036008C +:1001C0003700380028000530E000E200E30003308B +:1001D0002C002C0004305000510052004F002B0026 +:1001E00014001A00090013000A000D000F00180087 +:1001F0001C0033002A002900040015001600170017 +:1002000007000B00110008000C0012003400E10090 +:100210001D001B000600190005000E00100036002E +:100220003700380028000530E000E200E30003302A +:100230002C002C0004305000510052004F002B00C5 +:1002400034003600370013001C0009000A000600C5 +:1002500015000F002A0029000400120008001800F1 +:100260000C0007000B001700110016003800E10019 +:10027000330014000D000E001B00050010001A00D2 +:1002800019001D0028000530E000E200E300033003 +:100290002C002C0004305000510052004F00350259 +:1002A0001E021F0220022102220223022402250232 +:1002B000260227022A004C003A003B003C003D0089 +:1002C0003E003F002D022E022F02300231020100BB +:1002D000400041004200430044004500010001008D +:1002E0000100010001000100010001000100010006 +:1002F000010001000100AB00AA00A900AE0035001A +:100300001E001F00200021002200230024002500E1 +:10031000260027002A004C003A003B003C003D002C +:100320003E003F002D002E002F0030003100010064 +:10033000400041004200430044004500010001002C +:1003400001000100010001000100010001000100A5 +:10035000010001000100AB00AA00A900AE000000EE +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000003301A +:1003B00000000000043000000000000000001E00EB +:1003C0001E001E001E001E001E001E001E001E003D +:1003D0001E001E001E00000014001A000800150078 +:1003E00017001C0018000C00120013002F00000062 +:1003F00004001600070009000A000B000D000E00A3 +:100400000F00330034000D3000000000060019001A +:1004100000000000110010000000000000000000BB +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C :10046000000000000000000000000000000000008C :10047000000000000000000000000000000000007C :10048000000000000000000000000000000000006C @@ -117,1512 +117,1529 @@ :1007400000000000000000000000000000000000A9 :100750000000000000000000000000000000000099 :100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C00000000000000001000050010001000100D5 -:1007D0000100010001000100010001004C000100C6 -:1007E0000100010007300630135012500030013074 -:1007F00002300C30010001000B300A3009300830A3 -:1008000001000100010001000100010001000100E0 -:1008100001000100010001000100010001000100D0 -:100820000100010001002803540068006500200059 -:1008300050006C0061006E0063006B0020004B00F4 -:100840006500790062006F006100720064000000C2 -:100850002C034F007200740068006F006C00690088 -:100860006E0065006100720020004B006500790099 -:1008700062006F00610072006400730000000403F6 -:10088000090409026D00040100A0FA090400000136 -:1008900003010100092111010001223F0007058128 -:1008A0000308000A090401000103010200092111E3 -:1008B000010001224D000705820308000A09040215 -:1008C0000001030000000921110100012236000788 -:1008D00005830308000A090403000103000000095E -:1008E00021110100012239000705840310000112C3 -:1008F00001100100000008EDFE606001000102002F -:100900000105010906A101050719E029E7150025E0 -:1009100001950875018102050819012905950575DC -:1009200001910295017503910105071900297715B9 -:10093000002501957875018102C005010980A1019A -:10094000850216010026B7001A01002AB7007510AB -:1009500095018100C0050C0901A101850316010064 -:10096000269C021A01002A9C02751095018100C084 -:1009700005010902A1010901A100050919012905C3 -:100980001500250195057501810295017503810109 -:100990000501093009311581257F95027508810609 -:1009A00009381581257F950175088106050C0A38DF -:1009B000021581257F950175088106C0C0050109D2 -:1009C00006A101050719E029E7150025019508751D -:1009D0000181029501750881010508190129059514 -:1009E000057501910295017503910105071900290B -:1009F000FF150025FF950675088100C011241FBE54 -:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 -:100A1000190490911A04A0911B04B0911C04873012 -:100A2000904BA740B04BB9F41092190410921A04DD -:100A300010921B0410921C0414BE84B7877F84BFDD -:100A400088E10FB6F89480936000109260000FBEAA -:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 -:100A600002C005900D92A431B107D9F714E0A4E1BA -:100A7000B3E001C01D92A931B107E1F70E94EC1566 -:100A80000C94C0310C940000279A2F988FEF9FEFA1 -:100A900090938700809386008AE08093800089E1AC -:100AA000809381000C94452D282F81110BC08091DB -:100AB0008000877F8093800010928D0010928C00C0 -:100AC0002F9808952F9880918000886080938000EF -:100AD000233019F48FEF9FEF0FC083E090E0821B6B -:100AE0009109880F991F2FEF3FEFA90102C056957A -:100AF00047958A95E2F7CA0190938D0080938C0008 -:100B00000895CF93DF93EC010E94DC28BE0180E0C2 -:100B100090E0DF91CF910C9407250F931F93462F00 -:100B200050E04E30510508F0DEC0DC01FA01EA5A0F -:100B3000FF4F12968C910C948431882309F4D3C012 -:100B400000E010E0980140E064E070E08BE292E0A9 -:100B50000E944F1281E090E00FC0882309F4C3C0C7 -:100B600000E010E0980140E066E070E08BEB91E07F -:100B70000E944F1282E090E00E948105B4C0882359 -:100B800009F4B1C000E010E0980140E068E070E0D6 -:100B90008BEE91E00E944F1284E090E0EDCF88232D -:100BA00011F083E005C083E00CC0882349F084E0A5 -:100BB0000E94842540E164E083E00E94910A93C092 -:100BC00084E00E94A525F6CF882331F085EE0E94AF -:100BD0006E1C0E949C2D87C085EE0E94361D83C02E -:100BE000882309F480C00E94E30D7DC0882309F4A6 -:100BF0007AC00E94DC0D00E010E0980140E065E062 -:100C000070E08BE492E027C0882309F46CC085E093 -:100C10000E94A5250E94040E66C0882309F463C0C3 -:100C200000E010E0980140E068E070E08BE191E0C6 -:100C30000E944F1285E00E94842555C0882309F444 -:100C400052C00E94E21200E010E0980140E068E02B -:100C500070E08BE191E00E944F1245C0882309F4B7 -:100C600042C00E94ED12EFCF8823E9F100E010E0CE -:100C7000980140E066E070E08BE891E00E944F123E -:100C800084E00E94A52583E00E94A52580E10E94C2 -:100C9000A52585E00E94A5250E94040E86E00E94FD -:100CA00084250E94C928811102C00E94A5280E94A3 -:100CB000E12890E090931804809317048068809353 -:100CC00017040E94E5280FC0882369F000E010E0B7 -:100CD000980140E066E070E08BE591E00E944F12E1 -:100CE00086E00E94A52580E090E01F910F91089575 -:100CF0000F931F932FEF89EF90E021508040904099 -:100D0000E1F700C0000000E010E0980140E065E07D -:100D100070E08BE492E00E944F121F910F910895B2 -:100D20000F931F9300E010E0980140E063E070E053 -:100D300083E091E00E944F122FEF82E597E021506F -:100D400080409040E1F700C000001F910F9108958E -:100D5000CF92DF92EF92FF920F931F93CF93DF9387 -:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 -:100D7000CDBF2091D10325FFC5C08C01FC0192811C -:100D800080910201992309F460C096E4E0E9F2E061 -:100D9000DE01A95BBF4F01900D929A95E1F7F80132 -:100DA0009081E0910001F0910101E90FF11DEE0F3A -:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F -:100DC0007181680F711D882777FD8095982F0E948B -:100DD000E02E20E030E040E451E40E94452E6B011B -:100DE0007C01F801218184E090E0821B9109BC0123 -:100DF000882777FD8095982F0E94E02E9B01AC01FB -:100E0000C701B6010E94DD2D9B01AC0160E070E0DE -:100E100080E090E40E94F72F20E030E04CE551E4C0 -:100E20000E94942F4FE050E0C457DF4F0FB6F89464 -:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D -:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 -:100E5000DE01119601900D929A95E1F7F8019081CB -:100E6000E0910001F0910101E90FF11DEE0FFF1F6C -:100E700021E030E02C0F3D1FE20FF31F60817181F4 -:100E8000680F711D882777FD8095982F0E94E02EAE -:100E900020E030E040E451E40E94452E6B017C01EB -:100EA000F801218184E090E0821B9109BC01882730 -:100EB00077FD8095982F0E94E02E9B01AC01C70121 -:100EC000B6010E94DD2D9B01AC0160E070E080E086 -:100ED00090E40E94F72F20E030E04CE551E40E94BE -:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF -:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 -:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 -:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 -:100F2000CF90089508950E9444056E9A769A0C9485 -:100F300078060C9492070C94A8060895880F991FC0 -:100F4000FC01EA5BFF4F859194910895880F991FEA -:100F5000FC01EA53FE4F8591949108950F931F93DE -:100F6000CF93DF93EC01811520E49207A0F5C11522 -:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 -:100F8000D10508F0EEC1C83AD10578F4C53AD105CB -:100F900008F074C0C130D10509F46DC008F4DEC199 -:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F -:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD -:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 -:100FD0008E01106506C2C13080E5D80709F4BDC096 -:100FE00068F5C13120E4D20709F4AEC050F4C03135 -:100FF00090E4D90708F0A5C0CF70DD278E01146DED -:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 -:10101000C115D04509F0A2C10E944B210E94040EC7 -:101020000E9490069FEF24E38CE091502040804086 -:10103000E1F700C000000E946828D3C1C11520E676 -:10104000D20730F4C11581E5D80708F48CC02DC152 -:10105000C11590E7D90708F481C1C11520E8D2076E -:1010600008F478C1C11580E9D80708F077C1DF70AE -:101070008E01106AB6C101E010E0B3C1C53AD105D6 -:1010800009F471C1C63AD10509F070C102E810E453 -:10109000A8C1C83AD10509F46CC1C93AD10509F40F -:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A -:1010B00069C1CC3AD10509F468C1CD3AD10509F42A -:1010C00067C1C03BD10509F466C1CE3AD10509F428 -:1010D00065C1CF3AD10509F464C1C13BD10509F41A -:1010E00063C1C23BD10509F462C1C33BD10509F418 -:1010F00061C1C43BD10509F460C1C53BD10509F408 -:101100005FC1C63BD10509F45EC1C73BD10509F4F7 -:101110005DC1C83BD10509F45CC1C93BD10509F4E7 -:101120005BC1CA3BD10509F45AC100E014E459C1BE -:10113000CE019F700E94A60755C1DD278E01106C5D -:1011400050C100E011ED4DC100E010ED4AC100E0DA -:1011500012ED47C100E013ED44C18091ED038160C1 -:101160008093ED033EC10E94C928811102C00E94F4 -:10117000A5280E94E12890E090931804809317041A -:10118000C23090E5D90721F480911704816086C0B0 -:10119000C43020E5D20721F48091170482607EC01C -:1011A000C63080E5D80721F480911704846076C0AA -:1011B000C83090E5D90719F48091170427C0CA30C8 -:1011C00020E5D20721F480911704806167C0CC30FC -:1011D00080E5D80721F48091170480625FC0CE308B -:1011E00090E5D90721F480911704806457C0C0317D -:1011F00020E5D20721F48091170480684FC0C231E6 -:1012000080E5D80729F4809117048460886046C07F -:10121000C33090E5D90721F4809117048E7F3EC03A -:10122000C53020E5D20721F4809117048D7F36C0A8 -:10123000C73080E5D80721F4809117048B7F2EC03A -:10124000C93090E5D90719F48091170426C0CB3036 -:1012500020E5D20721F4809117048F7E1FC0CD3086 -:1012600080E5D80721F4809117048F7D17C0CF3017 -:1012700090E5D90721F4809117048F7B0FC0C1310D -:1012800020E5D20721F4809117048F7707C0C3317E -:10129000D04531F4809117048B7F877F80931704AA -:1012A000809117040E94E5289CC08D2F99278F708C -:1012B000992781309105D9F49E012370332702C00C -:1012C000880F991F2A95E2F79C688E0144E0000F71 -:1012D000111F4A95E1F700271370802B912B53E0E3 -:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 -:1012F000910531F4DC2FCC278E01016F106A71C08B -:101300008330910569F4CE018370992701E010E0E4 -:1013100002C0000F111F8A95E2F7C8019C680FC038 -:10132000049709F05EC0CE018370992701E010E0B8 -:1013300002C0000F111F8A95E2F7C8019A6823E0E6 -:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 -:101350001D2B47C0DF708E01106243C000E010E01B -:1013600040C08E013EC001E810E43BC003E810E439 -:1013700038C002EE14E435C009EE14E432C00AEEBF -:1013800014E42FC005EB14E42CC006EB14E429C0D0 -:1013900007EB14E426C00CEC14E423C00DEC14E4B9 -:1013A00020C003E815E41DC00AE815E41AC002E9EC -:1013B00015E417C004E915E414C001E216E411C0F5 -:1013C00003E216E40EC004E216E40BC005E216E4E4 -:1013D00008C006E216E405C007E216E402C00AE20D -:1013E00016E4C801DF91CF911F910F9108959CE001 -:1013F000799FF001112490E3899FE00DF11D1124E4 -:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 -:10141000803E9105E0F4803C910558F581339105BB -:1014200009F46FC048F48932910509F463C08A3227 -:10143000910509F46DC072C089339105E9F08238D5 -:101440009105D1F08533910509F44DC067C0833E05 -:10145000910581F138F4803E9105B9F0823E910505 -:10146000D9F05CC0863E910561F1873E9105A1F1FE -:1014700055C00E949E0708952091170420FD02C0C8 -:1014800021FF4CC080EE90E049C08091170480FF9E -:10149000F9CF89E390E042C08091170482FF0EC02B -:1014A0008091170484FF03C080E090E037C083EE92 -:1014B00090E034C08091170482FFF2CF82EE90E07A -:1014C0002DC08091170483FF0BC08091170484FD09 -:1014D000EBCF87EE90E022C08091170483FFF5CF19 -:1014E00086EE90E01BC08091170485FF07C089E25B -:1014F00090E014C08091170485FFF9CF85E390E058 -:101500000DC08091170486FF07C08AE290E006C0F4 -:101510008091170486FFF9CF81E390E00E94AE0727 -:101520000895CF92DF92EF92FF920F931F9301E005 -:1015300010E020E030E06801790104C0CC0CDD1C33 -:10154000EE1CFF1C8A95D2F704C0000F111F221F4A -:10155000331F6A95D2F70C291D292E293F29C090E7 -:10156000D103D090D203E090D303F090D403C022F3 -:10157000D122E222F322842FC016D106E206F3061E -:1015800041F41F910F91FF90EF90DF90CF900C945A -:1015900084251F910F91FF90EF90DF90CF900C94D6 -:1015A000A52508950C94D10A5F926F927F928F9235 -:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 -:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C -:1015D000DEBF0FBECDBFCE0101966C014E0199E07A -:1015E000890E911C20E030E040E050E060E070E0C7 -:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 -:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA -:1016100001900D928A95E1F7F601819191916F0108 -:10162000FC01E07FFF27E032F10559F48F70992724 -:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E -:1016400037C0E033F10559F48F709927F50102C0D6 -:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 -:10166000F10559F48F709927F50102C0EE0FFF1FA5 -:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC -:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 -:101690004E2B5F2B0DC0E036F10551F48F7099276A -:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC -:1016B000C814D90409F0A7CF84B19E2D9095892331 -:1016C00084B985B1E82AE5B887B1902F9095892330 -:1016D00087B988B1082B08B98AB1962F90958923CC -:1016E0008AB98BB1682B6BB98DB1942F90958923F2 -:1016F0008DB98EB1482B4EB980B3922F9095892326 -:1017000080BB81B3282B21BB28960FB6F894DEBF8F -:101710000FBECDBFDF91CF911F910F91FF90EF9042 -:10172000DF90CF90BF90AF909F908F907F906F9001 -:101730005F9008955F926F927F928F929F92AF9287 -:10174000BF92CF92DF92EF92FF920F931F93CF93AE -:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 -:10176000CDBF85B7806885BF85B7806885BF0E947B -:10177000D40ACE0101966C014E0199E1890E911CAB -:1017800020E030E040E050E060E070E000E010E099 -:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA -:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 -:1017B0008A95E1F7F601819191916F01FC01E07F3B -:1017C000FF27E032F10559F48F709927F50102C027 -:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB -:1017E000F10559F48F709927F50102C0EE0FFF1F24 -:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E -:101800008F709927F50102C0EE0FFF1F8A95E2F74E -:101810006E2B7F2B1BC0E035F10559F48F70992793 -:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA -:101830000DC0E036F10551F48F709927F50102C013 -:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 -:1018500009F0A7CF84B19E2D9095892384B985B1D5 -:10186000E82AE5B887B1902F9095892387B988B188 -:10187000082B08B98AB1962F909589238AB98BB124 -:10188000682B6BB98DB1942F909589238DB98EB14A -:10189000482B4EB980B3922F9095892380BB81B39A -:1018A000282B21BB10921D0310921C0310921503CC -:1018B0001092140310921F0310921E03109217032C -:1018C0001092160310922103109220031092190314 -:1018D00010921803109223031092220310921B03FC -:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 -:1018F000DF91CF911F910F91FF90EF90DF90CF90EC -:10190000BF90AF909F908F907F906F905F900C945E -:1019100093077F928F929F92AF92BF92CF92DF9266 -:10192000EF92FF920F931F93CF93DF93CDB7DEB764 -:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 -:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 -:10195000BC2CAD2C01E010E028E1822E35E0932E66 -:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 -:10197000E1F7F601819191916F019C01207F33275E -:101980002032310591F424B18F709927A80102C04B -:10199000440F551F8A95E2F7CA01922F982B94B9EC -:1019A00095B18095892385B953C02033310591F4D1 -:1019B00027B18F709927F80102C0EE0FFF1F8A959B -:1019C000E2F7CF01922F982B97B998B18095892390 -:1019D00088B93EC02034310591F42AB18F7099271F -:1019E000A80102C0440F551F8A95E2F7CA01922F41 -:1019F000982B9AB99BB1809589238BB929C0203542 -:101A0000310591F42DB18F709927F80102C0EE0FC6 -:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 -:101A2000809589238EB914C02036310589F420B3FE -:101A30008F709927A80102C0440F551F8A95E2F7BD -:101A4000CA01922F982B90BB91B38095892381BBBB -:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A -:101A600040E050E0EEEDF2E0DE011196882D0190AD -:101A70000D928A95E1F7FB0181919191BF01FC01E3 -:101A8000E07FFF27E032F10511F4E3B113C0E0334A -:101A9000F10511F4E6B10EC0E034F10511F4E9B13D -:101AA00009C0E035F10511F4ECB104C0E036F105F0 -:101AB000B9F4EFB1F0E08F70992702C0F595E79582 -:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 -:101AD000991F0A94E2F702C080E090E0282B392B8E -:101AE0004F5F5F4F4C30510509F0BCCFF70180814B -:101AF00091818217930721F03183208390927302A2 -:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F -:101B1000F40609F025CF80917302882361F181508A -:101B200080937302882339F08FE99FE00197F1F7E2 -:101B300000C0000020C08091140390911503909381 -:101B40001D0380931C0380911603909117039093BB -:101B50001F0380931E0380911803909119039093A3 -:101B600021038093200380911A0390911B0390938B -:101B70002303809322030E94990781E0A0960FB669 -:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 -:101B9000FF90EF90DF90CF90BF90AF909F908F908D -:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA -:101BB00080819181089508958091020481608093CD -:101BC00002040C94F728809102048E7F8093020413 -:101BD0000C94F7280E94C928811102C00E94A528F0 -:101BE0000E94F328809302043E9A809171008D7FB9 -:101BF0008093710082E0809390008AE1809391004D -:101C000081E080932603089580912603811102C00C -:101C10000E94EA0D10927603109275038091710074 -:101C20008D7F80937100809190008F7780939000DA -:101C3000109238031092370310926F0310927003C2 -:101C4000109271031092720310926E0310926D0342 -:101C5000EDE4F3E0ADE3B3E0119211921192119231 -:101C60001D921D9283E0ED36F807B1F70895CF92EB -:101C7000DF92EF92FF920F931F93CF93DF93209108 -:101C80003703222309F484C06B017C018091260371 -:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A -:101CA000A7019601F80192918291729162918F0140 -:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 -:101CC000FF1FE35BFC4F1082118212821382DE0140 -:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B -:101CE000D105E9F021964481558166817781408351 -:101CF000518362837383148215821682178212962F -:101D00008D919C91139711969C938E9313961C9290 -:101D10001E92129734961296E2CF219708F6809180 -:101D2000750390917603019797FD05C09093760314 -:101D30008093750304C0109276031092750380910E -:101D400075039091760320917303309174032817E3 -:101D5000390724F01092740310927303892BC1F495 -:101D6000809171008D7F80937100809190008F77BA -:101D70008093900010926F03109270031092710381 -:101D80001092720310926E0310926D03109237033B -:101D9000DF91CF911F910F91FF90EF90DF90CF9047 -:101DA00008951F920F920FB60F9211244F925F92D7 -:101DB0006F927F928F929F92AF92BF92CF92DF925B -:101DC000EF92FF922F933F934F935F936F937F9385 -:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 -:101DE00080913703882309F49BC1C0917503D0917A -:101DF00076031C161D060CF093C1409027035090EB -:101E000028036090290370902A0320E030E0A901A4 -:101E1000C301B2010E94902F18160CF065C0C130AA -:101E2000D10509F452C08091730390917403BE01EF -:101E30000E9470317C0190937403809373038090AF -:101E4000390390903A03A0903B03B0903C0320E00C -:101E500030E040E85FE3C501B4010E94DD2D6093EE -:101E6000390370933A0380933B0390933C03F7014B -:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C -:101E800060817181828193810E94452E20E030E043 -:101E900040E05EE30E94942F9B01AC01C501B401B8 -:101EA0000E94902F18168CF4C7010196BE010E9463 -:101EB00070319093740380937303109239031092DE -:101EC0003A0310923B0310923C03E0917303F091AC -:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB -:101EE000718182819381D0C0C0906F03D0907003C4 -:101EF000E0907103F090720320E030E0A901C70187 -:101F0000B6010E94412E2197882309F4A2C0FE0148 -:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 -:101F2000A280B380A5019401C701B6010E94412E91 -:101F300087FF31C0A501940160E070E08CED93EC67 -:101F40000E94452E20E030E040E451E40E94452EFE -:101F500020E030E040E05FE30E94942F9B01AC0161 -:101F600060E070E080E090E40E94F72F9B01AC01FC -:101F7000C501B4010E94942F9B01AC01C701B601B9 -:101F80000E94412E87FF07C0A701960160E070E024 -:101F90008CED93E439C0A5019401C701B6010E94FC -:101FA000902F18160CF055C0A501940160E070E068 -:101FB0008CED93E40E94452E20E030E040E451E4B3 -:101FC0000E94452E20E030E040E05FE30E94942F25 -:101FD0009B01AC0160E070E080E090E40E94F72F8C -:101FE0009B01AC01C501B4010E94942F9B01AC017F -:101FF000C701B6010E94902F18165CF5A701960143 -:1020000060E070E08CED93EC0E94452E20E030E023 -:1020100040E451E40E94452E20E030E040E05FE3E0 -:102020000E94942F9B01AC0160E070E080E090E49E -:102030000E94F72F9B01AC01C701B6010E94942FAB -:1020400060936F0370937003809371039093720396 -:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF -:1020600080819181A281B38180936F0390937003EB -:10207000A0937103B093720360916F03709170032A -:102080008091710390917203209124033091250374 -:102090002F3F4FEF340731F02F5F3F4F3093250331 -:1020A000209324030E94F8126B017C0120E034E2AB -:1020B00044EF51E40E94412E87FF08C086EFC82EEE -:1020C00088E2D82E84EFE82E81E4F82E20E030E07C -:1020D00040E051E4C701B6010E94942F9B01AC017E -:1020E00060E074E284E79BE40E94452E6B017C0172 -:1020F0000E94AD2E70939700609396002091740219 -:10210000309175024091760250917702C701B60175 -:102110000E94942F0E94AD2E7093990060939800B6 -:1021200080913803882309F433C1C0903303D090E1 -:102130003403E0903503F090360320E030E0A9014D -:10214000C701B6010E94902F1816D4F58091240380 -:10215000909125038F3F2FEF920729F001969093DE -:10216000250380932403C701B6010E94F81220E0E2 -:1021700030E040E051E40E94942F9B01AC0160E00C -:1021800074E284E79BE40E94452E6B017C010E946F -:10219000AD2E709397006093960020917402309159 -:1021A00075024091760250917702C701B6010E94F4 -:1021B000942F0E94AD2E709399006093980008C0F0 -:1021C0001092970010929600109299001092980029 -:1021D00060912D0370912E036F5F7F4F70932E03DC -:1021E00060932D03209196003091970080E090E05D -:1021F000232BF1F0C0919600D09197000E94DE2E23 -:102200006B017C01BE0180E090E00E94DE2E9B010C -:10221000AC0160912F037091300380913103909154 -:1022200032030E94452E20E03FEF4FE757E410C0F5 -:102230000E94DE2E6B017C0120E030EE4FEF54E473 -:1022400060912F037091300380913103909132039C -:102250000E94942F9B01AC01C701B6010E94902FF0 -:1022600087FD96C080912B038F5F80932B0390E0B6 -:102270002091FE033091FF0382179307A0F0809115 -:102280000904882319F010922B030DC0809171006E -:102290008D7F80937100809190008F778093900064 -:1022A000109238037DC080912C03C0912B038111C3 -:1022B00028C0C0900304D0900404E0900504F0907E -:1022C000060420E030E0A901C701B6010E94902F6A -:1022D0001816BCF481E080932C0310923303109203 -:1022E00034031092350310923603C0922F03D0921C -:1022F0003003E0923103F0923203C150C0932B03BC -:1023000043C010922C031092250310922403E091F5 -:102310000004F091010448E0C49FE00DF11D112478 -:1023200080819181A281B3818093330390933403A0 -:10233000A0933503B093360320E030E040E85EE33D -:1023400064817581868197810E94942F6B017C0145 -:1023500020E030E048EC52E460917802709179021C -:1023600080917A0290917B020E94452E9B01AC01E4 -:10237000C701B6010E94942F60932F03709330031E -:10238000809331039093320310922E0310922D0309 -:102390008091020480FD04C010923803109237032C -:1023A000FF91EF91DF91CF91BF91AF919F918F916D -:1023B0007F916F915F914F913F912F91FF90EF909F -:1023C000DF90CF90BF90AF909F908F907F906F9055 -:1023D0005F904F900F900FBE0F901F901895CF9267 -:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 -:1023F00080912603811102C00E94EA0D809102049F -:1024000080FF46C0809175039091760308970CF089 -:102410003FC0809171008D7F80937100809138035F -:1024200081110E94040E81E08093370310922503EE -:102430001092240320E030E0A901C701B6010E94F8 -:10244000902F1816DCF48091750390917603FC01AF -:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 -:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D -:10247000C0830196909376038093750380917100D9 -:1024800082608093710080919000806880939000BA -:10249000DF91CF91FF90EF90DF90CF9008958F92D2 -:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 -:1024B0001F93CF93DF93EC017B01D42E4801590188 -:1024C00080912603811102C00E94EA0D80910204CE -:1024D00080FF6BC0809171008D7F8093710080912F -:1024E000370381110E94040E81E080933803D0935A -:1024F0000104C0930004F092FF03E092FE03D09227 -:1025000009048092030490920404A0920504B092FE -:1025100006041092390310923A0310923B03109272 -:102520003C0310922B0388819981AA81BB818093FF -:10253000330390933403A0933503B093360320E024 -:1025400030E040E85EE36C817D818E819F810E9456 -:10255000942F6B017C0120E030E048EC52E4609164 -:1025600078027091790280917A0290917B020E94A8 -:10257000452E9B01AC01C701B6010E94942F6093C8 -:102580002F037093300380933103909332031092A2 -:102590002E0310922D038091710082608093710050 -:1025A00080919000806880939000DF91CF911F917F -:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 -:1025C0008F9008958091770390E0019665E070E028 -:1025D0000E9470318093770308958091770390E093 -:1025E000019765E070E00E94703180937703089551 -:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 -:10260000CF93DF936B017C01C0912403D09125030C -:10261000BE0180E090E00E94DE2E4B015C01A7012C -:10262000960160E070E08CE594E40E94452E9B01E9 -:10263000AC01C501B4010E94942F0E94B22E4091BA -:102640007703423009F45CC028F4442351F0413050 -:10265000E9F0FBC0433009F481C0443009F4B4C050 -:10266000F4C080E090E0A0E0BFE380937402909318 -:102670007502A0937602B09377021092270310920E -:1026800028031092290310922A03DFC01092270317 -:10269000109228031092290310922A0364317105C5 -:1026A00040F46A307105E0F520E030E040E85EE398 -:1026B0003BC0693C710508F0C0C080E090E00E941A -:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 -:1026D00030E044E353E40E94452E9B01AC010E948C -:1026E000942F20E030E040E05EE30E94942F9B01B5 -:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 -:1027000010922703109228031092290310922A0393 -:102710006432710578F4FB01EC59FF4F0C9484315D -:1027200020E030E040E05FE3C701B6010E94942F53 -:102730006B017C0180E090E0A0E0BEE38093740236 -:1027400090937502A0937602B09377027EC0A701A2 -:102750009601C701B6010E94DD2DEACF1092270332 -:10276000109228031092290310922A032AE0269F30 -:10277000A001279F500D1124CA0168EB7BE00E9445 -:102780005C31BC016C5D754077FF03C0719561954C -:102790007109882777FD8095982F0E94E02E2EE3FF -:1027A00033EC4EE259E30E94942F20E030E040ECFD -:1027B0005EE30E94DD2D6093740270937502809336 -:1027C00076029093770241C010922703109228035B -:1027D0001092290310922A03CE0183709927892B26 -:1027E000E1F0BE016170772780E090E00E94DE2E6C -:1027F00020E030E040E05EE30E94942F20E030E0F3 -:1028000040E45FE30E94DD2D6093740270937502D3 -:1028100080937602909377020CC080E090E0A0E075 -:10282000BFE38093740290937502A0937602B093F5 -:102830007702C770DD27CD2B41F4109274021092FD -:1028400075021092760210927702C701B601DF91ED -:10285000CF91FF90EF90DF90CF90BF90AF909F907F -:102860008F900895809188030895CF93DF9300D0CF -:102870001F92CDB7DEB79C0180910E04843019F50C -:1028800093E099833B832A839093E9008FEF9091A3 -:10289000E800815095FD06C095ED9A95F1F700008E -:1028A0008111F5CF8091E80085FF0DC040E050E038 -:1028B00063E070E0CE0101960E9496168091E800D8 -:1028C0008E778093E8000F900F900F90DF91CF915B -:1028D0000895CF93DF9300D01F92CDB7DEB720913C -:1028E0000E04243021F522E029839B838A8383E030 -:1028F0008093E9008FEF9091E800815095FD06C02C -:1029000095ED9A95F1F700008111F5CF8091E800DF -:1029100085FF0DC040E050E063E070E0CE0101961D -:102920000E9496168091E8008E778093E8000F90C1 -:102930000F900F90DF91CF91089520910E042430D5 -:10294000F1F422E02093E9002FEF3091E8002150CC -:1029500035FD06C035ED3A95F1F700002111F5CFB0 -:102960002091E80025FF0BC040E050E065E070E0FA -:102970000E9496168091E8008E778093E800089573 -:10298000CF93DF93EC0190910E04943009F046C090 -:10299000809186028823D9F0809187028823B9F03C -:1029A0009093E9008FEF9091E800815095FD06C06B -:1029B00095E19A95F1F700008111F5CF8091E8003B -:1029C00085FF2CC040E050E060E170E017C081E07E -:1029D0008093E9008FEF9091E800815095FD06C04B -:1029E00095ED9A95F1F700008111F5CF8091E800FF -:1029F00085FF14C040E050E068E070E0CE010E9426 -:102A000096168091E8008E778093E80080E1FE01C1 -:102A1000A8E7B3E001900D928A95E1F7DF91CF919D -:102A2000089580910D04811109C00E942B180E9405 -:102A300088188091E20084608093E20008951092EB -:102A40000D040895089508950C94D02742E061EC98 -:102A500081E00E94A51742E061EC82E00E94A51788 -:102A600042E061EC83E00E94A51742E161EC84E062 -:102A70000C94A51780911004833009F455C030F4EC -:102A8000813071F0823009F48EC008958A3009F4E3 -:102A90007AC08B3009F460C0893009F09CC020C036 -:102AA00080910F04813A09F096C08091E800877FF9 -:102AB0008093E8008091130490911404892B21F4F1 -:102AC00060E188E793E003C060E080E090E070E0C0 -:102AD0000E94E1168091E8008B778093E8000895CA -:102AE00080910F04813209F076C080911304909197 -:102AF0001404009719F0039709F06DC08091E80065 -:102B0000877F8093E8008091E80082FD05C0809176 -:102B10000E048111F8CF5FC08091F100809388038B -:102B20008091E8008B7753C080910F04813A09F0BF -:102B300052C08091130490911404892B09F04BC06A -:102B40008091E800877F8093E8008091E80080FF13 -:102B5000FCCF8091860236C080910F048132D9F576 -:102B60008091130490911404892BA9F58091E800B9 -:102B7000877F8093E8000E94DA1780911104809388 -:102B800086020C944B2180910F04813221F58091B3 -:102B9000E800877F8093E8000E94DA178091120492 -:102BA00080938903089580910F04813AA1F4809164 -:102BB000E800877F8093E8008091E80080FFFCCFE9 -:102BC000809189038093F1008091E8008E77809353 -:102BD000E8000C94DA17089584B7877F84BF88E1F2 -:102BE0000FB6F89480936000109260000FBE90E0E2 -:102BF00080E80FB6F89480936100909361000FBE57 -:102C00000E947D1B0E942B180E9488188091E20070 -:102C100084608093E20078940E940E1B0E947F1BC8 -:102C20008CE792E00E94291B80910E04853069F4A4 -:102C30000E948A2780910C048823B1F30E94B82750 -:102C4000882391F30E948016EFCF0E94871BECCF60 -:102C5000292F332723303105C9F064F421303105A1 -:102C600081F02230310509F043C08DE690E022E882 -:102C700038E042C021323105F1F02232310541F114 -:102C800037C082E190E02FEE38E036C099278130DE -:102C9000910541F08230910541F0892B49F5EEE72D -:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 -:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 -:102CC000FF1FEE5FFC4F2081318189E090E014C04E -:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 -:102CE00020813181FB01EA50FD4F808190E004C0DA -:102CF00080E090E020E030E0FA0131832083089505 -:102D000080E189BD82E189BD09B400FEFDCF8091DB -:102D1000D8008F7D8093D8008091E00082608093FE -:102D2000E0008091E00081FDFCCF0895CF92DF921A -:102D3000EF92FF920F931F93CF93DF93EC018B01E0 -:102D40006A010E94F917811133C0C114D10439F00E -:102D5000F60180819181081B190BC80FD91FE12C46 -:102D6000F12C0115110519F18091E80085FD16C0BF -:102D70008091E8008E778093E800C114D10449F077 -:102D8000F60180819181E80EF91EF182E08285E0F2 -:102D90000FC00E94F917882321F30AC089918093FC -:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE -:102DB000DF91CF911F910F91FF90EF90DF90CF9017 -:102DC000089520911504309116042617370748F00E -:102DD0006115710539F42091E8002E772093E80001 -:102DE00001C0B90140E061157105A9F120910E04FF -:102DF000222309F443C0253009F442C02091E800A1 -:102E000023FD40C02091E80022FD32C02091E8005F -:102E100020FFE9CF4091F3002091F20030E0342B05 -:102E2000FC01CF016115710559F02830310540F4DE -:102E300081918093F100615071092F5F3F4FF1CF75 -:102E400041E02830310509F040E02091E8002E777C -:102E50002093E800C8CF4111C9CF0AC080910E0469 -:102E6000882361F0853061F08091E80083FD0AC01D -:102E70008091E80082FFF2CF80E0089582E008951B -:102E800083E0089581E0089520911504309116049F -:102E90002617370748F06115710539F42091E800CD -:102EA0002E772093E80001C0B901FC0120E06115F4 -:102EB000710591F180910E04882309F440C085309A -:102EC00009F43FC08091E80083FD3DC08091E80097 -:102ED00082FD2FC08091E80080FFE9CF2091F300B0 -:102EE0008091F20090E0922B6115710559F08830C5 -:102EF000910540F424912093F100319661507109BD -:102F00000196F2CF21E0089709F020E08091E800D7 -:102F10008E778093E800CBCF2111CCCF0AC080916F -:102F20000E04882361F0853061F08091E80083FD14 -:102F30000AC08091E80082FFF2CF80E0089582E02D -:102F4000089583E0089581E00895982F973058F50B -:102F50009093E900981739F07091EC002091ED0002 -:102F60005091F00003C0242F762F50E021FF19C0AC -:102F70003091EB003E7F3093EB003091ED003D7FD0 -:102F80003093ED003091EB0031603093EB007093A3 -:102F9000EC002093ED005093F0002091EE0027FF0D -:102FA00007C09F5FD3CF8F708093E90081E00895C1 -:102FB00080E0089580910F0487FF11C08091E800A0 -:102FC00082FD05C080910E048111F8CF11C080915F -:102FD000E8008B770BC080910E04882349F0809124 -:102FE000E80080FFF8CF8091E8008E778093E800BA -:102FF00008952091E4003091E50095E64091EC00C1 -:10300000842F817040FF22C08091E80080FD1CC0A9 -:1030100080910E04882391F0853091F08091EB002F -:1030200085FD10C04091E4005091E5004217530720 -:1030300029F39A01915011F784E0089582E00895F0 -:1030400083E0089581E0089580E008954091E800CC -:1030500042FFDECF08950E9499180E94A118E0EE69 -:10306000F0E0808181608083E8EDF0E080818F77FF -:10307000808319BCA7EDB0E08C918E7F8C9380810A -:103080008F7E808310920D0408950F931F93CF932A -:10309000DF930E9499180E94A118C8EDD0E08881A2 -:1030A0008F77888388818068888388818F7D8883F3 -:1030B00019BC10920E0410920A0410920C04109283 -:1030C0000B0400EE10E0F80180818B7F8083888103 -:1030D0008160888342E060E080E00E94A517E1EE15 -:1030E000F0E080818E7F8083E2EEF0E0808181607D -:1030F0008083808188608083F80180818E7F8083D7 -:10310000888180618883DF91CF911F910F9108950D -:10311000E8EDF0E080818F7E8083E7EDF0E0808154 -:103120008160808384E082BF81E080930D040C94F1 -:103130004518E8EDF0E080818E7F80831092E200F8 -:1031400008951092DA001092E10008951F920F92F4 -:103150000FB60F9211242F933F934F935F936F936A -:103160007F938F939F93AF93BF93EF93FF93809140 -:10317000E10082FF0BC08091E20082FF07C08091D6 -:10318000E1008B7F8093E1000E940D1B8091DA00AB -:1031900080FF1FC08091D80080FF1BC08091DA00A3 -:1031A0008E7F8093DA008091D90080FF0DC080E18E -:1031B00089BD82E189BD09B400FEFDCF81E0809325 -:1031C0000E040E94111505C019BC10920E040E9435 -:1031D0001F158091E10080FF19C08091E20080FFFF -:1031E00015C08091E2008E7F8093E2008091E20022 -:1031F00080618093E2008091D80080628093D80043 -:1032000019BC85E080930E040E9423158091E10093 -:1032100084FF30C08091E20084FF2CC080E189BD32 -:1032200082E189BD09B400FEFDCF8091D8008F7D79 -:103230008093D8008091E1008F7E8093E10080919F -:10324000E2008F7E8093E2008091E20081608093B3 -:10325000E20080910A04882311F084E007C0809185 -:10326000E30087FD02C081E001C083E080930E048B -:103270000E9424158091E10083FF29C08091E20023 -:1032800083FF25C08091E100877F8093E10082E089 -:1032900080930E0410920A048091E1008E7F809347 -:1032A000E1008091E2008E7F8093E2008091E20055 -:1032B00080618093E20042E060E080E00E94A51718 -:1032C0008091F00088608093F0000E942215FF91A9 -:1032D000EF91BF91AF919F918F917F916F915F918E -:1032E0004F913F912F910F900FBE0F901F90189507 -:1032F0001F920F920FB60F9211242F933F934F936B -:103300005F936F937F938F939F93AF93BF93CF936D -:10331000DF93EF93FF93C091E900CF708091EC00B1 -:10332000D82FD17080FDD0E81092E9008091F00094 -:10333000877F8093F00078940E94BC191092E90076 -:103340008091F00088608093F000CD2BCF70C09307 -:10335000E900FF91EF91DF91CF91BF91AF919F91E4 -:103360008F917F916F915F914F913F912F910F902E -:103370000FBE0F901F9018951F93CF93DF93CDB77B -:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 -:10339000F4E088E08E0F9091F10091938E13FBCFB3 -:1033A0000E943A158091E80083FF1FC180910F04AD -:1033B00090911004492F50E04A30510508F015C192 -:1033C000FA01E857FF4F0C948431803881F082383D -:1033D00009F00BC1809113048F708093E9008091F4 -:1033E000EB0085FB882780F91092E90006C08091E8 -:1033F0000B0490910C04911182609091E800977FEA -:103400009093E8008093F1001092F100C8C0282F3B -:103410002D7F09F0EAC0882319F0823061F0E5C001 -:1034200080911104813009F0E0C0933009F080E010 -:1034300080930C042BC080911104811127C08091CE -:1034400013048F7009F4D1C08093E9002091EB0040 -:1034500020FF1CC0933021F48091EB00806214C0E7 -:103460009091EB0090619093EB0021E030E0A90196 -:1034700002C0440F551F8A95E2F74093EA0010926C -:10348000EA008091EB0088608093EB001092E900E5 -:103490008091E800877F86C08111A7C01091110438 -:1034A0001F778091E3008078812B8093E3008091E7 -:1034B000E800877F8093E8000E94DA178091E80097 -:1034C00080FFFCCF8091E30080688093E3001111BE -:1034D00002C082E001C083E080930E0486C0805861 -:1034E000823008F082C080911104909112048C3DCA -:1034F00053E0950779F583E08A838AE289834FB7A1 -:10350000F894DE01139620E03EE051E2E32FF0E074 -:1035100050935700E49120FF03C0E295EF703F5FA6 -:10352000EF708E2F90E0EA3010F0C79601C0C09681 -:103530008D939D932F5F243149F74FBF8091E80011 -:10354000877F8093E8006AE270E0CE0101960E94D6 -:10355000E11614C0AE014F5F5F4F609113040E94EB -:103560002816BC01009709F440C09091E800977FAD -:103570009093E80089819A810E9444178091E80025 -:103580008B778093E80031C0803879F58091E8002E -:10359000877F8093E80080910A048093F1008091F6 -:1035A000E8008E778093E8000E94DA171EC0811130 -:1035B0001CC0909111049230C0F48091E800877F84 -:1035C0008093E80090930A040E94DA1780910A041D -:1035D000811106C08091E30087FD02C081E001C037 -:1035E00084E080930E040E9426158091E80083FFFA -:1035F0000AC08091E800877F8093E8008091EB000B -:1036000080628093EB00AA960FB6F894DEBF0FBEDF -:10361000CDBFDF91CF911F9108950895CF938091F1 -:103620000E048823A1F0C091E900CF709091EC00C6 -:10363000892F817090FD80E8C82B1092E90080915D -:10364000E80083FD0E94BC19CF70C093E900CF91C0 -:10365000089590938F0380938E030895E0918E03D5 -:10366000F0918F03309721F00190F081E02D0994C3 -:1036700080E00895E0918E03F0918F03309721F060 -:103680000280F381E02D09940895E0918E03F0917A -:103690008F03309721F00480F581E02D099408957F -:1036A00020918C0330918D038217930771F09093D2 -:1036B0008D0380938C03E0918E03F0918F033097FC -:1036C00021F00680F781E02D0994089520918A0366 -:1036D00030918B038217930771F090938B03809343 -:1036E0008A03E0918E03F0918F03309721F00084DC -:1036F000F185E02D0994089508950C947C1B0E9497 -:1037000004280E949A0B0E948A280C94452D4F92FF -:103710005F927F928F929F92AF92BF92CF92DF92F1 -:10372000EF92FF920F931F93CF93DF93CDB7DEB746 -:103730002A970FB6F894DEBF0FBECDBF0E94890C4A -:1037400091E9C92E93E0D92E00E010E0AA24A394B9 -:10375000B12C702E802F0E94D20D4C01F6014190A9 -:1037600051906F014826592641145104B1F40F5F5E -:103770001F4F0430110569F78FEF89838A831B82FD -:103780000E940D288160782F9D838C8349815A8106 -:103790006B818D810E94401C3AC08091ED0381FDB8 -:1037A0000E94DB0D20E030E07501022E02C0EE0C1D -:1037B000FF1C0A94E2F7C70184219521892B09F1A6 -:1037C0002E837F828E209F2091E0892809F490E04B -:1037D00098870E940D288160782F9A8789874E816B -:1037E0005F8168858A850E94401C000F111FF801C7 -:1037F000EF56FC4F80819181E826F926F182E08224 -:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC -:10381000762A109190030E942E1B1817D9F00E944F -:103820002E1B809390032A960FB6F894DEBF0FBE2E -:10383000CDBFDF91CF911F910F91FF90EF90DF905F -:10384000CF90BF90AF909F908F907F905F904F9060 -:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 -:10386000DF91CF911F910F91FF90EF90DF90CF905C -:10387000BF90AF909F908F907F905F904F900895F2 -:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B -:103890000FBECDBF4F83588769877A878B87DE013C -:1038A000119686E0FD0111928A95E9F785E0FE0107 -:1038B000379601900D928A95E1F749815A816B8183 -:1038C0007C818D819E810E94E5232B960FB6F89412 -:1038D000DEBF0FBECDBFDF91CF910895CF93882378 -:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 -:1038F000BBC089E30E948E260E945B2789E30CC02F -:10390000833879F40E942E1B80FDAEC083E50E94AF -:103910008E260E945B2783E50E94D026CF910C94CF -:103920005B27843859F40E942E1B82FD9DC087E4DA -:103930000E948E260E945B2787E4EECF8CEF8C0FCF -:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 -:103950000E948E26E3CF80E28C0F883048F4C77037 -:1039600081E001C0880FCA95EAF70E941427D6CFDC -:103970008BE58C0F833078F4C53A29F0C63A31F0E4 -:1039800083E890E005C081E890E002C082E890E022 -:10399000CF910C94501B88E58C0F833108F064C0E4 -:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 -:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F -:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F -:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D -:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 -:1039F00038C082EE90E035C089EE90E032C08AEEA9 -:103A000090E02FC085EB90E02CC086EB90E029C0C1 -:103A100087EB90E026C08CEC90E023C08DEC90E02A -:103A200020C083E891E01DC08AE891E01AC082E9D5 -:103A300091E017C084E991E014C081E292E011C0E6 -:103A400083E292E00EC084E292E00BC085E292E055 -:103A500008C086E292E005C087E292E002C08AE2F6 -:103A600092E0CF910C94661BCF910895882309F4BE -:103A70004BC0823859F40E942E1B81FF45C089E358 -:103A80000E948E260E945B2789E30CC0833871F464 -:103A90000E942E1B80FF38C083E50E948E260E9464 -:103AA0005B2783E50E94D0260C945B27843859F469 -:103AB0000E942E1B82FF28C087E40E948E260E944F -:103AC0005B2787E4EFCF9CEF980F913A58F390E291 -:103AD000980F983050F4877091E001C0990F8A9543 -:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 -:103AF00020F480E090E00C94501B885A833120F42D -:103B000080E090E00C94661B0895882321F00E94C9 -:103B100014270C945B270895882321F00E941A270C -:103B20000C945B270895BF92CF92DF92EF92FF92A1 -:103B30000F931F93CF93DF9300D000D000D0CDB769 -:103B4000DEB725E0FC01DE01119601900D922A9569 -:103B5000E1F7FC01D08011810281258122952F702F -:103B600043815481452B09F472C31F3F21F4FFEFB9 -:103B7000DF1609F46CC37C012E830E949B07D98257 -:103B80001A8369817A81802F0E948A26182FB92E84 -:103B90000E943F260E9406252E81002319F00E94D4 -:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE -:103BB0000C9484318B2D807F9B2D9F70F92E882350 -:103BC00019F0F29480EFF822002389F0FF2009F425 -:103BD0007CC280E2810F883020F48F2D0E94142750 -:103BE00003C08F2D0E9424270E945B276EC2812F65 -:103BF0000E94361DFF2009F42AC3105E8F2D183055 -:103C000018F40E941A2702C00E942A2726960FB68F -:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 -:103C2000FF90EF90DF90CF90BF900C945B278B2D8F -:103C3000807F9B2D9F70803211F4892F03C0892FC4 -:103C40008295807F112319F0113011F12BC00023D0 -:103C5000A9F0222389F1213079F526960FB6F89440 -:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF -:103C7000EF90DF90CF90BF900C944427222319F04F -:103C8000213009F4E4C28E830E9447278E819BC1B4 -:103C9000002321F0263008F0DAC20EC0253008F0EB -:103CA000D6C291C10023C9F0222331F0F7019581DA -:103CB00090FF0BC29F70958326960FB6F894DEBFD7 -:103CC0000FBECDBFDF91CF911F910F91FF90EF906D -:103CD000DF90CF90BF900C94851D222309F473C10F -:103CE00009C22B2D26952695237030E0211531052C -:103CF00021F021303105D1F0AAC2002321F0812F1B -:103D00009B2D937002C080E090E026960FB6F89449 -:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE -:103D2000EF90DF90CF90BF900C94501B002321F0B8 -:103D3000812F9B2D937002C080E090E026960FB6F5 -:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 -:103D5000FF90EF90DF90CF90BF900C94661B812F67 -:103D6000002319F00E947E2902C00E94E6292696AF -:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C -:103D80000F91FF90EF90DF90CF90BF900C946B2A33 -:103D90008B2D837009F07BC0011159C2812F829550 -:103DA00086958770880F880F912F9F70C92ED12C10 -:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 -:103DC0000A94D2F714FF12C04FE050E060E070E0B8 -:103DD00004C0440F551F661F771F8A95D2F7CB0189 -:103DE000BA01609570958095909503C060E070E091 -:103DF000CB012B2D269526952370422F50E0423083 -:103E00005105D9F04330510569F16C297D298E297E -:103E10009F294130510551F126960FB6F894DEBF27 -:103E20000FBECDBFDF91CF911F910F91FF90EF900B -:103E3000DF90CF90BF900C942D256C297D298E2981 -:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 -:103E5000CF911F910F91FF90EF90DF90CF90BF9087 -:103E60000C9449250E942D25C701B60126960FB650 -:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 -:103E8000FF90EF90DF90CF90BF900C94112500230E -:103E900019F08B2D817001C08695882309F4D7C154 -:103EA000812F829586958770880F880F912F9F703C -:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 -:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 -:103ED00060E070E004C0440F551F661F771F8A958D -:103EE000D2F7CB01BA01609570958095909503C08B -:103EF00060E070E0CB012B2D269526952370422F94 -:103F000050E042305105D9F04330510569F16C2938 -:103F10007D298E299F294130510551F126960FB6F2 -:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF -:103F3000FF90EF90DF90CF90BF900C9407266C29F4 -:103F40007D298E299F2926960FB6F894DEBF0FBED5 -:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 -:103F6000CF90BF900C9423260E940726C701B6016C -:103F700026960FB6F894DEBF0FBECDBFDF91CF916E -:103F80001F910F91FF90EF90DF90CF90BF900C9416 -:103F9000EB25103F49F118F4103E48F491C0123F50 -:103FA00009F453C0E8F1133F09F464C089C01F70DD -:103FB0008B2D8F71002321F00E948425812F7CCED0 -:103FC0000E94A525812F26960FB6F894DEBF0FBE5E -:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 -:103FE000CF90BF900C948C1D0023B1F0253008F0C9 -:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 -:10400000CDBFDF91CF911F910F91FF90EF90DF9087 -:10401000CF90BF900C94CA25263008F018C1E9CF84 -:104020000023A9F08B2D8F7126960FB6F894DEBF72 -:104030000FBECDBFDF91CF911F910F91FF90EF90F9 -:10404000DF90CF90BF900C948425002359F38B2DE3 -:104050008F7126960FB6F894DEBF0FBECDBFDF91ED -:10406000CF911F910F91FF90EF90DF90CF90BF9075 -:104070000C94A525002399F08B2D8F7126960FB6F1 -:10408000F894DEBF0FBECDBFDF91CF911F910F918E -:10409000FF90EF90DF90CF90BF900C946F25269605 +:100770000000000000000000000000000000010078 +:100780000050010001000100010001000100010012 +:10079000010001004C00010001000100073006309B +:1007A000135012500030013002300C3001000100B3 +:1007B0000B300A300930083001000100010001004F +:1007C0000100010001000100010001000100010021 +:1007D00001000100010001000100010001002803E7 +:1007E000540068006500200050006C0061006E003D +:1007F00063006B0020004B006500790062006F0011 +:1008000061007200640000002C034F00720074004D +:1008100068006F006C0069006E0065006100720086 +:1008200020004B006500790062006F0061007200DB +:100830006400730000000403090409026D00040150 +:1008400000A0FA09040000010301010009211101BF +:100850000001223F000705810308000A0904010086 +:100860000103010200092111010001224D000705C9 +:10087000820308000A0904020001030000000921A4 +:10088000110100012236000705830308000A09044C +:1008900003000103000000092111010001223900B9 +:1008A000070584031000011201100100000008ED8B +:1008B000FE606001000102000105010906A10105B9 +:1008C0000719E029E7150025019508750181020542 +:1008D0000819012905950575019102950175039186 +:1008E0000105071900297715002501957875018103 +:1008F00002C005010980A101850216010026B7008A +:100900001A01002AB700751095018100C0050C0975 +:1009100001A1018503160100269C021A01002A9CF0 +:1009200002751095018100C005010902A1010901AC +:10093000A100050919012905150025019505750175 +:100940008102950175038101050109300931158185 +:10095000257F95027508810609381581257F950147 +:1009600075088106050C0A38021581257F950175E9 +:10097000088106C0C005010906A101050719E02983 +:10098000E71500250195087501810295017508811B +:100990000105081901290595057501910295017553 +:1009A0000391010507190029FF150025FF9506751C +:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B +:1009C00004B603FE24C08091690490916A04A0914A +:1009D0006B04B0916C048730904BA740B04BB9F4D6 +:1009E0001092690410926A0410926B0410926C04C5 +:1009F00014BE84B7877F84BF88E10FB6F8948093D4 +:100A00006000109260000FBEE0E0F8E3099513E08B +:100A1000A0E0B1E0E2E4F4E602C005900D92A23657 +:100A2000B107D9F714E0A2E6B3E001C01D92A936E0 +:100A3000B107E1F70E94FD150C941F320C940000E1 +:100A4000279A2F988FEF9FEF9093870080938600CF +:100A50008AE08093800089E1809381000C94562D78 +:100A6000282F81110BC080918000877F80938000A8 +:100A700010928D0010928C002F9808952F988091DD +:100A80008000886080938000233019F48FEF9FEFFF +:100A90000FC083E090E0821B9109880F991F2FEF10 +:100AA0003FEFA90102C0569547958A95E2F7CA0122 +:100AB00090938D0080938C000895CF93DF93EC0189 +:100AC0000E94ED28BE0180E090E0DF91CF910C9470 +:100AD00018250F931F93462F50E04E30510508F014 +:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499 +:100AF000E331882309F4D3C000E010E0980140E01E +:100B000064E070E089E292E00E942B1281E090E0C4 +:100B10000FC0882309F4C3C000E010E0980140E052 +:100B200066E070E089EB91E00E942B1282E090E099 +:100B30000E945D05B4C0882309F4B1C000E010E054 +:100B4000980140E068E070E089EE91E00E942B128D +:100B500084E090E0EDCF882311F083E005C083E0CE +:100B60000CC0882349F084E00E94952540E164E0B0 +:100B700083E00E946D0A93C084E00E94B625F6CF00 +:100B8000882331F085EE0E947F1C0E94AD2D87C026 +:100B900085EE0E94471D83C0882309F480C00E940F +:100BA000BF0D7DC0882309F47AC00E94B80D00E013 +:100BB00010E0980140E065E070E089E492E027C031 +:100BC000882309F46CC085E00E94B6250E94E00DE0 +:100BD00066C0882309F463C000E010E0980140E09B +:100BE00068E070E089E191E00E942B1285E00E94AC +:100BF000952555C0882309F452C00E94BE1200E01A +:100C000010E0980140E068E070E089E191E00E9426 +:100C10002B1245C0882309F442C00E94C912EFCFAD +:100C20008823E9F100E010E0980140E066E070E020 +:100C300089E891E00E942B1284E00E94B62583E0AF +:100C40000E94B62580E10E94B62585E00E94B62567 +:100C50000E94E00D86E00E9495250E94DA2881110D +:100C600002C00E94B6280E94F22890E09093680487 +:100C7000809367048068809367040E94F6280FC001 +:100C8000882369F000E010E0980140E066E070E041 +:100C900089E591E00E942B1286E00E94B62580E053 +:100CA00090E01F910F9108950F931F932FEF89EFFD +:100CB00090E0215080409040E1F700C0000000E04B +:100CC00010E0980140E065E070E089E492E00E9465 +:100CD0002B121F910F9108950F931F9300E010E0C6 +:100CE000980140E063E070E081E091E00E942B1207 +:100CF0002FEF82E597E0215080409040E1F700C05F +:100D000000001F910F910895CF92DF92EF92FF9212 +:100D10000F931F93CF93DF93CDB7DEB7CC58D10994 +:100D20000FB6F894DEBF0FBECDBF2091210425FF82 +:100D3000C5C08C01FC01928180910001992309F4C6 +:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF +:100D50000D929A95E1F7F8019081E0916203F0918C +:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6 +:100D70003D1FE20FF31F60817181680F711D88278D +:100D800077FD8095982F0E94F12E20E030E040E41E +:100D900051E40E94562E6B017C01F801218184E010 +:100DA00090E0821B9109BC01882777FD8095982FE0 +:100DB0000E94F12E9B01AC01C701B6010E94EE2DED +:100DC0009B01AC0160E070E080E090E40E94643040 +:100DD00020E030E04CE551E40E9401304FE050E06B +:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103 +:100DF000CF911F910F91FF90EF90DF90CF900C94C7 +:100E0000CB1196E4EEE8F2E0DE01119601900D922E +:100E10009A95E1F7F8019081E0916203F091630304 +:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9 +:100E3000E20FF31F60817181680F711D882777FDB4 +:100E40008095982F0E94F12E20E030E040E451E49C +:100E50000E94562E6B017C01F801218184E090E014 +:100E6000821B9109BC01882777FD8095982F0E94ED +:100E7000F12E9B01AC01C701B6010E94EE2D9B0132 +:100E8000AC0160E070E080E090E40E94643020E01B +:100E900030E04CE551E40E940130C457DF4F0FB6FB +:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0 +:100EB000FF90EF90DF90CF900C94130EC457DF4F4C +:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B +:100ED0000F91FF90EF90DF90CF90089508950E94BA +:100EE00020056E9A769A0C9454060C946E070C9416 +:100EF00084060895880F991FFC01E250F040859107 +:100F000094910895880F991FFC01E258FE4F859136 +:100F1000949108950F931F93CF93DF93EC01811564 +:100F200020E49207A0F5C11580E3D80708F0E1C0DE +:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C +:100F4000D10578F4C53AD10508F074C0C130D10597 +:100F500009F46DC008F4DEC1C430D10508F0DDC16C +:100F6000D9C1CB3BD10508F470C0D4C1C11590E202 +:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA +:100F8000C03FD10508F4C6C18E01106506C2C1304C +:100F900080E5D80709F4BDC068F5C13120E4D20767 +:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0 +:100FB000CF70DD278E01146DF0C1C33120E4D2075C +:100FC00009F4A4C008F49FC0C115D04509F0A2C11E +:100FD0000E945C210E94E00D0E946C069FEF24E3BA +:100FE0008CE0915020408040E1F700C000000E945A +:100FF0007928D3C1C11520E6D20730F4C11581E5A7 +:10100000D80708F48CC02DC1C11590E7D90708F4A2 +:1010100081C1C11520E8D20708F478C1C11580E963 +:10102000D80708F077C1DF708E01106AB6C101E001 +:1010300010E0B3C1C53AD10509F471C1C63AD10572 +:1010400009F070C102E810E4A8C1C83AD10509F45A +:101050006CC1C93AD10509F46BC1CA3AD10509F48A +:101060006AC1CB3AD10509F469C1CC3AD10509F47A +:1010700068C1CD3AD10509F467C1C03BD10509F477 +:1010800066C1CE3AD10509F465C1CF3AD10509F45C +:1010900064C1C13BD10509F463C1C23BD10509F468 +:1010A00062C1C33BD10509F461C1C43BD10509F458 +:1010B00060C1C53BD10509F45FC1C63BD10509F448 +:1010C0005EC1C73BD10509F45DC1C83BD10509F438 +:1010D0005CC1C93BD10509F45BC1CA3BD10509F428 +:1010E0005AC100E014E459C1CE019F700E948207EA +:1010F00055C1DD278E01106C50C100E011ED4DC1CE +:1011000000E010ED4AC100E012ED47C100E013ED30 +:1011100044C180913D04816080933D043EC10E94A2 +:10112000DA28811102C00E94B6280E94F22890E0BD +:101130009093680480936704C23090E5D90721F446 +:1011400080916704816086C0C43020E5D20721F415 +:101150008091670482607EC0C63080E5D80721F4A4 +:1011600080916704846076C0C83090E5D90719F48F +:101170008091670427C0CA3020E5D20721F480910E +:101180006704806167C0CC3080E5D80721F4809186 +:10119000670480625FC0CE3090E5D90721F480916A +:1011A0006704806457C0C03120E5D20721F48091E4 +:1011B000670480684FC0C23180E5D80729F4809168 +:1011C00067048460886046C0C33090E5D90721F485 +:1011D000809167048E7F3EC0C53020E5D20721F4A0 +:1011E000809167048D7F36C0C73080E5D80721F431 +:1011F000809167048B7F2EC0C93090E5D90719F420 +:101200008091670426C0CB3020E5D20721F480917D +:1012100067048F7E1FC0CD3080E5D80721F4809110 +:1012200067048F7D17C0CF3090E5D90721F48091F6 +:1012300067048F7B0FC0C13120E5D20721F4809174 +:1012400067048F7707C0C331D04531F480916704BC +:101250008B7F877F80936704809167040E94F628C4 +:101260009CC08D2F99278F70992781309105D9F4D3 +:101270009E012370332702C0880F991F2A95E2F739 +:101280009C688E0144E0000F111F4A95E1F700278A +:101290001370802B912B53E0CC0FDD1F5A95E1F793 +:1012A000C076DD272FC08230910531F4DC2FCC27AA +:1012B0008E01016F106A71C08330910569F4CE010F +:1012C0008370992701E010E002C0000F111F8A957A +:1012D000E2F7C8019C680FC0049709F05EC0CE0118 +:1012E0008370992701E010E002C0000F111F8A955A +:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9 +:10130000C07ED7708C010C2B1D2B47C0DF708E0167 +:10131000106243C000E010E040C08E013EC001E812 +:1013200010E43BC003E810E438C002EE14E435C01A +:1013300009EE14E432C00AEE14E42FC005EB14E405 +:101340002CC006EB14E429C007EB14E426C00CEC17 +:1013500014E423C00DEC14E420C003E815E41DC020 +:101360000AE815E41AC002E915E417C004E915E417 +:1013700014C001E216E411C003E216E40EC004E258 +:1013800016E40BC005E216E408C006E216E405C048 +:1013900007E216E402C00AE216E4C801DF91CF9129 +:1013A0001F910F9108959CE0799FF001112490E323 +:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7 +:1013C000E258FE4F85919491803E9105E0F4803C77 +:1013D000910558F58133910509F46FC048F48932BD +:1013E000910509F463C08A32910509F46DC072C099 +:1013F00089339105E9F082389105D1F08533910563 +:1014000009F44DC067C0833E910581F138F4803EF8 +:101410009105B9F0823E9105D9F05CC0863E9105F8 +:1014200061F1873E9105A1F155C00E947A070895A8 +:101430002091670420FD02C021FF4CC080EE90E0A7 +:1014400049C08091670480FFF9CF89E390E042C0F2 +:101450008091670482FF0EC08091670484FF03C0FF +:1014600080E090E037C083EE90E034C08091670464 +:1014700082FFF2CF82EE90E02DC08091670483FF5F +:101480000BC08091670484FDEBCF87EE90E022C013 +:101490008091670483FFF5CF86EE90E01BC08091BA +:1014A000670485FF07C089E290E014C0809167045B +:1014B00085FFF9CF85E390E00DC08091670486FF3A +:1014C00007C08AE290E006C08091670486FFF9CFEA +:1014D00081E390E00E948A070895CF92DF92EF9215 +:1014E000FF920F931F9301E010E020E030E06801CD +:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0 +:1015000004C0000F111F221F331F6A95D2F70C2948 +:101510001D292E293F29C0902104D0902204E0905B +:101520002304F0902404C022D122E222F322842F4B +:10153000C016D106E206F30641F41F910F91FF9009 +:10154000EF90DF90CF900C9495251F910F91FF9015 +:10155000EF90DF90CF900C94B62508950C94AD0ACF +:101560005F926F927F928F929F92AF92BF92CF9233 +:10157000DF92EF92FF920F931F93CF93DF93CDB73C +:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1 +:1015900001966C014E0199E0890E911C20E030E02B +:1015A00040E050E060E070E000E010E0E12CF12C61 +:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49 +:1015C000F2E0A62DB52D872D01900D928A95E1F7B9 +:1015D000F601819191916F01FC01E07FFF27E032DC +:1015E000F10559F48F709927F50102C0EE0FFF1F26 +:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465 +:101600008F709927F50102C0EE0FFF1F8A95E2F750 +:101610000E2B1F2B29C0E034F10559F48F70992748 +:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC +:101630001BC0E035F10559F48F709927F50102C000 +:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1 +:10165000F10551F48F709927F50102C0EE0FFF1FBD +:101660008A95E2F72E2B3F2BC814D90409F0A7CF97 +:1016700084B19E2D9095892384B985B1E82AE5B877 +:1016800087B1902F9095892387B988B1082B08B925 +:101690008AB1962F909589238AB98BB1682B6BB943 +:1016A0008DB1942F909589238DB98EB1482B4EB969 +:1016B00080B3922F9095892380BB81B3282B21BBC7 +:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145 +:1016D0001F910F91FF90EF90DF90CF90BF90AF9050 +:1016E0009F908F907F906F905F9008955F926F9220 +:1016F0007F928F929F92AF92BF92CF92DF92EF92A2 +:10170000FF920F931F93CF93DF93CDB7DEB7689708 +:101710000FB6F894DEBF0FBECDBF85B7806885BF1A +:1017200085B7806885BF0E94B00ACE0101966C0122 +:101730004E0199E1890E911C20E030E040E050E03C +:1017400060E070E000E010E0E12CF12C6C2C5D2CEE +:1017500088E1782EAA24A394B12CECEDF2E0A62D1A +:10176000B52D872D01900D928A95E1F7F6018191B3 +:1017700091916F01FC01E07FFF27E032F10559F400 +:101780008F709927F50102C0EE0FFF1F8A95E2F7CF +:10179000EE2AFF2A37C0E033F10559F48F709927FC +:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB +:1017B00029C0E034F10559F48F709927F50102C072 +:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3 +:1017D000F10559F48F709927F50102C0EE0FFF1F34 +:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0 +:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F +:101800002E2B3F2BC814D90409F0A7CF84B19E2DED +:101810009095892384B985B1E82AE5B887B1902FDE +:101820009095892387B988B1082B08B98AB1962F7A +:10183000909589238AB98BB1682B6BB98DB1942FA0 +:10184000909589238DB98EB1482B4EB980B3922FD4 +:101850009095892380BB81B3282B21BB10926D0307 +:1018600010926C03109265031092640310926F0340 +:1018700010926E0310926703109266031092710328 +:101880001092700310926903109268031092730310 +:101890001092720310926B0310926A0368960FB64F +:1018A000F894DEBF0FBECDBFDF91CF911F910F9196 +:1018B000FF90EF90DF90CF90BF90AF909F908F9070 +:1018C0007F906F905F900C946F077F928F929F92A2 +:1018D000AF92BF92CF92DF92EF92FF920F931F933E +:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6 +:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7 +:1019000083E0F82E98E0792EBC2CAD2C01E010E09D +:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6 +:10192000872D01900D928A95E1F7F60181919191B1 +:101930006F019C01207F33272032310591F424B1BF +:101940008F709927A80102C0440F551F8A95E2F7AE +:10195000CA01922F982B94B995B18095892385B9A6 +:1019600053C02033310591F427B18F709927F801C6 +:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E +:1019800097B998B18095892388B93EC02034310534 +:1019900091F42AB18F709927A80102C0440F551FF6 +:1019A0008A95E2F7CA01922F982B9AB99BB180953C +:1019B00089238BB929C02035310591F42DB18F7061 +:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9 +:1019D000922F982B9DB99EB1809589238EB914C002 +:1019E0002036310589F420B38F709927A80102C0F1 +:1019F000440F551F8A95E2F7CA01922F982B90BB8E +:101A000091B38095892381BB50EA5A95F1F7BE01C5 +:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F +:101A2000DE011196882D01900D928A95E1F7FB0158 +:101A300081919191BF01FC01E07FFF27E032F10528 +:101A400011F4E3B113C0E033F10511F4E6B10EC0B7 +:101A5000E034F10511F4E9B109C0E035F10511F404 +:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED +:101A7000992702C0F595E7958A95E2F7E0FD08C041 +:101A8000C801042E02C0880F991F0A94E2F702C011 +:101A900080E090E0282B392B4F5F5F4F4C30510591 +:101AA00009F0BCCFF701808191818217930721F063 +:101AB00031832083909271020E94B00AF2E0EF0E0F +:101AC000F11C4CE6E41643E0F40609F025CF8091C2 +:101AD0007102882361F1815080937102882339F06B +:101AE0008FE99FE00197F1F700C0000020C08091CE +:101AF00064039091650390936D0380936C038091D0 +:101B000066039091670390936F0380936E038091B7 +:101B1000680390916903909371038093700380919F +:101B20006A0390916B0390937303809372030E94F6 +:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B +:101B4000DF91CF911F910F91FF90EF90DF90CF9099 +:101B5000BF90AF909F908F907F900895E82FF0E016 +:101B6000EE0FFF1FE459FC4F808191810895089585 +:101B7000809152048160809352040C9408298091D2 +:101B800052048E7F809352040C9408290E94DA2814 +:101B9000811102C00E94B6280E9404298093520439 +:101BA0003E9A809171008D7F8093710082E08093D6 +:101BB00090008AE18093910081E0809376030895FC +:101BC00080917603811102C00E94C60D1092C60357 +:101BD0001092C503809171008D7F80937100809178 +:101BE00090008F7780939000109288031092870363 +:101BF0001092BF031092C0031092C1031092C2034F +:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E +:101C100011921192119211921D921D9283E0ED3B4F +:101C2000F807B1F70895CF92DF92EF92FF920F93EA +:101C30001F93CF93DF9320918703222309F484C05D +:101C40006B017C0180917603811102C00E94C60D58 +:101C50000DEB13E0C7E0D0E0A7019601F8019291E7 +:101C60008291729162918F010E94522E811131C036 +:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219 +:101C8000118212821382DE01AA0FBB1FA357BC4F21 +:101C900011961C921E92C730D105E9F0219644811D +:101CA0005581668177814083518362837383148277 +:101CB00015821682178212968D919C911397119618 +:101CC0009C938E9313961C921E92129734961296A2 +:101CD000E2CF219708F68091C5039091C603019742 +:101CE00097FD05C09093C6038093C50304C010926E +:101CF000C6031092C5038091C5039091C60320913D +:101D0000C3033091C4032817390724F01092C40389 +:101D10001092C303892BC1F4809171008D7F809351 +:101D20007100809190008F77809390001092BF0394 +:101D30001092C0031092C1031092C2031092BE030E +:101D40001092BD0310928703DF91CF911F910F91E5 +:101D5000FF90EF90DF90CF9008951F920F920FB6F3 +:101D60000F9211244F925F926F927F928F929F9267 +:101D7000AF92BF92CF92DF92EF92FF922F933F9359 +:101D80004F935F936F937F938F939F93AF93BF9383 +:101D9000CF93DF93EF93FF9380918703882309F418 +:101DA0009BC1C091C503D091C6031C161D060CF043 +:101DB00093C14090770350907803609079037090BE +:101DC0007A0320E030E0A901C301B2010E94FD2F97 +:101DD00018160CF065C0C130D10509F452C08091CD +:101DE000C3039091C403BE010E94CF317C01909344 +:101DF000C4038093C3038090890390908A03A090CA +:101E00008B03B0908C0320E030E040E85FE3C50135 +:101E1000B4010E94EE2D6093890370938A0380932E +:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44 +:101E3000E356FC4FA30192016081718182819381FD +:101E40000E94562E20E030E040E05EE30E94013028 +:101E50009B01AC01C501B4010E94FD2F18168CF442 +:101E6000C7010196BE010E94CF319093C4038093B5 +:101E7000C3031092890310928A0310928B0310926D +:101E80008C03E091C303F091C403EE0FFF1FEE0F2C +:101E9000FF1FE356FC4F6081718182819381D0C026 +:101EA000C090BF03D090C003E090C103F090C20384 +:101EB00020E030E0A901C701B6010E94522E21970F +:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3 +:101ED000E356FC4F80809180A280B380A5019401DD +:101EE000C701B6010E94522E87FF31C0A50194019F +:101EF00060E070E08CED93EC0E94562E20E030E024 +:101F000040E451E40E94562E20E030E040E05FE3E0 +:101F10000E9401309B01AC0160E070E080E090E441 +:101F20000E9464309B01AC01C501B4010E940130E4 +:101F30009B01AC01C701B6010E94522E87FF07C06A +:101F4000A701960160E070E08CED93E439C0A50133 +:101F50009401C701B6010E94FD2F18160CF055C060 +:101F6000A501940160E070E08CED93E40E94562E90 +:101F700020E030E040E451E40E94562E20E030E0C2 +:101F800040E05FE30E9401309B01AC0160E070E043 +:101F900080E090E40E9464309B01AC01C501B40173 +:101FA0000E9401309B01AC01C701B6010E94FD2FC8 +:101FB00018165CF5A701960160E070E08CED93ECDB +:101FC0000E94562E20E030E040E451E40E94562E5C +:101FD00020E030E040E05FE30E9401309B01AC0173 +:101FE00060E070E080E090E40E9464309B01AC010E +:101FF000C701B6010E9401306093BF037093C00314 +:102000008093C1039093C20313C0FE01EE0FFF1F24 +:10201000EE0FFF1FE356FC4F80819181A281B381B7 +:102020008093BF039093C003A093C103B093C203F6 +:102030006091BF037091C0038091C1039091C2036E +:1020400020917403309175032F3F4FEF340731F027 +:102050002F5F3F4F30937503209374030E94D41277 +:102060006B017C0120E034E244EF51E40E94522EE7 +:1020700087FF08C086EFC82E88E2D82E84EFE82EAE +:1020800081E4F82E20E030E040E051E4C701B601E1 +:102090000E9401309B01AC0160E074E284E79BE4A4 +:1020A0000E94562E6B017C010E94BE2E70939700F9 +:1020B00060939600209172023091730240917402F5 +:1020C00050917502C701B6010E9401300E94BE2ED8 +:1020D000709399006093980080918803882309F495 +:1020E00033C1C0908303D0908403E0908503F090C7 +:1020F000860320E030E0A901C701B6010E94FD2F50 +:102100001816D4F580917403909175038F3F2FEFCB +:10211000920729F001969093750380937403C70189 +:10212000B6010E94D41220E030E040E051E40E9469 +:1021300001309B01AC0160E074E284E79BE40E9403 +:10214000562E6B017C010E94BE2E70939700609307 +:102150009600209172023091730240917402509166 +:102160007502C701B6010E9401300E94BE2E709315 +:1021700099006093980008C0109297001092960002 +:10218000109299001092980060917D0370917E03E7 +:102190006F5F7F4F70937E0360937D032091960065 +:1021A0003091970080E090E0232BF1F0C0919600F1 +:1021B000D09197000E94EF2E6B017C01BE0180E060 +:1021C00090E00E94EF2E9B01AC0160917F03709123 +:1021D000800380918103909182030E94562E20E01B +:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8 +:1021F00020E030EE4FEF54E460917F037091800354 +:1022000080918103909182030E9401309B01AC0177 +:10221000C701B6010E94FD2F87FD96C080917B0308 +:102220008F5F80937B0390E020914E0430914F04A8 +:1022300082179307A0F080915904882319F0109217 +:102240007B030DC0809171008D7F80937100809120 +:1022500090008F7780939000109288037DC08091CA +:102260007C03C0917B03811128C0C0905304D0909F +:102270005404E0905504F090560420E030E0A901A9 +:10228000C701B6010E94FD2F1816BCF481E08093AF +:102290007C031092830310928403109285031092A2 +:1022A0008603C0927F03D0928003E0928103F09274 +:1022B0008203C150C0937B0343C010927C031092F1 +:1022C000750310927403E0915004F091510448E0BA +:1022D000C49FE00DF11D112480819181A281B38101 +:1022E0008093830390938403A0938503B093860324 +:1022F00020E030E040E85EE364817581868197816B +:102300000E9401306B017C0120E030E048EC52E497 +:1023100060917602709177028091780290917902B3 +:102320000E94562E9B01AC01C701B6010E940130EC +:1023300060937F0370938003809381039093820363 +:1023400010927E0310927D038091520480FD04C0A0 +:102350001092880310928703FF91EF91DF91CF9144 +:10236000BF91AF919F918F917F916F915F914F91AD +:102370003F912F91FF90EF90DF90CF90BF90AF9063 +:102380009F908F907F906F905F904F900F900FBEB7 +:102390000F901F901895CF92DF92EF92FF92CF93FC +:1023A000DF936B017C01EA0180917603811102C009 +:1023B0000E94C60D8091520480FF46C08091C503E3 +:1023C0009091C60308970CF03FC0809171008D7FFB +:1023D000809371008091880381110E94E00D81E05B +:1023E00080938703109275031092740320E030E00D +:1023F000A901C701B6010E94FD2F1816DCF48091D7 +:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7 +:10241000E356FC4FC082D182E282F382FC01EE0FD0 +:10242000FF1FE357FC4FD183C08301969093C603EF +:102430008093C503809171008260809371008091C8 +:102440009000806880939000DF91CF91FF90EF9093 +:10245000DF90CF9008958F929F92AF92BF92CF92CC +:10246000DF92EF92FF920F931F93CF93DF93EC01D4 +:102470007B01D42E4801590180917603811102C05D +:102480000E94C60D8091520480FF6BC08091710044 +:102490008D7F809371008091870381110E94E00DF0 +:1024A00081E080938803D0935104C0935004F0924C +:1024B0004F04E0924E04D0925904809253049092BB +:1024C0005404A0925504B0925604109289031092BD +:1024D0008A0310928B0310928C0310927B038881E5 +:1024E0009981AA81BB818093830390938403A093F5 +:1024F0008503B093860320E030E040E85EE36C8122 +:102500007D818E819F810E9401306B017C0120E0E2 +:1025100030E048EC52E4609176027091770280914D +:102520007802909179020E94562E9B01AC01C7015E +:10253000B6010E94013060937F0370938003809303 +:1025400081039093820310927E0310927D03809109 +:102550007100826080937100809190008068809308 +:102560009000DF91CF911F910F91FF90EF90DF903E +:10257000CF90BF90AF909F908F9008958091C703A8 +:1025800090E0019666E070E00E94CF318093C7032F +:1025900008958091C70390E0019766E070E00E9483 +:1025A000CF318093C70308958F929F92AF92BF92CD +:1025B000CF92DF92EF92FF920F931F93CF93DF930F +:1025C0006B017C01C0917403D0917503BE0180E062 +:1025D00090E00E94EF2E4B015C01A701960160E0A4 +:1025E00070E08CE594E40E94562E9B01AC01C5017D +:1025F000B4010E9401300E94C32E2091C7032330F2 +:1026000009F473C028F4222351F02130E9F02CC1E1 +:10261000243009F4A0C0253009F4E0C025C180E0D1 +:1026200090E0A0E0BFE38093720290937302A093C6 +:102630007402B0937502109277031092780310928F +:10264000790310927A0310C11092770310927803E5 +:102650001092790310927A036431710540F46A3064 +:10266000710560F520E030E040E85EE32BC0693C96 +:10267000710508F0AAC080E090E00E94EF2E20E0F3 +:1026800030E040EA51E40E94ED2D20E030E044E3E8 +:1026900053E40E94562E9B01AC010E94013020E0C1 +:1026A00030E040E05EE30E9401309B01AC0160E05D +:1026B00070E080E09EE30E94ED2D44C020E030E019 +:1026C00040E05FE3C701B6010E9401306B017C016D +:1026D00080E090E0A0E0BEE38093720290937302EA +:1026E000A0937402B0937502BFC01092770310924A +:1026F00078031092790310927A034AE0469F900182 +:10270000479F300D1124C90168EB7BE00E94BB316B +:10271000BC016C5D754077FF03C0719561957109CF +:10272000882777FD8095982F0E94F12E2EE333ECB9 +:102730004EE259E30E94013020E030E040EC5EE3DD +:102740000E94EE2D60937202709373028093740264 +:102750009093750289C010927703109278031092BB +:10276000790310927A03CE0183709927892BE1F0C7 +:10277000BE016170772780E090E00E94EF2E20E09C +:1027800030E040E05EE30E94013020E030E040E4D1 +:102790005FE30E94EE2D6093720270937302809348 +:1027A0007402909375020CC080E090E0A0E0BFE35B +:1027B0008093720290937302A0937402B093750297 +:1027C000C770DD27CD2B09F04FC010927202109216 +:1027D0007302109274021092750246C01092770331 +:1027E000109278031092790310927A0300E010E0BF +:1027F00020E03FE30093720210937302209374026F +:10280000309375026739710578F180E090E00E949D +:10281000EF2E20E030E047E153E40E94ED2D20E070 +:1028200030E04AE754E40E94562E20E030E048E4CD +:1028300052E40E94013020E030E040EA51E40E947E +:10284000332F0E94BE2E660F771F660F771FFB0186 +:10285000EC50FD4F2081318142815381C701B60187 +:102860000E9401306B017C01C701B601DF91CF915D +:102870001F910F91FF90EF90DF90CF90BF90AF909E +:102880009F908F9008958091D8030895CF93DF9300 +:1028900000D01F92CDB7DEB79C0180915E048430DA +:1028A00019F593E099833B832A839093E9008FEF96 +:1028B0009091E800815095FD06C095ED9A95F1F74D +:1028C00000008111F5CF8091E80085FF0DC040E048 +:1028D00050E063E070E0CE0101960E94A71680915F +:1028E000E8008E778093E8000F900F900F90DF91B3 +:1028F000CF910895CF93DF9300D01F92CDB7DEB76D +:1029000020915E04243021F522E029839B838A8371 +:1029100083E08093E9008FEF9091E800815095FD6E +:1029200006C095ED9A95F1F700008111F5CF8091E1 +:10293000E80085FF0DC040E050E063E070E0CE01AC +:1029400001960E94A7168091E8008E778093E80098 +:102950000F900F900F90DF91CF91089520915E041A +:102960002430F1F422E02093E9002FEF3091E800C9 +:10297000215035FD06C035ED3A95F1F700002111E3 +:10298000F5CF2091E80025FF0BC040E050E065E066 +:1029900070E00E94A7168091E8008E778093E8008F +:1029A0000895CF93DF93EC0190915E04943009F089 +:1029B00046C0809184028823D9F0809185028823C3 +:1029C000B9F09093E9008FEF9091E800815095FD68 +:1029D00006C095E19A95F1F700008111F5CF80913D +:1029E000E80085FF2CC040E050E060E170E017C0D7 +:1029F00081E08093E9008FEF9091E800815095FD90 +:102A000006C095ED9A95F1F700008111F5CF809100 +:102A1000E80085FF14C040E050E068E070E0CE01BF +:102A20000E94A7168091E8008E778093E80080E1ED +:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9 +:102A4000CF91089580915D04811109C00E943C18C6 +:102A50000E9499188091E20084608093E2000895BA +:102A600010925D040895089508950C94E12742E0C2 +:102A700061EC81E00E94B61742E061EC82E00E94C6 +:102A8000B61742E061EC83E00E94B61742E161ECC8 +:102A900084E00C94B61780916004833009F455C02B +:102AA00030F4813071F0823009F48EC008958A309C +:102AB00009F47AC08B3009F460C0893009F09CC0F9 +:102AC00020C080915F04813A09F096C08091E800AF +:102AD000877F8093E8008091630490916404892B40 +:102AE00021F460E188EC93E003C060E080E090E0D6 +:102AF00070E00E94F2168091E8008B778093E800E6 +:102B0000089580915F04813209F076C0809163045A +:102B100090916404009719F0039709F06DC08091BB +:102B2000E800877F8093E8008091E80082FD05C07F +:102B300080915E048111F8CF5FC08091F100809395 +:102B4000D8038091E8008B7753C080915F04813A6D +:102B500009F052C08091630490916404892B09F0BC +:102B60004BC08091E800877F8093E8008091E80067 +:102B700080FFFCCF8091840236C080915F04813257 +:102B8000D9F58091630490916404892BA9F5809113 +:102B9000E800877F8093E8000E94EB178091610432 +:102BA000809384020C945C2180915F04813221F532 +:102BB0008091E800877F8093E8000E94EB17809166 +:102BC00062048093D903089580915F04813AA1F44F +:102BD0008091E800877F8093E8008091E80080FF83 +:102BE000FCCF8091D9038093F1008091E8008E772B +:102BF0008093E8000C94EB17089584B7877F84BF17 +:102C000088E10FB6F89480936000109260000FBEC8 +:102C100090E080E80FB6F894809361009093610093 +:102C20000FBE0E948E1B0E943C180E949918809132 +:102C3000E20084608093E20078940E941F1B0E944F +:102C4000901B8AE792E00E943A1B80915E048530D7 +:102C500069F40E949B2780915C048823B1F30E9451 +:102C6000C927882391F30E949116EFCF0E94981BE9 +:102C7000ECCF292F332723303105C9F064F42130FC +:102C8000310581F02230310509F043C08DE690E036 +:102C90002AE338E042C021323105F1F02232310519 +:102CA00041F137C082E190E027EA38E036C0992749 +:102CB0008130910541F08230910541F0892B49F531 +:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A +:102CD000849190E09F0121C06430D8F4E62FF0E0A9 +:102CE000EE0FFF1FE05BFC4F2081318189E090E017 +:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E +:102D0000FC4F20813181FB01EC5BFC4F808190E026 +:102D100004C080E090E020E030E0FA0131832083BD +:102D2000089580E189BD82E189BD09B400FEFDCF2F +:102D30008091D8008F7D8093D8008091E0008260E0 +:102D40008093E0008091E00081FDFCCF0895CF9258 +:102D5000DF92EF92FF920F931F93CF93DF93EC01DB +:102D60008B016A010E940A18811133C0C114D10479 +:102D700039F0F60180819181081B190BC80FD91F0A +:102D8000E12CF12C0115110519F18091E80085FD68 +:102D900016C08091E8008E778093E800C114D104BA +:102DA00049F0F60180819181E80EF91EF182E082FE +:102DB00085E00FC00E940A18882321F30AC0899178 +:102DC0008093F10001501109FFEFEF1AFF0ADACFEB +:102DD00080E0DF91CF911F910F91FF90EF90DF90F6 +:102DE000CF90089520916504309166042617370727 +:102DF00048F06115710539F42091E8002E77209391 +:102E0000E80001C0B90140E061157105A9F1209108 +:102E10005E04222309F443C0253009F442C0209106 +:102E2000E80023FD40C02091E80022FD32C020913F +:102E3000E80020FFE9CF4091F3002091F20030E05C +:102E4000342BFC01CF016115710559F02830310593 +:102E500040F481918093F100615071092F5F3F4FE1 +:102E6000F1CF41E02830310509F040E02091E80041 +:102E70002E772093E800C8CF4111C9CF0AC08091B6 +:102E80005E04882361F0853061F08091E80083FD65 +:102E90000AC08091E80082FFF2CF80E0089582E0CE +:102EA000089583E0089581E00895209165043091AC +:102EB00066042617370748F06115710539F420912B +:102EC000E8002E772093E80001C0B901FC0120E062 +:102ED0006115710591F180915E04882309F440C069 +:102EE000853009F43FC08091E80083FD3DC08091AA +:102EF000E80082FD2FC08091E80080FFE9CF20919B +:102F0000F3008091F20090E0922B6115710559F069 +:102F10008830910540F424912093F100319661505E +:102F200071090196F2CF21E0089709F020E0809125 +:102F3000E8008E778093E800CBCF2111CCCF0AC078 +:102F400080915E04882361F0853061F08091E80013 +:102F500083FD0AC08091E80082FFF2CF80E00895EF +:102F600082E0089583E0089581E00895982F9730D6 +:102F700058F59093E900981739F07091EC00209182 +:102F8000ED005091F00003C0242F762F50E021FF78 +:102F900019C03091EB003E7F3093EB003091ED0093 +:102FA0003D7F3093ED003091EB0031603093EB00CA +:102FB0007093EC002093ED005093F0002091EE0010 +:102FC00027FF07C09F5FD3CF8F708093E90081E018 +:102FD000089580E0089580915F0487FF11C080917B +:102FE000E80082FD05C080915E048111F8CF11C018 +:102FF0008091E8008B770BC080915E04882349F0B4 +:103000008091E80080FFF8CF8091E8008E77809370 +:10301000E80008952091E4003091E50095E64091A4 +:10302000EC00842F817040FF22C08091E80080FD79 +:103030001CC080915E04882391F0853091F08091CE +:10304000EB0085FD10C04091E4005091E50042176F +:10305000530729F39A01915011F784E0089582E013 +:10306000089583E0089581E0089580E008954091F7 +:10307000E80042FFDECF08950E94AA180E94B2180D +:10308000E0EEF0E0808181608083E8EDF0E0808117 +:103090008F77808319BCA7EDB0E08C918E7F8C93E5 +:1030A00080818F7E808310925D0408950F931F931B +:1030B000CF93DF930E94AA180E94B218C8EDD0E007 +:1030C00088818F77888388818068888388818F7DD5 +:1030D000888319BC10925E0410925A0410925C040A +:1030E00010925B0400EE10E0F80180818B7F8083FA +:1030F00088818160888342E060E080E00E94B617AA +:10310000E1EEF0E080818E7F8083E2EEF0E080816E +:1031100081608083808188608083F80180818E7FD8 +:103120008083888180618883DF91CF911F910F9187 +:103130000895E8EDF0E080818F7E8083E7EDF0E098 +:1031400080818160808384E082BF81E080935D0420 +:103150000C945618E8EDF0E080818E7F8083109209 +:10316000E20008951092DA001092E10008951F9293 +:103170000F920FB60F9211242F933F934F935F93AB +:103180006F937F938F939F93AF93BF93EF93FF932F +:103190008091E10082FF0BC08091E20082FF07C0B6 +:1031A0008091E1008B7F8093E1000E941E1B809143 +:1031B000DA0080FF1FC08091D80080FF1BC0809183 +:1031C000DA008E7F8093DA008091D90080FF0DC0F5 +:1031D00080E189BD82E189BD09B400FEFDCF81E0B7 +:1031E00080935E040E94221505C019BC10925E04F3 +:1031F0000E9430158091E10080FF19C08091E200AB +:1032000080FF15C08091E2008E7F8093E200809164 +:10321000E20080618093E2008091D8008062809318 +:10322000D80019BC85E080935E040E94341580911B +:10323000E10084FF30C08091E20084FF2CC080E177 +:1032400089BD82E189BD09B400FEFDCF8091D8001F +:103250008F7D8093D8008091E1008F7E8093E10084 +:103260008091E2008F7E8093E2008091E200816095 +:103270008093E20080915A04882311F084E007C013 +:103280008091E30087FD02C081E001C083E080936C +:103290005E040E9435158091E10083FF29C0809172 +:1032A000E20083FF25C08091E100877F8093E100E9 +:1032B00082E080935E0410925A048091E1008E7F38 +:1032C0008093E1008091E2008E7F8093E200809104 +:1032D000E20080618093E20042E060E080E00E94D2 +:1032E000B6178091F00088608093F0000E9433153B +:1032F000FF91EF91BF91AF919F918F917F916F91CE +:103300005F914F913F912F910F900FBE0F901F90A3 +:1033100018951F920F920FB60F9211242F933F937F +:103320004F935F936F937F938F939F93AF93BF93CD +:10333000CF93DF93EF93FF93C091E900CF7080911B +:10334000EC00D82FD17080FDD0E81092E900809178 +:10335000F000877F8093F00078940E94CD1910923E +:10336000E9008091F00088608093F000CD2BCF7051 +:10337000C093E900FF91EF91DF91CF91BF91AF91A1 +:103380009F918F917F916F915F914F913F912F917D +:103390000F900FBE0F901F9018951F93CF93DF9340 +:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C +:1033B000EFE5F4E088E08E0F9091F10091938E1389 +:1033C000FBCF0E944B158091E80083FF1FC18091C5 +:1033D0005F0490916004492F50E04A30510508F095 +:1033E00015C1FA01EC59FF4F0C94E331803881F09C +:1033F000823809F00BC1809163048F708093E900DB +:103400008091EB0085FB882780F91092E90006C0C7 +:1034100080915B0490915C04911182609091E8002E +:10342000977F9093E8008093F1001092F100C8C05C +:10343000282F2D7F09F0EAC0882319F0823061F02F +:10344000E5C080916104813009F0E0C0933009F05B +:1034500080E080935C042BC080916104811127C0BF +:10346000809163048F7009F4D1C08093E9002091AA +:10347000EB0020FF1CC0933021F48091EB008062B0 +:1034800014C09091EB0090619093EB0021E030E04C +:10349000A90102C0440F551F8A95E2F74093EA0044 +:1034A0001092EA008091EB0088608093EB0010920C +:1034B000E9008091E800877F86C08111A7C0109144 +:1034C00061041F778091E3008078812B8093E30073 +:1034D0008091E800877F8093E8000E94EB1780913D +:1034E000E80080FFFCCF8091E30080688093E300D8 +:1034F000111102C082E001C083E080935E0486C0A7 +:103500008058823008F082C08091610490916204FA +:103510008C3D53E0950779F583E08A838AE28983BD +:103520004FB7F894DE01139620E03EE051E2E32F1E +:10353000F0E050935700E49120FF03C0E295EF7054 +:103540003F5FEF708E2F90E0EA3010F0C79601C019 +:10355000C0968D939D932F5F243149F74FBF809183 +:10356000E800877F8093E8006AE270E0CE01019670 +:103570000E94F21614C0AE014F5F5F4F609163046A +:103580000E943916BC01009709F440C09091E800F0 +:10359000977F9093E80089819A810E9455178091C6 +:1035A000E8008B778093E80031C0803879F580910E +:1035B000E800877F8093E80080915A048093F100AF +:1035C0008091E8008E778093E8000E94EB171EC080 +:1035D00081111CC0909161049230C0F48091E80088 +:1035E000877F8093E80090935A040E94EB178091A4 +:1035F0005A04811106C08091E30087FD02C081E07A +:1036000001C084E080935E040E9437158091E80039 +:1036100083FF0AC08091E800877F8093E800809153 +:10362000EB0080628093EB00AA960FB6F894DEBFA1 +:103630000FBECDBFDF91CF911F9108950895CF9315 +:1036400080915E048823A1F0C091E900CF70909131 +:10365000EC00892F817090FD80E8C82B1092E90062 +:103660008091E80083FD0E94CD19CF70C093E900DE +:10367000CF9108959093DF038093DE030895E09146 +:10368000DE03F091DF03309721F00190F081E02D0F +:10369000099480E00895E091DE03F091DF03309714 +:1036A00021F00280F381E02D09940895E091DE037A +:1036B000F091DF03309721F00480F581E02D09942B +:1036C00008952091DC033091DD038217930771F098 +:1036D0009093DD038093DC03E091DE03F091DF0340 +:1036E000309721F00680F781E02D0994089520910C +:1036F000DA033091DB038217930771F09093DB03B9 +:103700008093DA03E091DE03F091DF03309721F03C +:103710000084F185E02D0994089508950C948D1B83 +:103720000E9415280E94760B0E949B280C94562D0F +:103730004F925F927F928F929F92AF92BF92CF9261 +:10374000DF92EF92FF920F931F93CF93DF93CDB74A +:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A +:10376000650C91EEC92E93E0D92E00E010E0AA245A +:10377000A394B12C702E802F0E94AE0D4C01F60147 +:10378000419051906F014826592641145104B1F4DB +:103790000F5F1F4F0430110569F78FEF89838A830C +:1037A0001B820E941E288160782F9D838C83498113 +:1037B0005A816B818D810E94511C3AC080913D04D9 +:1037C00081FD0E94B70D20E030E07501022E02C09D +:1037D000EE0CFF1C0A94E2F7C70184219521892B86 +:1037E00009F12E837F828E209F2091E0892809F4A1 +:1037F00090E098870E941E288160782F9A87898799 +:103800004E815F8168858A850E94511C000F111FBF +:10381000F801EF51FC4F80819181E826F926F18271 +:10382000E08206C02F5F3F4F2C30310571F6B0CFDC +:103830000E94872A1091E0030E943F1B1817D9F0BD +:103840000E943F1B8093E0032A960FB6F894DEBFD8 +:103850000FBECDBFDF91CF911F910F91FF90EF90E1 +:10386000DF90CF90BF90AF909F908F907F905F90B0 +:103870004F900C94AE0A2A960FB6F894DEBF0FBE96 +:10388000CDBFDF91CF911F910F91FF90EF90DF900F +:10389000CF90BF90AF909F908F907F905F904F9010 +:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B +:1038B000DEBF0FBECDBF4F83588769877A878B875E +:1038C000DE01119686E0FD0111928A95E9F785E007 +:1038D000FE01379601900D928A95E1F749815A8150 +:1038E0006B817C818D819E810E94F6232B960FB681 +:1038F000F894DEBF0FBECDBFDF91CF910895CF9377 +:10390000882309F4C2C0C82F823859F40E943F1B93 +:1039100081FDBBC089E30E949F260E946C2789E33A +:103920000CC0833879F40E943F1B80FDAEC083E554 +:103930000E949F260E946C2783E50E94E126CF917A +:103940000C946C27843859F40E943F1B82FD9DC063 +:1039500087E40E949F260E946C2787E4EECF8CEFBD +:103960008C0F813A48F48C2F0E94BE2C81118DC09F +:103970008C2F0E949F26E3CF80E28C0F883048F482 +:10398000C77081E001C0880FCA95EAF70E94252719 +:10399000D6CF8BE58C0F833078F4C53A29F0C63A40 +:1039A00031F083E890E005C081E890E002C082E851 +:1039B00090E0CF910C94611B88E58C0F833108F067 +:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F +:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F +:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F +:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D +:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092 +:103A100090E038C082EE90E035C089EE90E032C090 +:103A20008AEE90E02FC085EB90E02CC086EB90E012 +:103A300029C087EB90E026C08CEC90E023C08DEC91 +:103A400090E020C083E891E01DC08AE891E01AC0B0 +:103A500082E991E017C084E991E014C081E292E02C +:103A600011C083E292E00EC084E292E00BC085E2D6 +:103A700092E008C086E292E005C087E292E002C0D0 +:103A80008AE292E0CF910C94771BCF91089588231E +:103A900009F44BC0823859F40E943F1B81FF45C096 +:103AA00089E30E949F260E946C2789E30CC083381B +:103AB00071F40E943F1B80FF38C083E50E949F265F +:103AC0000E946C2783E50E94E1260C946C278438C1 +:103AD00059F40E943F1B82FF28C087E40E949F2662 +:103AE0000E946C2787E4EFCF9CEF980F913A58F330 +:103AF00090E2980F983050F4877091E001C0990FD0 +:103B00008A95EAF7892F0E942B27DFCF9BE5980F34 +:103B1000933020F480E090E00C94611B885A83314C +:103B200020F480E090E00C94771B0895882321F026 +:103B30000E9425270C946C270895882321F00E9469 +:103B40002B270C946C270895BF92CF92DF92EF92AF +:103B5000FF920F931F93CF93DF9300D000D000D03C +:103B6000CDB7DEB725E0FC01DE01119601900D9284 +:103B70002A95E1F7FC01D0801181028125812295EF +:103B80002F7043815481452B09F472C31F3F21F4E8 +:103B9000FFEFDF1609F46CC37C012E830E947707C8 +:103BA000D9821A8369817A81802F0E949B26182FDF +:103BB000B92E0E9450260E9417252E81002319F04D +:103BC0000E9442272E81EB2DE295EF70F0E0E25942 +:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E +:103BE000882319F0F29480EFF822002389F0FF2057 +:103BF00009F47CC280E2810F883020F48F2D0E946E +:103C0000252703C08F2D0E9435270E946C276EC286 +:103C1000812F0E94471DFF2009F42AC3105E8F2DBB +:103C2000183018F40E942B2702C00E943B272696CA +:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD +:103C40000F91FF90EF90DF90CF90BF900C946C2776 +:103C50008B2D807F9B2D9F70803211F4892F03C0A4 +:103C6000892F8295807F112319F0113011F12BC01B +:103C70000023A9F0222389F1213079F526960FB689 +:103C8000F894DEBF0FBECDBFDF91CF911F910F9192 +:103C9000FF90EF90DF90CF90BF900C945527222398 +:103CA00019F0213009F4E4C28E830E9458278E81D6 +:103CB0009BC1002321F0263008F0DAC20EC0253067 +:103CC00008F0D6C291C10023C9F0222331F0F701D8 +:103CD000958190FF0BC29F70958326960FB6F8943E +:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F +:103CF000EF90DF90CF90BF900C94961D222309F493 +:103D000073C109C22B2D26952695237030E021150D +:103D1000310521F021303105D1F0AAC2002321F074 +:103D2000812F9B2D937002C080E090E026960FB605 +:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1 +:103D4000FF90EF90DF90CF90BF900C94611B002309 +:103D500021F0812F9B2D937002C080E090E0269689 +:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C +:103D70000F91FF90EF90DF90CF90BF900C94771B46 +:103D8000812F002319F00E948F2902C00E94F72979 +:103D900026960FB6F894DEBF0FBECDBFDF91CF9150 +:103DA0001F910F91FF90EF90DF90CF90BF900C94F8 +:103DB0007C2A8B2D837009F07BC0011159C2812FA1 +:103DC000829586958770880F880F912F9F70C92ED6 +:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7 +:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD +:103DF00070E004C0440F551F661F771F8A95D2F7E5 +:103E0000CB01BA01609570958095909503C060E0F4 +:103E100070E0CB012B2D269526952370422F50E084 +:103E200042305105D9F04330510569F16C297D29A3 +:103E30008E299F294130510551F126960FB6F894ED +:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD +:103E5000EF90DF90CF90BF900C943E256C297D2988 +:103E60008E299F2926960FB6F894DEBF0FBECDBFD0 +:103E7000DF91CF911F910F91FF90EF90DF90CF9046 +:103E8000BF900C945A250E943E25C701B601269684 +:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B +:103EA0000F91FF90EF90DF90CF90BF900C94222560 +:103EB000002319F08B2D817001C08695882309F4A9 +:103EC000D7C1812F829586958770880F880F912F93 +:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3 +:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039 +:103EF00050E060E070E004C0440F551F661F771F5C +:103F00008A95D2F7CB01BA0160957095809590950E +:103F100003C060E070E0CB012B2D26952695237021 +:103F2000422F50E042305105D9F04330510569F13C +:103F30006C297D298E299F294130510551F1269602 +:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA +:103F50000F91FF90EF90DF90CF90BF900C941826B8 +:103F60006C297D298E299F2926960FB6F894DEBFED +:103F70000FBECDBFDF91CF911F910F91FF90EF90BA +:103F8000DF90CF90BF900C9434260E941826C70172 +:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7 +:103FA000CF911F910F91FF90EF90DF90CF90BF9036 +:103FB0000C94FC25103F49F118F4103E48F491C0D0 +:103FC000123F09F453C0E8F1133F09F464C089C0FB +:103FD0001F708B2D8F71002321F00E949525812F5A +:103FE0007CCE0E94B625812F26960FB6F894DEBFB0 +:103FF0000FBECDBFDF91CF911F910F91FF90EF903A +:10400000DF90CF90BF900C949D1D0023B1F0253020 +:1040100008F02EC18B2D8F7126960FB6F894DEBF57 +:104020000FBECDBFDF91CF911F910F91FF90EF9009 +:10403000DF90CF90BF900C94DB25263008F018C19C +:10404000E9CF0023A9F08B2D8F7126960FB6F89437 +:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB +:10406000EF90DF90CF90BF900C949525002359F3EB +:104070008B2D8F7126960FB6F894DEBF0FBECDBF85 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94B625002399F08B2D8F71269636 :1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1040B0000F91FF90EF90DF90CF90BF900C9465250B -:1040C0000023A9F0222309F4ADCF812F26960FB645 -:1040D000F894DEBF0FBECDBFDF91CF911F910F913E -:1040E000FF90EF90DF90CF90BF900C946E1C222336 -:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 -:10410000CDBFDF91CF911F910F91FF90EF90DF9086 -:10411000CF90BF900C94361D4B2D4F70612FC7016F -:104120000E948D0526960FB6F894DEBF0FBECDBF58 -:10413000DF91CF911F910F91FF90EF90DF90CF9083 -:10414000BF900C948924011182C09B2D9F70492F30 -:1041500050E04230510509F443C0C4F44115510503 -:1041600071F14130510509F072C026960FB6F894EE -:10417000DEBF0FBECDBFDF91CF911F910F91FF909A -:10418000EF90DF90CF90BF900C946D2D4330510590 -:10419000C1F14430510509F05AC0812F26960FB65F -:1041A000F894DEBF0FBECDBFDF91CF911F910F916D -:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1040B0000F91FF90EF90DF90CF90BF900C948025F0 +:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D +:1040D0001F910F91FF90EF90DF90CF90BF900C94C5 +:1040E00076250023A9F0222309F4ADCF812F26964F +:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9 +:104100000F91FF90EF90DF90CF90BF900C947F1CA9 +:10411000222309F4ADCF812F26960FB6F894DEBF87 +:104120000FBECDBFDF91CF911F910F91FF90EF9008 +:10413000DF90CF90BF900C94471D4B2D4F70612F97 +:10414000C7010E94690526960FB6F894DEBF0FBE20 +:10415000CDBFDF91CF911F910F91FF90EF90DF9036 +:10416000CF90BF900C949A24011182C09B2D9F7018 +:10417000492F50E04230510509F443C0C4F44115C1 +:10418000510571F14130510509F072C026960FB604 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C947E2D433026 +:1041B0005105C1F14430510509F05AC0812F2696AE :1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 -:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041D0000F91FF90EF90DF90CF90BF900C94D02D77 :1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC :1041F0001F910F91FF90EF90DF90CF90BF900C94A4 -:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10420000672D26960FB6F894DEBF0FBECDBFDF91A7 :10421000CF911F910F91FF90EF90DF90CF90BF90C3 -:104220000C949C2D4B2D4F70612FC70126960FB615 -:10423000F894DEBF0FBECDBFDF91CF911F910F91DC -:10424000FF90EF90DF90CF90BF900C949D07269643 +:104220000C949A2D26960FB6F894DEBF0FBECDBF24 +:10423000DF91CF911F910F91FF90EF90DF90CF9082 +:10424000BF900C94AD2D4B2D4F70612FC70126965A :104250000FB6F894DEBF0FBECDBFDF91CF911F9197 -:104260000F91FF90EF90DF90CF90BF9008950E9444 -:1042700031270E9441270E9406270E945B270E9447 -:104280001C2B0E946B2A80E090E00E94501B80E073 -:1042900090E00C94661B0E9421270C9437210E9409 -:1042A0007F26292F22952F7030E02C3031054CF4D9 -:1042B0002A3031056CF4225031092230310588F45E -:1042C00007C02C30310549F02F30310531F009C0DD -:1042D000803E48F0803F29F406C093FB882780F990 -:1042E000089580E0089581E00895CF93DF9300D092 -:1042F00000D01F92CDB7DEB70F900F900F900F90A8 -:104300000F90DF91CF910895CF93DF9300D000D02D -:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D -:10432000CDBFDF91CF9108951F93CF93DF93C091BD -:10433000990316E080919A03C81799F0D0E01C9F6A -:10434000F0011D9FF00D1124E556FC4F4081518175 -:1043500062817381848195810E9484212196C77036 -:10436000E9CFDF91CF911F9108954091CB035091F8 -:10437000CC036091CD037091CE038091CF039091D7 -:10438000D0030C9484218091D00382958F7009F022 -:1043900054C08091CD03882309F44FC080919903C4 -:1043A000A0919A036091CB037091CC034091CE030E -:1043B0005091CF03B6E08A1709F43FC090E0411551 -:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A -:1043D000B99FF00D1124E556FC4F218172132AC0BC -:1043E0002081621327C02281211124C023813481BE -:1043F0002417350710F421503109241B350B283CB4 -:104400003105C0F42091D0032F7020612093D00398 -:1044100026E0289FF001299FF00D1124E056FC4F63 -:1044200080818F70806180838BEC93E00E94931D6C -:104430000C94942101968770BECF0895CF92DF929D -:10444000EF92FF920F931F93CF93DF93CDB7DEB719 -:1044500062970FB6F894DEBF0FBECDBF8C0185E02A -:10446000F801DE011D9601900D928A95E1F7D801C1 -:104470004C9111965C91119712966C91129713962C -:10448000CD90DC9014973091CB037091CC03809148 -:10449000CE039091CF03009709F46BC17F3F19F4CD -:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F -:1044B0002091D003C816D90628F0F601E81BF90BA5 -:1044C000CF0104C0809590958C0D9D1DFF24F39421 -:1044D000883C910578F0F12C207F09F0C6C07C2D36 -:1044E000D98AC88A89890E9475218BEC93E00E9441 -:1044F000931DB1C0822F807F09F046C0751314C090 -:10450000341312C0611110C02F7020612093D003AA -:104510000E94B5218BEC93E00E94931D8091D00303 -:10452000D80115968C932EC0CD2819F15F3F11F458 -:104530004F3FF9F0F62E61111CC080919903209134 -:104540009A0336E0821709F45AC090E0389FF001D0 -:10455000399FF00D1124E556FC4F7181571306C0A9 -:104560007081471303C07281711103C00196877077 -:10457000E9CFF62E662309F418C18091D00381603B -:104580008093D003F12C11C1751308C0341306C0F9 -:10459000611104C08091D003D801C3C04D875E87EC -:1045A0008D859E856A8B0E944F216A898823E1F15F -:1045B0006623D1F12091D003822F82958F7090E0F5 -:1045C000029774F08091CB039091CC0398878F83EE -:1045D0001986DB86CA862C87CE0107960E94931D1A -:1045E00086E0F801ABECB3E001900D928A95E1F71B -:1045F0000E94C3210E94B521FF24F394D6C04D87A9 -:104600005E878D859E850E947F26292F22952F709B -:1046100030E0223031050CF0BCC09F7009F0B6C00C -:10462000805E883008F4C1C0C8010E94931DE4CFA9 -:10463000C816D90608F453C0F601E81BF90BCF01E0 -:10464000883C910508F450C0F12C7C2DD98AC88A89 -:1046500089890E947521EBECF3E086E0DF011D9271 -:104660008A95E9F70E94B521A0C0751314C03413D0 -:1046700012C0611110C08091D003F8018583C80178 -:104680000E94931D86E0EBECF3E0DF011D928A951A -:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 -:1046A0000E944F216A89882309F4BECF662309F44A -:1046B000BBCF2091D003822F82958F7090E002971C -:1046C0000CF48ECF8091CB039091CC039A83898395 -:1046D0001B82DD82CC822E83CE0101967FCF809516 -:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 -:1046F00075132EC034132CC02091D00320FD1FC091 -:10470000822F82958F70D9F0D80115962C9315972A -:104710008F3049F08F5F982F9295907F822F8F7006 -:10472000892B15968C93C8010E94931D86E0F80191 -:10473000ABECB3E001900D928A95E1F793CF86E060 -:10474000F801ABECB3E001900D928A95E1F72DC032 -:104750004D875E878D859E850E944F21811140CFB8 -:104760008091D00381608093D003C8010E94931D83 -:104770001CC0662309F458CF4D875E878D859E85C2 -:104780000E944F21882309F44FCF2ACF811148CFAF -:104790000CC0243031050CF047CF9F7009F440CF96 -:1047A000F8019581907F09F03BCF8F2D62960FB66F -:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 -:1047C000FF90EF90DF90CF9008951F93CF93DF93EA -:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 -:1047E0004F83588769877A878B879C87CE01079686 -:1047F0000E941E22882369F08F8198852A853B8537 -:10480000232BF1F19F3F09F063C08F3F09F060C097 -:1048100037C086E0FE013796DE01119601900D92B9 -:104820008A95E1F76F817885EA85FB85309741F1BC -:104830007F3F11F46F3F21F120919A0330E0C901CD -:104840000196877099274091990350E08417950746 -:1048500009F447C069837A83FD83EC8396E0929FD5 -:10486000D001939FB00D1124A556BC4FFE01319687 -:1048700001900D929A95E1F780939A030E949421FA -:1048800016E08091990390919A038917C1F1189FBE -:10489000C001112485569C4F0E941E22882379F165 -:1048A000E09199031E9FF0011124E556FC4F4081D1 -:1048B000518162817381848195810E9484218091DC -:1048C000990390E001968770992780939903D9CF37 -:1048D0004F81588569857A858B859C850E948421C6 -:1048E000CFCF0E944B2110929A0310929903EBECC8 -:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F -:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 -:104910000895EF92FF920F931F93CF93DF938C0133 -:10492000009709F46CC0F12CEE24E394E801219681 -:10493000F8018491843740F4843008F051C081300C -:1049400081F0823019F15BC0853709F444C0A8F1C9 -:104950009CE7980F903708F052C08F770E94361D61 -:1049600041C00E5F1F4FFE01C49180E28C0F883062 -:1049700048F4C7708E2D01C0880FCA95EAF70E94CF -:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 -:10499000FE01C49180E28C0F883058F4C7708E2DD0 -:1049A00001C0880FCA95EAF70E943A270E945B2748 -:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD -:1049C000C491CC2381F08FE99FE00197F1F700C0FB -:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 -:1049E0000E946E1C8E018F2D882309F49FCFEFE962 -:1049F000FFE03197F1F700C000008150F5CFDF9163 -:104A0000CF911F910F91FF90EF90089508956093BB -:104A1000D5037093D6038093D7039093D8030C9457 -:104A200037210F931F930091D5031091D603209146 -:104A3000D7033091D803DC01CB01802B912BA22B23 -:104A4000B32B8093D5039093D603A093D703B09351 -:104A5000D8031F910F910C9437210F931F9300914E -:104A6000D5031091D6032091D7033091D803DC01F0 -:104A7000CB0180239123A223B3238093D50390936A -:104A8000D603A093D703B093D8031F910F910C9432 -:104A900037210F931F930091D5031091D6032091D6 -:104AA000D7033091D803DC01CB0180279127A227BF -:104AB000B3278093D5039093D603A093D703B093E5 -:104AC000D8031F910F910C9437211092D1031092AB -:104AD000D2031092D3031092D4030C94372141E0F7 -:104AE00050E060E070E004C0440F551F661F771F60 -:104AF0008A95D2F74093D1035093D2036093D303A6 -:104B00007093D4030C94372141E050E060E070E0F2 -:104B100004C0440F551F661F771F8A95D2F78091F6 -:104B2000D1039091D203A091D303B091D403482B29 -:104B3000592B6A2B7B2B4093D1035093D203609364 -:104B4000D3037093D4030C94372141E050E060E02C -:104B500070E004C0440F551F661F771F8A95D2F777 -:104B600040955095609570958091D1039091D203B6 -:104B7000A091D303B091D403482359236A237B2304 -:104B80004093D1035093D2036093D3037093D40323 -:104B90000C94372141E050E060E070E004C0440F25 -:104BA000551F661F771F8A95D2F78091D103909188 -:104BB000D203A091D303B091D403482759276A2781 -:104BC0007B274093D1035093D2036093D303709318 -:104BD000D4030C9437210F931F930091D1031091AC -:104BE000D2032091D3033091D403DC01CB01802B7D -:104BF000912BA22BB32B8093D1039093D203A0933C -:104C0000D303B093D4031F910F910C9437210F93CA -:104C10001F930091D1031091D2032091D3033091BF -:104C2000D403DC01CB0180239123A223B3238093FF -:104C3000D1039093D203A093D303B093D4031F91D5 -:104C40000F910C9437210F931F930091D103109172 -:104C5000D2032091D3033091D403DC01CB01802710 -:104C60009127A227B3278093D1039093D203A093D7 -:104C7000D303B093D4031F910F910C94372108955F -:104C8000CF92DF92EF92FF920F931F93CF93DF9318 -:104C90008C01C090D503D090D603E090D703F0905C -:104CA000D8038091D1039091D203A091D303B09106 -:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 -:104CC000C6010C2E04C0B695A795979587950A94B2 -:104CD000D2F780FF06C0B8018C2F0E94F709019718 -:104CE00021F4219760F780E001C08C2FDF91CF91F4 -:104CF0001F910F91FF90EF90DF90CF900895CF9389 -:104D0000DF93EC010E944026BE010E94F709DF916B -:104D1000CF910895CB010E947F260895909186023D -:104D2000992321F090918702911109C02091880266 -:104D300030918902F90132969FEF40E01FC0982F11 -:104D40009695969596959F3050F5E0918802F09152 -:104D50008902E90FF11D877021E030E0A90102C04E -:104D6000440F551F8A95E2F7CA019181892B8183EF -:104D700008959F3F39F04F5F4E3041F051915813E5 -:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 -:104D9000F901E90FF11D97FDFA95828308950895B1 -:104DA00090918602992321F090918702911109C078 -:104DB0002091880230918902F9013296205F3F4F9D -:104DC0001FC0982F9695969596959F30F0F4E09198 -:104DD0008802F0918902E90FF11D877021E030E02F -:104DE000A90102C0440F551F8A95E2F7CA018095B8 -:104DF00091818923818308953196E217F30729F081 -:104E000090819813F9CF1082F7CF089581E090E058 -:104E1000E0918802F0918902E80FF91F1082019653 -:104E200080319105A9F708959091EC03892B809327 -:104E3000EC03089580959091EC0389238093EC0313 -:104E400008951092EC0308959091EB03892B8093C1 -:104E5000EB03089580959091EB0389238093EB03F6 -:104E600008951092EB0308959091EA03892B8093A3 -:104E7000EA03089580959091EA0389238093EA03D9 -:104E800008951092EA0308958093D903089510922B -:104E9000D90308958091880290918902FC0131968E -:104EA0009C01205F3F4F80E0919191118F5FE2174D -:104EB000F307D1F70895E0918802F091890280917B -:104EC000EC038083E0918802F091890290818091C7 -:104ED000EB03892B8083E0918802F0918902908115 -:104EE0008091EA03892B80838091D903882361F024 -:104EF000E0918802F09189029081892B80830E9441 -:104F00004A2781111092D9038091880290918902D9 -:104F10000C943A1B80910E04843039F11092EE0308 -:104F200020E488E190E00FB6F894A89580936000A3 -:104F30000FBE2093600080E00E94540580E00E9434 -:104F4000D20A83B7817F846083BF83B7816083BFC8 -:104F50007894889583B78E7F83BF88E10FB6F894E5 -:104F600080936000109260000FBE08950895089528 -:104F7000CF9380E00E9454050E94B6270E94890CBE -:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 -:104F9000CF5FC430C1F780E001C081E0CF910895B8 -:104FA0000E944B2180E00E9454050E94452D0E94E2 -:104FB0002E1B0C94D20A1F920F920FB60F9211243F -:104FC0008F939F93AF93BF938091EE03811113C092 -:104FD0008091EF039091F003A091F103B091F2035F -:104FE0004196A11DB11D8093EF039093F003A09310 -:104FF000F103B093F203BF91AF919F918F910F9006 -:105000000FBE0F901F90189582E084BD93E095BD70 -:105010009AEF97BD80936E0008952FB7F894809112 -:10502000EF039091F003A091F103B091F2032FBF31 -:105030000895CF92DF92EF92FF920F931F932FB7B5 -:10504000F8944091EF035091F0036091F103709157 -:10505000F2032FBF6A017B01EE24FF248C0120E0C4 -:1050600030E0C016D106E206F30610F441505109B3 -:105070009A01281B390BC9011F910F91FF90EF90E6 -:10508000DF90CF9008951F920F920FB60F921124C8 -:105090008F939F93AF93BF938091EF039091F00311 -:1050A000A091F103B091F2030196A11DB11D80936F -:1050B000EF039093F003A093F103B093F203BF9139 -:1050C000AF919F918F910F900FBE0F901F901895E9 -:1050D0000E942B18F8942FEF87EA91E62150804028 -:1050E0009040E1F700C0000087E090EBDC01809386 -:1050F000190490931A04A0931B04B0931C049CE021 -:1051000088E10FB6F894A895809360000FBE909345 -:105110006000FFCF0E94C928811102C00E94A5280B -:105120000E94D4288093ED030E94E1288093170405 -:1051300087FB882780F9809387020E94D828682FF0 -:1051400070E080E090E00C9407256DEE7EEF80E04B -:1051500090E00E94AA3160E082E090E00E949831E5 -:1051600060E083E090E00E94983160E084E090E0AD -:105170000E94983160E085E090E00E94983160E004 -:1051800086E090E00E9498316FEF87E090E00C9409 -:10519000983180E090E00E94923121E08D3E9E4F58 -:1051A00009F020E0822F089582E090E00C948A318B -:1051B00083E090E00C948A31682F83E090E00C94B7 -:1051C000983184E090E00C948A31682F84E090E07C -:1051D0000C94983186E090E00C948A31682F86E038 -:1051E00090E00C94983187E090E00C948A31682F1D -:1051F00087E090E00C9498318091F50380FF0BC01C -:1052000060918D0285E0689FB001112475956795C6 -:10521000759567952BC081FF09C060918D0285E06F -:10522000689FB00111247595679520C082FF07C063 -:1052300060918D0285E0689FB001112417C09091A4 -:10524000F6039923D1F060918C02961788F720918C -:105250008D0285E0289F90011124929FA001939FC9 -:10526000500D112470E0CA010E9470316038710540 -:1052700040F46115710539F002C065E070E0862FD9 -:1052800008958FE7089581E008958091F50380FFE8 -:1052900008C060918B0270E075956795759567956C -:1052A00021C081FF06C060918B0270E07595679503 -:1052B00019C082FF04C060918B0270E010C0909111 -:1052C000F6039923C1F060918A029617A0F78091A6 -:1052D0008B02899FC001112470E00E9470316038F8 -:1052E000710528F46115710521F0862F08958FE767 -:1052F000089581E0089561E070E0F4CF803F21F4EB -:105300000E94FC28819504C0813F29F40E94FC285A -:105310008093F9030895823F21F40E94FC2881952F -:1053200004C0833F29F40E94FC288093F803089569 -:10533000893F19F40E94452905C08A3F31F40E9433 -:10534000452981958093FA0308958B3F21F40E94AB -:105350004529819504C08C3F29F40E9445298093FA -:10536000FB030895843F21F48091F703816017C007 -:10537000853F21F48091F703826011C0863F21F4BC -:105380008091F70384600BC0873F21F48091F7037D -:10539000886005C0883F31F48091F7038061809375 -:1053A000F70308958D3F21F48091F50381600BC0D0 -:1053B0008E3F21F48091F503826005C08F3F29F470 -:1053C0008091F50384608093F5030895803F39F45C -:1053D0008091F90387FF6CC01092F90369C0813F87 -:1053E00029F48091F9031816BCF362C09091F80378 -:1053F000823F29F497FF5CC01092F80359C0833FA5 -:1054000019F41916CCF354C0893F41F48091FA0382 -:1054100018160CF04DC01092FA034AC08A3F29F4C6 -:105420008091FA0387FF44C0F6CF8B3F39F4809117 -:10543000FB0387FF3DC01092FB033AC08C3F29F469 -:105440008091FB031816BCF333C0843F21F4809194 -:10545000F7038E7F17C0853F21F48091F7038D7F7E -:1054600011C0863F21F48091F7038B7F0BC0873FEB -:1054700021F48091F703877F05C0883F31F4809144 -:10548000F7038F7E8093F70313C08D3F21F4809143 -:10549000F5038E7F0BC08E3F21F48091F5038D7F45 -:1054A00005C08F3F29F48091F5038B7F8093F5032E -:1054B0008091F80381110EC08091F90381110AC017 -:1054C0008091FA03811106C08091FB03811102C013 -:1054D0001092F603089587EF93E00E94451B0E9407 -:1054E0000D289093F4038093F30308951F93CF93B3 -:1054F000DF938091F3039091F4030E941928AC018B -:105500009091F603992321F020918E0230E006C09D -:1055100020918F028AE0289F90011124421753079F -:1055200008F486C08091F803C091F903D091FA0382 -:105530001091FB03811107C0C11176C0D11174C055 -:10554000111172C075C09F3F19F09F5F9093F603D1 -:10555000181624F40E94FC288093F8038091F80325 -:1055600087FF05C00E94FC2881958093F8031C16D4 -:1055700024F40E94FC288093F9038091F90387FFAB -:1055800005C00E94FC2881958093F9036091F8037F -:10559000662339F1C091F903CC2319F1772767FD10 -:1055A0007095872F972F0E94E02E23E333E343E388 -:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E -:1055C000772767FD7095872F972F0E94E02E23E3A2 -:1055D00033E343E35FE30E94942F0E94AD2E609378 -:1055E000F9031D1624F40E9445298093FA03809143 -:1055F000FA0387FF05C00E94452981958093FA032D -:10560000111624F40E9445298093FB038091FB032B -:1056100087FF05C00E94452981958093FB03DF9198 -:10562000CF911F910C946B2A9F3F09F08ECF96CF9C -:10563000DF91CF911F910895E7EFF3E085E0DF015F -:105640001D928A95E9F71092F6031092F5030895DA -:10565000833081F128F4813059F08230D1F00895FF -:10566000853009F449C0B8F1863009F456C0089570 -:1056700080918F02262F30E0280F311D2F3F3105FA -:1056800024F4680F60938F0208958FEF80938F0248 -:10569000089580918E02262F30E0280F311D2F3F74 -:1056A000310524F4680F60938E0208958FEF809384 -:1056B0008E02089580918D02262F30E0280F311D33 -:1056C0002F3F310524F4680F60938D0208958FEF0A -:1056D00080938D02089580918C02262F30E0280F50 -:1056E000311D2F3F310524F4680F60938C0208951B -:1056F0008FEF80938C02089580918B02262F30E0EB -:10570000280F311D2F3F310524F4680F60938B0261 -:1057100008958FEF80938B02089580918A02262F3F +:104260000F91FF90EF90DF90CF90BF900C94790763 +:1042700026960FB6F894DEBF0FBECDBFDF91CF916B +:104280001F910F91FF90EF90DF90CF90BF90089516 +:104290000E9442270E9452270E9417270E946C27E3 +:1042A0000E942D2B0E947C2A80E090E00E94611BDE +:1042B00080E090E00C94771B0E9432270C944821F8 +:1042C0000E949026292F22952F7030E02C30310546 +:1042D0004CF42A3031056CF422503109223031057A +:1042E00088F407C02C30310549F02F30310531F00A +:1042F00009C0803E48F0803F29F406C093FB882720 +:1043000080F9089580E0089581E00895CF93DF93C8 +:1043100000D000D01F92CDB7DEB70F900F900F9056 +:104320000F900F90DF91CF910895CF93DF9300D03E +:1043300000D000D0CDB7DEB726960FB6F894DEBF1A +:104340000FBECDBFDF91CF9108951F93CF93DF9321 +:10435000C091E90316E08091EA03C81799F0D0E014 +:104360001C9FF0011D9FF00D1124E551FC4F408171 +:10437000518162817381848195810E94952121966A +:10438000C770E9CFDF91CF911F91089540911B0431 +:1043900050911C0460911D0470911E0480911F04B3 +:1043A000909120040C9495218091200482958F7027 +:1043B00009F054C080911D04882309F44FC08091F6 +:1043C000E903A091EA0360911B0470911C044091E1 +:1043D0001E0450911F04B6E08A1709F43FC090E014 +:1043E00041155105C1F17F3F11F46F3FA1F1B89F15 +:1043F000F001B99FF00D1124E551FC4F218172139A +:104400002AC02081621327C02281211124C0238168 +:1044100034812417350710F421503109241B350B42 +:10442000283C3105C0F4209120042F702061209396 +:10443000200426E0289FF001299FF00D1124E0516F +:10444000FC4F80818F70806180838BE194E00E94BB +:10445000A41D0C94A52101968770BECF0895CF921C +:10446000DF92EF92FF920F931F93CF93DF93CDB71D +:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA +:1044800085E0F801DE011D9601900D928A95E1F715 +:10449000D8014C9111965C91119712966C911297DC +:1044A0001396CD90DC90149730911B0470911C04EE +:1044B00080911E0490911F04009709F46BC17F3F07 +:1044C00019F43F3F09F466C1E0901D04EE2009F4A1 +:1044D000C0C020912004C816D90628F0F601E81BB8 +:1044E000F90BCF0104C0809590958C0D9D1DFF2484 +:1044F000F394883C910578F0F12C207F09F0C6C038 +:104500007C2DD98AC88A89890E9486218BE194E012 +:104510000E94A41DB1C0822F807F09F046C0751390 +:1045200014C0341312C0611110C02F702061209389 +:1045300020040E94C6218BE194E00E94A41D80917A +:104540002004D80115968C932EC0CD2819F15F3F19 +:1045500011F44F3FF9F0F62E61111CC08091E90370 +:104560002091EA0336E0821709F45AC090E0389FA0 +:10457000F001399FF00D1124E551FC4F7181571363 +:1045800006C07081471303C07281711103C0019688 +:104590008770E9CFF62E662309F418C180912004B4 +:1045A000816080932004F12C11C1751308C034136D +:1045B00006C0611104C080912004D801C3C04D879A +:1045C0005E878D859E856A8B0E9460216A8988231B +:1045D000E1F16623D1F120912004822F82958F7022 +:1045E00090E0029774F080911B0490911C049887CE +:1045F0008F831986DB86CA862C87CE0107960E9498 +:10460000A41D86E0F801ABE1B4E001900D928A951B +:10461000E1F70E94D4210E94C621FF24F394D6C062 +:104620004D875E878D859E850E949026292F229535 +:104630002F7030E0223031050CF0BCC09F7009F0C3 +:10464000B6C0805E883008F4C1C0C8010E94A41DB5 +:10465000E4CFC816D90608F453C0F601E81BF90BDD +:10466000CF01883C910508F450C0F12C7C2DD98AEB +:10467000C88A89890E948621EBE1F4E086E0DF01A7 +:104680001D928A95E9F70E94C621A0C0751314C037 +:10469000341312C0611110C080912004F801858389 +:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249 +:1046B0008A95E9F7FE2C8AC04D875E878D859E8599 +:1046C0006A8B0E9460216A89882309F4BECF662321 +:1046D00009F4BBCF20912004822F82958F7090E047 +:1046E00002970CF48ECF80911B0490911C049A8346 +:1046F00089831B82DD82CC822E83CE0101967FCFFF +:10470000809590958C0D9D1DACCFF62E662309F4F7 +:104710009CCF75132EC034132CC02091200420FD93 +:104720001FC0822F82958F70D9F0D80115962C93D7 +:1047300015978F3049F08F5F982F9295907F822F39 +:104740008F70892B15968C93C8010E94A41D86E05A +:10475000F801ABE1B4E001900D928A95E1F793CFB7 +:1047600086E0F801ABE1B4E001900D928A95E1F7A3 +:104770002DC04D875E878D859E850E9460218111A9 +:1047800040CF80912004816080932004C8010E9462 +:10479000A41D1CC0662309F458CF4D875E878D8504 +:1047A0009E850E946021882309F44FCF2ACF811172 +:1047B00048CF0CC0243031050CF047CF9F7009F46E +:1047C00040CFF8019581907F09F03BCF8F2D629605 +:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112 +:1047E0000F91FF90EF90DF90CF9008951F93CF939C +:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0 +:10480000CDBF4F83588769877A878B879C87CE0176 +:1048100007960E942F22882369F08F8198852A8528 +:104820003B85232BF1F19F3F09F063C08F3F09F0D7 +:1048300060C037C086E0FE013796DE011196019018 +:104840000D928A95E1F76F817885EA85FB8530972F +:1048500041F17F3F11F46F3F21F12091EA0330E0F5 +:10486000C9010196877099274091E90350E08417A8 +:10487000950709F447C069837A83FD83EC8396E04A +:10488000929FD001939FB00D1124A551BC4FFE0102 +:10489000319601900D929A95E1F78093EA030E9478 +:1048A000A52116E08091E9039091EA038917C1F1EF +:1048B000189FC001112485519C4F0E942F228823EC +:1048C00079F1E091E9031E9FF0011124E551FC4FBD +:1048D0004081518162817381848195810E949521FB +:1048E0008091E90390E00196877099278093E9030E +:1048F000D9CF4F81588569857A858B859C850E94A3 +:104900009521CFCF0E945C211092EA031092E90317 +:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73 +:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE +:104930001F910895EF92FF920F931F93CF93DF93F0 +:104940008C01009709F46CC0F12CEE24E394E8018B +:104950002196F8018491843740F4843008F051C0E6 +:10496000813081F0823019F15BC0853709F444C091 +:10497000A8F19CE7980F903708F052C08F770E94FB +:10498000471D41C00E5F1F4FFE01C49180E28C0F96 +:10499000883048F4C7708E2D01C0880FCA95EAF799 +:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3 +:1049B0001F4FFE01C49180E28C0F883058F4C770FD +:1049C0008E2D01C0880FCA95EAF70E944B270E94DE +:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8 +:1049E000FE01C491CC2381F08FE99FE00197F1F79C +:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3 +:104A000003C00E947F1C8E018F2D882309F49FCF45 +:104A1000EFE9FFE03197F1F700C000008150F5CFDA +:104A2000DF91CF911F910F91FF90EF90089508951E +:104A300060932504709326048093270490932804A0 +:104A40000C9448210F931F93009125041091260484 +:104A50002091270430912804DC01CB01802B912B7D +:104A6000A22BB32B8093250490932604A0932704B4 +:104A7000B09328041F910F910C9448210F931F931A +:104A800000912504109126042091270430912804D8 +:104A9000DC01CB0180239123A223B323809325043F +:104AA00090932604A0932704B09328041F910F919C +:104AB0000C9448210F931F93009125041091260414 +:104AC0002091270430912804DC01CB018027912715 +:104AD000A227B3278093250490932604A09327044C +:104AE000B09328041F910F910C9448211092210437 +:104AF0001092220410922304109224040C94482152 +:104B000041E050E060E070E004C0440F551F661FB4 +:104B1000771F8A95D2F74093210450932204609323 +:104B20002304709324040C94482141E050E060E099 +:104B300070E004C0440F551F661F771F8A95D2F797 +:104B40008091210490912204A0912304B091240427 +:104B5000482B592B6A2B7B2B409321045093220422 +:104B600060932304709324040C94482141E050E0A6 +:104B700060E070E004C0440F551F661F771F8A95E0 +:104B8000D2F7409550956095709580912104909151 +:104B90002204A0912304B0912404482359236A23BA +:104BA0007B23409321045093220460932304709349 +:104BB00024040C94482141E050E060E070E004C01F +:104BC000440F551F661F771F8A95D2F780912104E5 +:104BD00090912204A0912304B091240448275927DE +:104BE0006A277B2740932104509322046093230477 +:104BF000709324040C9448210F931F930091210477 +:104C0000109122042091230430912404DC01CB0173 +:104C1000802B912BA22BB32B809321049093220401 +:104C2000A0932304B09324041F910F910C94482166 +:104C30000F931F93009121041091220420912304CB +:104C400030912404DC01CB0180239123A223B323E0 +:104C50008093210490932204A0932304B09324040E +:104C60001F910F910C9448210F931F9300912104E1 +:104C7000109122042091230430912404DC01CB0103 +:104C800080279127A227B3278093210490932204A1 +:104C9000A0932304B09324041F910F910C944821F6 +:104CA0000895CF92DF92EF92FF920F931F93CF93CD +:104CB000DF938C01C0902504D0902604E090270457 +:104CC000F09028048091210490912204A091230463 +:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD +:104CE000D701C6010C2E04C0B695A7959795879558 +:104CF0000A94D2F780FF06C0B8018C2F0E94D30916 +:104D0000019721F4219760F780E001C08C2FDF919B +:104D1000CF911F910F91FF90EF90DF90CF9008956A +:104D2000CF93DF93EC010E945126BE010E94D3096C +:104D3000DF91CF910895CB010E9490260895909124 +:104D40008402992321F090918502911109C020914C +:104D5000860230918702F90132969FEF40E01FC032 +:104D6000982F9695969596959F3050F5E0918602EE +:104D7000F0918702E90FF11D877021E030E0A90171 +:104D800002C0440F551F8A95E2F7CA019181892B11 +:104D9000818308959F3F39F04F5F4E3041F051912C +:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77 +:104DB00039F0F901E90FF11D97FDFA958283089505 +:104DC000089590918402992321F090918502911188 +:104DD00009C02091860230918702F9013296205F46 +:104DE0003F4F1FC0982F9695969596959F30F0F45B +:104DF000E0918602F0918702E90FF11D877021E0B2 +:104E000030E0A90102C0440F551F8A95E2F7CA019C +:104E1000809591818923818308953196E217F30764 +:104E200029F090819813F9CF1082F7CF089581E08F +:104E300090E0E0918602F0918702E80FF91F10825E +:104E4000019680319105A9F7089590913C04892B32 +:104E500080933C040895809590913C04892380932D +:104E60003C04089510923C04089590913B04892BD2 +:104E700080933B040895809590913B04892380930F +:104E80003B04089510923B04089590913A04892BB5 +:104E900080933A040895809590913A0489238093F1 +:104EA0003A04089510923A040895809329040895CD +:104EB0001092290408958091860290918702FC0146 +:104EC00031969C01205F3F4F80E0919191118F5F5F +:104ED000E217F307D1F70895E0918602F091870277 +:104EE00080913C048083E0918602F091870290815A +:104EF00080913B04892B8083E0918602F0918702A8 +:104F0000908180913A04892B8083809129048823A1 +:104F100061F0E0918602F09187029081892B808375 +:104F20000E945B2781111092290480918602909142 +:104F300087020C944B1B80915E04843039F11092EF +:104F40003E0420E488E190E00FB6F894A8958093A1 +:104F500060000FBE2093600080E00E94300580E07A +:104F60000E94AE0A83B7817F846083BF83B781606C +:104F700083BF7894889583B78E7F83BF88E10FB60F +:104F8000F89480936000109260000FBE0895089519 +:104F90000895CF9380E00E9430050E94C7270E94A9 +:104FA000650C0E94C827C0E08C2F0E94AE0D892B93 +:104FB00029F4CF5FC430C1F780E001C081E0CF9118 +:104FC00008950E945C2180E00E9430050E94562DC9 +:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5 +:104FE00011248F939F93AF93BF9380913E048111BF +:104FF00013C080913F0490914004A0914104B0916E +:1050000042044196A11DB11D80933F04909340043A +:10501000A0934104B0934204BF91AF919F918F91AF +:105020000F900FBE0F901F90189582E084BD93E003 +:1050300095BD9AEF97BD80936E0008952FB7F894B1 +:1050400080913F0490914004A0914104B0914204AA +:105050002FBF0895CF92DF92EF92FF920F931F938D +:105060002FB7F89440913F0450914004609141045F +:10507000709142042FBF6A017B01EE24FF248C0152 +:1050800020E030E0C016D106E206F30610F44150ED +:1050900051099A01281B390BC9011F910F91FF90EB +:1050A000EF90DF90CF9008951F920F920FB60F925E +:1050B00011248F939F93AF93BF9380913F0490915E +:1050C0004004A0914104B09142040196A11DB11D7C +:1050D00080933F0490934004A0934104B093420412 +:1050E000BF91AF919F918F910F900FBE0F901F9026 +:1050F00018950E943C18F8942FEF87EA91E621500A +:1051000080409040E1F700C0000087E090EBDC01B8 +:105110008093690490936A04A0936B04B0936C0429 +:105120009CE088E10FB6F894A895809360000FBECC +:1051300090936000FFCF0E94DA28811102C00E9484 +:10514000B6280E94E52880933D040E94F2288093AF +:10515000670487FB882780F9809385020E94E928ED +:10516000682F70E080E090E00C9418256DEE7EEFE3 +:1051700080E090E00E94093260E082E090E00E94CE +:10518000F73160E083E090E00E94F73160E084E076 +:1051900090E00E94F73160E085E090E00E94F731F6 +:1051A00060E086E090E00E94F7316FEF87E090E0EA +:1051B0000C94F73180E090E00E94F13121E08D3EC7 +:1051C0009E4F09F020E0822F089582E090E00C9439 +:1051D000E93183E090E00C94E931682F83E090E0BE +:1051E0000C94F73184E090E00C94E931682F84E06E +:1051F00090E00C94F73186E090E00C94E931682F50 +:1052000086E090E00C94F73187E090E00C94E9316F +:10521000682F87E090E00C94F7318091450480FF7F +:105220000BC060918B0285E0689FB00111247595D9 +:105230006795759567952BC081FF09C060918B02BA +:1052400085E0689FB00111247595679520C082FFA5 +:1052500007C060918B0285E0689FB001112417C0E0 +:10526000909146049923D1F060918A02961788F7AD +:1052700020918B0285E0289F90011124929FA0012C +:10528000939F500D112470E0CA010E94CF31603805 +:10529000710540F46115710539F002C065E070E0F8 +:1052A000862F08958FE7089581E008958091450441 +:1052B00080FF08C06091890270E0759567957595CB +:1052C000679521C081FF06C06091890270E07595E5 +:1052D000679519C082FF04C06091890270E010C018 +:1052E000909146049923C1F0609188029617A0F727 +:1052F00080918902899FC001112470E00E94CF3102 +:105300006038710528F46115710521F0862F089524 +:105310008FE7089581E0089561E070E0F4CF803F69 +:1053200021F40E940D29819504C0813F29F40E9437 +:105330000D29809349040895823F21F40E940D298C +:10534000819504C0833F29F40E940D29809348046D +:105350000895893F19F40E94562905C08A3F31F407 +:105360000E945629819580934A0408958B3F21F429 +:105370000E945629819504C08C3F29F40E94562929 +:1053800080934B040895843F21F480914704816009 +:1053900017C0853F21F480914704826011C0863F89 +:1053A00021F48091470484600BC0873F21F48091F1 +:1053B0004704886005C0883F31F4809147048061CC +:1053C0008093470408958D3F21F4809145048160C6 +:1053D0000BC08E3F21F480914504826005C08F3F51 +:1053E00029F4809145048460809345040895803FAA +:1053F00039F48091490487FF6CC01092490469C058 +:10540000813F29F4809149041816BCF362C0909141 +:105410004804823F29F497FF5CC01092480459C0A9 +:10542000833F19F41916CCF354C0893F41F480919D +:105430004A0418160CF04DC010924A044AC08A3F24 +:1054400029F480914A0487FF44C0F6CF8B3F39F49A +:1054500080914B0487FF3DC010924B043AC08C3FB3 +:1054600029F480914B041816BCF333C0843F21F417 +:10547000809147048E7F17C0853F21F480914704B7 +:105480008D7F11C0863F21F4809147048B7F0BC034 +:10549000873F21F480914704877F05C0883F31F41E +:1054A000809147048F7E8093470413C08D3F21F481 +:1054B000809145048E7F0BC08E3F21F4809145047E +:1054C0008D7F05C08F3F29F4809145048B7F8093A9 +:1054D00045048091480481110EC0809149048111D6 +:1054E0000AC080914A04811106C080914B04811149 +:1054F00002C010924604089587E494E00E94561B6F +:105500000E941E28909344048093430408951F939F +:10551000CF93DF9380914304909144040E942A2802 +:10552000AC0190914604992321F020918C0230E047 +:1055300006C020918D028AE0289F90011124421715 +:10554000530708F486C080914804C0914904D09163 +:105550004A0410914B04811107C0C11176C0D111CA +:1055600074C0111172C075C09F3F19F09F5F909376 +:105570004604181624F40E940D2980934804809153 +:10558000480487FF05C00E940D2981958093480437 +:105590001C1624F40E940D2980934904809149042B +:1055A00087FF05C00E940D29819580934904609171 +:1055B0004804662339F1C0914904CC2319F17727B7 +:1055C00067FD7095872F972F0E94F12E23E333E319 +:1055D00043E35FE30E9401300E94BE2E60934804C3 +:1055E0006C2F772767FD7095872F972F0E94F12EDC +:1055F00023E333E343E35FE30E9401300E94BE2EC6 +:10560000609349041D1624F40E94562980934A048D +:1056100080914A0487FF05C00E9456298195809396 +:105620004A04111624F40E94562980934B04809159 +:105630004B0487FF05C00E945629819580934B0437 +:10564000DF91CF911F910C947C2A9F3F09F08ECF60 +:1056500096CFDF91CF911F910895E7E4F4E085E0C4 +:10566000DF011D928A95E9F71092460410924504D5 +:105670000895833081F128F4813059F08230D1F0DF +:105680000895853009F449C0B8F1863009F456C050 +:10569000089580918D02262F30E0280F311D2F3F75 +:1056A000310524F4680F60938D0208958FEF809385 +:1056B0008D02089580918C02262F30E0280F311D35 +:1056C0002F3F310524F4680F60938C0208958FEF0B +:1056D00080938C02089580918B02262F30E0280F52 +:1056E000311D2F3F310524F4680F60938B0208951C +:1056F0008FEF80938B02089580918A02262F30E0ED +:10570000280F311D2F3F310524F4680F60938A0262 +:1057100008958FEF80938A02089580918902262F41 :1057200030E0280F311D2F3F310524F4680F6093BE -:105730008A0208958FEF80938A020895833011F1D1 -:1057400028F4813049F0823091F00895853081F15C -:1057500020F18630C1F1089580918F02681720F4FE -:10576000861B80938F02089510928F020895809176 -:105770008E02681720F4861B80938E020895109283 -:105780008E02089580918D02681720F4861B809305 -:105790008D02089510928D02089580918C026817F1 -:1057A00020F4861B80938C02089510928C02089539 -:1057B00080918B02681720F4861B80938B020895DA -:1057C00010928B02089580918A02681720F4861B3C -:1057D00080938A02089510928A0208950F931F936E -:1057E000873208F048C08E3108F094C0803109F447 -:1057F0007EC008F5873009F468C068F4863009F087 -:10580000A4C08091ED03817F8E7F8093ED0381E0C2 -:105810008093FD039BC08B3009F490C08E3009F05B -:1058200094C08091ED0382FB222720F991E092271A -:1058300090FB82F965C0863109F480C060F4813143 -:1058400009F083C00E944B219091870281E0892753 -:105850008093870273C0893109F470C08B3109F0DD -:1058600074C08091ED0381FB222720F991E09227FB -:1058700090FB81F945C0883309F460C050F4893247 -:1058800009F45EC0853309F45BC0873209F458C05F -:105890005CC0833409F454C028F48A3308F455C03A -:1058A000895339C0883409F050C00E944B210E94AE -:1058B00090060FEF13ED20E3015010402040E1F778 -:1058C00000C000000E94682839C09091ED03892F24 -:1058D0008095817080FB90F929F096609860909394 -:1058E000ED0334C0997F977F9093ED0327C080919B -:1058F000ED0383FB222720F991E0922790FB83F9A7 -:105900008093ED039923D1F08091ED038160809322 -:10591000ED0314C08D5141E050E060E070E08A0179 -:105920009B0104C0000F111F221F331F8A95D2F75D -:10593000C901B8010E9407250E944B2181E006C0E1 -:1059400061E070E080E090E0F5CF80E01F910F9182 -:10595000089580E0089580E00895CF93C82F809146 -:10596000FD03813069F018F08230C9F184C0E09104 -:105970008802F09189028081823209F07EC007C0DE -:10598000E0918802F09189028081823261F48C2F4B -:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 -:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 -:1059B000C43179F048F4CB3079F0C03109F061C0DE -:1059C00082E08093FD0308C0C93219F0C83321F08A -:1059D00058C01092FD0355C081E0817054C0C93297 -:1059E00091F120F5C43179F1B0F4C73009F047C026 -:1059F0008EE180938F0282E380938E028AE080930F -:105A00008D0284E180938C0288E080938B0288E28F -:105A100080938A0234C0CE51C63088F5EC2FF0E076 -:105A2000E65FFC4F80818093FC0329C0CE34E9F00F -:105A300020F4CB3421F56AE013C0C13579F0C235CA -:105A4000F1F461E00DC08091FC03882319F01092FD -:105A5000FC0315C081E08093FD0315C061E006C022 -:105A60008091FC030E94282B0AC06AE08091FC030D -:105A70000E949E2B04C01092FD0380E004C081E0D0 -:105A800002C080E0AACFCF9108950E94C928811159 -:105A900002C00E94A5280E94EA288093180480FF73 -:105AA00002C0869501C080E00C94540580911804D2 -:105AB000982F9695292F30E0233031054CF49F5FC5 -:105AC000990F8170892B8160809318040E94EE28C1 -:105AD0008091180486950C94540580911804982F91 -:105AE000969591F09158990F8170892B80931804A5 -:105AF0008E7F91E009F490E08091180490FB80F98A -:105B0000809318040E94EE288091180486950C94C6 -:105B1000540580911804982F909590FB80F98093FC -:105B200018040E94EE288091180480FF02C0869518 -:105B300001C080E00C94540590911804892F86953B -:105B40008F5F8F779170843028F4880F892B809332 -:105B5000180402C090931804809118048E7F91E07D -:105B600009F490E08091180490FB80F98093180468 -:105B70000E94EE288091180486950C94540520917B -:105B80001804922F96958927982F990F822F81704C -:105B9000892B809318048E7F91E009F490E0809126 -:105BA000180490FB80F9809318040E94EE288091DD -:105BB000180486950C9454055058BB27AA270ED07C -:105BC00075C166D130F06BD120F031F49F3F11F4F4 -:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC -:105BE00080F3BA17620773078407950718F071F4FA -:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 -:105C0000B90190010C01CA01A0011124FF27591B01 -:105C100099F0593F50F4503E68F11A16F040A22F07 -:105C2000232F342F4427585FF3CF46953795279578 -:105C3000A795F0405395C9F77EF41F16BA0B620B77 -:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE -:105C5000771F881FC2F70EC0BA0F621F731F841F01 -:105C600048F4879577956795B795F7959E3F08F027 -:105C7000B3CF9395880F08F09927EE0F97958795E6 -:105C80000895D9D008F481E008950CD00FC107D150 -:105C900040F0FED030F021F45F3F19F0F0C0511118 -:105CA00039C1F3C014D198F39923C9F35523B1F343 -:105CB000951B550BBB27AA2762177307840738F07B -:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA -:105CD0000E2E3AF0E0E830D091505040E695001C8E -:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A -:105CF000261737074807AB07B0E809F0BB0B802D24 -:105D0000BF01FF2793585F4F2AF09E3F510568F06F -:105D1000B6C000C15F3FECF3983EDCF38695779503 -:105D20006795B795F7959F5FC9F7880F911D969571 -:105D3000879597F90895E1E0660F771F881FBB1FCD -:105D4000621773078407BA0720F0621B730B840B7A -:105D5000BA0BEE1F88F7E095089504D06894B1114E -:105D6000D9C00895BCD088F09F5790F0B92F9927DB -:105D7000B751A0F0D1F0660F771F881F991F1AF056 -:105D8000BA95C9F712C0B13081F0C3D0B1E008951F -:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 -:105DA000869577956795B395D9F73EF4909580954C -:105DB000709561957F4F8F4F9F4F0895E89409C06C -:105DC00097FB3EF490958095709561957F4F8F4F2E -:105DD0009F4F9923A9F0F92F96E9BB279395F69544 -:105DE000879577956795B795F111F8CFFAF4BB0FC2 -:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 -:105E0000882311F096E911C0772321F09EE8872FAF -:105E1000762F05C0662371F096E8862F70E060E06B -:105E20002AF09A95660F771F881FDAF7880F9695E4 -:105E3000879597F90895990F0008550FAA0BE0E888 -:105E4000FEEF16161706E807F907C0F0121613063C -:105E5000E407F50798F0621B730B840B950B39F47C -:105E60000A2661F0232B242B252B21F408950A26E2 -:105E700009F4A140A6958FEF811D811D089597F922 -:105E80009F6780E870E060E008959FEF80EC0895E0 -:105E900000240A9416161706180609060895002409 -:105EA0000A9412161306140605060895092E039483 -:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 -:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 -:105ED0009058440F551F59F05F3F71F04795880F58 -:105EE00097FB991F61F09F3F79F0879508951216EF -:105EF00013061406551FF2CF4695F1DF08C016169B -:105F000017061806991FF1CF86957105610508944B -:105F10000895E894BB2766277727CB0197F9089562 -:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF -:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E -:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 -:105F5000F001729FBB27F00DB11D639FAA27F00DC2 -:105F6000B11DAA1F649F6627B00DA11D661F829FE9 -:105F70002227B00DA11D621F739FB00DA11D621FCE -:105F8000839FA00D611D221F749F3327A00D611DEB -:105F9000231F849F600D211D822F762F6A2F1124CD -:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 -:105FB000BB1F661F771F881F91505040A9F79E3F57 -:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 -:105FD000869577956795B795F795E7959F5FC1F794 -:105FE000FE2B880F911D9695879597F90895FA01D4 -:105FF000EE0FFF1F30962105310599F161157105EE -:1060000061F48038BFE39B0749F1689490388105BB -:1060100061F08038BFEF9B0741F0992342F5FF3FC5 -:10602000E1053105210511F1E8940894E795D901BE -:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 -:1060400070F4A695E0F7F73950F019F0FF3A38F4FC -:106050009F779F930CD00F9007FC905808953EF0C7 -:1060600014CF60E070E080E89FE308954FE79F77EA -:106070005F934F933F932F939ED02F913F914F91DA -:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C -:1060900026DFC8F39638C0F707F80F92E8942BE391 -:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F -:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B -:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 -:1060D0004427EE0F441FFA95E1F74195550B32D056 -:1060E0000F9007FE26C00895DF93CF931F930F9361 -:1060F000FF92EF92DF927B018C01689405C0DA2E4B -:10610000EF011EDFFE01E894A5912591359145919F -:106110005591AEF3EF0162DDFE019701A801DA941B -:1061200079F7DF90EF90FF900F911F91CF91DF9162 -:1061300008959B01AC0160E070E080E89FE3A5CD8D -:106140009ECEACC0CCDEE8F39923D9F3940F511D59 -:10615000BBF39150504094F059F0882332F0660F11 -:10616000771F881F91505040C1F79E3F510544F75B -:10617000880F911D9695879597F908955F3FACF02C -:10618000983E9CF0BB27869577956795B79508F460 -:10619000B1609395C1F7BB0F58F711F460FFE8CFDA -:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F -:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 -:1061C000DF93CF931F930F93FF92C92FDD2788236F -:1061D0002AF02197660F771F881FDAF720E030E05A -:1061E00040E85FEB9FE3883920F0803E30F0219655 -:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 -:1062000073DF8B01BE01EC01FB2E6F577109759591 -:10621000771F880B990BD4DD28E132E741E35FE378 -:106220008FDEAF2D9801AE01FF900F911F91CF919E -:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E -:10624000AC01BF5728F422273327442750781FC0BA -:10625000B75188F4AB2F0024469537952795011C3C -:10626000A395D2F3002069F0220F331F441FB3958A -:10627000DAF30DD0A1CC61307105A0E88A07B946E8 -:1062800030F49B01AC0166277727882790783096F9 -:1062900021F0208331834283538308959F3F31F05F -:1062A000915020F4879577956795B795880F911D44 -:1062B0009695879597F90895AA1BBB1B51E107C0D6 -:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 -:1062D000991F5A95A9F780959095BC01CD01089515 -:1062E00097FB072E16F4009407D077FD09D00E9483 -:1062F0005C3107FC05D03EF4909581959F4F089541 -:10630000709561957F4F0895EE0FFF1F0590F491F2 -:10631000E02D0994F999FECF92BD81BDF89A992795 -:1063200080B50895A8E1B0E042E050E00C94B231AD -:10633000262FF999FECF92BD81BDF89A019700B43E -:10634000021639F01FBA20BD0FB6F894FA9AF99ADE -:106350000FBE08950196272F0E9499310C94983111 -:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 -:10637000F89A319600B40D9241505040B8F7089504 -:04638000F894FFCFBF -:1063840007000C52D02445000000410000DC44000A -:1063940000004152D0A4440000404100005C44008D -:1063A40000004148F17644000000415C978A4400B3 -:1063B4000000411FD592440000004152D0A4440083 -:1063C4000000415CFFB844000000410AA7CF44002C -:1063D4000000410000DC44000000410AA7CF440053 -:1063E4000000410000DC4400000041000000000007 -:1063F40000804000005C45000040410000000000B7 -:1064040000804052D02445000040410AA7CF4400F8 -:106414000000410000DC44000000410000000000D6 -:1064240000804052D024450000404100000000009C -:1064340000804000005C45000040410AA7CF4400B2 -:106444000000410000DC44000000410000000000A6 -:1064540000804052D024450000404100000000006C -:106464000080400AA74F45000040410AA7CF4400DE -:106474000000410000DC4400000041000000000076 -:1064840000804052D024450000004100000000007C -:106494000080405CFF38450000004100000000001F -:1064A40000804052D02445000000410AA7CF440098 -:1064B4000000410000DC4400000041000000000036 -:1064C40000804052D024450000804153D024450030 -:1064D40000404160970A450000004154D0A44400A4 -:1064E4000000410000DC440000004160970A4500C0 -:1064F40000A041050000003F0000C8423214C0144F -:106504009D14691435140101DA032808140A321E93 -:106514000000020004000500070009000B000C0045 -:106524000E001000110013001500170018001A00C7 -:106534001C001D001F002100230024002600280049 -:1065440029002B002D002F003000320034003500CC -:10655400370039003B00400045002500260061005B -:106564006000200037006400650066006700440096 -:106574004600240047003F4D3639BD0970093A09E9 -:1065840001099408AD08C608DF08010203040506E2 -:0465940007080900EB +:10573000890208958FEF80938902089580918802ED +:10574000262F30E0280F311D2F3F310524F4680F3C +:105750006093880208958FEF8093880208958330C4 +:1057600011F128F4813049F0823091F008958530AC +:1057700081F120F18630C1F1089580918D02681782 +:1057800020F4861B80938D02089510928D02089557 +:1057900080918C02681720F4861B80938C020895F8 +:1057A00010928C02089580918B02681720F4861B5A +:1057B00080938B02089510928B02089580918A0243 +:1057C000681720F4861B80938A02089510928A023B +:1057D000089580918902681720F4861B80938902BE +:1057E000089510928902089580918802681720F424 +:1057F000861B8093880208951092880208950F9363 +:105800001F93873208F048C08E3108F094C0803171 +:1058100009F47EC008F5873009F468C068F4863062 +:1058200009F0A4C080913D04817F8E7F80933D0468 +:1058300081E080934D049BC08B3009F490C08E3082 +:1058400009F094C080913D0482FB222720F991E069 +:10585000922790FB82F965C0863109F480C060F41C +:10586000813109F083C00E945C219091850281E022 +:1058700089278093850273C0893109F470C08B3108 +:1058800009F074C080913D0481FB222720F991E04A +:10589000922790FB81F945C0883309F460C050F429 +:1058A000893209F45EC0853309F45BC0873209F49C +:1058B00058C05CC0833409F454C028F48A3308F417 +:1058C00055C0895339C0883409F050C00E945C210A +:1058D0000E946C060FEF13ED20E3015010402040B2 +:1058E000E1F700C000000E94792839C090913D0482 +:1058F000892F8095817080FB90F929F096609860DF +:1059000090933D0434C0997F977F90933D0427C0C6 +:1059100080913D0483FB222720F991E0922790FBA0 +:1059200083F980933D049923D1F080913D048160F7 +:1059300080933D0414C08D5141E050E060E070E080 +:105940008A019B0104C0000F111F221F331F8A957B +:10595000D2F7C901B8010E9418250E945C2181E09C +:1059600006C061E070E080E090E0F5CF80E01F913C +:105970000F91089580E0089580E00895CF93C82F97 +:1059800080914D04813069F018F08230C9F184C0F3 +:10599000E0918602F09187028081823209F07EC018 +:1059A00007C0E0918602F09187028081823261F423 +:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7 +:1059C0001DC081E090E01AC08C2F0E94BC2C811178 +:1059D00014C0C43179F048F4CB3079F0C03109F00B +:1059E00061C082E080934D0408C0C93219F0C83309 +:1059F00021F058C010924D0455C081E0817054C010 +:105A0000C93291F120F5C43179F1B0F4C73009F011 +:105A100047C08EE180938D0282E380938C028AE0FE +:105A200080938B0284E180938A0288E080938902CC +:105A300088E28093880234C0CE51C63088F5EC2FBE +:105A4000F0E0E85AFC4F808180934C0429C0CE34AA +:105A5000E9F020F4CB3421F56AE013C0C13579F0C8 +:105A6000C235F1F461E00DC080914C04882319F037 +:105A700010924C0415C081E080934D0415C061E084 +:105A800006C080914C040E94392B0AC06AE08091C4 +:105A90004C040E94AF2B04C010924D0480E004C05F +:105AA00081E002C080E0AACFCF9108950E94DA2859 +:105AB000811102C00E94B6280E94FB2880936804CE +:105AC00080FF02C0869501C080E00C943005809173 +:105AD0006804982F9695292F30E0233031054CF437 +:105AE0009F5F990F8170892B8160809368040E9469 +:105AF000FF288091680486950C9430058091680495 +:105B0000982F969591F09158990F8170892B8093D9 +:105B100068048E7F91E009F490E08091680490FB26 +:105B200080F9809368040E94FF288091680486951C +:105B30000C94300580916804982F909590FB80F923 +:105B4000809368040E94FF288091680480FF02C04F +:105B5000869501C080E00C94300590916804892FEF +:105B600086958F5F8F779170843028F4880F892B0A +:105B70008093680402C090936804809168048E7FCB +:105B800091E009F490E08091680490FB80F98093A3 +:105B900068040E94FF288091680486950C94300563 +:105BA00020916804922F96958927982F990F822F1C +:105BB0008170892B809368048E7F91E009F490E0D6 +:105BC0008091680490FB80F9809368040E94FF280C +:105BD0008091680486950C9430055058BB27AA27FD +:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7 +:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45 +:105C0000D3D180F3BA17620773078407950718F09A +:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A +:105C20000B01B90190010C01CA01A0011124FF2749 +:105C3000591B99F0593F50F4503E68F11A16F04044 +:105C4000A22F232F342F4427585FF3CF4695379543 +:105C50002795A795F0405395C9F77EF41F16BA0B08 +:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6 +:105C7000661F771F881FC2F70EC0BA0F621F731FFF +:105C8000841F48F4879577956795B795F7959E3F5C +:105C900008F0B3CF9395880F08F09927EE0F9795EA +:105CA0008795089527D108F481E008950CD06BC141 +:105CB00063D140F05AD130F021F45F3F19F03EC17A +:105CC000511195C14FC170D198F39923C9F3552350 +:105CD000B1F3951B550BBB27AA27621773078407DF +:105CE00038F09F5F5F4F220F331F441FAA1FA9F395 +:105CF00033D00E2E3AF0E0E830D091505040E69587 +:105D0000001CCAF729D0FE2F27D0660F771F881FE7 +:105D1000BB1F261737074807AB07B0E809F0BB0BD6 +:105D2000802DBF01FF2793585F4F2AF09E3F5105FA +:105D300068F004C15CC15F3FECF3983EDCF38695EC +:105D400077956795B795F7959F5FC9F7880F911D70 +:105D50009695879597F90895E1E0660F771F881F5C +:105D6000BB1F621773078407BA0720F0621B730B0F +:105D7000840BBA0BEE1F88F7E095089504D0689461 +:105D8000B11135C1089518D188F09F5790F0B92FFF +:105D90009927B751A0F0D1F0660F771F881F991F80 +:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035 +:105DB00008951CC1672F782F8827B85F39F0B93F45 +:105DC000CCF3869577956795B395D9F73EF4909582 +:105DD0008095709561957F4F8F4F9F4F0895E89400 +:105DE00009C097FB3EF490958095709561957F4F23 +:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1 +:105E0000F695879577956795B795F111F8CFFAF4E0 +:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11 +:105E200016C0882311F096E911C0772321F09EE86F +:105E3000872F762F05C0662371F096E8862F70E0D5 +:105E400060E02AF09A95660F771F881FDAF7880FAF +:105E50009695879597F9089588D018F011F08CD011 +:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4 +:105E7000E7FB6217730784079507A8F199F3E92FE9 +:105E8000FF2788232AF03197660F771F881FDAF7DC +:105E9000952F5527442332F091505040220F331F45 +:105EA000441FD2F7BB27E91BF50B621B730B840B56 +:105EB000B109C1F222F4620F731F841FB11D319723 +:105EC0002AF0660F771F881FBB1FEFCF91505040FD +:105ED0005AF041F0882332F0660F771F881F9150E7 +:105EE0005040C1F7939530C08695779567959F5F31 +:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D +:105F000016161706E807F907C0F012161306E4077D +:105F1000F50798F0621B730B840B950B39F40A2676 +:105F200061F0232B242B252B21F408950A2609F454 +:105F3000A140A6958FEF811D811D089597F99F6758 +:105F400080E870E060E008959F3F31F0915020F4C8 +:105F5000879577956795B795880F911D9695879545 +:105F600097F908959FEF80EC089500240A9416167F +:105F7000170618060906089500240A941216130637 +:105F8000140605060895092E0394000C11F48823C5 +:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1 +:105FA0007F4F8F4F9F4F089557FD9058440F551FB7 +:105FB00059F05F3F71F04795880F97FB991F61F08B +:105FC0009F3F79F087950895121613061406551F02 +:105FD000F2CF4695F1DF08C0161617061806991F6E +:105FE000F1CF86957105610508940895E894BB2763 +:105FF00066277727CB0197F908957CDF08F48FEFA8 +:1060000008950BD0C0CFB1DF28F0B6DF18F095238C +:1060100009F094CFA7CF1124EACFC6DFA0F3959F54 +:10602000D1F3950F50E0551F629FF001729FBB277F +:10603000F00DB11D639FAA27F00DB11DAA1F649F2B +:106040006627B00DA11D661F829F2227B00DA11DDE +:10605000621F739FB00DA11D621F839FA00D611D64 +:10606000221F749F3327A00D611D231F849F600D85 +:10607000211D822F762F6A2F11249F5750408AF0BE +:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A +:10609000881F91505040A9F79E3F510570F04ECF98 +:1060A000A6CF5F3FECF3983EDCF386957795679536 +:1060B000B795F795E7959F5FC1F7FE2B880F911D68 +:1060C0009695879597F90895FA01EE0FFF1F309680 +:1060D0002105310599F16115710561F48038BFE33F +:1060E0009B0749F168949038810561F08038BFEFD3 +:1060F0009B0741F0992342F5FF3FE105310521055A +:1061000011F1E8940894E795D901AA2329F4AB2F5B +:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4 +:10612000F73950F019F0FF3A38F49F779F930CD06D +:106130000F9007FC905808953EF014CF60E070E097 +:1061400080E89FE308954FE79F775F934F933F93D6 +:106150002F939ED02F913F914F915F9152DF05C0B9 +:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801 +:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1 +:106180004EDF0F920F920F924DB75EB70F92C0D0B5 +:10619000ECEFF0E016D04F915F91EF91FF91E59514 +:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23 +:1061B000FA95E1F74195550B32D00F9007FE26C0B6 +:1061C0000895DF93CF931F930F93FF92EF92DF9287 +:1061D0007B018C01689405C0DA2EEF011EDFFE0101 +:1061E000E894A5912591359145915591AEF3EF0134 +:1061F00006DDFE019701A801DA9479F7DF90EF90B0 +:10620000FF900F911F91CF91DF9108959B01AC01F9 +:1062100060E070E080E89FE349CD90CE95CECCDE83 +:10622000E8F39923D9F3940F511DBBF391505040DB +:1062300094F059F0882332F0660F771F881F915031 +:106240005040C1F79E3F510544F7880F911D969528 +:10625000879597F908955F3FACF0983E9CF0BB2777 +:10626000869577956795B79508F4B1609395C1F7D2 +:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70 +:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67 +:1062900093DEC8F39923D1F3C6F3DF93CF931F9313 +:1062A0000F93FF92C92FDD2788232AF02197660FCD +:1062B000771F881FDAF720E030E040E85FEB9FE3CC +:1062C000883920F0803E30F021968F7787DCE4E239 +:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197 +:1062E000EC01FB2E6F5771097595771F880B990B81 +:1062F00078DD28E132E741E35FE38FDEAF2D9801DF +:10630000AE01FF900F911F91CF91DF9178DC3BCED2 +:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497 +:1063200022273327442750781FC0B75188F4AB2F5A +:106330000024469537952795011CA395D2F300209C +:1063400069F0220F331F441FB395DAF30DD045CC0B +:1063500061307105A0E88A07B94630F49B01AC01B1 +:106360006627772788279078309621F0208331831D +:10637000428353830895AA1BBB1B51E107C0AA1F88 +:10638000BB1FA617B70710F0A61BB70B881F991FD6 +:106390005A95A9F780959095BC01CD01089597FB7A +:1063A000072E16F4009407D077FD09D00E94BB3168 +:1063B00007FC05D03EF4909581959F4F0895709508 +:1063C00061957F4F0895EE0FFF1F0590F491E02D2A +:1063D0000994F999FECF92BD81BDF89A992780B5AD +:1063E0000895A8E1B0E042E050E00C941132262F6D +:1063F000F999FECF92BD81BDF89A019700B40216BB +:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68 +:1064100008950196272F0E94F8310C94F731DC0182 +:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F +:10643000319600B40D9241505040B8F70895F89449 +:02644000FFCF8C +:106442000C52D02445000000410000DC4400000052 +:106452004152D0A4440000404100005C44000000CE +:106462004148F17644000000415C978A44000000F4 +:10647200411FD592440000004152D0A444000000C4 +:10648200415CFFB844000000410AA7CF440000006D +:10649200410000DC44000000410AA7CF4400000094 +:1064A200410000DC440000004100000000000080C8 +:1064B2004000005C450000404100000000000080F8 +:1064C2004052D02445000040410AA7CF44000000BA +:1064D200410000DC44000000410000000000008098 +:1064E2004052D024450000404100000000000080DE +:1064F2004000005C45000040410AA7CF4400000074 +:10650200410000DC44000000410000000000008067 +:106512004052D024450000404100000000000080AD +:10652200400AA74F45000040410AA7CF440000009F +:10653200410000DC44000000410000000000008037 +:106542004052D024450000004100000000000080BD +:10655200405CFF3845000000410000000000008060 +:106562004052D02445000000410AA7CF4400000059 +:10657200410000DC440000004100000000000080F7 +:106582004052D024450000804153D02445000040B1 +:106592004160970A450000004154D0A44400000025 +:1065A200410000DC440000004160970A450000A061 +:1065B20041050000003F0000C8424314D114AE144C +:1065C2007A14461401012A042808140A321E000013 +:1065D200020004000500070009000B000C000E0079 +:1065E2001000110013001500170018001A001C00FB +:1065F2001D001F002100230024002600280029007E +:106602002B002D002F0030003200340035003700FF +:1066120039003B0040004500250026006100600073 +:1066220020003700640065006600670044004600F1 +:10663200240047003149803F5D8B803FF8BF803F97 +:10664200CAE1803F73ED803FCAE1803FF8BF803FDF +:106652005D8B803F3149803F0000803FF16D7F3F7D +:1066620075EA7E3F4C827E3F833F7E3F84287E3F99 +:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6 +:106682000000803F3F4D363975092809F208B908E4 +:106692004C0865087E0897080102030405060708EE +:0266A2000900ED :00000001FF diff --git a/keyboard/planck/planck_pcb_r4_w_bootloader.hex b/keyboard/planck/planck_pcb_r4_w_bootloader.hex index f2e9993ac..140bf415f 100644 --- a/keyboard/planck/planck_pcb_r4_w_bootloader.hex +++ b/keyboard/planck/planck_pcb_r4_w_bootloader.hex @@ -250,76 +250,76 @@ :107FE4000C94ED3E0C94113F0C94193F0C94213FDA :0C7FF4000C94F23E0C94033F0C94293FC7 :040000030000700089 -:100000000C94FE040C9442050C9442050C94420599 -:100010000C9442050C9442050C9442050C94420544 -:100020000C9442050C9442050C94A6180C94781973 -:100030000C94DB270C9442050C9442050C94420569 -:100040000C9442050C9442050C9442050C94420514 -:100050000C9442050C9443280C9442050C944205E0 -:100060000C9442050C9442050C9442050C944205F4 -:100070000C9442050C9442050C9442050C944205E4 -:100080000C94D10E0C9442050C9442050C9442053C -:100090000C9442050C9442050C9442050C944205C4 -:1000A0000C9442050C9442050C9442059D05AD0547 -:1000B000BF05CF05D505E405F005F60504060D06D8 -:1000C0001E062E06340664069013901390139013A8 -:1000D000901390139013901390139013A713A713DA -:1000E000A713A713A713A713A713A713A713A71340 -:1000F00090139013901390139013A713A713A713A3 -:10010000A713A713901390139013A713A713A71364 -:10011000E519071AF51A071AF51A4C1A6F1AF51A83 -:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C -:1001300027212721C81E2721C91FC91F8C20A320C2 -:100140002721122107634236B79BD8A71A39685670 -:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 -:10016000753EF6177231BF000000803F08000000A6 -:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C -:1001800000000080BEABAAAAAA3E00000000BF008B -:100190000000803F0000000000084178D3BB438787 -:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B -:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 -:1001C0003F00000000002B0014001A00080015007A -:1001D00017001C0018000C00120013002A00290050 -:1001E00004001600070009000A000B000D000E00B5 -:1001F0000F0033003400E1001D001B000600190051 -:1002000005001100100036003700380028000530C6 -:10021000E000E200E30003302C002C00043050002A -:10022000510052004F002B0014001A000900130067 -:100230000A000D000F0018001C0033002A002900DE -:10024000040015001600170007000B00110008003D -:100250000C0012003400E1001D001B000600190014 -:1002600005000E0010003600370038002800053069 -:10027000E000E200E30003302C002C0004305000CA -:10028000510052004F002B0034003600370013009D -:100290001C0009000A00060015000F002A002900B2 -:1002A00004001200080018000C0007000B001700E3 -:1002B000110016003800E100330014000D000E009C -:1002C0001B00050010001A0019001D002800053051 -:1002D000E000E200E30003302C002C00043050006A -:1002E000510052004F0035021E021F02200221025F -:1002F0002202230224022502260227022A004C00A1 -:100300003A003B003C003D003E003F002D022E0223 -:100310002F02300231020100400041004200430040 -:10032000440045000100010001000100010001003E -:100330000100010001000100010001000100AB000B -:10034000AA00A900AE0035001E001F0020002100F9 -:100350002200230024002500260027002A004C004C -:100360003A003B003C003D003E003F002D002E00C7 -:100370002F003000310001004000410042004300E6 -:1003800044004500010001000100010001000100DE -:100390000100010001000100010001000100AB00AB -:1003A000AA00A900AE00000000000000000000004C -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F0000000000000000330000000000430000096 -:100400000000000000001E001E001E001E001E0056 -:100410001E001E001E001E001E001E001E0000000A -:1004200014001A000800150017001C0018000C002A -:10043000120013002F00000004001600070009003E -:100440000A000B000D000E000F00330034000D30C9 -:10045000000000000600190000000000110010005C +:100000000C94DA040C941E050C941E050C941E0529 +:100010000C941E050C941E050C941E050C941E05D4 +:100020000C941E050C941E050C94B7180C94891999 +:100030000C94EC270C941E050C941E050C941E05C4 +:100040000C941E050C941E050C941E050C941E05A4 +:100050000C941E050C9454280C941E050C941E053B +:100060000C941E050C941E050C941E050C941E0584 +:100070000C941E050C941E050C941E050C941E0574 +:100080000C94AD0E0C941E050C941E050C941E05CC +:100090000C941E050C941E050C941E050C941E0554 +:1000A0000C941E050C941E050C941E0579058905FB +:1000B0009B05AB05B105C005CC05D205E005E905FA +:1000C000FA050A0610064006F619181A061B181A31 +:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC +:1000E000281E281E821EC01E38213821D91E382104 +:1000F000DA1FDA1F9D20B4203821232107634236FE +:10010000B79BD8A71A39685618AEBAAB558C1D3CA8 +:10011000B7CC5763BD6DEDFD753EF6177231BF006C +:100120000000803F08000000BE922449123EABAAA6 +:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01 +:10014000AA3E00000000BF000000803F0000000049 +:1001500000084178D3BB4387D1133D190E3CC3BD82 +:100160004282AD2B3E68EC8276BED98FE1A93E4C2F +:1001700080EFFFBE01C4FF7F3F00000000002B00A6 +:1001800014001A000800150017001C0018000C00CD +:10019000120013002A0029000400160007000900BD +:1001A0000A000B000D000E000F0033003400E100C8 +:1001B0001D001B000600190005001100100036008C +:1001C0003700380028000530E000E200E30003308B +:1001D0002C002C0004305000510052004F002B0026 +:1001E00014001A00090013000A000D000F00180087 +:1001F0001C0033002A002900040015001600170017 +:1002000007000B00110008000C0012003400E10090 +:100210001D001B000600190005000E00100036002E +:100220003700380028000530E000E200E30003302A +:100230002C002C0004305000510052004F002B00C5 +:1002400034003600370013001C0009000A000600C5 +:1002500015000F002A0029000400120008001800F1 +:100260000C0007000B001700110016003800E10019 +:10027000330014000D000E001B00050010001A00D2 +:1002800019001D0028000530E000E200E300033003 +:100290002C002C0004305000510052004F00350259 +:1002A0001E021F0220022102220223022402250232 +:1002B000260227022A004C003A003B003C003D0089 +:1002C0003E003F002D022E022F02300231020100BB +:1002D000400041004200430044004500010001008D +:1002E0000100010001000100010001000100010006 +:1002F000010001000100AB00AA00A900AE0035001A +:100300001E001F00200021002200230024002500E1 +:10031000260027002A004C003A003B003C003D002C +:100320003E003F002D002E002F0030003100010064 +:10033000400041004200430044004500010001002C +:1003400001000100010001000100010001000100A5 +:10035000010001000100AB00AA00A900AE000000EE +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000003301A +:1003B00000000000043000000000000000001E00EB +:1003C0001E001E001E001E001E001E001E001E003D +:1003D0001E001E001E00000014001A000800150078 +:1003E00017001C0018000C00120013002F00000062 +:1003F00004001600070009000A000B000D000E00A3 +:100400000F00330034000D3000000000060019001A +:1004100000000000110010000000000000000000BB +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C :10046000000000000000000000000000000000008C :10047000000000000000000000000000000000007C :10048000000000000000000000000000000000006C @@ -369,1512 +369,1529 @@ :1007400000000000000000000000000000000000A9 :100750000000000000000000000000000000000099 :100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C00000000000000001000050010001000100D5 -:1007D0000100010001000100010001004C000100C6 -:1007E0000100010007300630135012500030013074 -:1007F00002300C30010001000B300A3009300830A3 -:1008000001000100010001000100010001000100E0 -:1008100001000100010001000100010001000100D0 -:100820000100010001002803540068006500200059 -:1008300050006C0061006E0063006B0020004B00F4 -:100840006500790062006F006100720064000000C2 -:100850002C034F007200740068006F006C00690088 -:100860006E0065006100720020004B006500790099 -:1008700062006F00610072006400730000000403F6 -:10088000090409026D00040100A0FA090400000136 -:1008900003010100092111010001223F0007058128 -:1008A0000308000A090401000103010200092111E3 -:1008B000010001224D000705820308000A09040215 -:1008C0000001030000000921110100012236000788 -:1008D00005830308000A090403000103000000095E -:1008E00021110100012239000705840310000112C3 -:1008F00001100100000008EDFE606001000102002F -:100900000105010906A101050719E029E7150025E0 -:1009100001950875018102050819012905950575DC -:1009200001910295017503910105071900297715B9 -:10093000002501957875018102C005010980A1019A -:10094000850216010026B7001A01002AB7007510AB -:1009500095018100C0050C0901A101850316010064 -:10096000269C021A01002A9C02751095018100C084 -:1009700005010902A1010901A100050919012905C3 -:100980001500250195057501810295017503810109 -:100990000501093009311581257F95027508810609 -:1009A00009381581257F950175088106050C0A38DF -:1009B000021581257F950175088106C0C0050109D2 -:1009C00006A101050719E029E7150025019508751D -:1009D0000181029501750881010508190129059514 -:1009E000057501910295017503910105071900290B -:1009F000FF150025FF950675088100C011241FBE54 -:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 -:100A1000190490911A04A0911B04B0911C04873012 -:100A2000904BA740B04BB9F41092190410921A04DD -:100A300010921B0410921C0414BE84B7877F84BFDD -:100A400088E10FB6F89480936000109260000FBEAA -:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 -:100A600002C005900D92A431B107D9F714E0A4E1BA -:100A7000B3E001C01D92A931B107E1F70E94EC1566 -:100A80000C94C0310C940000279A2F988FEF9FEFA1 -:100A900090938700809386008AE08093800089E1AC -:100AA000809381000C94452D282F81110BC08091DB -:100AB0008000877F8093800010928D0010928C00C0 -:100AC0002F9808952F9880918000886080938000EF -:100AD000233019F48FEF9FEF0FC083E090E0821B6B -:100AE0009109880F991F2FEF3FEFA90102C056957A -:100AF00047958A95E2F7CA0190938D0080938C0008 -:100B00000895CF93DF93EC010E94DC28BE0180E0C2 -:100B100090E0DF91CF910C9407250F931F93462F00 -:100B200050E04E30510508F0DEC0DC01FA01EA5A0F -:100B3000FF4F12968C910C948431882309F4D3C012 -:100B400000E010E0980140E064E070E08BE292E0A9 -:100B50000E944F1281E090E00FC0882309F4C3C0C7 -:100B600000E010E0980140E066E070E08BEB91E07F -:100B70000E944F1282E090E00E948105B4C0882359 -:100B800009F4B1C000E010E0980140E068E070E0D6 -:100B90008BEE91E00E944F1284E090E0EDCF88232D -:100BA00011F083E005C083E00CC0882349F084E0A5 -:100BB0000E94842540E164E083E00E94910A93C092 -:100BC00084E00E94A525F6CF882331F085EE0E94AF -:100BD0006E1C0E949C2D87C085EE0E94361D83C02E -:100BE000882309F480C00E94E30D7DC0882309F4A6 -:100BF0007AC00E94DC0D00E010E0980140E065E062 -:100C000070E08BE492E027C0882309F46CC085E093 -:100C10000E94A5250E94040E66C0882309F463C0C3 -:100C200000E010E0980140E068E070E08BE191E0C6 -:100C30000E944F1285E00E94842555C0882309F444 -:100C400052C00E94E21200E010E0980140E068E02B -:100C500070E08BE191E00E944F1245C0882309F4B7 -:100C600042C00E94ED12EFCF8823E9F100E010E0CE -:100C7000980140E066E070E08BE891E00E944F123E -:100C800084E00E94A52583E00E94A52580E10E94C2 -:100C9000A52585E00E94A5250E94040E86E00E94FD -:100CA00084250E94C928811102C00E94A5280E94A3 -:100CB000E12890E090931804809317048068809353 -:100CC00017040E94E5280FC0882369F000E010E0B7 -:100CD000980140E066E070E08BE591E00E944F12E1 -:100CE00086E00E94A52580E090E01F910F91089575 -:100CF0000F931F932FEF89EF90E021508040904099 -:100D0000E1F700C0000000E010E0980140E065E07D -:100D100070E08BE492E00E944F121F910F910895B2 -:100D20000F931F9300E010E0980140E063E070E053 -:100D300083E091E00E944F122FEF82E597E021506F -:100D400080409040E1F700C000001F910F9108958E -:100D5000CF92DF92EF92FF920F931F93CF93DF9387 -:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 -:100D7000CDBF2091D10325FFC5C08C01FC0192811C -:100D800080910201992309F460C096E4E0E9F2E061 -:100D9000DE01A95BBF4F01900D929A95E1F7F80132 -:100DA0009081E0910001F0910101E90FF11DEE0F3A -:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F -:100DC0007181680F711D882777FD8095982F0E948B -:100DD000E02E20E030E040E451E40E94452E6B011B -:100DE0007C01F801218184E090E0821B9109BC0123 -:100DF000882777FD8095982F0E94E02E9B01AC01FB -:100E0000C701B6010E94DD2D9B01AC0160E070E0DE -:100E100080E090E40E94F72F20E030E04CE551E4C0 -:100E20000E94942F4FE050E0C457DF4F0FB6F89464 -:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D -:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 -:100E5000DE01119601900D929A95E1F7F8019081CB -:100E6000E0910001F0910101E90FF11DEE0FFF1F6C -:100E700021E030E02C0F3D1FE20FF31F60817181F4 -:100E8000680F711D882777FD8095982F0E94E02EAE -:100E900020E030E040E451E40E94452E6B017C01EB -:100EA000F801218184E090E0821B9109BC01882730 -:100EB00077FD8095982F0E94E02E9B01AC01C70121 -:100EC000B6010E94DD2D9B01AC0160E070E080E086 -:100ED00090E40E94F72F20E030E04CE551E40E94BE -:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF -:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 -:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 -:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 -:100F2000CF90089508950E9444056E9A769A0C9485 -:100F300078060C9492070C94A8060895880F991FC0 -:100F4000FC01EA5BFF4F859194910895880F991FEA -:100F5000FC01EA53FE4F8591949108950F931F93DE -:100F6000CF93DF93EC01811520E49207A0F5C11522 -:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 -:100F8000D10508F0EEC1C83AD10578F4C53AD105CB -:100F900008F074C0C130D10509F46DC008F4DEC199 -:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F -:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD -:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 -:100FD0008E01106506C2C13080E5D80709F4BDC096 -:100FE00068F5C13120E4D20709F4AEC050F4C03135 -:100FF00090E4D90708F0A5C0CF70DD278E01146DED -:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 -:10101000C115D04509F0A2C10E944B210E94040EC7 -:101020000E9490069FEF24E38CE091502040804086 -:10103000E1F700C000000E946828D3C1C11520E676 -:10104000D20730F4C11581E5D80708F48CC02DC152 -:10105000C11590E7D90708F481C1C11520E8D2076E -:1010600008F478C1C11580E9D80708F077C1DF70AE -:101070008E01106AB6C101E010E0B3C1C53AD105D6 -:1010800009F471C1C63AD10509F070C102E810E453 -:10109000A8C1C83AD10509F46CC1C93AD10509F40F -:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A -:1010B00069C1CC3AD10509F468C1CD3AD10509F42A -:1010C00067C1C03BD10509F466C1CE3AD10509F428 -:1010D00065C1CF3AD10509F464C1C13BD10509F41A -:1010E00063C1C23BD10509F462C1C33BD10509F418 -:1010F00061C1C43BD10509F460C1C53BD10509F408 -:101100005FC1C63BD10509F45EC1C73BD10509F4F7 -:101110005DC1C83BD10509F45CC1C93BD10509F4E7 -:101120005BC1CA3BD10509F45AC100E014E459C1BE -:10113000CE019F700E94A60755C1DD278E01106C5D -:1011400050C100E011ED4DC100E010ED4AC100E0DA -:1011500012ED47C100E013ED44C18091ED038160C1 -:101160008093ED033EC10E94C928811102C00E94F4 -:10117000A5280E94E12890E090931804809317041A -:10118000C23090E5D90721F480911704816086C0B0 -:10119000C43020E5D20721F48091170482607EC01C -:1011A000C63080E5D80721F480911704846076C0AA -:1011B000C83090E5D90719F48091170427C0CA30C8 -:1011C00020E5D20721F480911704806167C0CC30FC -:1011D00080E5D80721F48091170480625FC0CE308B -:1011E00090E5D90721F480911704806457C0C0317D -:1011F00020E5D20721F48091170480684FC0C231E6 -:1012000080E5D80729F4809117048460886046C07F -:10121000C33090E5D90721F4809117048E7F3EC03A -:10122000C53020E5D20721F4809117048D7F36C0A8 -:10123000C73080E5D80721F4809117048B7F2EC03A -:10124000C93090E5D90719F48091170426C0CB3036 -:1012500020E5D20721F4809117048F7E1FC0CD3086 -:1012600080E5D80721F4809117048F7D17C0CF3017 -:1012700090E5D90721F4809117048F7B0FC0C1310D -:1012800020E5D20721F4809117048F7707C0C3317E -:10129000D04531F4809117048B7F877F80931704AA -:1012A000809117040E94E5289CC08D2F99278F708C -:1012B000992781309105D9F49E012370332702C00C -:1012C000880F991F2A95E2F79C688E0144E0000F71 -:1012D000111F4A95E1F700271370802B912B53E0E3 -:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 -:1012F000910531F4DC2FCC278E01016F106A71C08B -:101300008330910569F4CE018370992701E010E0E4 -:1013100002C0000F111F8A95E2F7C8019C680FC038 -:10132000049709F05EC0CE018370992701E010E0B8 -:1013300002C0000F111F8A95E2F7C8019A6823E0E6 -:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 -:101350001D2B47C0DF708E01106243C000E010E01B -:1013600040C08E013EC001E810E43BC003E810E439 -:1013700038C002EE14E435C009EE14E432C00AEEBF -:1013800014E42FC005EB14E42CC006EB14E429C0D0 -:1013900007EB14E426C00CEC14E423C00DEC14E4B9 -:1013A00020C003E815E41DC00AE815E41AC002E9EC -:1013B00015E417C004E915E414C001E216E411C0F5 -:1013C00003E216E40EC004E216E40BC005E216E4E4 -:1013D00008C006E216E405C007E216E402C00AE20D -:1013E00016E4C801DF91CF911F910F9108959CE001 -:1013F000799FF001112490E3899FE00DF11D1124E4 -:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 -:10141000803E9105E0F4803C910558F581339105BB -:1014200009F46FC048F48932910509F463C08A3227 -:10143000910509F46DC072C089339105E9F08238D5 -:101440009105D1F08533910509F44DC067C0833E05 -:10145000910581F138F4803E9105B9F0823E910505 -:10146000D9F05CC0863E910561F1873E9105A1F1FE -:1014700055C00E949E0708952091170420FD02C0C8 -:1014800021FF4CC080EE90E049C08091170480FF9E -:10149000F9CF89E390E042C08091170482FF0EC02B -:1014A0008091170484FF03C080E090E037C083EE92 -:1014B00090E034C08091170482FFF2CF82EE90E07A -:1014C0002DC08091170483FF0BC08091170484FD09 -:1014D000EBCF87EE90E022C08091170483FFF5CF19 -:1014E00086EE90E01BC08091170485FF07C089E25B -:1014F00090E014C08091170485FFF9CF85E390E058 -:101500000DC08091170486FF07C08AE290E006C0F4 -:101510008091170486FFF9CF81E390E00E94AE0727 -:101520000895CF92DF92EF92FF920F931F9301E005 -:1015300010E020E030E06801790104C0CC0CDD1C33 -:10154000EE1CFF1C8A95D2F704C0000F111F221F4A -:10155000331F6A95D2F70C291D292E293F29C090E7 -:10156000D103D090D203E090D303F090D403C022F3 -:10157000D122E222F322842FC016D106E206F3061E -:1015800041F41F910F91FF90EF90DF90CF900C945A -:1015900084251F910F91FF90EF90DF90CF900C94D6 -:1015A000A52508950C94D10A5F926F927F928F9235 -:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 -:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C -:1015D000DEBF0FBECDBFCE0101966C014E0199E07A -:1015E000890E911C20E030E040E050E060E070E0C7 -:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 -:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA -:1016100001900D928A95E1F7F601819191916F0108 -:10162000FC01E07FFF27E032F10559F48F70992724 -:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E -:1016400037C0E033F10559F48F709927F50102C0D6 -:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 -:10166000F10559F48F709927F50102C0EE0FFF1FA5 -:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC -:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 -:101690004E2B5F2B0DC0E036F10551F48F7099276A -:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC -:1016B000C814D90409F0A7CF84B19E2D9095892331 -:1016C00084B985B1E82AE5B887B1902F9095892330 -:1016D00087B988B1082B08B98AB1962F90958923CC -:1016E0008AB98BB1682B6BB98DB1942F90958923F2 -:1016F0008DB98EB1482B4EB980B3922F9095892326 -:1017000080BB81B3282B21BB28960FB6F894DEBF8F -:101710000FBECDBFDF91CF911F910F91FF90EF9042 -:10172000DF90CF90BF90AF909F908F907F906F9001 -:101730005F9008955F926F927F928F929F92AF9287 -:10174000BF92CF92DF92EF92FF920F931F93CF93AE -:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 -:10176000CDBF85B7806885BF85B7806885BF0E947B -:10177000D40ACE0101966C014E0199E1890E911CAB -:1017800020E030E040E050E060E070E000E010E099 -:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA -:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 -:1017B0008A95E1F7F601819191916F01FC01E07F3B -:1017C000FF27E032F10559F48F709927F50102C027 -:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB -:1017E000F10559F48F709927F50102C0EE0FFF1F24 -:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E -:101800008F709927F50102C0EE0FFF1F8A95E2F74E -:101810006E2B7F2B1BC0E035F10559F48F70992793 -:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA -:101830000DC0E036F10551F48F709927F50102C013 -:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 -:1018500009F0A7CF84B19E2D9095892384B985B1D5 -:10186000E82AE5B887B1902F9095892387B988B188 -:10187000082B08B98AB1962F909589238AB98BB124 -:10188000682B6BB98DB1942F909589238DB98EB14A -:10189000482B4EB980B3922F9095892380BB81B39A -:1018A000282B21BB10921D0310921C0310921503CC -:1018B0001092140310921F0310921E03109217032C -:1018C0001092160310922103109220031092190314 -:1018D00010921803109223031092220310921B03FC -:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 -:1018F000DF91CF911F910F91FF90EF90DF90CF90EC -:10190000BF90AF909F908F907F906F905F900C945E -:1019100093077F928F929F92AF92BF92CF92DF9266 -:10192000EF92FF920F931F93CF93DF93CDB7DEB764 -:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 -:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 -:10195000BC2CAD2C01E010E028E1822E35E0932E66 -:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 -:10197000E1F7F601819191916F019C01207F33275E -:101980002032310591F424B18F709927A80102C04B -:10199000440F551F8A95E2F7CA01922F982B94B9EC -:1019A00095B18095892385B953C02033310591F4D1 -:1019B00027B18F709927F80102C0EE0FFF1F8A959B -:1019C000E2F7CF01922F982B97B998B18095892390 -:1019D00088B93EC02034310591F42AB18F7099271F -:1019E000A80102C0440F551F8A95E2F7CA01922F41 -:1019F000982B9AB99BB1809589238BB929C0203542 -:101A0000310591F42DB18F709927F80102C0EE0FC6 -:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 -:101A2000809589238EB914C02036310589F420B3FE -:101A30008F709927A80102C0440F551F8A95E2F7BD -:101A4000CA01922F982B90BB91B38095892381BBBB -:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A -:101A600040E050E0EEEDF2E0DE011196882D0190AD -:101A70000D928A95E1F7FB0181919191BF01FC01E3 -:101A8000E07FFF27E032F10511F4E3B113C0E0334A -:101A9000F10511F4E6B10EC0E034F10511F4E9B13D -:101AA00009C0E035F10511F4ECB104C0E036F105F0 -:101AB000B9F4EFB1F0E08F70992702C0F595E79582 -:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 -:101AD000991F0A94E2F702C080E090E0282B392B8E -:101AE0004F5F5F4F4C30510509F0BCCFF70180814B -:101AF00091818217930721F03183208390927302A2 -:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F -:101B1000F40609F025CF80917302882361F181508A -:101B200080937302882339F08FE99FE00197F1F7E2 -:101B300000C0000020C08091140390911503909381 -:101B40001D0380931C0380911603909117039093BB -:101B50001F0380931E0380911803909119039093A3 -:101B600021038093200380911A0390911B0390938B -:101B70002303809322030E94990781E0A0960FB669 -:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 -:101B9000FF90EF90DF90CF90BF90AF909F908F908D -:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA -:101BB00080819181089508958091020481608093CD -:101BC00002040C94F728809102048E7F8093020413 -:101BD0000C94F7280E94C928811102C00E94A528F0 -:101BE0000E94F328809302043E9A809171008D7FB9 -:101BF0008093710082E0809390008AE1809391004D -:101C000081E080932603089580912603811102C00C -:101C10000E94EA0D10927603109275038091710074 -:101C20008D7F80937100809190008F7780939000DA -:101C3000109238031092370310926F0310927003C2 -:101C4000109271031092720310926E0310926D0342 -:101C5000EDE4F3E0ADE3B3E0119211921192119231 -:101C60001D921D9283E0ED36F807B1F70895CF92EB -:101C7000DF92EF92FF920F931F93CF93DF93209108 -:101C80003703222309F484C06B017C018091260371 -:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A -:101CA000A7019601F80192918291729162918F0140 -:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 -:101CC000FF1FE35BFC4F1082118212821382DE0140 -:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B -:101CE000D105E9F021964481558166817781408351 -:101CF000518362837383148215821682178212962F -:101D00008D919C91139711969C938E9313961C9290 -:101D10001E92129734961296E2CF219708F6809180 -:101D2000750390917603019797FD05C09093760314 -:101D30008093750304C0109276031092750380910E -:101D400075039091760320917303309174032817E3 -:101D5000390724F01092740310927303892BC1F495 -:101D6000809171008D7F80937100809190008F77BA -:101D70008093900010926F03109270031092710381 -:101D80001092720310926E0310926D03109237033B -:101D9000DF91CF911F910F91FF90EF90DF90CF9047 -:101DA00008951F920F920FB60F9211244F925F92D7 -:101DB0006F927F928F929F92AF92BF92CF92DF925B -:101DC000EF92FF922F933F934F935F936F937F9385 -:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 -:101DE00080913703882309F49BC1C0917503D0917A -:101DF00076031C161D060CF093C1409027035090EB -:101E000028036090290370902A0320E030E0A901A4 -:101E1000C301B2010E94902F18160CF065C0C130AA -:101E2000D10509F452C08091730390917403BE01EF -:101E30000E9470317C0190937403809373038090AF -:101E4000390390903A03A0903B03B0903C0320E00C -:101E500030E040E85FE3C501B4010E94DD2D6093EE -:101E6000390370933A0380933B0390933C03F7014B -:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C -:101E800060817181828193810E94452E20E030E043 -:101E900040E05EE30E94942F9B01AC01C501B401B8 -:101EA0000E94902F18168CF4C7010196BE010E9463 -:101EB00070319093740380937303109239031092DE -:101EC0003A0310923B0310923C03E0917303F091AC -:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB -:101EE000718182819381D0C0C0906F03D0907003C4 -:101EF000E0907103F090720320E030E0A901C70187 -:101F0000B6010E94412E2197882309F4A2C0FE0148 -:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 -:101F2000A280B380A5019401C701B6010E94412E91 -:101F300087FF31C0A501940160E070E08CED93EC67 -:101F40000E94452E20E030E040E451E40E94452EFE -:101F500020E030E040E05FE30E94942F9B01AC0161 -:101F600060E070E080E090E40E94F72F9B01AC01FC -:101F7000C501B4010E94942F9B01AC01C701B601B9 -:101F80000E94412E87FF07C0A701960160E070E024 -:101F90008CED93E439C0A5019401C701B6010E94FC -:101FA000902F18160CF055C0A501940160E070E068 -:101FB0008CED93E40E94452E20E030E040E451E4B3 -:101FC0000E94452E20E030E040E05FE30E94942F25 -:101FD0009B01AC0160E070E080E090E40E94F72F8C -:101FE0009B01AC01C501B4010E94942F9B01AC017F -:101FF000C701B6010E94902F18165CF5A701960143 -:1020000060E070E08CED93EC0E94452E20E030E023 -:1020100040E451E40E94452E20E030E040E05FE3E0 -:102020000E94942F9B01AC0160E070E080E090E49E -:102030000E94F72F9B01AC01C701B6010E94942FAB -:1020400060936F0370937003809371039093720396 -:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF -:1020600080819181A281B38180936F0390937003EB -:10207000A0937103B093720360916F03709170032A -:102080008091710390917203209124033091250374 -:102090002F3F4FEF340731F02F5F3F4F3093250331 -:1020A000209324030E94F8126B017C0120E034E2AB -:1020B00044EF51E40E94412E87FF08C086EFC82EEE -:1020C00088E2D82E84EFE82E81E4F82E20E030E07C -:1020D00040E051E4C701B6010E94942F9B01AC017E -:1020E00060E074E284E79BE40E94452E6B017C0172 -:1020F0000E94AD2E70939700609396002091740219 -:10210000309175024091760250917702C701B60175 -:102110000E94942F0E94AD2E7093990060939800B6 -:1021200080913803882309F433C1C0903303D090E1 -:102130003403E0903503F090360320E030E0A9014D -:10214000C701B6010E94902F1816D4F58091240380 -:10215000909125038F3F2FEF920729F001969093DE -:10216000250380932403C701B6010E94F81220E0E2 -:1021700030E040E051E40E94942F9B01AC0160E00C -:1021800074E284E79BE40E94452E6B017C010E946F -:10219000AD2E709397006093960020917402309159 -:1021A00075024091760250917702C701B6010E94F4 -:1021B000942F0E94AD2E709399006093980008C0F0 -:1021C0001092970010929600109299001092980029 -:1021D00060912D0370912E036F5F7F4F70932E03DC -:1021E00060932D03209196003091970080E090E05D -:1021F000232BF1F0C0919600D09197000E94DE2E23 -:102200006B017C01BE0180E090E00E94DE2E9B010C -:10221000AC0160912F037091300380913103909154 -:1022200032030E94452E20E03FEF4FE757E410C0F5 -:102230000E94DE2E6B017C0120E030EE4FEF54E473 -:1022400060912F037091300380913103909132039C -:102250000E94942F9B01AC01C701B6010E94902FF0 -:1022600087FD96C080912B038F5F80932B0390E0B6 -:102270002091FE033091FF0382179307A0F0809115 -:102280000904882319F010922B030DC0809171006E -:102290008D7F80937100809190008F778093900064 -:1022A000109238037DC080912C03C0912B038111C3 -:1022B00028C0C0900304D0900404E0900504F0907E -:1022C000060420E030E0A901C701B6010E94902F6A -:1022D0001816BCF481E080932C0310923303109203 -:1022E00034031092350310923603C0922F03D0921C -:1022F0003003E0923103F0923203C150C0932B03BC -:1023000043C010922C031092250310922403E091F5 -:102310000004F091010448E0C49FE00DF11D112478 -:1023200080819181A281B3818093330390933403A0 -:10233000A0933503B093360320E030E040E85EE33D -:1023400064817581868197810E94942F6B017C0145 -:1023500020E030E048EC52E460917802709179021C -:1023600080917A0290917B020E94452E9B01AC01E4 -:10237000C701B6010E94942F60932F03709330031E -:10238000809331039093320310922E0310922D0309 -:102390008091020480FD04C010923803109237032C -:1023A000FF91EF91DF91CF91BF91AF919F918F916D -:1023B0007F916F915F914F913F912F91FF90EF909F -:1023C000DF90CF90BF90AF909F908F907F906F9055 -:1023D0005F904F900F900FBE0F901F901895CF9267 -:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 -:1023F00080912603811102C00E94EA0D809102049F -:1024000080FF46C0809175039091760308970CF089 -:102410003FC0809171008D7F80937100809138035F -:1024200081110E94040E81E08093370310922503EE -:102430001092240320E030E0A901C701B6010E94F8 -:10244000902F1816DCF48091750390917603FC01AF -:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 -:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D -:10247000C0830196909376038093750380917100D9 -:1024800082608093710080919000806880939000BA -:10249000DF91CF91FF90EF90DF90CF9008958F92D2 -:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 -:1024B0001F93CF93DF93EC017B01D42E4801590188 -:1024C00080912603811102C00E94EA0D80910204CE -:1024D00080FF6BC0809171008D7F8093710080912F -:1024E000370381110E94040E81E080933803D0935A -:1024F0000104C0930004F092FF03E092FE03D09227 -:1025000009048092030490920404A0920504B092FE -:1025100006041092390310923A0310923B03109272 -:102520003C0310922B0388819981AA81BB818093FF -:10253000330390933403A0933503B093360320E024 -:1025400030E040E85EE36C817D818E819F810E9456 -:10255000942F6B017C0120E030E048EC52E4609164 -:1025600078027091790280917A0290917B020E94A8 -:10257000452E9B01AC01C701B6010E94942F6093C8 -:102580002F037093300380933103909332031092A2 -:102590002E0310922D038091710082608093710050 -:1025A00080919000806880939000DF91CF911F917F -:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 -:1025C0008F9008958091770390E0019665E070E028 -:1025D0000E9470318093770308958091770390E093 -:1025E000019765E070E00E94703180937703089551 -:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 -:10260000CF93DF936B017C01C0912403D09125030C -:10261000BE0180E090E00E94DE2E4B015C01A7012C -:10262000960160E070E08CE594E40E94452E9B01E9 -:10263000AC01C501B4010E94942F0E94B22E4091BA -:102640007703423009F45CC028F4442351F0413050 -:10265000E9F0FBC0433009F481C0443009F4B4C050 -:10266000F4C080E090E0A0E0BFE380937402909318 -:102670007502A0937602B09377021092270310920E -:1026800028031092290310922A03DFC01092270317 -:10269000109228031092290310922A0364317105C5 -:1026A00040F46A307105E0F520E030E040E85EE398 -:1026B0003BC0693C710508F0C0C080E090E00E941A -:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 -:1026D00030E044E353E40E94452E9B01AC010E948C -:1026E000942F20E030E040E05EE30E94942F9B01B5 -:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 -:1027000010922703109228031092290310922A0393 -:102710006432710578F4FB01EC59FF4F0C9484315D -:1027200020E030E040E05FE3C701B6010E94942F53 -:102730006B017C0180E090E0A0E0BEE38093740236 -:1027400090937502A0937602B09377027EC0A701A2 -:102750009601C701B6010E94DD2DEACF1092270332 -:10276000109228031092290310922A032AE0269F30 -:10277000A001279F500D1124CA0168EB7BE00E9445 -:102780005C31BC016C5D754077FF03C0719561954C -:102790007109882777FD8095982F0E94E02E2EE3FF -:1027A00033EC4EE259E30E94942F20E030E040ECFD -:1027B0005EE30E94DD2D6093740270937502809336 -:1027C00076029093770241C010922703109228035B -:1027D0001092290310922A03CE0183709927892B26 -:1027E000E1F0BE016170772780E090E00E94DE2E6C -:1027F00020E030E040E05EE30E94942F20E030E0F3 -:1028000040E45FE30E94DD2D6093740270937502D3 -:1028100080937602909377020CC080E090E0A0E075 -:10282000BFE38093740290937502A0937602B093F5 -:102830007702C770DD27CD2B41F4109274021092FD -:1028400075021092760210927702C701B601DF91ED -:10285000CF91FF90EF90DF90CF90BF90AF909F907F -:102860008F900895809188030895CF93DF9300D0CF -:102870001F92CDB7DEB79C0180910E04843019F50C -:1028800093E099833B832A839093E9008FEF9091A3 -:10289000E800815095FD06C095ED9A95F1F700008E -:1028A0008111F5CF8091E80085FF0DC040E050E038 -:1028B00063E070E0CE0101960E9496168091E800D8 -:1028C0008E778093E8000F900F900F90DF91CF915B -:1028D0000895CF93DF9300D01F92CDB7DEB720913C -:1028E0000E04243021F522E029839B838A8383E030 -:1028F0008093E9008FEF9091E800815095FD06C02C -:1029000095ED9A95F1F700008111F5CF8091E800DF -:1029100085FF0DC040E050E063E070E0CE0101961D -:102920000E9496168091E8008E778093E8000F90C1 -:102930000F900F90DF91CF91089520910E042430D5 -:10294000F1F422E02093E9002FEF3091E8002150CC -:1029500035FD06C035ED3A95F1F700002111F5CFB0 -:102960002091E80025FF0BC040E050E065E070E0FA -:102970000E9496168091E8008E778093E800089573 -:10298000CF93DF93EC0190910E04943009F046C090 -:10299000809186028823D9F0809187028823B9F03C -:1029A0009093E9008FEF9091E800815095FD06C06B -:1029B00095E19A95F1F700008111F5CF8091E8003B -:1029C00085FF2CC040E050E060E170E017C081E07E -:1029D0008093E9008FEF9091E800815095FD06C04B -:1029E00095ED9A95F1F700008111F5CF8091E800FF -:1029F00085FF14C040E050E068E070E0CE010E9426 -:102A000096168091E8008E778093E80080E1FE01C1 -:102A1000A8E7B3E001900D928A95E1F7DF91CF919D -:102A2000089580910D04811109C00E942B180E9405 -:102A300088188091E20084608093E20008951092EB -:102A40000D040895089508950C94D02742E061EC98 -:102A500081E00E94A51742E061EC82E00E94A51788 -:102A600042E061EC83E00E94A51742E161EC84E062 -:102A70000C94A51780911004833009F455C030F4EC -:102A8000813071F0823009F48EC008958A3009F4E3 -:102A90007AC08B3009F460C0893009F09CC020C036 -:102AA00080910F04813A09F096C08091E800877FF9 -:102AB0008093E8008091130490911404892B21F4F1 -:102AC00060E188E793E003C060E080E090E070E0C0 -:102AD0000E94E1168091E8008B778093E8000895CA -:102AE00080910F04813209F076C080911304909197 -:102AF0001404009719F0039709F06DC08091E80065 -:102B0000877F8093E8008091E80082FD05C0809176 -:102B10000E048111F8CF5FC08091F100809388038B -:102B20008091E8008B7753C080910F04813A09F0BF -:102B300052C08091130490911404892B09F04BC06A -:102B40008091E800877F8093E8008091E80080FF13 -:102B5000FCCF8091860236C080910F048132D9F576 -:102B60008091130490911404892BA9F58091E800B9 -:102B7000877F8093E8000E94DA1780911104809388 -:102B800086020C944B2180910F04813221F58091B3 -:102B9000E800877F8093E8000E94DA178091120492 -:102BA00080938903089580910F04813AA1F4809164 -:102BB000E800877F8093E8008091E80080FFFCCFE9 -:102BC000809189038093F1008091E8008E77809353 -:102BD000E8000C94DA17089584B7877F84BF88E1F2 -:102BE0000FB6F89480936000109260000FBE90E0E2 -:102BF00080E80FB6F89480936100909361000FBE57 -:102C00000E947D1B0E942B180E9488188091E20070 -:102C100084608093E20078940E940E1B0E947F1BC8 -:102C20008CE792E00E94291B80910E04853069F4A4 -:102C30000E948A2780910C048823B1F30E94B82750 -:102C4000882391F30E948016EFCF0E94871BECCF60 -:102C5000292F332723303105C9F064F421303105A1 -:102C600081F02230310509F043C08DE690E022E882 -:102C700038E042C021323105F1F02232310541F114 -:102C800037C082E190E02FEE38E036C099278130DE -:102C9000910541F08230910541F0892B49F5EEE72D -:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 -:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 -:102CC000FF1FEE5FFC4F2081318189E090E014C04E -:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 -:102CE00020813181FB01EA50FD4F808190E004C0DA -:102CF00080E090E020E030E0FA0131832083089505 -:102D000080E189BD82E189BD09B400FEFDCF8091DB -:102D1000D8008F7D8093D8008091E00082608093FE -:102D2000E0008091E00081FDFCCF0895CF92DF921A -:102D3000EF92FF920F931F93CF93DF93EC018B01E0 -:102D40006A010E94F917811133C0C114D10439F00E -:102D5000F60180819181081B190BC80FD91FE12C46 -:102D6000F12C0115110519F18091E80085FD16C0BF -:102D70008091E8008E778093E800C114D10449F077 -:102D8000F60180819181E80EF91EF182E08285E0F2 -:102D90000FC00E94F917882321F30AC089918093FC -:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE -:102DB000DF91CF911F910F91FF90EF90DF90CF9017 -:102DC000089520911504309116042617370748F00E -:102DD0006115710539F42091E8002E772093E80001 -:102DE00001C0B90140E061157105A9F120910E04FF -:102DF000222309F443C0253009F442C02091E800A1 -:102E000023FD40C02091E80022FD32C02091E8005F -:102E100020FFE9CF4091F3002091F20030E0342B05 -:102E2000FC01CF016115710559F02830310540F4DE -:102E300081918093F100615071092F5F3F4FF1CF75 -:102E400041E02830310509F040E02091E8002E777C -:102E50002093E800C8CF4111C9CF0AC080910E0469 -:102E6000882361F0853061F08091E80083FD0AC01D -:102E70008091E80082FFF2CF80E0089582E008951B -:102E800083E0089581E0089520911504309116049F -:102E90002617370748F06115710539F42091E800CD -:102EA0002E772093E80001C0B901FC0120E06115F4 -:102EB000710591F180910E04882309F440C085309A -:102EC00009F43FC08091E80083FD3DC08091E80097 -:102ED00082FD2FC08091E80080FFE9CF2091F300B0 -:102EE0008091F20090E0922B6115710559F08830C5 -:102EF000910540F424912093F100319661507109BD -:102F00000196F2CF21E0089709F020E08091E800D7 -:102F10008E778093E800CBCF2111CCCF0AC080916F -:102F20000E04882361F0853061F08091E80083FD14 -:102F30000AC08091E80082FFF2CF80E0089582E02D -:102F4000089583E0089581E00895982F973058F50B -:102F50009093E900981739F07091EC002091ED0002 -:102F60005091F00003C0242F762F50E021FF19C0AC -:102F70003091EB003E7F3093EB003091ED003D7FD0 -:102F80003093ED003091EB0031603093EB007093A3 -:102F9000EC002093ED005093F0002091EE0027FF0D -:102FA00007C09F5FD3CF8F708093E90081E00895C1 -:102FB00080E0089580910F0487FF11C08091E800A0 -:102FC00082FD05C080910E048111F8CF11C080915F -:102FD000E8008B770BC080910E04882349F0809124 -:102FE000E80080FFF8CF8091E8008E778093E800BA -:102FF00008952091E4003091E50095E64091EC00C1 -:10300000842F817040FF22C08091E80080FD1CC0A9 -:1030100080910E04882391F0853091F08091EB002F -:1030200085FD10C04091E4005091E5004217530720 -:1030300029F39A01915011F784E0089582E00895F0 -:1030400083E0089581E0089580E008954091E800CC -:1030500042FFDECF08950E9499180E94A118E0EE69 -:10306000F0E0808181608083E8EDF0E080818F77FF -:10307000808319BCA7EDB0E08C918E7F8C9380810A -:103080008F7E808310920D0408950F931F93CF932A -:10309000DF930E9499180E94A118C8EDD0E08881A2 -:1030A0008F77888388818068888388818F7D8883F3 -:1030B00019BC10920E0410920A0410920C04109283 -:1030C0000B0400EE10E0F80180818B7F8083888103 -:1030D0008160888342E060E080E00E94A517E1EE15 -:1030E000F0E080818E7F8083E2EEF0E0808181607D -:1030F0008083808188608083F80180818E7F8083D7 -:10310000888180618883DF91CF911F910F9108950D -:10311000E8EDF0E080818F7E8083E7EDF0E0808154 -:103120008160808384E082BF81E080930D040C94F1 -:103130004518E8EDF0E080818E7F80831092E200F8 -:1031400008951092DA001092E10008951F920F92F4 -:103150000FB60F9211242F933F934F935F936F936A -:103160007F938F939F93AF93BF93EF93FF93809140 -:10317000E10082FF0BC08091E20082FF07C08091D6 -:10318000E1008B7F8093E1000E940D1B8091DA00AB -:1031900080FF1FC08091D80080FF1BC08091DA00A3 -:1031A0008E7F8093DA008091D90080FF0DC080E18E -:1031B00089BD82E189BD09B400FEFDCF81E0809325 -:1031C0000E040E94111505C019BC10920E040E9435 -:1031D0001F158091E10080FF19C08091E20080FFFF -:1031E00015C08091E2008E7F8093E2008091E20022 -:1031F00080618093E2008091D80080628093D80043 -:1032000019BC85E080930E040E9423158091E10093 -:1032100084FF30C08091E20084FF2CC080E189BD32 -:1032200082E189BD09B400FEFDCF8091D8008F7D79 -:103230008093D8008091E1008F7E8093E10080919F -:10324000E2008F7E8093E2008091E20081608093B3 -:10325000E20080910A04882311F084E007C0809185 -:10326000E30087FD02C081E001C083E080930E048B -:103270000E9424158091E10083FF29C08091E20023 -:1032800083FF25C08091E100877F8093E10082E089 -:1032900080930E0410920A048091E1008E7F809347 -:1032A000E1008091E2008E7F8093E2008091E20055 -:1032B00080618093E20042E060E080E00E94A51718 -:1032C0008091F00088608093F0000E942215FF91A9 -:1032D000EF91BF91AF919F918F917F916F915F918E -:1032E0004F913F912F910F900FBE0F901F90189507 -:1032F0001F920F920FB60F9211242F933F934F936B -:103300005F936F937F938F939F93AF93BF93CF936D -:10331000DF93EF93FF93C091E900CF708091EC00B1 -:10332000D82FD17080FDD0E81092E9008091F00094 -:10333000877F8093F00078940E94BC191092E90076 -:103340008091F00088608093F000CD2BCF70C09307 -:10335000E900FF91EF91DF91CF91BF91AF919F91E4 -:103360008F917F916F915F914F913F912F910F902E -:103370000FBE0F901F9018951F93CF93DF93CDB77B -:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 -:10339000F4E088E08E0F9091F10091938E13FBCFB3 -:1033A0000E943A158091E80083FF1FC180910F04AD -:1033B00090911004492F50E04A30510508F015C192 -:1033C000FA01E857FF4F0C948431803881F082383D -:1033D00009F00BC1809113048F708093E9008091F4 -:1033E000EB0085FB882780F91092E90006C08091E8 -:1033F0000B0490910C04911182609091E800977FEA -:103400009093E8008093F1001092F100C8C0282F3B -:103410002D7F09F0EAC0882319F0823061F0E5C001 -:1034200080911104813009F0E0C0933009F080E010 -:1034300080930C042BC080911104811127C08091CE -:1034400013048F7009F4D1C08093E9002091EB0040 -:1034500020FF1CC0933021F48091EB00806214C0E7 -:103460009091EB0090619093EB0021E030E0A90196 -:1034700002C0440F551F8A95E2F74093EA0010926C -:10348000EA008091EB0088608093EB001092E900E5 -:103490008091E800877F86C08111A7C01091110438 -:1034A0001F778091E3008078812B8093E3008091E7 -:1034B000E800877F8093E8000E94DA178091E80097 -:1034C00080FFFCCF8091E30080688093E3001111BE -:1034D00002C082E001C083E080930E0486C0805861 -:1034E000823008F082C080911104909112048C3DCA -:1034F00053E0950779F583E08A838AE289834FB7A1 -:10350000F894DE01139620E03EE051E2E32FF0E074 -:1035100050935700E49120FF03C0E295EF703F5FA6 -:10352000EF708E2F90E0EA3010F0C79601C0C09681 -:103530008D939D932F5F243149F74FBF8091E80011 -:10354000877F8093E8006AE270E0CE0101960E94D6 -:10355000E11614C0AE014F5F5F4F609113040E94EB -:103560002816BC01009709F440C09091E800977FAD -:103570009093E80089819A810E9444178091E80025 -:103580008B778093E80031C0803879F58091E8002E -:10359000877F8093E80080910A048093F1008091F6 -:1035A000E8008E778093E8000E94DA171EC0811130 -:1035B0001CC0909111049230C0F48091E800877F84 -:1035C0008093E80090930A040E94DA1780910A041D -:1035D000811106C08091E30087FD02C081E001C037 -:1035E00084E080930E040E9426158091E80083FFFA -:1035F0000AC08091E800877F8093E8008091EB000B -:1036000080628093EB00AA960FB6F894DEBF0FBEDF -:10361000CDBFDF91CF911F9108950895CF938091F1 -:103620000E048823A1F0C091E900CF709091EC00C6 -:10363000892F817090FD80E8C82B1092E90080915D -:10364000E80083FD0E94BC19CF70C093E900CF91C0 -:10365000089590938F0380938E030895E0918E03D5 -:10366000F0918F03309721F00190F081E02D0994C3 -:1036700080E00895E0918E03F0918F03309721F060 -:103680000280F381E02D09940895E0918E03F0917A -:103690008F03309721F00480F581E02D099408957F -:1036A00020918C0330918D038217930771F09093D2 -:1036B0008D0380938C03E0918E03F0918F033097FC -:1036C00021F00680F781E02D0994089520918A0366 -:1036D00030918B038217930771F090938B03809343 -:1036E0008A03E0918E03F0918F03309721F00084DC -:1036F000F185E02D0994089508950C947C1B0E9497 -:1037000004280E949A0B0E948A280C94452D4F92FF -:103710005F927F928F929F92AF92BF92CF92DF92F1 -:10372000EF92FF920F931F93CF93DF93CDB7DEB746 -:103730002A970FB6F894DEBF0FBECDBF0E94890C4A -:1037400091E9C92E93E0D92E00E010E0AA24A394B9 -:10375000B12C702E802F0E94D20D4C01F6014190A9 -:1037600051906F014826592641145104B1F40F5F5E -:103770001F4F0430110569F78FEF89838A831B82FD -:103780000E940D288160782F9D838C8349815A8106 -:103790006B818D810E94401C3AC08091ED0381FDB8 -:1037A0000E94DB0D20E030E07501022E02C0EE0C1D -:1037B000FF1C0A94E2F7C70184219521892B09F1A6 -:1037C0002E837F828E209F2091E0892809F490E04B -:1037D00098870E940D288160782F9A8789874E816B -:1037E0005F8168858A850E94401C000F111FF801C7 -:1037F000EF56FC4F80819181E826F926F182E08224 -:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC -:10381000762A109190030E942E1B1817D9F00E944F -:103820002E1B809390032A960FB6F894DEBF0FBE2E -:10383000CDBFDF91CF911F910F91FF90EF90DF905F -:10384000CF90BF90AF909F908F907F905F904F9060 -:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 -:10386000DF91CF911F910F91FF90EF90DF90CF905C -:10387000BF90AF909F908F907F905F904F900895F2 -:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B -:103890000FBECDBF4F83588769877A878B87DE013C -:1038A000119686E0FD0111928A95E9F785E0FE0107 -:1038B000379601900D928A95E1F749815A816B8183 -:1038C0007C818D819E810E94E5232B960FB6F89412 -:1038D000DEBF0FBECDBFDF91CF910895CF93882378 -:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 -:1038F000BBC089E30E948E260E945B2789E30CC02F -:10390000833879F40E942E1B80FDAEC083E50E94AF -:103910008E260E945B2783E50E94D026CF910C94CF -:103920005B27843859F40E942E1B82FD9DC087E4DA -:103930000E948E260E945B2787E4EECF8CEF8C0FCF -:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 -:103950000E948E26E3CF80E28C0F883048F4C77037 -:1039600081E001C0880FCA95EAF70E941427D6CFDC -:103970008BE58C0F833078F4C53A29F0C63A31F0E4 -:1039800083E890E005C081E890E002C082E890E022 -:10399000CF910C94501B88E58C0F833108F064C0E4 -:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 -:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F -:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F -:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D -:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 -:1039F00038C082EE90E035C089EE90E032C08AEEA9 -:103A000090E02FC085EB90E02CC086EB90E029C0C1 -:103A100087EB90E026C08CEC90E023C08DEC90E02A -:103A200020C083E891E01DC08AE891E01AC082E9D5 -:103A300091E017C084E991E014C081E292E011C0E6 -:103A400083E292E00EC084E292E00BC085E292E055 -:103A500008C086E292E005C087E292E002C08AE2F6 -:103A600092E0CF910C94661BCF910895882309F4BE -:103A70004BC0823859F40E942E1B81FF45C089E358 -:103A80000E948E260E945B2789E30CC0833871F464 -:103A90000E942E1B80FF38C083E50E948E260E9464 -:103AA0005B2783E50E94D0260C945B27843859F469 -:103AB0000E942E1B82FF28C087E40E948E260E944F -:103AC0005B2787E4EFCF9CEF980F913A58F390E291 -:103AD000980F983050F4877091E001C0990F8A9543 -:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 -:103AF00020F480E090E00C94501B885A833120F42D -:103B000080E090E00C94661B0895882321F00E94C9 -:103B100014270C945B270895882321F00E941A270C -:103B20000C945B270895BF92CF92DF92EF92FF92A1 -:103B30000F931F93CF93DF9300D000D000D0CDB769 -:103B4000DEB725E0FC01DE01119601900D922A9569 -:103B5000E1F7FC01D08011810281258122952F702F -:103B600043815481452B09F472C31F3F21F4FFEFB9 -:103B7000DF1609F46CC37C012E830E949B07D98257 -:103B80001A8369817A81802F0E948A26182FB92E84 -:103B90000E943F260E9406252E81002319F00E94D4 -:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE -:103BB0000C9484318B2D807F9B2D9F70F92E882350 -:103BC00019F0F29480EFF822002389F0FF2009F425 -:103BD0007CC280E2810F883020F48F2D0E94142750 -:103BE00003C08F2D0E9424270E945B276EC2812F65 -:103BF0000E94361DFF2009F42AC3105E8F2D183055 -:103C000018F40E941A2702C00E942A2726960FB68F -:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 -:103C2000FF90EF90DF90CF90BF900C945B278B2D8F -:103C3000807F9B2D9F70803211F4892F03C0892FC4 -:103C40008295807F112319F0113011F12BC00023D0 -:103C5000A9F0222389F1213079F526960FB6F89440 -:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF -:103C7000EF90DF90CF90BF900C944427222319F04F -:103C8000213009F4E4C28E830E9447278E819BC1B4 -:103C9000002321F0263008F0DAC20EC0253008F0EB -:103CA000D6C291C10023C9F0222331F0F7019581DA -:103CB00090FF0BC29F70958326960FB6F894DEBFD7 -:103CC0000FBECDBFDF91CF911F910F91FF90EF906D -:103CD000DF90CF90BF900C94851D222309F473C10F -:103CE00009C22B2D26952695237030E0211531052C -:103CF00021F021303105D1F0AAC2002321F0812F1B -:103D00009B2D937002C080E090E026960FB6F89449 -:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE -:103D2000EF90DF90CF90BF900C94501B002321F0B8 -:103D3000812F9B2D937002C080E090E026960FB6F5 -:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 -:103D5000FF90EF90DF90CF90BF900C94661B812F67 -:103D6000002319F00E947E2902C00E94E6292696AF -:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C -:103D80000F91FF90EF90DF90CF90BF900C946B2A33 -:103D90008B2D837009F07BC0011159C2812F829550 -:103DA00086958770880F880F912F9F70C92ED12C10 -:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 -:103DC0000A94D2F714FF12C04FE050E060E070E0B8 -:103DD00004C0440F551F661F771F8A95D2F7CB0189 -:103DE000BA01609570958095909503C060E070E091 -:103DF000CB012B2D269526952370422F50E0423083 -:103E00005105D9F04330510569F16C297D298E297E -:103E10009F294130510551F126960FB6F894DEBF27 -:103E20000FBECDBFDF91CF911F910F91FF90EF900B -:103E3000DF90CF90BF900C942D256C297D298E2981 -:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 -:103E5000CF911F910F91FF90EF90DF90CF90BF9087 -:103E60000C9449250E942D25C701B60126960FB650 -:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 -:103E8000FF90EF90DF90CF90BF900C94112500230E -:103E900019F08B2D817001C08695882309F4D7C154 -:103EA000812F829586958770880F880F912F9F703C -:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 -:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 -:103ED00060E070E004C0440F551F661F771F8A958D -:103EE000D2F7CB01BA01609570958095909503C08B -:103EF00060E070E0CB012B2D269526952370422F94 -:103F000050E042305105D9F04330510569F16C2938 -:103F10007D298E299F294130510551F126960FB6F2 -:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF -:103F3000FF90EF90DF90CF90BF900C9407266C29F4 -:103F40007D298E299F2926960FB6F894DEBF0FBED5 -:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 -:103F6000CF90BF900C9423260E940726C701B6016C -:103F700026960FB6F894DEBF0FBECDBFDF91CF916E -:103F80001F910F91FF90EF90DF90CF90BF900C9416 -:103F9000EB25103F49F118F4103E48F491C0123F50 -:103FA00009F453C0E8F1133F09F464C089C01F70DD -:103FB0008B2D8F71002321F00E948425812F7CCED0 -:103FC0000E94A525812F26960FB6F894DEBF0FBE5E -:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 -:103FE000CF90BF900C948C1D0023B1F0253008F0C9 -:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 -:10400000CDBFDF91CF911F910F91FF90EF90DF9087 -:10401000CF90BF900C94CA25263008F018C1E9CF84 -:104020000023A9F08B2D8F7126960FB6F894DEBF72 -:104030000FBECDBFDF91CF911F910F91FF90EF90F9 -:10404000DF90CF90BF900C948425002359F38B2DE3 -:104050008F7126960FB6F894DEBF0FBECDBFDF91ED -:10406000CF911F910F91FF90EF90DF90CF90BF9075 -:104070000C94A525002399F08B2D8F7126960FB6F1 -:10408000F894DEBF0FBECDBFDF91CF911F910F918E -:10409000FF90EF90DF90CF90BF900C946F25269605 +:100770000000000000000000000000000000010078 +:100780000050010001000100010001000100010012 +:10079000010001004C00010001000100073006309B +:1007A000135012500030013002300C3001000100B3 +:1007B0000B300A300930083001000100010001004F +:1007C0000100010001000100010001000100010021 +:1007D00001000100010001000100010001002803E7 +:1007E000540068006500200050006C0061006E003D +:1007F00063006B0020004B006500790062006F0011 +:1008000061007200640000002C034F00720074004D +:1008100068006F006C0069006E0065006100720086 +:1008200020004B006500790062006F0061007200DB +:100830006400730000000403090409026D00040150 +:1008400000A0FA09040000010301010009211101BF +:100850000001223F000705810308000A0904010086 +:100860000103010200092111010001224D000705C9 +:10087000820308000A0904020001030000000921A4 +:10088000110100012236000705830308000A09044C +:1008900003000103000000092111010001223900B9 +:1008A000070584031000011201100100000008ED8B +:1008B000FE606001000102000105010906A10105B9 +:1008C0000719E029E7150025019508750181020542 +:1008D0000819012905950575019102950175039186 +:1008E0000105071900297715002501957875018103 +:1008F00002C005010980A101850216010026B7008A +:100900001A01002AB700751095018100C0050C0975 +:1009100001A1018503160100269C021A01002A9CF0 +:1009200002751095018100C005010902A1010901AC +:10093000A100050919012905150025019505750175 +:100940008102950175038101050109300931158185 +:10095000257F95027508810609381581257F950147 +:1009600075088106050C0A38021581257F950175E9 +:10097000088106C0C005010906A101050719E02983 +:10098000E71500250195087501810295017508811B +:100990000105081901290595057501910295017553 +:1009A0000391010507190029FF150025FF9506751C +:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B +:1009C00004B603FE24C08091690490916A04A0914A +:1009D0006B04B0916C048730904BA740B04BB9F4D6 +:1009E0001092690410926A0410926B0410926C04C5 +:1009F00014BE84B7877F84BF88E10FB6F8948093D4 +:100A00006000109260000FBEE0E0F8E3099513E08B +:100A1000A0E0B1E0E2E4F4E602C005900D92A23657 +:100A2000B107D9F714E0A2E6B3E001C01D92A936E0 +:100A3000B107E1F70E94FD150C941F320C940000E1 +:100A4000279A2F988FEF9FEF9093870080938600CF +:100A50008AE08093800089E1809381000C94562D78 +:100A6000282F81110BC080918000877F80938000A8 +:100A700010928D0010928C002F9808952F988091DD +:100A80008000886080938000233019F48FEF9FEFFF +:100A90000FC083E090E0821B9109880F991F2FEF10 +:100AA0003FEFA90102C0569547958A95E2F7CA0122 +:100AB00090938D0080938C000895CF93DF93EC0189 +:100AC0000E94ED28BE0180E090E0DF91CF910C9470 +:100AD00018250F931F93462F50E04E30510508F014 +:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499 +:100AF000E331882309F4D3C000E010E0980140E01E +:100B000064E070E089E292E00E942B1281E090E0C4 +:100B10000FC0882309F4C3C000E010E0980140E052 +:100B200066E070E089EB91E00E942B1282E090E099 +:100B30000E945D05B4C0882309F4B1C000E010E054 +:100B4000980140E068E070E089EE91E00E942B128D +:100B500084E090E0EDCF882311F083E005C083E0CE +:100B60000CC0882349F084E00E94952540E164E0B0 +:100B700083E00E946D0A93C084E00E94B625F6CF00 +:100B8000882331F085EE0E947F1C0E94AD2D87C026 +:100B900085EE0E94471D83C0882309F480C00E940F +:100BA000BF0D7DC0882309F47AC00E94B80D00E013 +:100BB00010E0980140E065E070E089E492E027C031 +:100BC000882309F46CC085E00E94B6250E94E00DE0 +:100BD00066C0882309F463C000E010E0980140E09B +:100BE00068E070E089E191E00E942B1285E00E94AC +:100BF000952555C0882309F452C00E94BE1200E01A +:100C000010E0980140E068E070E089E191E00E9426 +:100C10002B1245C0882309F442C00E94C912EFCFAD +:100C20008823E9F100E010E0980140E066E070E020 +:100C300089E891E00E942B1284E00E94B62583E0AF +:100C40000E94B62580E10E94B62585E00E94B62567 +:100C50000E94E00D86E00E9495250E94DA2881110D +:100C600002C00E94B6280E94F22890E09093680487 +:100C7000809367048068809367040E94F6280FC001 +:100C8000882369F000E010E0980140E066E070E041 +:100C900089E591E00E942B1286E00E94B62580E053 +:100CA00090E01F910F9108950F931F932FEF89EFFD +:100CB00090E0215080409040E1F700C0000000E04B +:100CC00010E0980140E065E070E089E492E00E9465 +:100CD0002B121F910F9108950F931F9300E010E0C6 +:100CE000980140E063E070E081E091E00E942B1207 +:100CF0002FEF82E597E0215080409040E1F700C05F +:100D000000001F910F910895CF92DF92EF92FF9212 +:100D10000F931F93CF93DF93CDB7DEB7CC58D10994 +:100D20000FB6F894DEBF0FBECDBF2091210425FF82 +:100D3000C5C08C01FC01928180910001992309F4C6 +:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF +:100D50000D929A95E1F7F8019081E0916203F0918C +:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6 +:100D70003D1FE20FF31F60817181680F711D88278D +:100D800077FD8095982F0E94F12E20E030E040E41E +:100D900051E40E94562E6B017C01F801218184E010 +:100DA00090E0821B9109BC01882777FD8095982FE0 +:100DB0000E94F12E9B01AC01C701B6010E94EE2DED +:100DC0009B01AC0160E070E080E090E40E94643040 +:100DD00020E030E04CE551E40E9401304FE050E06B +:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103 +:100DF000CF911F910F91FF90EF90DF90CF900C94C7 +:100E0000CB1196E4EEE8F2E0DE01119601900D922E +:100E10009A95E1F7F8019081E0916203F091630304 +:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9 +:100E3000E20FF31F60817181680F711D882777FDB4 +:100E40008095982F0E94F12E20E030E040E451E49C +:100E50000E94562E6B017C01F801218184E090E014 +:100E6000821B9109BC01882777FD8095982F0E94ED +:100E7000F12E9B01AC01C701B6010E94EE2D9B0132 +:100E8000AC0160E070E080E090E40E94643020E01B +:100E900030E04CE551E40E940130C457DF4F0FB6FB +:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0 +:100EB000FF90EF90DF90CF900C94130EC457DF4F4C +:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B +:100ED0000F91FF90EF90DF90CF90089508950E94BA +:100EE00020056E9A769A0C9454060C946E070C9416 +:100EF00084060895880F991FFC01E250F040859107 +:100F000094910895880F991FFC01E258FE4F859136 +:100F1000949108950F931F93CF93DF93EC01811564 +:100F200020E49207A0F5C11580E3D80708F0E1C0DE +:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C +:100F4000D10578F4C53AD10508F074C0C130D10597 +:100F500009F46DC008F4DEC1C430D10508F0DDC16C +:100F6000D9C1CB3BD10508F470C0D4C1C11590E202 +:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA +:100F8000C03FD10508F4C6C18E01106506C2C1304C +:100F900080E5D80709F4BDC068F5C13120E4D20767 +:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0 +:100FB000CF70DD278E01146DF0C1C33120E4D2075C +:100FC00009F4A4C008F49FC0C115D04509F0A2C11E +:100FD0000E945C210E94E00D0E946C069FEF24E3BA +:100FE0008CE0915020408040E1F700C000000E945A +:100FF0007928D3C1C11520E6D20730F4C11581E5A7 +:10100000D80708F48CC02DC1C11590E7D90708F4A2 +:1010100081C1C11520E8D20708F478C1C11580E963 +:10102000D80708F077C1DF708E01106AB6C101E001 +:1010300010E0B3C1C53AD10509F471C1C63AD10572 +:1010400009F070C102E810E4A8C1C83AD10509F45A +:101050006CC1C93AD10509F46BC1CA3AD10509F48A +:101060006AC1CB3AD10509F469C1CC3AD10509F47A +:1010700068C1CD3AD10509F467C1C03BD10509F477 +:1010800066C1CE3AD10509F465C1CF3AD10509F45C +:1010900064C1C13BD10509F463C1C23BD10509F468 +:1010A00062C1C33BD10509F461C1C43BD10509F458 +:1010B00060C1C53BD10509F45FC1C63BD10509F448 +:1010C0005EC1C73BD10509F45DC1C83BD10509F438 +:1010D0005CC1C93BD10509F45BC1CA3BD10509F428 +:1010E0005AC100E014E459C1CE019F700E948207EA +:1010F00055C1DD278E01106C50C100E011ED4DC1CE +:1011000000E010ED4AC100E012ED47C100E013ED30 +:1011100044C180913D04816080933D043EC10E94A2 +:10112000DA28811102C00E94B6280E94F22890E0BD +:101130009093680480936704C23090E5D90721F446 +:1011400080916704816086C0C43020E5D20721F415 +:101150008091670482607EC0C63080E5D80721F4A4 +:1011600080916704846076C0C83090E5D90719F48F +:101170008091670427C0CA3020E5D20721F480910E +:101180006704806167C0CC3080E5D80721F4809186 +:10119000670480625FC0CE3090E5D90721F480916A +:1011A0006704806457C0C03120E5D20721F48091E4 +:1011B000670480684FC0C23180E5D80729F4809168 +:1011C00067048460886046C0C33090E5D90721F485 +:1011D000809167048E7F3EC0C53020E5D20721F4A0 +:1011E000809167048D7F36C0C73080E5D80721F431 +:1011F000809167048B7F2EC0C93090E5D90719F420 +:101200008091670426C0CB3020E5D20721F480917D +:1012100067048F7E1FC0CD3080E5D80721F4809110 +:1012200067048F7D17C0CF3090E5D90721F48091F6 +:1012300067048F7B0FC0C13120E5D20721F4809174 +:1012400067048F7707C0C331D04531F480916704BC +:101250008B7F877F80936704809167040E94F628C4 +:101260009CC08D2F99278F70992781309105D9F4D3 +:101270009E012370332702C0880F991F2A95E2F739 +:101280009C688E0144E0000F111F4A95E1F700278A +:101290001370802B912B53E0CC0FDD1F5A95E1F793 +:1012A000C076DD272FC08230910531F4DC2FCC27AA +:1012B0008E01016F106A71C08330910569F4CE010F +:1012C0008370992701E010E002C0000F111F8A957A +:1012D000E2F7C8019C680FC0049709F05EC0CE0118 +:1012E0008370992701E010E002C0000F111F8A955A +:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9 +:10130000C07ED7708C010C2B1D2B47C0DF708E0167 +:10131000106243C000E010E040C08E013EC001E812 +:1013200010E43BC003E810E438C002EE14E435C01A +:1013300009EE14E432C00AEE14E42FC005EB14E405 +:101340002CC006EB14E429C007EB14E426C00CEC17 +:1013500014E423C00DEC14E420C003E815E41DC020 +:101360000AE815E41AC002E915E417C004E915E417 +:1013700014C001E216E411C003E216E40EC004E258 +:1013800016E40BC005E216E408C006E216E405C048 +:1013900007E216E402C00AE216E4C801DF91CF9129 +:1013A0001F910F9108959CE0799FF001112490E323 +:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7 +:1013C000E258FE4F85919491803E9105E0F4803C77 +:1013D000910558F58133910509F46FC048F48932BD +:1013E000910509F463C08A32910509F46DC072C099 +:1013F00089339105E9F082389105D1F08533910563 +:1014000009F44DC067C0833E910581F138F4803EF8 +:101410009105B9F0823E9105D9F05CC0863E9105F8 +:1014200061F1873E9105A1F155C00E947A070895A8 +:101430002091670420FD02C021FF4CC080EE90E0A7 +:1014400049C08091670480FFF9CF89E390E042C0F2 +:101450008091670482FF0EC08091670484FF03C0FF +:1014600080E090E037C083EE90E034C08091670464 +:1014700082FFF2CF82EE90E02DC08091670483FF5F +:101480000BC08091670484FDEBCF87EE90E022C013 +:101490008091670483FFF5CF86EE90E01BC08091BA +:1014A000670485FF07C089E290E014C0809167045B +:1014B00085FFF9CF85E390E00DC08091670486FF3A +:1014C00007C08AE290E006C08091670486FFF9CFEA +:1014D00081E390E00E948A070895CF92DF92EF9215 +:1014E000FF920F931F9301E010E020E030E06801CD +:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0 +:1015000004C0000F111F221F331F6A95D2F70C2948 +:101510001D292E293F29C0902104D0902204E0905B +:101520002304F0902404C022D122E222F322842F4B +:10153000C016D106E206F30641F41F910F91FF9009 +:10154000EF90DF90CF900C9495251F910F91FF9015 +:10155000EF90DF90CF900C94B62508950C94AD0ACF +:101560005F926F927F928F929F92AF92BF92CF9233 +:10157000DF92EF92FF920F931F93CF93DF93CDB73C +:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1 +:1015900001966C014E0199E0890E911C20E030E02B +:1015A00040E050E060E070E000E010E0E12CF12C61 +:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49 +:1015C000F2E0A62DB52D872D01900D928A95E1F7B9 +:1015D000F601819191916F01FC01E07FFF27E032DC +:1015E000F10559F48F709927F50102C0EE0FFF1F26 +:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465 +:101600008F709927F50102C0EE0FFF1F8A95E2F750 +:101610000E2B1F2B29C0E034F10559F48F70992748 +:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC +:101630001BC0E035F10559F48F709927F50102C000 +:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1 +:10165000F10551F48F709927F50102C0EE0FFF1FBD +:101660008A95E2F72E2B3F2BC814D90409F0A7CF97 +:1016700084B19E2D9095892384B985B1E82AE5B877 +:1016800087B1902F9095892387B988B1082B08B925 +:101690008AB1962F909589238AB98BB1682B6BB943 +:1016A0008DB1942F909589238DB98EB1482B4EB969 +:1016B00080B3922F9095892380BB81B3282B21BBC7 +:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145 +:1016D0001F910F91FF90EF90DF90CF90BF90AF9050 +:1016E0009F908F907F906F905F9008955F926F9220 +:1016F0007F928F929F92AF92BF92CF92DF92EF92A2 +:10170000FF920F931F93CF93DF93CDB7DEB7689708 +:101710000FB6F894DEBF0FBECDBF85B7806885BF1A +:1017200085B7806885BF0E94B00ACE0101966C0122 +:101730004E0199E1890E911C20E030E040E050E03C +:1017400060E070E000E010E0E12CF12C6C2C5D2CEE +:1017500088E1782EAA24A394B12CECEDF2E0A62D1A +:10176000B52D872D01900D928A95E1F7F6018191B3 +:1017700091916F01FC01E07FFF27E032F10559F400 +:101780008F709927F50102C0EE0FFF1F8A95E2F7CF +:10179000EE2AFF2A37C0E033F10559F48F709927FC +:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB +:1017B00029C0E034F10559F48F709927F50102C072 +:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3 +:1017D000F10559F48F709927F50102C0EE0FFF1F34 +:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0 +:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F +:101800002E2B3F2BC814D90409F0A7CF84B19E2DED +:101810009095892384B985B1E82AE5B887B1902FDE +:101820009095892387B988B1082B08B98AB1962F7A +:10183000909589238AB98BB1682B6BB98DB1942FA0 +:10184000909589238DB98EB1482B4EB980B3922FD4 +:101850009095892380BB81B3282B21BB10926D0307 +:1018600010926C03109265031092640310926F0340 +:1018700010926E0310926703109266031092710328 +:101880001092700310926903109268031092730310 +:101890001092720310926B0310926A0368960FB64F +:1018A000F894DEBF0FBECDBFDF91CF911F910F9196 +:1018B000FF90EF90DF90CF90BF90AF909F908F9070 +:1018C0007F906F905F900C946F077F928F929F92A2 +:1018D000AF92BF92CF92DF92EF92FF920F931F933E +:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6 +:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7 +:1019000083E0F82E98E0792EBC2CAD2C01E010E09D +:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6 +:10192000872D01900D928A95E1F7F60181919191B1 +:101930006F019C01207F33272032310591F424B1BF +:101940008F709927A80102C0440F551F8A95E2F7AE +:10195000CA01922F982B94B995B18095892385B9A6 +:1019600053C02033310591F427B18F709927F801C6 +:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E +:1019800097B998B18095892388B93EC02034310534 +:1019900091F42AB18F709927A80102C0440F551FF6 +:1019A0008A95E2F7CA01922F982B9AB99BB180953C +:1019B00089238BB929C02035310591F42DB18F7061 +:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9 +:1019D000922F982B9DB99EB1809589238EB914C002 +:1019E0002036310589F420B38F709927A80102C0F1 +:1019F000440F551F8A95E2F7CA01922F982B90BB8E +:101A000091B38095892381BB50EA5A95F1F7BE01C5 +:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F +:101A2000DE011196882D01900D928A95E1F7FB0158 +:101A300081919191BF01FC01E07FFF27E032F10528 +:101A400011F4E3B113C0E033F10511F4E6B10EC0B7 +:101A5000E034F10511F4E9B109C0E035F10511F404 +:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED +:101A7000992702C0F595E7958A95E2F7E0FD08C041 +:101A8000C801042E02C0880F991F0A94E2F702C011 +:101A900080E090E0282B392B4F5F5F4F4C30510591 +:101AA00009F0BCCFF701808191818217930721F063 +:101AB00031832083909271020E94B00AF2E0EF0E0F +:101AC000F11C4CE6E41643E0F40609F025CF8091C2 +:101AD0007102882361F1815080937102882339F06B +:101AE0008FE99FE00197F1F700C0000020C08091CE +:101AF00064039091650390936D0380936C038091D0 +:101B000066039091670390936F0380936E038091B7 +:101B1000680390916903909371038093700380919F +:101B20006A0390916B0390937303809372030E94F6 +:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B +:101B4000DF91CF911F910F91FF90EF90DF90CF9099 +:101B5000BF90AF909F908F907F900895E82FF0E016 +:101B6000EE0FFF1FE459FC4F808191810895089585 +:101B7000809152048160809352040C9408298091D2 +:101B800052048E7F809352040C9408290E94DA2814 +:101B9000811102C00E94B6280E9404298093520439 +:101BA0003E9A809171008D7F8093710082E08093D6 +:101BB00090008AE18093910081E0809376030895FC +:101BC00080917603811102C00E94C60D1092C60357 +:101BD0001092C503809171008D7F80937100809178 +:101BE00090008F7780939000109288031092870363 +:101BF0001092BF031092C0031092C1031092C2034F +:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E +:101C100011921192119211921D921D9283E0ED3B4F +:101C2000F807B1F70895CF92DF92EF92FF920F93EA +:101C30001F93CF93DF9320918703222309F484C05D +:101C40006B017C0180917603811102C00E94C60D58 +:101C50000DEB13E0C7E0D0E0A7019601F8019291E7 +:101C60008291729162918F010E94522E811131C036 +:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219 +:101C8000118212821382DE01AA0FBB1FA357BC4F21 +:101C900011961C921E92C730D105E9F0219644811D +:101CA0005581668177814083518362837383148277 +:101CB00015821682178212968D919C911397119618 +:101CC0009C938E9313961C921E92129734961296A2 +:101CD000E2CF219708F68091C5039091C603019742 +:101CE00097FD05C09093C6038093C50304C010926E +:101CF000C6031092C5038091C5039091C60320913D +:101D0000C3033091C4032817390724F01092C40389 +:101D10001092C303892BC1F4809171008D7F809351 +:101D20007100809190008F77809390001092BF0394 +:101D30001092C0031092C1031092C2031092BE030E +:101D40001092BD0310928703DF91CF911F910F91E5 +:101D5000FF90EF90DF90CF9008951F920F920FB6F3 +:101D60000F9211244F925F926F927F928F929F9267 +:101D7000AF92BF92CF92DF92EF92FF922F933F9359 +:101D80004F935F936F937F938F939F93AF93BF9383 +:101D9000CF93DF93EF93FF9380918703882309F418 +:101DA0009BC1C091C503D091C6031C161D060CF043 +:101DB00093C14090770350907803609079037090BE +:101DC0007A0320E030E0A901C301B2010E94FD2F97 +:101DD00018160CF065C0C130D10509F452C08091CD +:101DE000C3039091C403BE010E94CF317C01909344 +:101DF000C4038093C3038090890390908A03A090CA +:101E00008B03B0908C0320E030E040E85FE3C50135 +:101E1000B4010E94EE2D6093890370938A0380932E +:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44 +:101E3000E356FC4FA30192016081718182819381FD +:101E40000E94562E20E030E040E05EE30E94013028 +:101E50009B01AC01C501B4010E94FD2F18168CF442 +:101E6000C7010196BE010E94CF319093C4038093B5 +:101E7000C3031092890310928A0310928B0310926D +:101E80008C03E091C303F091C403EE0FFF1FEE0F2C +:101E9000FF1FE356FC4F6081718182819381D0C026 +:101EA000C090BF03D090C003E090C103F090C20384 +:101EB00020E030E0A901C701B6010E94522E21970F +:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3 +:101ED000E356FC4F80809180A280B380A5019401DD +:101EE000C701B6010E94522E87FF31C0A50194019F +:101EF00060E070E08CED93EC0E94562E20E030E024 +:101F000040E451E40E94562E20E030E040E05FE3E0 +:101F10000E9401309B01AC0160E070E080E090E441 +:101F20000E9464309B01AC01C501B4010E940130E4 +:101F30009B01AC01C701B6010E94522E87FF07C06A +:101F4000A701960160E070E08CED93E439C0A50133 +:101F50009401C701B6010E94FD2F18160CF055C060 +:101F6000A501940160E070E08CED93E40E94562E90 +:101F700020E030E040E451E40E94562E20E030E0C2 +:101F800040E05FE30E9401309B01AC0160E070E043 +:101F900080E090E40E9464309B01AC01C501B40173 +:101FA0000E9401309B01AC01C701B6010E94FD2FC8 +:101FB00018165CF5A701960160E070E08CED93ECDB +:101FC0000E94562E20E030E040E451E40E94562E5C +:101FD00020E030E040E05FE30E9401309B01AC0173 +:101FE00060E070E080E090E40E9464309B01AC010E +:101FF000C701B6010E9401306093BF037093C00314 +:102000008093C1039093C20313C0FE01EE0FFF1F24 +:10201000EE0FFF1FE356FC4F80819181A281B381B7 +:102020008093BF039093C003A093C103B093C203F6 +:102030006091BF037091C0038091C1039091C2036E +:1020400020917403309175032F3F4FEF340731F027 +:102050002F5F3F4F30937503209374030E94D41277 +:102060006B017C0120E034E244EF51E40E94522EE7 +:1020700087FF08C086EFC82E88E2D82E84EFE82EAE +:1020800081E4F82E20E030E040E051E4C701B601E1 +:102090000E9401309B01AC0160E074E284E79BE4A4 +:1020A0000E94562E6B017C010E94BE2E70939700F9 +:1020B00060939600209172023091730240917402F5 +:1020C00050917502C701B6010E9401300E94BE2ED8 +:1020D000709399006093980080918803882309F495 +:1020E00033C1C0908303D0908403E0908503F090C7 +:1020F000860320E030E0A901C701B6010E94FD2F50 +:102100001816D4F580917403909175038F3F2FEFCB +:10211000920729F001969093750380937403C70189 +:10212000B6010E94D41220E030E040E051E40E9469 +:1021300001309B01AC0160E074E284E79BE40E9403 +:10214000562E6B017C010E94BE2E70939700609307 +:102150009600209172023091730240917402509166 +:102160007502C701B6010E9401300E94BE2E709315 +:1021700099006093980008C0109297001092960002 +:10218000109299001092980060917D0370917E03E7 +:102190006F5F7F4F70937E0360937D032091960065 +:1021A0003091970080E090E0232BF1F0C0919600F1 +:1021B000D09197000E94EF2E6B017C01BE0180E060 +:1021C00090E00E94EF2E9B01AC0160917F03709123 +:1021D000800380918103909182030E94562E20E01B +:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8 +:1021F00020E030EE4FEF54E460917F037091800354 +:1022000080918103909182030E9401309B01AC0177 +:10221000C701B6010E94FD2F87FD96C080917B0308 +:102220008F5F80937B0390E020914E0430914F04A8 +:1022300082179307A0F080915904882319F0109217 +:102240007B030DC0809171008D7F80937100809120 +:1022500090008F7780939000109288037DC08091CA +:102260007C03C0917B03811128C0C0905304D0909F +:102270005404E0905504F090560420E030E0A901A9 +:10228000C701B6010E94FD2F1816BCF481E08093AF +:102290007C031092830310928403109285031092A2 +:1022A0008603C0927F03D0928003E0928103F09274 +:1022B0008203C150C0937B0343C010927C031092F1 +:1022C000750310927403E0915004F091510448E0BA +:1022D000C49FE00DF11D112480819181A281B38101 +:1022E0008093830390938403A0938503B093860324 +:1022F00020E030E040E85EE364817581868197816B +:102300000E9401306B017C0120E030E048EC52E497 +:1023100060917602709177028091780290917902B3 +:102320000E94562E9B01AC01C701B6010E940130EC +:1023300060937F0370938003809381039093820363 +:1023400010927E0310927D038091520480FD04C0A0 +:102350001092880310928703FF91EF91DF91CF9144 +:10236000BF91AF919F918F917F916F915F914F91AD +:102370003F912F91FF90EF90DF90CF90BF90AF9063 +:102380009F908F907F906F905F904F900F900FBEB7 +:102390000F901F901895CF92DF92EF92FF92CF93FC +:1023A000DF936B017C01EA0180917603811102C009 +:1023B0000E94C60D8091520480FF46C08091C503E3 +:1023C0009091C60308970CF03FC0809171008D7FFB +:1023D000809371008091880381110E94E00D81E05B +:1023E00080938703109275031092740320E030E00D +:1023F000A901C701B6010E94FD2F1816DCF48091D7 +:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7 +:10241000E356FC4FC082D182E282F382FC01EE0FD0 +:10242000FF1FE357FC4FD183C08301969093C603EF +:102430008093C503809171008260809371008091C8 +:102440009000806880939000DF91CF91FF90EF9093 +:10245000DF90CF9008958F929F92AF92BF92CF92CC +:10246000DF92EF92FF920F931F93CF93DF93EC01D4 +:102470007B01D42E4801590180917603811102C05D +:102480000E94C60D8091520480FF6BC08091710044 +:102490008D7F809371008091870381110E94E00DF0 +:1024A00081E080938803D0935104C0935004F0924C +:1024B0004F04E0924E04D0925904809253049092BB +:1024C0005404A0925504B0925604109289031092BD +:1024D0008A0310928B0310928C0310927B038881E5 +:1024E0009981AA81BB818093830390938403A093F5 +:1024F0008503B093860320E030E040E85EE36C8122 +:102500007D818E819F810E9401306B017C0120E0E2 +:1025100030E048EC52E4609176027091770280914D +:102520007802909179020E94562E9B01AC01C7015E +:10253000B6010E94013060937F0370938003809303 +:1025400081039093820310927E0310927D03809109 +:102550007100826080937100809190008068809308 +:102560009000DF91CF911F910F91FF90EF90DF903E +:10257000CF90BF90AF909F908F9008958091C703A8 +:1025800090E0019666E070E00E94CF318093C7032F +:1025900008958091C70390E0019766E070E00E9483 +:1025A000CF318093C70308958F929F92AF92BF92CD +:1025B000CF92DF92EF92FF920F931F93CF93DF930F +:1025C0006B017C01C0917403D0917503BE0180E062 +:1025D00090E00E94EF2E4B015C01A701960160E0A4 +:1025E00070E08CE594E40E94562E9B01AC01C5017D +:1025F000B4010E9401300E94C32E2091C7032330F2 +:1026000009F473C028F4222351F02130E9F02CC1E1 +:10261000243009F4A0C0253009F4E0C025C180E0D1 +:1026200090E0A0E0BFE38093720290937302A093C6 +:102630007402B0937502109277031092780310928F +:10264000790310927A0310C11092770310927803E5 +:102650001092790310927A036431710540F46A3064 +:10266000710560F520E030E040E85EE32BC0693C96 +:10267000710508F0AAC080E090E00E94EF2E20E0F3 +:1026800030E040EA51E40E94ED2D20E030E044E3E8 +:1026900053E40E94562E9B01AC010E94013020E0C1 +:1026A00030E040E05EE30E9401309B01AC0160E05D +:1026B00070E080E09EE30E94ED2D44C020E030E019 +:1026C00040E05FE3C701B6010E9401306B017C016D +:1026D00080E090E0A0E0BEE38093720290937302EA +:1026E000A0937402B0937502BFC01092770310924A +:1026F00078031092790310927A034AE0469F900182 +:10270000479F300D1124C90168EB7BE00E94BB316B +:10271000BC016C5D754077FF03C0719561957109CF +:10272000882777FD8095982F0E94F12E2EE333ECB9 +:102730004EE259E30E94013020E030E040EC5EE3DD +:102740000E94EE2D60937202709373028093740264 +:102750009093750289C010927703109278031092BB +:10276000790310927A03CE0183709927892BE1F0C7 +:10277000BE016170772780E090E00E94EF2E20E09C +:1027800030E040E05EE30E94013020E030E040E4D1 +:102790005FE30E94EE2D6093720270937302809348 +:1027A0007402909375020CC080E090E0A0E0BFE35B +:1027B0008093720290937302A0937402B093750297 +:1027C000C770DD27CD2B09F04FC010927202109216 +:1027D0007302109274021092750246C01092770331 +:1027E000109278031092790310927A0300E010E0BF +:1027F00020E03FE30093720210937302209374026F +:10280000309375026739710578F180E090E00E949D +:10281000EF2E20E030E047E153E40E94ED2D20E070 +:1028200030E04AE754E40E94562E20E030E048E4CD +:1028300052E40E94013020E030E040EA51E40E947E +:10284000332F0E94BE2E660F771F660F771FFB0186 +:10285000EC50FD4F2081318142815381C701B60187 +:102860000E9401306B017C01C701B601DF91CF915D +:102870001F910F91FF90EF90DF90CF90BF90AF909E +:102880009F908F9008958091D8030895CF93DF9300 +:1028900000D01F92CDB7DEB79C0180915E048430DA +:1028A00019F593E099833B832A839093E9008FEF96 +:1028B0009091E800815095FD06C095ED9A95F1F74D +:1028C00000008111F5CF8091E80085FF0DC040E048 +:1028D00050E063E070E0CE0101960E94A71680915F +:1028E000E8008E778093E8000F900F900F90DF91B3 +:1028F000CF910895CF93DF9300D01F92CDB7DEB76D +:1029000020915E04243021F522E029839B838A8371 +:1029100083E08093E9008FEF9091E800815095FD6E +:1029200006C095ED9A95F1F700008111F5CF8091E1 +:10293000E80085FF0DC040E050E063E070E0CE01AC +:1029400001960E94A7168091E8008E778093E80098 +:102950000F900F900F90DF91CF91089520915E041A +:102960002430F1F422E02093E9002FEF3091E800C9 +:10297000215035FD06C035ED3A95F1F700002111E3 +:10298000F5CF2091E80025FF0BC040E050E065E066 +:1029900070E00E94A7168091E8008E778093E8008F +:1029A0000895CF93DF93EC0190915E04943009F089 +:1029B00046C0809184028823D9F0809185028823C3 +:1029C000B9F09093E9008FEF9091E800815095FD68 +:1029D00006C095E19A95F1F700008111F5CF80913D +:1029E000E80085FF2CC040E050E060E170E017C0D7 +:1029F00081E08093E9008FEF9091E800815095FD90 +:102A000006C095ED9A95F1F700008111F5CF809100 +:102A1000E80085FF14C040E050E068E070E0CE01BF +:102A20000E94A7168091E8008E778093E80080E1ED +:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9 +:102A4000CF91089580915D04811109C00E943C18C6 +:102A50000E9499188091E20084608093E2000895BA +:102A600010925D040895089508950C94E12742E0C2 +:102A700061EC81E00E94B61742E061EC82E00E94C6 +:102A8000B61742E061EC83E00E94B61742E161ECC8 +:102A900084E00C94B61780916004833009F455C02B +:102AA00030F4813071F0823009F48EC008958A309C +:102AB00009F47AC08B3009F460C0893009F09CC0F9 +:102AC00020C080915F04813A09F096C08091E800AF +:102AD000877F8093E8008091630490916404892B40 +:102AE00021F460E188EC93E003C060E080E090E0D6 +:102AF00070E00E94F2168091E8008B778093E800E6 +:102B0000089580915F04813209F076C0809163045A +:102B100090916404009719F0039709F06DC08091BB +:102B2000E800877F8093E8008091E80082FD05C07F +:102B300080915E048111F8CF5FC08091F100809395 +:102B4000D8038091E8008B7753C080915F04813A6D +:102B500009F052C08091630490916404892B09F0BC +:102B60004BC08091E800877F8093E8008091E80067 +:102B700080FFFCCF8091840236C080915F04813257 +:102B8000D9F58091630490916404892BA9F5809113 +:102B9000E800877F8093E8000E94EB178091610432 +:102BA000809384020C945C2180915F04813221F532 +:102BB0008091E800877F8093E8000E94EB17809166 +:102BC00062048093D903089580915F04813AA1F44F +:102BD0008091E800877F8093E8008091E80080FF83 +:102BE000FCCF8091D9038093F1008091E8008E772B +:102BF0008093E8000C94EB17089584B7877F84BF17 +:102C000088E10FB6F89480936000109260000FBEC8 +:102C100090E080E80FB6F894809361009093610093 +:102C20000FBE0E948E1B0E943C180E949918809132 +:102C3000E20084608093E20078940E941F1B0E944F +:102C4000901B8AE792E00E943A1B80915E048530D7 +:102C500069F40E949B2780915C048823B1F30E9451 +:102C6000C927882391F30E949116EFCF0E94981BE9 +:102C7000ECCF292F332723303105C9F064F42130FC +:102C8000310581F02230310509F043C08DE690E036 +:102C90002AE338E042C021323105F1F02232310519 +:102CA00041F137C082E190E027EA38E036C0992749 +:102CB0008130910541F08230910541F0892B49F531 +:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A +:102CD000849190E09F0121C06430D8F4E62FF0E0A9 +:102CE000EE0FFF1FE05BFC4F2081318189E090E017 +:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E +:102D0000FC4F20813181FB01EC5BFC4F808190E026 +:102D100004C080E090E020E030E0FA0131832083BD +:102D2000089580E189BD82E189BD09B400FEFDCF2F +:102D30008091D8008F7D8093D8008091E0008260E0 +:102D40008093E0008091E00081FDFCCF0895CF9258 +:102D5000DF92EF92FF920F931F93CF93DF93EC01DB +:102D60008B016A010E940A18811133C0C114D10479 +:102D700039F0F60180819181081B190BC80FD91F0A +:102D8000E12CF12C0115110519F18091E80085FD68 +:102D900016C08091E8008E778093E800C114D104BA +:102DA00049F0F60180819181E80EF91EF182E082FE +:102DB00085E00FC00E940A18882321F30AC0899178 +:102DC0008093F10001501109FFEFEF1AFF0ADACFEB +:102DD00080E0DF91CF911F910F91FF90EF90DF90F6 +:102DE000CF90089520916504309166042617370727 +:102DF00048F06115710539F42091E8002E77209391 +:102E0000E80001C0B90140E061157105A9F1209108 +:102E10005E04222309F443C0253009F442C0209106 +:102E2000E80023FD40C02091E80022FD32C020913F +:102E3000E80020FFE9CF4091F3002091F20030E05C +:102E4000342BFC01CF016115710559F02830310593 +:102E500040F481918093F100615071092F5F3F4FE1 +:102E6000F1CF41E02830310509F040E02091E80041 +:102E70002E772093E800C8CF4111C9CF0AC08091B6 +:102E80005E04882361F0853061F08091E80083FD65 +:102E90000AC08091E80082FFF2CF80E0089582E0CE +:102EA000089583E0089581E00895209165043091AC +:102EB00066042617370748F06115710539F420912B +:102EC000E8002E772093E80001C0B901FC0120E062 +:102ED0006115710591F180915E04882309F440C069 +:102EE000853009F43FC08091E80083FD3DC08091AA +:102EF000E80082FD2FC08091E80080FFE9CF20919B +:102F0000F3008091F20090E0922B6115710559F069 +:102F10008830910540F424912093F100319661505E +:102F200071090196F2CF21E0089709F020E0809125 +:102F3000E8008E778093E800CBCF2111CCCF0AC078 +:102F400080915E04882361F0853061F08091E80013 +:102F500083FD0AC08091E80082FFF2CF80E00895EF +:102F600082E0089583E0089581E00895982F9730D6 +:102F700058F59093E900981739F07091EC00209182 +:102F8000ED005091F00003C0242F762F50E021FF78 +:102F900019C03091EB003E7F3093EB003091ED0093 +:102FA0003D7F3093ED003091EB0031603093EB00CA +:102FB0007093EC002093ED005093F0002091EE0010 +:102FC00027FF07C09F5FD3CF8F708093E90081E018 +:102FD000089580E0089580915F0487FF11C080917B +:102FE000E80082FD05C080915E048111F8CF11C018 +:102FF0008091E8008B770BC080915E04882349F0B4 +:103000008091E80080FFF8CF8091E8008E77809370 +:10301000E80008952091E4003091E50095E64091A4 +:10302000EC00842F817040FF22C08091E80080FD79 +:103030001CC080915E04882391F0853091F08091CE +:10304000EB0085FD10C04091E4005091E50042176F +:10305000530729F39A01915011F784E0089582E013 +:10306000089583E0089581E0089580E008954091F7 +:10307000E80042FFDECF08950E94AA180E94B2180D +:10308000E0EEF0E0808181608083E8EDF0E0808117 +:103090008F77808319BCA7EDB0E08C918E7F8C93E5 +:1030A00080818F7E808310925D0408950F931F931B +:1030B000CF93DF930E94AA180E94B218C8EDD0E007 +:1030C00088818F77888388818068888388818F7DD5 +:1030D000888319BC10925E0410925A0410925C040A +:1030E00010925B0400EE10E0F80180818B7F8083FA +:1030F00088818160888342E060E080E00E94B617AA +:10310000E1EEF0E080818E7F8083E2EEF0E080816E +:1031100081608083808188608083F80180818E7FD8 +:103120008083888180618883DF91CF911F910F9187 +:103130000895E8EDF0E080818F7E8083E7EDF0E098 +:1031400080818160808384E082BF81E080935D0420 +:103150000C945618E8EDF0E080818E7F8083109209 +:10316000E20008951092DA001092E10008951F9293 +:103170000F920FB60F9211242F933F934F935F93AB +:103180006F937F938F939F93AF93BF93EF93FF932F +:103190008091E10082FF0BC08091E20082FF07C0B6 +:1031A0008091E1008B7F8093E1000E941E1B809143 +:1031B000DA0080FF1FC08091D80080FF1BC0809183 +:1031C000DA008E7F8093DA008091D90080FF0DC0F5 +:1031D00080E189BD82E189BD09B400FEFDCF81E0B7 +:1031E00080935E040E94221505C019BC10925E04F3 +:1031F0000E9430158091E10080FF19C08091E200AB +:1032000080FF15C08091E2008E7F8093E200809164 +:10321000E20080618093E2008091D8008062809318 +:10322000D80019BC85E080935E040E94341580911B +:10323000E10084FF30C08091E20084FF2CC080E177 +:1032400089BD82E189BD09B400FEFDCF8091D8001F +:103250008F7D8093D8008091E1008F7E8093E10084 +:103260008091E2008F7E8093E2008091E200816095 +:103270008093E20080915A04882311F084E007C013 +:103280008091E30087FD02C081E001C083E080936C +:103290005E040E9435158091E10083FF29C0809172 +:1032A000E20083FF25C08091E100877F8093E100E9 +:1032B00082E080935E0410925A048091E1008E7F38 +:1032C0008093E1008091E2008E7F8093E200809104 +:1032D000E20080618093E20042E060E080E00E94D2 +:1032E000B6178091F00088608093F0000E9433153B +:1032F000FF91EF91BF91AF919F918F917F916F91CE +:103300005F914F913F912F910F900FBE0F901F90A3 +:1033100018951F920F920FB60F9211242F933F937F +:103320004F935F936F937F938F939F93AF93BF93CD +:10333000CF93DF93EF93FF93C091E900CF7080911B +:10334000EC00D82FD17080FDD0E81092E900809178 +:10335000F000877F8093F00078940E94CD1910923E +:10336000E9008091F00088608093F000CD2BCF7051 +:10337000C093E900FF91EF91DF91CF91BF91AF91A1 +:103380009F918F917F916F915F914F913F912F917D +:103390000F900FBE0F901F9018951F93CF93DF9340 +:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C +:1033B000EFE5F4E088E08E0F9091F10091938E1389 +:1033C000FBCF0E944B158091E80083FF1FC18091C5 +:1033D0005F0490916004492F50E04A30510508F095 +:1033E00015C1FA01EC59FF4F0C94E331803881F09C +:1033F000823809F00BC1809163048F708093E900DB +:103400008091EB0085FB882780F91092E90006C0C7 +:1034100080915B0490915C04911182609091E8002E +:10342000977F9093E8008093F1001092F100C8C05C +:10343000282F2D7F09F0EAC0882319F0823061F02F +:10344000E5C080916104813009F0E0C0933009F05B +:1034500080E080935C042BC080916104811127C0BF +:10346000809163048F7009F4D1C08093E9002091AA +:10347000EB0020FF1CC0933021F48091EB008062B0 +:1034800014C09091EB0090619093EB0021E030E04C +:10349000A90102C0440F551F8A95E2F74093EA0044 +:1034A0001092EA008091EB0088608093EB0010920C +:1034B000E9008091E800877F86C08111A7C0109144 +:1034C00061041F778091E3008078812B8093E30073 +:1034D0008091E800877F8093E8000E94EB1780913D +:1034E000E80080FFFCCF8091E30080688093E300D8 +:1034F000111102C082E001C083E080935E0486C0A7 +:103500008058823008F082C08091610490916204FA +:103510008C3D53E0950779F583E08A838AE28983BD +:103520004FB7F894DE01139620E03EE051E2E32F1E +:10353000F0E050935700E49120FF03C0E295EF7054 +:103540003F5FEF708E2F90E0EA3010F0C79601C019 +:10355000C0968D939D932F5F243149F74FBF809183 +:10356000E800877F8093E8006AE270E0CE01019670 +:103570000E94F21614C0AE014F5F5F4F609163046A +:103580000E943916BC01009709F440C09091E800F0 +:10359000977F9093E80089819A810E9455178091C6 +:1035A000E8008B778093E80031C0803879F580910E +:1035B000E800877F8093E80080915A048093F100AF +:1035C0008091E8008E778093E8000E94EB171EC080 +:1035D00081111CC0909161049230C0F48091E80088 +:1035E000877F8093E80090935A040E94EB178091A4 +:1035F0005A04811106C08091E30087FD02C081E07A +:1036000001C084E080935E040E9437158091E80039 +:1036100083FF0AC08091E800877F8093E800809153 +:10362000EB0080628093EB00AA960FB6F894DEBFA1 +:103630000FBECDBFDF91CF911F9108950895CF9315 +:1036400080915E048823A1F0C091E900CF70909131 +:10365000EC00892F817090FD80E8C82B1092E90062 +:103660008091E80083FD0E94CD19CF70C093E900DE +:10367000CF9108959093DF038093DE030895E09146 +:10368000DE03F091DF03309721F00190F081E02D0F +:10369000099480E00895E091DE03F091DF03309714 +:1036A00021F00280F381E02D09940895E091DE037A +:1036B000F091DF03309721F00480F581E02D09942B +:1036C00008952091DC033091DD038217930771F098 +:1036D0009093DD038093DC03E091DE03F091DF0340 +:1036E000309721F00680F781E02D0994089520910C +:1036F000DA033091DB038217930771F09093DB03B9 +:103700008093DA03E091DE03F091DF03309721F03C +:103710000084F185E02D0994089508950C948D1B83 +:103720000E9415280E94760B0E949B280C94562D0F +:103730004F925F927F928F929F92AF92BF92CF9261 +:10374000DF92EF92FF920F931F93CF93DF93CDB74A +:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A +:10376000650C91EEC92E93E0D92E00E010E0AA245A +:10377000A394B12C702E802F0E94AE0D4C01F60147 +:10378000419051906F014826592641145104B1F4DB +:103790000F5F1F4F0430110569F78FEF89838A830C +:1037A0001B820E941E288160782F9D838C83498113 +:1037B0005A816B818D810E94511C3AC080913D04D9 +:1037C00081FD0E94B70D20E030E07501022E02C09D +:1037D000EE0CFF1C0A94E2F7C70184219521892B86 +:1037E00009F12E837F828E209F2091E0892809F4A1 +:1037F00090E098870E941E288160782F9A87898799 +:103800004E815F8168858A850E94511C000F111FBF +:10381000F801EF51FC4F80819181E826F926F18271 +:10382000E08206C02F5F3F4F2C30310571F6B0CFDC +:103830000E94872A1091E0030E943F1B1817D9F0BD +:103840000E943F1B8093E0032A960FB6F894DEBFD8 +:103850000FBECDBFDF91CF911F910F91FF90EF90E1 +:10386000DF90CF90BF90AF909F908F907F905F90B0 +:103870004F900C94AE0A2A960FB6F894DEBF0FBE96 +:10388000CDBFDF91CF911F910F91FF90EF90DF900F +:10389000CF90BF90AF909F908F907F905F904F9010 +:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B +:1038B000DEBF0FBECDBF4F83588769877A878B875E +:1038C000DE01119686E0FD0111928A95E9F785E007 +:1038D000FE01379601900D928A95E1F749815A8150 +:1038E0006B817C818D819E810E94F6232B960FB681 +:1038F000F894DEBF0FBECDBFDF91CF910895CF9377 +:10390000882309F4C2C0C82F823859F40E943F1B93 +:1039100081FDBBC089E30E949F260E946C2789E33A +:103920000CC0833879F40E943F1B80FDAEC083E554 +:103930000E949F260E946C2783E50E94E126CF917A +:103940000C946C27843859F40E943F1B82FD9DC063 +:1039500087E40E949F260E946C2787E4EECF8CEFBD +:103960008C0F813A48F48C2F0E94BE2C81118DC09F +:103970008C2F0E949F26E3CF80E28C0F883048F482 +:10398000C77081E001C0880FCA95EAF70E94252719 +:10399000D6CF8BE58C0F833078F4C53A29F0C63A40 +:1039A00031F083E890E005C081E890E002C082E851 +:1039B00090E0CF910C94611B88E58C0F833108F067 +:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F +:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F +:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F +:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D +:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092 +:103A100090E038C082EE90E035C089EE90E032C090 +:103A20008AEE90E02FC085EB90E02CC086EB90E012 +:103A300029C087EB90E026C08CEC90E023C08DEC91 +:103A400090E020C083E891E01DC08AE891E01AC0B0 +:103A500082E991E017C084E991E014C081E292E02C +:103A600011C083E292E00EC084E292E00BC085E2D6 +:103A700092E008C086E292E005C087E292E002C0D0 +:103A80008AE292E0CF910C94771BCF91089588231E +:103A900009F44BC0823859F40E943F1B81FF45C096 +:103AA00089E30E949F260E946C2789E30CC083381B +:103AB00071F40E943F1B80FF38C083E50E949F265F +:103AC0000E946C2783E50E94E1260C946C278438C1 +:103AD00059F40E943F1B82FF28C087E40E949F2662 +:103AE0000E946C2787E4EFCF9CEF980F913A58F330 +:103AF00090E2980F983050F4877091E001C0990FD0 +:103B00008A95EAF7892F0E942B27DFCF9BE5980F34 +:103B1000933020F480E090E00C94611B885A83314C +:103B200020F480E090E00C94771B0895882321F026 +:103B30000E9425270C946C270895882321F00E9469 +:103B40002B270C946C270895BF92CF92DF92EF92AF +:103B5000FF920F931F93CF93DF9300D000D000D03C +:103B6000CDB7DEB725E0FC01DE01119601900D9284 +:103B70002A95E1F7FC01D0801181028125812295EF +:103B80002F7043815481452B09F472C31F3F21F4E8 +:103B9000FFEFDF1609F46CC37C012E830E947707C8 +:103BA000D9821A8369817A81802F0E949B26182FDF +:103BB000B92E0E9450260E9417252E81002319F04D +:103BC0000E9442272E81EB2DE295EF70F0E0E25942 +:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E +:103BE000882319F0F29480EFF822002389F0FF2057 +:103BF00009F47CC280E2810F883020F48F2D0E946E +:103C0000252703C08F2D0E9435270E946C276EC286 +:103C1000812F0E94471DFF2009F42AC3105E8F2DBB +:103C2000183018F40E942B2702C00E943B272696CA +:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD +:103C40000F91FF90EF90DF90CF90BF900C946C2776 +:103C50008B2D807F9B2D9F70803211F4892F03C0A4 +:103C6000892F8295807F112319F0113011F12BC01B +:103C70000023A9F0222389F1213079F526960FB689 +:103C8000F894DEBF0FBECDBFDF91CF911F910F9192 +:103C9000FF90EF90DF90CF90BF900C945527222398 +:103CA00019F0213009F4E4C28E830E9458278E81D6 +:103CB0009BC1002321F0263008F0DAC20EC0253067 +:103CC00008F0D6C291C10023C9F0222331F0F701D8 +:103CD000958190FF0BC29F70958326960FB6F8943E +:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F +:103CF000EF90DF90CF90BF900C94961D222309F493 +:103D000073C109C22B2D26952695237030E021150D +:103D1000310521F021303105D1F0AAC2002321F074 +:103D2000812F9B2D937002C080E090E026960FB605 +:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1 +:103D4000FF90EF90DF90CF90BF900C94611B002309 +:103D500021F0812F9B2D937002C080E090E0269689 +:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C +:103D70000F91FF90EF90DF90CF90BF900C94771B46 +:103D8000812F002319F00E948F2902C00E94F72979 +:103D900026960FB6F894DEBF0FBECDBFDF91CF9150 +:103DA0001F910F91FF90EF90DF90CF90BF900C94F8 +:103DB0007C2A8B2D837009F07BC0011159C2812FA1 +:103DC000829586958770880F880F912F9F70C92ED6 +:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7 +:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD +:103DF00070E004C0440F551F661F771F8A95D2F7E5 +:103E0000CB01BA01609570958095909503C060E0F4 +:103E100070E0CB012B2D269526952370422F50E084 +:103E200042305105D9F04330510569F16C297D29A3 +:103E30008E299F294130510551F126960FB6F894ED +:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD +:103E5000EF90DF90CF90BF900C943E256C297D2988 +:103E60008E299F2926960FB6F894DEBF0FBECDBFD0 +:103E7000DF91CF911F910F91FF90EF90DF90CF9046 +:103E8000BF900C945A250E943E25C701B601269684 +:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B +:103EA0000F91FF90EF90DF90CF90BF900C94222560 +:103EB000002319F08B2D817001C08695882309F4A9 +:103EC000D7C1812F829586958770880F880F912F93 +:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3 +:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039 +:103EF00050E060E070E004C0440F551F661F771F5C +:103F00008A95D2F7CB01BA0160957095809590950E +:103F100003C060E070E0CB012B2D26952695237021 +:103F2000422F50E042305105D9F04330510569F13C +:103F30006C297D298E299F294130510551F1269602 +:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA +:103F50000F91FF90EF90DF90CF90BF900C941826B8 +:103F60006C297D298E299F2926960FB6F894DEBFED +:103F70000FBECDBFDF91CF911F910F91FF90EF90BA +:103F8000DF90CF90BF900C9434260E941826C70172 +:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7 +:103FA000CF911F910F91FF90EF90DF90CF90BF9036 +:103FB0000C94FC25103F49F118F4103E48F491C0D0 +:103FC000123F09F453C0E8F1133F09F464C089C0FB +:103FD0001F708B2D8F71002321F00E949525812F5A +:103FE0007CCE0E94B625812F26960FB6F894DEBFB0 +:103FF0000FBECDBFDF91CF911F910F91FF90EF903A +:10400000DF90CF90BF900C949D1D0023B1F0253020 +:1040100008F02EC18B2D8F7126960FB6F894DEBF57 +:104020000FBECDBFDF91CF911F910F91FF90EF9009 +:10403000DF90CF90BF900C94DB25263008F018C19C +:10404000E9CF0023A9F08B2D8F7126960FB6F89437 +:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB +:10406000EF90DF90CF90BF900C949525002359F3EB +:104070008B2D8F7126960FB6F894DEBF0FBECDBF85 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94B625002399F08B2D8F71269636 :1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1040B0000F91FF90EF90DF90CF90BF900C9465250B -:1040C0000023A9F0222309F4ADCF812F26960FB645 -:1040D000F894DEBF0FBECDBFDF91CF911F910F913E -:1040E000FF90EF90DF90CF90BF900C946E1C222336 -:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 -:10410000CDBFDF91CF911F910F91FF90EF90DF9086 -:10411000CF90BF900C94361D4B2D4F70612FC7016F -:104120000E948D0526960FB6F894DEBF0FBECDBF58 -:10413000DF91CF911F910F91FF90EF90DF90CF9083 -:10414000BF900C948924011182C09B2D9F70492F30 -:1041500050E04230510509F443C0C4F44115510503 -:1041600071F14130510509F072C026960FB6F894EE -:10417000DEBF0FBECDBFDF91CF911F910F91FF909A -:10418000EF90DF90CF90BF900C946D2D4330510590 -:10419000C1F14430510509F05AC0812F26960FB65F -:1041A000F894DEBF0FBECDBFDF91CF911F910F916D -:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1040B0000F91FF90EF90DF90CF90BF900C948025F0 +:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D +:1040D0001F910F91FF90EF90DF90CF90BF900C94C5 +:1040E00076250023A9F0222309F4ADCF812F26964F +:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9 +:104100000F91FF90EF90DF90CF90BF900C947F1CA9 +:10411000222309F4ADCF812F26960FB6F894DEBF87 +:104120000FBECDBFDF91CF911F910F91FF90EF9008 +:10413000DF90CF90BF900C94471D4B2D4F70612F97 +:10414000C7010E94690526960FB6F894DEBF0FBE20 +:10415000CDBFDF91CF911F910F91FF90EF90DF9036 +:10416000CF90BF900C949A24011182C09B2D9F7018 +:10417000492F50E04230510509F443C0C4F44115C1 +:10418000510571F14130510509F072C026960FB604 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C947E2D433026 +:1041B0005105C1F14430510509F05AC0812F2696AE :1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 -:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041D0000F91FF90EF90DF90CF90BF900C94D02D77 :1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC :1041F0001F910F91FF90EF90DF90CF90BF900C94A4 -:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10420000672D26960FB6F894DEBF0FBECDBFDF91A7 :10421000CF911F910F91FF90EF90DF90CF90BF90C3 -:104220000C949C2D4B2D4F70612FC70126960FB615 -:10423000F894DEBF0FBECDBFDF91CF911F910F91DC -:10424000FF90EF90DF90CF90BF900C949D07269643 +:104220000C949A2D26960FB6F894DEBF0FBECDBF24 +:10423000DF91CF911F910F91FF90EF90DF90CF9082 +:10424000BF900C94AD2D4B2D4F70612FC70126965A :104250000FB6F894DEBF0FBECDBFDF91CF911F9197 -:104260000F91FF90EF90DF90CF90BF9008950E9444 -:1042700031270E9441270E9406270E945B270E9447 -:104280001C2B0E946B2A80E090E00E94501B80E073 -:1042900090E00C94661B0E9421270C9437210E9409 -:1042A0007F26292F22952F7030E02C3031054CF4D9 -:1042B0002A3031056CF4225031092230310588F45E -:1042C00007C02C30310549F02F30310531F009C0DD -:1042D000803E48F0803F29F406C093FB882780F990 -:1042E000089580E0089581E00895CF93DF9300D092 -:1042F00000D01F92CDB7DEB70F900F900F900F90A8 -:104300000F90DF91CF910895CF93DF9300D000D02D -:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D -:10432000CDBFDF91CF9108951F93CF93DF93C091BD -:10433000990316E080919A03C81799F0D0E01C9F6A -:10434000F0011D9FF00D1124E556FC4F4081518175 -:1043500062817381848195810E9484212196C77036 -:10436000E9CFDF91CF911F9108954091CB035091F8 -:10437000CC036091CD037091CE038091CF039091D7 -:10438000D0030C9484218091D00382958F7009F022 -:1043900054C08091CD03882309F44FC080919903C4 -:1043A000A0919A036091CB037091CC034091CE030E -:1043B0005091CF03B6E08A1709F43FC090E0411551 -:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A -:1043D000B99FF00D1124E556FC4F218172132AC0BC -:1043E0002081621327C02281211124C023813481BE -:1043F0002417350710F421503109241B350B283CB4 -:104400003105C0F42091D0032F7020612093D00398 -:1044100026E0289FF001299FF00D1124E056FC4F63 -:1044200080818F70806180838BEC93E00E94931D6C -:104430000C94942101968770BECF0895CF92DF929D -:10444000EF92FF920F931F93CF93DF93CDB7DEB719 -:1044500062970FB6F894DEBF0FBECDBF8C0185E02A -:10446000F801DE011D9601900D928A95E1F7D801C1 -:104470004C9111965C91119712966C91129713962C -:10448000CD90DC9014973091CB037091CC03809148 -:10449000CE039091CF03009709F46BC17F3F19F4CD -:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F -:1044B0002091D003C816D90628F0F601E81BF90BA5 -:1044C000CF0104C0809590958C0D9D1DFF24F39421 -:1044D000883C910578F0F12C207F09F0C6C07C2D36 -:1044E000D98AC88A89890E9475218BEC93E00E9441 -:1044F000931DB1C0822F807F09F046C0751314C090 -:10450000341312C0611110C02F7020612093D003AA -:104510000E94B5218BEC93E00E94931D8091D00303 -:10452000D80115968C932EC0CD2819F15F3F11F458 -:104530004F3FF9F0F62E61111CC080919903209134 -:104540009A0336E0821709F45AC090E0389FF001D0 -:10455000399FF00D1124E556FC4F7181571306C0A9 -:104560007081471303C07281711103C00196877077 -:10457000E9CFF62E662309F418C18091D00381603B -:104580008093D003F12C11C1751308C0341306C0F9 -:10459000611104C08091D003D801C3C04D875E87EC -:1045A0008D859E856A8B0E944F216A898823E1F15F -:1045B0006623D1F12091D003822F82958F7090E0F5 -:1045C000029774F08091CB039091CC0398878F83EE -:1045D0001986DB86CA862C87CE0107960E94931D1A -:1045E00086E0F801ABECB3E001900D928A95E1F71B -:1045F0000E94C3210E94B521FF24F394D6C04D87A9 -:104600005E878D859E850E947F26292F22952F709B -:1046100030E0223031050CF0BCC09F7009F0B6C00C -:10462000805E883008F4C1C0C8010E94931DE4CFA9 -:10463000C816D90608F453C0F601E81BF90BCF01E0 -:10464000883C910508F450C0F12C7C2DD98AC88A89 -:1046500089890E947521EBECF3E086E0DF011D9271 -:104660008A95E9F70E94B521A0C0751314C03413D0 -:1046700012C0611110C08091D003F8018583C80178 -:104680000E94931D86E0EBECF3E0DF011D928A951A -:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 -:1046A0000E944F216A89882309F4BECF662309F44A -:1046B000BBCF2091D003822F82958F7090E002971C -:1046C0000CF48ECF8091CB039091CC039A83898395 -:1046D0001B82DD82CC822E83CE0101967FCF809516 -:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 -:1046F00075132EC034132CC02091D00320FD1FC091 -:10470000822F82958F70D9F0D80115962C9315972A -:104710008F3049F08F5F982F9295907F822F8F7006 -:10472000892B15968C93C8010E94931D86E0F80191 -:10473000ABECB3E001900D928A95E1F793CF86E060 -:10474000F801ABECB3E001900D928A95E1F72DC032 -:104750004D875E878D859E850E944F21811140CFB8 -:104760008091D00381608093D003C8010E94931D83 -:104770001CC0662309F458CF4D875E878D859E85C2 -:104780000E944F21882309F44FCF2ACF811148CFAF -:104790000CC0243031050CF047CF9F7009F440CF96 -:1047A000F8019581907F09F03BCF8F2D62960FB66F -:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 -:1047C000FF90EF90DF90CF9008951F93CF93DF93EA -:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 -:1047E0004F83588769877A878B879C87CE01079686 -:1047F0000E941E22882369F08F8198852A853B8537 -:10480000232BF1F19F3F09F063C08F3F09F060C097 -:1048100037C086E0FE013796DE01119601900D92B9 -:104820008A95E1F76F817885EA85FB85309741F1BC -:104830007F3F11F46F3F21F120919A0330E0C901CD -:104840000196877099274091990350E08417950746 -:1048500009F447C069837A83FD83EC8396E0929FD5 -:10486000D001939FB00D1124A556BC4FFE01319687 -:1048700001900D929A95E1F780939A030E949421FA -:1048800016E08091990390919A038917C1F1189FBE -:10489000C001112485569C4F0E941E22882379F165 -:1048A000E09199031E9FF0011124E556FC4F4081D1 -:1048B000518162817381848195810E9484218091DC -:1048C000990390E001968770992780939903D9CF37 -:1048D0004F81588569857A858B859C850E948421C6 -:1048E000CFCF0E944B2110929A0310929903EBECC8 -:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F -:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 -:104910000895EF92FF920F931F93CF93DF938C0133 -:10492000009709F46CC0F12CEE24E394E801219681 -:10493000F8018491843740F4843008F051C081300C -:1049400081F0823019F15BC0853709F444C0A8F1C9 -:104950009CE7980F903708F052C08F770E94361D61 -:1049600041C00E5F1F4FFE01C49180E28C0F883062 -:1049700048F4C7708E2D01C0880FCA95EAF70E94CF -:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 -:10499000FE01C49180E28C0F883058F4C7708E2DD0 -:1049A00001C0880FCA95EAF70E943A270E945B2748 -:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD -:1049C000C491CC2381F08FE99FE00197F1F700C0FB -:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 -:1049E0000E946E1C8E018F2D882309F49FCFEFE962 -:1049F000FFE03197F1F700C000008150F5CFDF9163 -:104A0000CF911F910F91FF90EF90089508956093BB -:104A1000D5037093D6038093D7039093D8030C9457 -:104A200037210F931F930091D5031091D603209146 -:104A3000D7033091D803DC01CB01802B912BA22B23 -:104A4000B32B8093D5039093D603A093D703B09351 -:104A5000D8031F910F910C9437210F931F9300914E -:104A6000D5031091D6032091D7033091D803DC01F0 -:104A7000CB0180239123A223B3238093D50390936A -:104A8000D603A093D703B093D8031F910F910C9432 -:104A900037210F931F930091D5031091D6032091D6 -:104AA000D7033091D803DC01CB0180279127A227BF -:104AB000B3278093D5039093D603A093D703B093E5 -:104AC000D8031F910F910C9437211092D1031092AB -:104AD000D2031092D3031092D4030C94372141E0F7 -:104AE00050E060E070E004C0440F551F661F771F60 -:104AF0008A95D2F74093D1035093D2036093D303A6 -:104B00007093D4030C94372141E050E060E070E0F2 -:104B100004C0440F551F661F771F8A95D2F78091F6 -:104B2000D1039091D203A091D303B091D403482B29 -:104B3000592B6A2B7B2B4093D1035093D203609364 -:104B4000D3037093D4030C94372141E050E060E02C -:104B500070E004C0440F551F661F771F8A95D2F777 -:104B600040955095609570958091D1039091D203B6 -:104B7000A091D303B091D403482359236A237B2304 -:104B80004093D1035093D2036093D3037093D40323 -:104B90000C94372141E050E060E070E004C0440F25 -:104BA000551F661F771F8A95D2F78091D103909188 -:104BB000D203A091D303B091D403482759276A2781 -:104BC0007B274093D1035093D2036093D303709318 -:104BD000D4030C9437210F931F930091D1031091AC -:104BE000D2032091D3033091D403DC01CB01802B7D -:104BF000912BA22BB32B8093D1039093D203A0933C -:104C0000D303B093D4031F910F910C9437210F93CA -:104C10001F930091D1031091D2032091D3033091BF -:104C2000D403DC01CB0180239123A223B3238093FF -:104C3000D1039093D203A093D303B093D4031F91D5 -:104C40000F910C9437210F931F930091D103109172 -:104C5000D2032091D3033091D403DC01CB01802710 -:104C60009127A227B3278093D1039093D203A093D7 -:104C7000D303B093D4031F910F910C94372108955F -:104C8000CF92DF92EF92FF920F931F93CF93DF9318 -:104C90008C01C090D503D090D603E090D703F0905C -:104CA000D8038091D1039091D203A091D303B09106 -:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 -:104CC000C6010C2E04C0B695A795979587950A94B2 -:104CD000D2F780FF06C0B8018C2F0E94F709019718 -:104CE00021F4219760F780E001C08C2FDF91CF91F4 -:104CF0001F910F91FF90EF90DF90CF900895CF9389 -:104D0000DF93EC010E944026BE010E94F709DF916B -:104D1000CF910895CB010E947F260895909186023D -:104D2000992321F090918702911109C02091880266 -:104D300030918902F90132969FEF40E01FC0982F11 -:104D40009695969596959F3050F5E0918802F09152 -:104D50008902E90FF11D877021E030E0A90102C04E -:104D6000440F551F8A95E2F7CA019181892B8183EF -:104D700008959F3F39F04F5F4E3041F051915813E5 -:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 -:104D9000F901E90FF11D97FDFA95828308950895B1 -:104DA00090918602992321F090918702911109C078 -:104DB0002091880230918902F9013296205F3F4F9D -:104DC0001FC0982F9695969596959F30F0F4E09198 -:104DD0008802F0918902E90FF11D877021E030E02F -:104DE000A90102C0440F551F8A95E2F7CA018095B8 -:104DF00091818923818308953196E217F30729F081 -:104E000090819813F9CF1082F7CF089581E090E058 -:104E1000E0918802F0918902E80FF91F1082019653 -:104E200080319105A9F708959091EC03892B809327 -:104E3000EC03089580959091EC0389238093EC0313 -:104E400008951092EC0308959091EB03892B8093C1 -:104E5000EB03089580959091EB0389238093EB03F6 -:104E600008951092EB0308959091EA03892B8093A3 -:104E7000EA03089580959091EA0389238093EA03D9 -:104E800008951092EA0308958093D903089510922B -:104E9000D90308958091880290918902FC0131968E -:104EA0009C01205F3F4F80E0919191118F5FE2174D -:104EB000F307D1F70895E0918802F091890280917B -:104EC000EC038083E0918802F091890290818091C7 -:104ED000EB03892B8083E0918802F0918902908115 -:104EE0008091EA03892B80838091D903882361F024 -:104EF000E0918802F09189029081892B80830E9441 -:104F00004A2781111092D9038091880290918902D9 -:104F10000C943A1B80910E04843039F11092EE0308 -:104F200020E488E190E00FB6F894A89580936000A3 -:104F30000FBE2093600080E00E94540580E00E9434 -:104F4000D20A83B7817F846083BF83B7816083BFC8 -:104F50007894889583B78E7F83BF88E10FB6F894E5 -:104F600080936000109260000FBE08950895089528 -:104F7000CF9380E00E9454050E94B6270E94890CBE -:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 -:104F9000CF5FC430C1F780E001C081E0CF910895B8 -:104FA0000E944B2180E00E9454050E94452D0E94E2 -:104FB0002E1B0C94D20A1F920F920FB60F9211243F -:104FC0008F939F93AF93BF938091EE03811113C092 -:104FD0008091EF039091F003A091F103B091F2035F -:104FE0004196A11DB11D8093EF039093F003A09310 -:104FF000F103B093F203BF91AF919F918F910F9006 -:105000000FBE0F901F90189582E084BD93E095BD70 -:105010009AEF97BD80936E0008952FB7F894809112 -:10502000EF039091F003A091F103B091F2032FBF31 -:105030000895CF92DF92EF92FF920F931F932FB7B5 -:10504000F8944091EF035091F0036091F103709157 -:10505000F2032FBF6A017B01EE24FF248C0120E0C4 -:1050600030E0C016D106E206F30610F441505109B3 -:105070009A01281B390BC9011F910F91FF90EF90E6 -:10508000DF90CF9008951F920F920FB60F921124C8 -:105090008F939F93AF93BF938091EF039091F00311 -:1050A000A091F103B091F2030196A11DB11D80936F -:1050B000EF039093F003A093F103B093F203BF9139 -:1050C000AF919F918F910F900FBE0F901F901895E9 -:1050D0000E942B18F8942FEF87EA91E62150804028 -:1050E0009040E1F700C0000087E090EBDC01809386 -:1050F000190490931A04A0931B04B0931C049CE021 -:1051000088E10FB6F894A895809360000FBE909345 -:105110006000FFCF0E94C928811102C00E94A5280B -:105120000E94D4288093ED030E94E1288093170405 -:1051300087FB882780F9809387020E94D828682FF0 -:1051400070E080E090E00C9407256DEE7EEF80E04B -:1051500090E00E94AA3160E082E090E00E949831E5 -:1051600060E083E090E00E94983160E084E090E0AD -:105170000E94983160E085E090E00E94983160E004 -:1051800086E090E00E9498316FEF87E090E00C9409 -:10519000983180E090E00E94923121E08D3E9E4F58 -:1051A00009F020E0822F089582E090E00C948A318B -:1051B00083E090E00C948A31682F83E090E00C94B7 -:1051C000983184E090E00C948A31682F84E090E07C -:1051D0000C94983186E090E00C948A31682F86E038 -:1051E00090E00C94983187E090E00C948A31682F1D -:1051F00087E090E00C9498318091F50380FF0BC01C -:1052000060918D0285E0689FB001112475956795C6 -:10521000759567952BC081FF09C060918D0285E06F -:10522000689FB00111247595679520C082FF07C063 -:1052300060918D0285E0689FB001112417C09091A4 -:10524000F6039923D1F060918C02961788F720918C -:105250008D0285E0289F90011124929FA001939FC9 -:10526000500D112470E0CA010E9470316038710540 -:1052700040F46115710539F002C065E070E0862FD9 -:1052800008958FE7089581E008958091F50380FFE8 -:1052900008C060918B0270E075956795759567956C -:1052A00021C081FF06C060918B0270E07595679503 -:1052B00019C082FF04C060918B0270E010C0909111 -:1052C000F6039923C1F060918A029617A0F78091A6 -:1052D0008B02899FC001112470E00E9470316038F8 -:1052E000710528F46115710521F0862F08958FE767 -:1052F000089581E0089561E070E0F4CF803F21F4EB -:105300000E94FC28819504C0813F29F40E94FC285A -:105310008093F9030895823F21F40E94FC2881952F -:1053200004C0833F29F40E94FC288093F803089569 -:10533000893F19F40E94452905C08A3F31F40E9433 -:10534000452981958093FA0308958B3F21F40E94AB -:105350004529819504C08C3F29F40E9445298093FA -:10536000FB030895843F21F48091F703816017C007 -:10537000853F21F48091F703826011C0863F21F4BC -:105380008091F70384600BC0873F21F48091F7037D -:10539000886005C0883F31F48091F7038061809375 -:1053A000F70308958D3F21F48091F50381600BC0D0 -:1053B0008E3F21F48091F503826005C08F3F29F470 -:1053C0008091F50384608093F5030895803F39F45C -:1053D0008091F90387FF6CC01092F90369C0813F87 -:1053E00029F48091F9031816BCF362C09091F80378 -:1053F000823F29F497FF5CC01092F80359C0833FA5 -:1054000019F41916CCF354C0893F41F48091FA0382 -:1054100018160CF04DC01092FA034AC08A3F29F4C6 -:105420008091FA0387FF44C0F6CF8B3F39F4809117 -:10543000FB0387FF3DC01092FB033AC08C3F29F469 -:105440008091FB031816BCF333C0843F21F4809194 -:10545000F7038E7F17C0853F21F48091F7038D7F7E -:1054600011C0863F21F48091F7038B7F0BC0873FEB -:1054700021F48091F703877F05C0883F31F4809144 -:10548000F7038F7E8093F70313C08D3F21F4809143 -:10549000F5038E7F0BC08E3F21F48091F5038D7F45 -:1054A00005C08F3F29F48091F5038B7F8093F5032E -:1054B0008091F80381110EC08091F90381110AC017 -:1054C0008091FA03811106C08091FB03811102C013 -:1054D0001092F603089587EF93E00E94451B0E9407 -:1054E0000D289093F4038093F30308951F93CF93B3 -:1054F000DF938091F3039091F4030E941928AC018B -:105500009091F603992321F020918E0230E006C09D -:1055100020918F028AE0289F90011124421753079F -:1055200008F486C08091F803C091F903D091FA0382 -:105530001091FB03811107C0C11176C0D11174C055 -:10554000111172C075C09F3F19F09F5F9093F603D1 -:10555000181624F40E94FC288093F8038091F80325 -:1055600087FF05C00E94FC2881958093F8031C16D4 -:1055700024F40E94FC288093F9038091F90387FFAB -:1055800005C00E94FC2881958093F9036091F8037F -:10559000662339F1C091F903CC2319F1772767FD10 -:1055A0007095872F972F0E94E02E23E333E343E388 -:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E -:1055C000772767FD7095872F972F0E94E02E23E3A2 -:1055D00033E343E35FE30E94942F0E94AD2E609378 -:1055E000F9031D1624F40E9445298093FA03809143 -:1055F000FA0387FF05C00E94452981958093FA032D -:10560000111624F40E9445298093FB038091FB032B -:1056100087FF05C00E94452981958093FB03DF9198 -:10562000CF911F910C946B2A9F3F09F08ECF96CF9C -:10563000DF91CF911F910895E7EFF3E085E0DF015F -:105640001D928A95E9F71092F6031092F5030895DA -:10565000833081F128F4813059F08230D1F00895FF -:10566000853009F449C0B8F1863009F456C0089570 -:1056700080918F02262F30E0280F311D2F3F3105FA -:1056800024F4680F60938F0208958FEF80938F0248 -:10569000089580918E02262F30E0280F311D2F3F74 -:1056A000310524F4680F60938E0208958FEF809384 -:1056B0008E02089580918D02262F30E0280F311D33 -:1056C0002F3F310524F4680F60938D0208958FEF0A -:1056D00080938D02089580918C02262F30E0280F50 -:1056E000311D2F3F310524F4680F60938C0208951B -:1056F0008FEF80938C02089580918B02262F30E0EB -:10570000280F311D2F3F310524F4680F60938B0261 -:1057100008958FEF80938B02089580918A02262F3F +:104260000F91FF90EF90DF90CF90BF900C94790763 +:1042700026960FB6F894DEBF0FBECDBFDF91CF916B +:104280001F910F91FF90EF90DF90CF90BF90089516 +:104290000E9442270E9452270E9417270E946C27E3 +:1042A0000E942D2B0E947C2A80E090E00E94611BDE +:1042B00080E090E00C94771B0E9432270C944821F8 +:1042C0000E949026292F22952F7030E02C30310546 +:1042D0004CF42A3031056CF422503109223031057A +:1042E00088F407C02C30310549F02F30310531F00A +:1042F00009C0803E48F0803F29F406C093FB882720 +:1043000080F9089580E0089581E00895CF93DF93C8 +:1043100000D000D01F92CDB7DEB70F900F900F9056 +:104320000F900F90DF91CF910895CF93DF9300D03E +:1043300000D000D0CDB7DEB726960FB6F894DEBF1A +:104340000FBECDBFDF91CF9108951F93CF93DF9321 +:10435000C091E90316E08091EA03C81799F0D0E014 +:104360001C9FF0011D9FF00D1124E551FC4F408171 +:10437000518162817381848195810E94952121966A +:10438000C770E9CFDF91CF911F91089540911B0431 +:1043900050911C0460911D0470911E0480911F04B3 +:1043A000909120040C9495218091200482958F7027 +:1043B00009F054C080911D04882309F44FC08091F6 +:1043C000E903A091EA0360911B0470911C044091E1 +:1043D0001E0450911F04B6E08A1709F43FC090E014 +:1043E00041155105C1F17F3F11F46F3FA1F1B89F15 +:1043F000F001B99FF00D1124E551FC4F218172139A +:104400002AC02081621327C02281211124C0238168 +:1044100034812417350710F421503109241B350B42 +:10442000283C3105C0F4209120042F702061209396 +:10443000200426E0289FF001299FF00D1124E0516F +:10444000FC4F80818F70806180838BE194E00E94BB +:10445000A41D0C94A52101968770BECF0895CF921C +:10446000DF92EF92FF920F931F93CF93DF93CDB71D +:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA +:1044800085E0F801DE011D9601900D928A95E1F715 +:10449000D8014C9111965C91119712966C911297DC +:1044A0001396CD90DC90149730911B0470911C04EE +:1044B00080911E0490911F04009709F46BC17F3F07 +:1044C00019F43F3F09F466C1E0901D04EE2009F4A1 +:1044D000C0C020912004C816D90628F0F601E81BB8 +:1044E000F90BCF0104C0809590958C0D9D1DFF2484 +:1044F000F394883C910578F0F12C207F09F0C6C038 +:104500007C2DD98AC88A89890E9486218BE194E012 +:104510000E94A41DB1C0822F807F09F046C0751390 +:1045200014C0341312C0611110C02F702061209389 +:1045300020040E94C6218BE194E00E94A41D80917A +:104540002004D80115968C932EC0CD2819F15F3F19 +:1045500011F44F3FF9F0F62E61111CC08091E90370 +:104560002091EA0336E0821709F45AC090E0389FA0 +:10457000F001399FF00D1124E551FC4F7181571363 +:1045800006C07081471303C07281711103C0019688 +:104590008770E9CFF62E662309F418C180912004B4 +:1045A000816080932004F12C11C1751308C034136D +:1045B00006C0611104C080912004D801C3C04D879A +:1045C0005E878D859E856A8B0E9460216A8988231B +:1045D000E1F16623D1F120912004822F82958F7022 +:1045E00090E0029774F080911B0490911C049887CE +:1045F0008F831986DB86CA862C87CE0107960E9498 +:10460000A41D86E0F801ABE1B4E001900D928A951B +:10461000E1F70E94D4210E94C621FF24F394D6C062 +:104620004D875E878D859E850E949026292F229535 +:104630002F7030E0223031050CF0BCC09F7009F0C3 +:10464000B6C0805E883008F4C1C0C8010E94A41DB5 +:10465000E4CFC816D90608F453C0F601E81BF90BDD +:10466000CF01883C910508F450C0F12C7C2DD98AEB +:10467000C88A89890E948621EBE1F4E086E0DF01A7 +:104680001D928A95E9F70E94C621A0C0751314C037 +:10469000341312C0611110C080912004F801858389 +:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249 +:1046B0008A95E9F7FE2C8AC04D875E878D859E8599 +:1046C0006A8B0E9460216A89882309F4BECF662321 +:1046D00009F4BBCF20912004822F82958F7090E047 +:1046E00002970CF48ECF80911B0490911C049A8346 +:1046F00089831B82DD82CC822E83CE0101967FCFFF +:10470000809590958C0D9D1DACCFF62E662309F4F7 +:104710009CCF75132EC034132CC02091200420FD93 +:104720001FC0822F82958F70D9F0D80115962C93D7 +:1047300015978F3049F08F5F982F9295907F822F39 +:104740008F70892B15968C93C8010E94A41D86E05A +:10475000F801ABE1B4E001900D928A95E1F793CFB7 +:1047600086E0F801ABE1B4E001900D928A95E1F7A3 +:104770002DC04D875E878D859E850E9460218111A9 +:1047800040CF80912004816080932004C8010E9462 +:10479000A41D1CC0662309F458CF4D875E878D8504 +:1047A0009E850E946021882309F44FCF2ACF811172 +:1047B00048CF0CC0243031050CF047CF9F7009F46E +:1047C00040CFF8019581907F09F03BCF8F2D629605 +:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112 +:1047E0000F91FF90EF90DF90CF9008951F93CF939C +:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0 +:10480000CDBF4F83588769877A878B879C87CE0176 +:1048100007960E942F22882369F08F8198852A8528 +:104820003B85232BF1F19F3F09F063C08F3F09F0D7 +:1048300060C037C086E0FE013796DE011196019018 +:104840000D928A95E1F76F817885EA85FB8530972F +:1048500041F17F3F11F46F3F21F12091EA0330E0F5 +:10486000C9010196877099274091E90350E08417A8 +:10487000950709F447C069837A83FD83EC8396E04A +:10488000929FD001939FB00D1124A551BC4FFE0102 +:10489000319601900D929A95E1F78093EA030E9478 +:1048A000A52116E08091E9039091EA038917C1F1EF +:1048B000189FC001112485519C4F0E942F228823EC +:1048C00079F1E091E9031E9FF0011124E551FC4FBD +:1048D0004081518162817381848195810E949521FB +:1048E0008091E90390E00196877099278093E9030E +:1048F000D9CF4F81588569857A858B859C850E94A3 +:104900009521CFCF0E945C211092EA031092E90317 +:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73 +:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE +:104930001F910895EF92FF920F931F93CF93DF93F0 +:104940008C01009709F46CC0F12CEE24E394E8018B +:104950002196F8018491843740F4843008F051C0E6 +:10496000813081F0823019F15BC0853709F444C091 +:10497000A8F19CE7980F903708F052C08F770E94FB +:10498000471D41C00E5F1F4FFE01C49180E28C0F96 +:10499000883048F4C7708E2D01C0880FCA95EAF799 +:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3 +:1049B0001F4FFE01C49180E28C0F883058F4C770FD +:1049C0008E2D01C0880FCA95EAF70E944B270E94DE +:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8 +:1049E000FE01C491CC2381F08FE99FE00197F1F79C +:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3 +:104A000003C00E947F1C8E018F2D882309F49FCF45 +:104A1000EFE9FFE03197F1F700C000008150F5CFDA +:104A2000DF91CF911F910F91FF90EF90089508951E +:104A300060932504709326048093270490932804A0 +:104A40000C9448210F931F93009125041091260484 +:104A50002091270430912804DC01CB01802B912B7D +:104A6000A22BB32B8093250490932604A0932704B4 +:104A7000B09328041F910F910C9448210F931F931A +:104A800000912504109126042091270430912804D8 +:104A9000DC01CB0180239123A223B323809325043F +:104AA00090932604A0932704B09328041F910F919C +:104AB0000C9448210F931F93009125041091260414 +:104AC0002091270430912804DC01CB018027912715 +:104AD000A227B3278093250490932604A09327044C +:104AE000B09328041F910F910C9448211092210437 +:104AF0001092220410922304109224040C94482152 +:104B000041E050E060E070E004C0440F551F661FB4 +:104B1000771F8A95D2F74093210450932204609323 +:104B20002304709324040C94482141E050E060E099 +:104B300070E004C0440F551F661F771F8A95D2F797 +:104B40008091210490912204A0912304B091240427 +:104B5000482B592B6A2B7B2B409321045093220422 +:104B600060932304709324040C94482141E050E0A6 +:104B700060E070E004C0440F551F661F771F8A95E0 +:104B8000D2F7409550956095709580912104909151 +:104B90002204A0912304B0912404482359236A23BA +:104BA0007B23409321045093220460932304709349 +:104BB00024040C94482141E050E060E070E004C01F +:104BC000440F551F661F771F8A95D2F780912104E5 +:104BD00090912204A0912304B091240448275927DE +:104BE0006A277B2740932104509322046093230477 +:104BF000709324040C9448210F931F930091210477 +:104C0000109122042091230430912404DC01CB0173 +:104C1000802B912BA22BB32B809321049093220401 +:104C2000A0932304B09324041F910F910C94482166 +:104C30000F931F93009121041091220420912304CB +:104C400030912404DC01CB0180239123A223B323E0 +:104C50008093210490932204A0932304B09324040E +:104C60001F910F910C9448210F931F9300912104E1 +:104C7000109122042091230430912404DC01CB0103 +:104C800080279127A227B3278093210490932204A1 +:104C9000A0932304B09324041F910F910C944821F6 +:104CA0000895CF92DF92EF92FF920F931F93CF93CD +:104CB000DF938C01C0902504D0902604E090270457 +:104CC000F09028048091210490912204A091230463 +:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD +:104CE000D701C6010C2E04C0B695A7959795879558 +:104CF0000A94D2F780FF06C0B8018C2F0E94D30916 +:104D0000019721F4219760F780E001C08C2FDF919B +:104D1000CF911F910F91FF90EF90DF90CF9008956A +:104D2000CF93DF93EC010E945126BE010E94D3096C +:104D3000DF91CF910895CB010E9490260895909124 +:104D40008402992321F090918502911109C020914C +:104D5000860230918702F90132969FEF40E01FC032 +:104D6000982F9695969596959F3050F5E0918602EE +:104D7000F0918702E90FF11D877021E030E0A90171 +:104D800002C0440F551F8A95E2F7CA019181892B11 +:104D9000818308959F3F39F04F5F4E3041F051912C +:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77 +:104DB00039F0F901E90FF11D97FDFA958283089505 +:104DC000089590918402992321F090918502911188 +:104DD00009C02091860230918702F9013296205F46 +:104DE0003F4F1FC0982F9695969596959F30F0F45B +:104DF000E0918602F0918702E90FF11D877021E0B2 +:104E000030E0A90102C0440F551F8A95E2F7CA019C +:104E1000809591818923818308953196E217F30764 +:104E200029F090819813F9CF1082F7CF089581E08F +:104E300090E0E0918602F0918702E80FF91F10825E +:104E4000019680319105A9F7089590913C04892B32 +:104E500080933C040895809590913C04892380932D +:104E60003C04089510923C04089590913B04892BD2 +:104E700080933B040895809590913B04892380930F +:104E80003B04089510923B04089590913A04892BB5 +:104E900080933A040895809590913A0489238093F1 +:104EA0003A04089510923A040895809329040895CD +:104EB0001092290408958091860290918702FC0146 +:104EC00031969C01205F3F4F80E0919191118F5F5F +:104ED000E217F307D1F70895E0918602F091870277 +:104EE00080913C048083E0918602F091870290815A +:104EF00080913B04892B8083E0918602F0918702A8 +:104F0000908180913A04892B8083809129048823A1 +:104F100061F0E0918602F09187029081892B808375 +:104F20000E945B2781111092290480918602909142 +:104F300087020C944B1B80915E04843039F11092EF +:104F40003E0420E488E190E00FB6F894A8958093A1 +:104F500060000FBE2093600080E00E94300580E07A +:104F60000E94AE0A83B7817F846083BF83B781606C +:104F700083BF7894889583B78E7F83BF88E10FB60F +:104F8000F89480936000109260000FBE0895089519 +:104F90000895CF9380E00E9430050E94C7270E94A9 +:104FA000650C0E94C827C0E08C2F0E94AE0D892B93 +:104FB00029F4CF5FC430C1F780E001C081E0CF9118 +:104FC00008950E945C2180E00E9430050E94562DC9 +:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5 +:104FE00011248F939F93AF93BF9380913E048111BF +:104FF00013C080913F0490914004A0914104B0916E +:1050000042044196A11DB11D80933F04909340043A +:10501000A0934104B0934204BF91AF919F918F91AF +:105020000F900FBE0F901F90189582E084BD93E003 +:1050300095BD9AEF97BD80936E0008952FB7F894B1 +:1050400080913F0490914004A0914104B0914204AA +:105050002FBF0895CF92DF92EF92FF920F931F938D +:105060002FB7F89440913F0450914004609141045F +:10507000709142042FBF6A017B01EE24FF248C0152 +:1050800020E030E0C016D106E206F30610F44150ED +:1050900051099A01281B390BC9011F910F91FF90EB +:1050A000EF90DF90CF9008951F920F920FB60F925E +:1050B00011248F939F93AF93BF9380913F0490915E +:1050C0004004A0914104B09142040196A11DB11D7C +:1050D00080933F0490934004A0934104B093420412 +:1050E000BF91AF919F918F910F900FBE0F901F9026 +:1050F00018950E943C18F8942FEF87EA91E621500A +:1051000080409040E1F700C0000087E090EBDC01B8 +:105110008093690490936A04A0936B04B0936C0429 +:105120009CE088E10FB6F894A895809360000FBECC +:1051300090936000FFCF0E94DA28811102C00E9484 +:10514000B6280E94E52880933D040E94F2288093AF +:10515000670487FB882780F9809385020E94E928ED +:10516000682F70E080E090E00C9418256DEE7EEFE3 +:1051700080E090E00E94093260E082E090E00E94CE +:10518000F73160E083E090E00E94F73160E084E076 +:1051900090E00E94F73160E085E090E00E94F731F6 +:1051A00060E086E090E00E94F7316FEF87E090E0EA +:1051B0000C94F73180E090E00E94F13121E08D3EC7 +:1051C0009E4F09F020E0822F089582E090E00C9439 +:1051D000E93183E090E00C94E931682F83E090E0BE +:1051E0000C94F73184E090E00C94E931682F84E06E +:1051F00090E00C94F73186E090E00C94E931682F50 +:1052000086E090E00C94F73187E090E00C94E9316F +:10521000682F87E090E00C94F7318091450480FF7F +:105220000BC060918B0285E0689FB00111247595D9 +:105230006795759567952BC081FF09C060918B02BA +:1052400085E0689FB00111247595679520C082FFA5 +:1052500007C060918B0285E0689FB001112417C0E0 +:10526000909146049923D1F060918A02961788F7AD +:1052700020918B0285E0289F90011124929FA0012C +:10528000939F500D112470E0CA010E94CF31603805 +:10529000710540F46115710539F002C065E070E0F8 +:1052A000862F08958FE7089581E008958091450441 +:1052B00080FF08C06091890270E0759567957595CB +:1052C000679521C081FF06C06091890270E07595E5 +:1052D000679519C082FF04C06091890270E010C018 +:1052E000909146049923C1F0609188029617A0F727 +:1052F00080918902899FC001112470E00E94CF3102 +:105300006038710528F46115710521F0862F089524 +:105310008FE7089581E0089561E070E0F4CF803F69 +:1053200021F40E940D29819504C0813F29F40E9437 +:105330000D29809349040895823F21F40E940D298C +:10534000819504C0833F29F40E940D29809348046D +:105350000895893F19F40E94562905C08A3F31F407 +:105360000E945629819580934A0408958B3F21F429 +:105370000E945629819504C08C3F29F40E94562929 +:1053800080934B040895843F21F480914704816009 +:1053900017C0853F21F480914704826011C0863F89 +:1053A00021F48091470484600BC0873F21F48091F1 +:1053B0004704886005C0883F31F4809147048061CC +:1053C0008093470408958D3F21F4809145048160C6 +:1053D0000BC08E3F21F480914504826005C08F3F51 +:1053E00029F4809145048460809345040895803FAA +:1053F00039F48091490487FF6CC01092490469C058 +:10540000813F29F4809149041816BCF362C0909141 +:105410004804823F29F497FF5CC01092480459C0A9 +:10542000833F19F41916CCF354C0893F41F480919D +:105430004A0418160CF04DC010924A044AC08A3F24 +:1054400029F480914A0487FF44C0F6CF8B3F39F49A +:1054500080914B0487FF3DC010924B043AC08C3FB3 +:1054600029F480914B041816BCF333C0843F21F417 +:10547000809147048E7F17C0853F21F480914704B7 +:105480008D7F11C0863F21F4809147048B7F0BC034 +:10549000873F21F480914704877F05C0883F31F41E +:1054A000809147048F7E8093470413C08D3F21F481 +:1054B000809145048E7F0BC08E3F21F4809145047E +:1054C0008D7F05C08F3F29F4809145048B7F8093A9 +:1054D00045048091480481110EC0809149048111D6 +:1054E0000AC080914A04811106C080914B04811149 +:1054F00002C010924604089587E494E00E94561B6F +:105500000E941E28909344048093430408951F939F +:10551000CF93DF9380914304909144040E942A2802 +:10552000AC0190914604992321F020918C0230E047 +:1055300006C020918D028AE0289F90011124421715 +:10554000530708F486C080914804C0914904D09163 +:105550004A0410914B04811107C0C11176C0D111CA +:1055600074C0111172C075C09F3F19F09F5F909376 +:105570004604181624F40E940D2980934804809153 +:10558000480487FF05C00E940D2981958093480437 +:105590001C1624F40E940D2980934904809149042B +:1055A00087FF05C00E940D29819580934904609171 +:1055B0004804662339F1C0914904CC2319F17727B7 +:1055C00067FD7095872F972F0E94F12E23E333E319 +:1055D00043E35FE30E9401300E94BE2E60934804C3 +:1055E0006C2F772767FD7095872F972F0E94F12EDC +:1055F00023E333E343E35FE30E9401300E94BE2EC6 +:10560000609349041D1624F40E94562980934A048D +:1056100080914A0487FF05C00E9456298195809396 +:105620004A04111624F40E94562980934B04809159 +:105630004B0487FF05C00E945629819580934B0437 +:10564000DF91CF911F910C947C2A9F3F09F08ECF60 +:1056500096CFDF91CF911F910895E7E4F4E085E0C4 +:10566000DF011D928A95E9F71092460410924504D5 +:105670000895833081F128F4813059F08230D1F0DF +:105680000895853009F449C0B8F1863009F456C050 +:10569000089580918D02262F30E0280F311D2F3F75 +:1056A000310524F4680F60938D0208958FEF809385 +:1056B0008D02089580918C02262F30E0280F311D35 +:1056C0002F3F310524F4680F60938C0208958FEF0B +:1056D00080938C02089580918B02262F30E0280F52 +:1056E000311D2F3F310524F4680F60938B0208951C +:1056F0008FEF80938B02089580918A02262F30E0ED +:10570000280F311D2F3F310524F4680F60938A0262 +:1057100008958FEF80938A02089580918902262F41 :1057200030E0280F311D2F3F310524F4680F6093BE -:105730008A0208958FEF80938A020895833011F1D1 -:1057400028F4813049F0823091F00895853081F15C -:1057500020F18630C1F1089580918F02681720F4FE -:10576000861B80938F02089510928F020895809176 -:105770008E02681720F4861B80938E020895109283 -:105780008E02089580918D02681720F4861B809305 -:105790008D02089510928D02089580918C026817F1 -:1057A00020F4861B80938C02089510928C02089539 -:1057B00080918B02681720F4861B80938B020895DA -:1057C00010928B02089580918A02681720F4861B3C -:1057D00080938A02089510928A0208950F931F936E -:1057E000873208F048C08E3108F094C0803109F447 -:1057F0007EC008F5873009F468C068F4863009F087 -:10580000A4C08091ED03817F8E7F8093ED0381E0C2 -:105810008093FD039BC08B3009F490C08E3009F05B -:1058200094C08091ED0382FB222720F991E092271A -:1058300090FB82F965C0863109F480C060F4813143 -:1058400009F083C00E944B219091870281E0892753 -:105850008093870273C0893109F470C08B3109F0DD -:1058600074C08091ED0381FB222720F991E09227FB -:1058700090FB81F945C0883309F460C050F4893247 -:1058800009F45EC0853309F45BC0873209F458C05F -:105890005CC0833409F454C028F48A3308F455C03A -:1058A000895339C0883409F050C00E944B210E94AE -:1058B00090060FEF13ED20E3015010402040E1F778 -:1058C00000C000000E94682839C09091ED03892F24 -:1058D0008095817080FB90F929F096609860909394 -:1058E000ED0334C0997F977F9093ED0327C080919B -:1058F000ED0383FB222720F991E0922790FB83F9A7 -:105900008093ED039923D1F08091ED038160809322 -:10591000ED0314C08D5141E050E060E070E08A0179 -:105920009B0104C0000F111F221F331F8A95D2F75D -:10593000C901B8010E9407250E944B2181E006C0E1 -:1059400061E070E080E090E0F5CF80E01F910F9182 -:10595000089580E0089580E00895CF93C82F809146 -:10596000FD03813069F018F08230C9F184C0E09104 -:105970008802F09189028081823209F07EC007C0DE -:10598000E0918802F09189028081823261F48C2F4B -:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 -:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 -:1059B000C43179F048F4CB3079F0C03109F061C0DE -:1059C00082E08093FD0308C0C93219F0C83321F08A -:1059D00058C01092FD0355C081E0817054C0C93297 -:1059E00091F120F5C43179F1B0F4C73009F047C026 -:1059F0008EE180938F0282E380938E028AE080930F -:105A00008D0284E180938C0288E080938B0288E28F -:105A100080938A0234C0CE51C63088F5EC2FF0E076 -:105A2000E65FFC4F80818093FC0329C0CE34E9F00F -:105A300020F4CB3421F56AE013C0C13579F0C235CA -:105A4000F1F461E00DC08091FC03882319F01092FD -:105A5000FC0315C081E08093FD0315C061E006C022 -:105A60008091FC030E94282B0AC06AE08091FC030D -:105A70000E949E2B04C01092FD0380E004C081E0D0 -:105A800002C080E0AACFCF9108950E94C928811159 -:105A900002C00E94A5280E94EA288093180480FF73 -:105AA00002C0869501C080E00C94540580911804D2 -:105AB000982F9695292F30E0233031054CF49F5FC5 -:105AC000990F8170892B8160809318040E94EE28C1 -:105AD0008091180486950C94540580911804982F91 -:105AE000969591F09158990F8170892B80931804A5 -:105AF0008E7F91E009F490E08091180490FB80F98A -:105B0000809318040E94EE288091180486950C94C6 -:105B1000540580911804982F909590FB80F98093FC -:105B200018040E94EE288091180480FF02C0869518 -:105B300001C080E00C94540590911804892F86953B -:105B40008F5F8F779170843028F4880F892B809332 -:105B5000180402C090931804809118048E7F91E07D -:105B600009F490E08091180490FB80F98093180468 -:105B70000E94EE288091180486950C94540520917B -:105B80001804922F96958927982F990F822F81704C -:105B9000892B809318048E7F91E009F490E0809126 -:105BA000180490FB80F9809318040E94EE288091DD -:105BB000180486950C9454055058BB27AA270ED07C -:105BC00075C166D130F06BD120F031F49F3F11F4F4 -:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC -:105BE00080F3BA17620773078407950718F071F4FA -:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 -:105C0000B90190010C01CA01A0011124FF27591B01 -:105C100099F0593F50F4503E68F11A16F040A22F07 -:105C2000232F342F4427585FF3CF46953795279578 -:105C3000A795F0405395C9F77EF41F16BA0B620B77 -:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE -:105C5000771F881FC2F70EC0BA0F621F731F841F01 -:105C600048F4879577956795B795F7959E3F08F027 -:105C7000B3CF9395880F08F09927EE0F97958795E6 -:105C80000895D9D008F481E008950CD00FC107D150 -:105C900040F0FED030F021F45F3F19F0F0C0511118 -:105CA00039C1F3C014D198F39923C9F35523B1F343 -:105CB000951B550BBB27AA2762177307840738F07B -:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA -:105CD0000E2E3AF0E0E830D091505040E695001C8E -:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A -:105CF000261737074807AB07B0E809F0BB0B802D24 -:105D0000BF01FF2793585F4F2AF09E3F510568F06F -:105D1000B6C000C15F3FECF3983EDCF38695779503 -:105D20006795B795F7959F5FC9F7880F911D969571 -:105D3000879597F90895E1E0660F771F881FBB1FCD -:105D4000621773078407BA0720F0621B730B840B7A -:105D5000BA0BEE1F88F7E095089504D06894B1114E -:105D6000D9C00895BCD088F09F5790F0B92F9927DB -:105D7000B751A0F0D1F0660F771F881F991F1AF056 -:105D8000BA95C9F712C0B13081F0C3D0B1E008951F -:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 -:105DA000869577956795B395D9F73EF4909580954C -:105DB000709561957F4F8F4F9F4F0895E89409C06C -:105DC00097FB3EF490958095709561957F4F8F4F2E -:105DD0009F4F9923A9F0F92F96E9BB279395F69544 -:105DE000879577956795B795F111F8CFFAF4BB0FC2 -:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 -:105E0000882311F096E911C0772321F09EE8872FAF -:105E1000762F05C0662371F096E8862F70E060E06B -:105E20002AF09A95660F771F881FDAF7880F9695E4 -:105E3000879597F90895990F0008550FAA0BE0E888 -:105E4000FEEF16161706E807F907C0F0121613063C -:105E5000E407F50798F0621B730B840B950B39F47C -:105E60000A2661F0232B242B252B21F408950A26E2 -:105E700009F4A140A6958FEF811D811D089597F922 -:105E80009F6780E870E060E008959FEF80EC0895E0 -:105E900000240A9416161706180609060895002409 -:105EA0000A9412161306140605060895092E039483 -:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 -:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 -:105ED0009058440F551F59F05F3F71F04795880F58 -:105EE00097FB991F61F09F3F79F0879508951216EF -:105EF00013061406551FF2CF4695F1DF08C016169B -:105F000017061806991FF1CF86957105610508944B -:105F10000895E894BB2766277727CB0197F9089562 -:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF -:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E -:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 -:105F5000F001729FBB27F00DB11D639FAA27F00DC2 -:105F6000B11DAA1F649F6627B00DA11D661F829FE9 -:105F70002227B00DA11D621F739FB00DA11D621FCE -:105F8000839FA00D611D221F749F3327A00D611DEB -:105F9000231F849F600D211D822F762F6A2F1124CD -:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 -:105FB000BB1F661F771F881F91505040A9F79E3F57 -:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 -:105FD000869577956795B795F795E7959F5FC1F794 -:105FE000FE2B880F911D9695879597F90895FA01D4 -:105FF000EE0FFF1F30962105310599F161157105EE -:1060000061F48038BFE39B0749F1689490388105BB -:1060100061F08038BFEF9B0741F0992342F5FF3FC5 -:10602000E1053105210511F1E8940894E795D901BE -:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 -:1060400070F4A695E0F7F73950F019F0FF3A38F4FC -:106050009F779F930CD00F9007FC905808953EF0C7 -:1060600014CF60E070E080E89FE308954FE79F77EA -:106070005F934F933F932F939ED02F913F914F91DA -:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C -:1060900026DFC8F39638C0F707F80F92E8942BE391 -:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F -:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B -:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 -:1060D0004427EE0F441FFA95E1F74195550B32D056 -:1060E0000F9007FE26C00895DF93CF931F930F9361 -:1060F000FF92EF92DF927B018C01689405C0DA2E4B -:10610000EF011EDFFE01E894A5912591359145919F -:106110005591AEF3EF0162DDFE019701A801DA941B -:1061200079F7DF90EF90FF900F911F91CF91DF9162 -:1061300008959B01AC0160E070E080E89FE3A5CD8D -:106140009ECEACC0CCDEE8F39923D9F3940F511D59 -:10615000BBF39150504094F059F0882332F0660F11 -:10616000771F881F91505040C1F79E3F510544F75B -:10617000880F911D9695879597F908955F3FACF02C -:10618000983E9CF0BB27869577956795B79508F460 -:10619000B1609395C1F7BB0F58F711F460FFE8CFDA -:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F -:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 -:1061C000DF93CF931F930F93FF92C92FDD2788236F -:1061D0002AF02197660F771F881FDAF720E030E05A -:1061E00040E85FEB9FE3883920F0803E30F0219655 -:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 -:1062000073DF8B01BE01EC01FB2E6F577109759591 -:10621000771F880B990BD4DD28E132E741E35FE378 -:106220008FDEAF2D9801AE01FF900F911F91CF919E -:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E -:10624000AC01BF5728F422273327442750781FC0BA -:10625000B75188F4AB2F0024469537952795011C3C -:10626000A395D2F3002069F0220F331F441FB3958A -:10627000DAF30DD0A1CC61307105A0E88A07B946E8 -:1062800030F49B01AC0166277727882790783096F9 -:1062900021F0208331834283538308959F3F31F05F -:1062A000915020F4879577956795B795880F911D44 -:1062B0009695879597F90895AA1BBB1B51E107C0D6 -:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 -:1062D000991F5A95A9F780959095BC01CD01089515 -:1062E00097FB072E16F4009407D077FD09D00E9483 -:1062F0005C3107FC05D03EF4909581959F4F089541 -:10630000709561957F4F0895EE0FFF1F0590F491F2 -:10631000E02D0994F999FECF92BD81BDF89A992795 -:1063200080B50895A8E1B0E042E050E00C94B231AD -:10633000262FF999FECF92BD81BDF89A019700B43E -:10634000021639F01FBA20BD0FB6F894FA9AF99ADE -:106350000FBE08950196272F0E9499310C94983111 -:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 -:10637000F89A319600B40D9241505040B8F7089504 -:04638000F894FFCFBF -:1063840007000C52D02445000000410000DC44000A -:1063940000004152D0A4440000404100005C44008D -:1063A40000004148F17644000000415C978A4400B3 -:1063B4000000411FD592440000004152D0A4440083 -:1063C4000000415CFFB844000000410AA7CF44002C -:1063D4000000410000DC44000000410AA7CF440053 -:1063E4000000410000DC4400000041000000000007 -:1063F40000804000005C45000040410000000000B7 -:1064040000804052D02445000040410AA7CF4400F8 -:106414000000410000DC44000000410000000000D6 -:1064240000804052D024450000404100000000009C -:1064340000804000005C45000040410AA7CF4400B2 -:106444000000410000DC44000000410000000000A6 -:1064540000804052D024450000404100000000006C -:106464000080400AA74F45000040410AA7CF4400DE -:106474000000410000DC4400000041000000000076 -:1064840000804052D024450000004100000000007C -:106494000080405CFF38450000004100000000001F -:1064A40000804052D02445000000410AA7CF440098 -:1064B4000000410000DC4400000041000000000036 -:1064C40000804052D024450000804153D024450030 -:1064D40000404160970A450000004154D0A44400A4 -:1064E4000000410000DC440000004160970A4500C0 -:1064F40000A041050000003F0000C8423214C0144F -:106504009D14691435140101DA032808140A321E93 -:106514000000020004000500070009000B000C0045 -:106524000E001000110013001500170018001A00C7 -:106534001C001D001F002100230024002600280049 -:1065440029002B002D002F003000320034003500CC -:10655400370039003B00400045002500260061005B -:106564006000200037006400650066006700440096 -:106574004600240047003F4D3639BD0970093A09E9 -:1065840001099408AD08C608DF08010203040506E2 -:0465940007080900EB +:10573000890208958FEF80938902089580918802ED +:10574000262F30E0280F311D2F3F310524F4680F3C +:105750006093880208958FEF8093880208958330C4 +:1057600011F128F4813049F0823091F008958530AC +:1057700081F120F18630C1F1089580918D02681782 +:1057800020F4861B80938D02089510928D02089557 +:1057900080918C02681720F4861B80938C020895F8 +:1057A00010928C02089580918B02681720F4861B5A +:1057B00080938B02089510928B02089580918A0243 +:1057C000681720F4861B80938A02089510928A023B +:1057D000089580918902681720F4861B80938902BE +:1057E000089510928902089580918802681720F424 +:1057F000861B8093880208951092880208950F9363 +:105800001F93873208F048C08E3108F094C0803171 +:1058100009F47EC008F5873009F468C068F4863062 +:1058200009F0A4C080913D04817F8E7F80933D0468 +:1058300081E080934D049BC08B3009F490C08E3082 +:1058400009F094C080913D0482FB222720F991E069 +:10585000922790FB82F965C0863109F480C060F41C +:10586000813109F083C00E945C219091850281E022 +:1058700089278093850273C0893109F470C08B3108 +:1058800009F074C080913D0481FB222720F991E04A +:10589000922790FB81F945C0883309F460C050F429 +:1058A000893209F45EC0853309F45BC0873209F49C +:1058B00058C05CC0833409F454C028F48A3308F417 +:1058C00055C0895339C0883409F050C00E945C210A +:1058D0000E946C060FEF13ED20E3015010402040B2 +:1058E000E1F700C000000E94792839C090913D0482 +:1058F000892F8095817080FB90F929F096609860DF +:1059000090933D0434C0997F977F90933D0427C0C6 +:1059100080913D0483FB222720F991E0922790FBA0 +:1059200083F980933D049923D1F080913D048160F7 +:1059300080933D0414C08D5141E050E060E070E080 +:105940008A019B0104C0000F111F221F331F8A957B +:10595000D2F7C901B8010E9418250E945C2181E09C +:1059600006C061E070E080E090E0F5CF80E01F913C +:105970000F91089580E0089580E00895CF93C82F97 +:1059800080914D04813069F018F08230C9F184C0F3 +:10599000E0918602F09187028081823209F07EC018 +:1059A00007C0E0918602F09187028081823261F423 +:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7 +:1059C0001DC081E090E01AC08C2F0E94BC2C811178 +:1059D00014C0C43179F048F4CB3079F0C03109F00B +:1059E00061C082E080934D0408C0C93219F0C83309 +:1059F00021F058C010924D0455C081E0817054C010 +:105A0000C93291F120F5C43179F1B0F4C73009F011 +:105A100047C08EE180938D0282E380938C028AE0FE +:105A200080938B0284E180938A0288E080938902CC +:105A300088E28093880234C0CE51C63088F5EC2FBE +:105A4000F0E0E85AFC4F808180934C0429C0CE34AA +:105A5000E9F020F4CB3421F56AE013C0C13579F0C8 +:105A6000C235F1F461E00DC080914C04882319F037 +:105A700010924C0415C081E080934D0415C061E084 +:105A800006C080914C040E94392B0AC06AE08091C4 +:105A90004C040E94AF2B04C010924D0480E004C05F +:105AA00081E002C080E0AACFCF9108950E94DA2859 +:105AB000811102C00E94B6280E94FB2880936804CE +:105AC00080FF02C0869501C080E00C943005809173 +:105AD0006804982F9695292F30E0233031054CF437 +:105AE0009F5F990F8170892B8160809368040E9469 +:105AF000FF288091680486950C9430058091680495 +:105B0000982F969591F09158990F8170892B8093D9 +:105B100068048E7F91E009F490E08091680490FB26 +:105B200080F9809368040E94FF288091680486951C +:105B30000C94300580916804982F909590FB80F923 +:105B4000809368040E94FF288091680480FF02C04F +:105B5000869501C080E00C94300590916804892FEF +:105B600086958F5F8F779170843028F4880F892B0A +:105B70008093680402C090936804809168048E7FCB +:105B800091E009F490E08091680490FB80F98093A3 +:105B900068040E94FF288091680486950C94300563 +:105BA00020916804922F96958927982F990F822F1C +:105BB0008170892B809368048E7F91E009F490E0D6 +:105BC0008091680490FB80F9809368040E94FF280C +:105BD0008091680486950C9430055058BB27AA27FD +:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7 +:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45 +:105C0000D3D180F3BA17620773078407950718F09A +:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A +:105C20000B01B90190010C01CA01A0011124FF2749 +:105C3000591B99F0593F50F4503E68F11A16F04044 +:105C4000A22F232F342F4427585FF3CF4695379543 +:105C50002795A795F0405395C9F77EF41F16BA0B08 +:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6 +:105C7000661F771F881FC2F70EC0BA0F621F731FFF +:105C8000841F48F4879577956795B795F7959E3F5C +:105C900008F0B3CF9395880F08F09927EE0F9795EA +:105CA0008795089527D108F481E008950CD06BC141 +:105CB00063D140F05AD130F021F45F3F19F03EC17A +:105CC000511195C14FC170D198F39923C9F3552350 +:105CD000B1F3951B550BBB27AA27621773078407DF +:105CE00038F09F5F5F4F220F331F441FAA1FA9F395 +:105CF00033D00E2E3AF0E0E830D091505040E69587 +:105D0000001CCAF729D0FE2F27D0660F771F881FE7 +:105D1000BB1F261737074807AB07B0E809F0BB0BD6 +:105D2000802DBF01FF2793585F4F2AF09E3F5105FA +:105D300068F004C15CC15F3FECF3983EDCF38695EC +:105D400077956795B795F7959F5FC9F7880F911D70 +:105D50009695879597F90895E1E0660F771F881F5C +:105D6000BB1F621773078407BA0720F0621B730B0F +:105D7000840BBA0BEE1F88F7E095089504D0689461 +:105D8000B11135C1089518D188F09F5790F0B92FFF +:105D90009927B751A0F0D1F0660F771F881F991F80 +:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035 +:105DB00008951CC1672F782F8827B85F39F0B93F45 +:105DC000CCF3869577956795B395D9F73EF4909582 +:105DD0008095709561957F4F8F4F9F4F0895E89400 +:105DE00009C097FB3EF490958095709561957F4F23 +:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1 +:105E0000F695879577956795B795F111F8CFFAF4E0 +:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11 +:105E200016C0882311F096E911C0772321F09EE86F +:105E3000872F762F05C0662371F096E8862F70E0D5 +:105E400060E02AF09A95660F771F881FDAF7880FAF +:105E50009695879597F9089588D018F011F08CD011 +:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4 +:105E7000E7FB6217730784079507A8F199F3E92FE9 +:105E8000FF2788232AF03197660F771F881FDAF7DC +:105E9000952F5527442332F091505040220F331F45 +:105EA000441FD2F7BB27E91BF50B621B730B840B56 +:105EB000B109C1F222F4620F731F841FB11D319723 +:105EC0002AF0660F771F881FBB1FEFCF91505040FD +:105ED0005AF041F0882332F0660F771F881F9150E7 +:105EE0005040C1F7939530C08695779567959F5F31 +:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D +:105F000016161706E807F907C0F012161306E4077D +:105F1000F50798F0621B730B840B950B39F40A2676 +:105F200061F0232B242B252B21F408950A2609F454 +:105F3000A140A6958FEF811D811D089597F99F6758 +:105F400080E870E060E008959F3F31F0915020F4C8 +:105F5000879577956795B795880F911D9695879545 +:105F600097F908959FEF80EC089500240A9416167F +:105F7000170618060906089500240A941216130637 +:105F8000140605060895092E0394000C11F48823C5 +:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1 +:105FA0007F4F8F4F9F4F089557FD9058440F551FB7 +:105FB00059F05F3F71F04795880F97FB991F61F08B +:105FC0009F3F79F087950895121613061406551F02 +:105FD000F2CF4695F1DF08C0161617061806991F6E +:105FE000F1CF86957105610508940895E894BB2763 +:105FF00066277727CB0197F908957CDF08F48FEFA8 +:1060000008950BD0C0CFB1DF28F0B6DF18F095238C +:1060100009F094CFA7CF1124EACFC6DFA0F3959F54 +:10602000D1F3950F50E0551F629FF001729FBB277F +:10603000F00DB11D639FAA27F00DB11DAA1F649F2B +:106040006627B00DA11D661F829F2227B00DA11DDE +:10605000621F739FB00DA11D621F839FA00D611D64 +:10606000221F749F3327A00D611D231F849F600D85 +:10607000211D822F762F6A2F11249F5750408AF0BE +:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A +:10609000881F91505040A9F79E3F510570F04ECF98 +:1060A000A6CF5F3FECF3983EDCF386957795679536 +:1060B000B795F795E7959F5FC1F7FE2B880F911D68 +:1060C0009695879597F90895FA01EE0FFF1F309680 +:1060D0002105310599F16115710561F48038BFE33F +:1060E0009B0749F168949038810561F08038BFEFD3 +:1060F0009B0741F0992342F5FF3FE105310521055A +:1061000011F1E8940894E795D901AA2329F4AB2F5B +:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4 +:10612000F73950F019F0FF3A38F49F779F930CD06D +:106130000F9007FC905808953EF014CF60E070E097 +:1061400080E89FE308954FE79F775F934F933F93D6 +:106150002F939ED02F913F914F915F9152DF05C0B9 +:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801 +:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1 +:106180004EDF0F920F920F924DB75EB70F92C0D0B5 +:10619000ECEFF0E016D04F915F91EF91FF91E59514 +:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23 +:1061B000FA95E1F74195550B32D00F9007FE26C0B6 +:1061C0000895DF93CF931F930F93FF92EF92DF9287 +:1061D0007B018C01689405C0DA2EEF011EDFFE0101 +:1061E000E894A5912591359145915591AEF3EF0134 +:1061F00006DDFE019701A801DA9479F7DF90EF90B0 +:10620000FF900F911F91CF91DF9108959B01AC01F9 +:1062100060E070E080E89FE349CD90CE95CECCDE83 +:10622000E8F39923D9F3940F511DBBF391505040DB +:1062300094F059F0882332F0660F771F881F915031 +:106240005040C1F79E3F510544F7880F911D969528 +:10625000879597F908955F3FACF0983E9CF0BB2777 +:10626000869577956795B79508F4B1609395C1F7D2 +:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70 +:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67 +:1062900093DEC8F39923D1F3C6F3DF93CF931F9313 +:1062A0000F93FF92C92FDD2788232AF02197660FCD +:1062B000771F881FDAF720E030E040E85FEB9FE3CC +:1062C000883920F0803E30F021968F7787DCE4E239 +:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197 +:1062E000EC01FB2E6F5771097595771F880B990B81 +:1062F00078DD28E132E741E35FE38FDEAF2D9801DF +:10630000AE01FF900F911F91CF91DF9178DC3BCED2 +:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497 +:1063200022273327442750781FC0B75188F4AB2F5A +:106330000024469537952795011CA395D2F300209C +:1063400069F0220F331F441FB395DAF30DD045CC0B +:1063500061307105A0E88A07B94630F49B01AC01B1 +:106360006627772788279078309621F0208331831D +:10637000428353830895AA1BBB1B51E107C0AA1F88 +:10638000BB1FA617B70710F0A61BB70B881F991FD6 +:106390005A95A9F780959095BC01CD01089597FB7A +:1063A000072E16F4009407D077FD09D00E94BB3168 +:1063B00007FC05D03EF4909581959F4F0895709508 +:1063C00061957F4F0895EE0FFF1F0590F491E02D2A +:1063D0000994F999FECF92BD81BDF89A992780B5AD +:1063E0000895A8E1B0E042E050E00C941132262F6D +:1063F000F999FECF92BD81BDF89A019700B40216BB +:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68 +:1064100008950196272F0E94F8310C94F731DC0182 +:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F +:10643000319600B40D9241505040B8F70895F89449 +:02644000FFCF8C +:106442000C52D02445000000410000DC4400000052 +:106452004152D0A4440000404100005C44000000CE +:106462004148F17644000000415C978A44000000F4 +:10647200411FD592440000004152D0A444000000C4 +:10648200415CFFB844000000410AA7CF440000006D +:10649200410000DC44000000410AA7CF4400000094 +:1064A200410000DC440000004100000000000080C8 +:1064B2004000005C450000404100000000000080F8 +:1064C2004052D02445000040410AA7CF44000000BA +:1064D200410000DC44000000410000000000008098 +:1064E2004052D024450000404100000000000080DE +:1064F2004000005C45000040410AA7CF4400000074 +:10650200410000DC44000000410000000000008067 +:106512004052D024450000404100000000000080AD +:10652200400AA74F45000040410AA7CF440000009F +:10653200410000DC44000000410000000000008037 +:106542004052D024450000004100000000000080BD +:10655200405CFF3845000000410000000000008060 +:106562004052D02445000000410AA7CF4400000059 +:10657200410000DC440000004100000000000080F7 +:106582004052D024450000804153D02445000040B1 +:106592004160970A450000004154D0A44400000025 +:1065A200410000DC440000004160970A450000A061 +:1065B20041050000003F0000C8424314D114AE144C +:1065C2007A14461401012A042808140A321E000013 +:1065D200020004000500070009000B000C000E0079 +:1065E2001000110013001500170018001A001C00FB +:1065F2001D001F002100230024002600280029007E +:106602002B002D002F0030003200340035003700FF +:1066120039003B0040004500250026006100600073 +:1066220020003700640065006600670044004600F1 +:10663200240047003149803F5D8B803FF8BF803F97 +:10664200CAE1803F73ED803FCAE1803FF8BF803FDF +:106652005D8B803F3149803F0000803FF16D7F3F7D +:1066620075EA7E3F4C827E3F833F7E3F84287E3F99 +:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6 +:106682000000803F3F4D363975092809F208B908E4 +:106692004C0865087E0897080102030405060708EE +:0266A2000900ED :00000001FF diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 95b971876..b3aa14dcb 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -319,7 +319,7 @@ void matrix_init_user(void) { #ifdef AUDIO_ENABLE uint8_t starting_note = 0x0C; -int offset = 7; +int offset = 0; void process_action_user(keyrecord_t *record) { diff --git a/keyboard/preonic/preonic_pcb_r1.hex b/keyboard/preonic/preonic_pcb_r1.hex index 5bdc190e1..eda1b1979 100644 --- a/keyboard/preonic/preonic_pcb_r1.hex +++ b/keyboard/preonic/preonic_pcb_r1.hex @@ -1,1702 +1,1628 @@ -:100000000C94D4020C9418030C9418030C94180349 -:100010000C9418030C9418030C9418030C941803F4 -:100020000C9418030C9418030C94E8160C94BA174B -:100030000C946C290C9418030C9418030C9418035A -:100040000C9418030C9418030C9418030C941803C4 -:100050000C9418030C94D9290C9418030C941803CD -:100060000C9418030C9418030C9418030C941803A4 -:100070000C9418030C9418030C9418030C94180394 -:100080000C941C0E0C9418030C9418030C94180375 -:100090000C9418030C9418030C9418030C94180374 -:1000A0000C9418030C9418030C941803076342363D -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F00000000003500EC -:100130001E001F00200021002200230024002500B3 -:10014000260027002A002B0014001A0008001500C2 -:1001500017001C0018000C00120013002A002900D0 -:1001600004001600070009000A000B000D000E0035 -:100170000F0033003400E1001D001B0006001900D1 -:10018000050011001000360037003800280000304C -:10019000E000E200E30003522C002C000452500067 -:1001A000510052004F0035001E001F0020002100AA -:1001B0002200230024002500260027002A002B000F -:1001C00014001A00090013000A000D000F001800A7 -:1001D0001C0033002A002900040015001600170037 -:1001E00007000B00110008000C0012003400E100B1 -:1001F0001D001B000600190005000E00100036004F -:100200003700380028000030E000E200E30003522D -:100210002C002C0004525000510052004F003500B9 -:100220001E001F00200021002200230024002500C2 -:10023000260027002A002B00340036003700130068 -:100240001C0009000A00060015000F002A00290002 -:1002500004001200080018000C0007000B00170033 -:10026000110016003800E100330014000D000E00EC -:100270001B00050010001A0019001D0028000030A6 -:10028000E000E200E30003522C002C000452500076 -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00350212 -:1002B0001E021F0220022102220223022402250222 -:1002C000260227022A0001003A003B003C003D00C4 -:1002D0003E003F002D022E022F02300231020100AB -:1002E00040004100420043004400450000530153D8 -:1002F0000253005001000100010001000100010053 -:10030000010001000100AB00AA00A900AE00350009 -:100310001E001F00200021002200230024002500D1 -:10032000260027002A0035001E001F0020002100A3 -:100330002200230024002500260027002A000100B7 -:100340003A003B003C003D003E003F002D002E00E7 -:100350002F00300031000100400041004200430006 -:1003600044004500005301530253005001000100B6 -:100370000100010001000100010001000100AB00CB -:10038000AA00A900AE002A035400680065002000FE -:100390005000720065006F006E006900630020006D -:1003A0004B006500790062006F006100720064001C -:1003B00000002C034F007200740068006F006C0096 -:1003C00069006E0065006100720020004B0065004E -:1003D000790062006F006100720064007300000029 -:1003E000040309040902D000060100A0FA09040070 -:1003F000000103010100092111010001223F000752 -:1004000005810308000A0904010001030102000933 -:100410002111010001224D000705820308000A098D -:10042000040200010300000009211101000122362D -:10043000000705830308000A090403000203000003 -:10044000000921110100012220000705840320007A -:100450000107050403200001090404000001010054 -:100460000009240100010900010509040500020139 -:1004700003000007240100014100062402010100DD -:1004800006240202020009240301030102010009FB -:1004900024030204010101000905060240000500D1 -:1004A0000005250101010905850240000500000540 -:1004B000250101031201100100000008EDFE61603A -:1004C0000100010200010631FF0974A1010975153F -:1004D0000025FF9520750881020976150025FF95F6 -:1004E0002075089102C005010980A101850216014D -:1004F0000026B7001A01002AB70075109501810087 -:10050000C0050C0901A1018503160100269C021AF1 -:1005100001002A9C02751095018100C005010902A5 -:10052000A1010901A10005091901290515002501ED -:100530009505750181029501750381010501093059 -:1005400009311581257F95027508810609381581C5 -:10055000257F950175088106050C0A38021581254D -:100560007F950175088106C0C005010906A1010536 -:100570000719E029E7150025019508750181029505 -:100580000175088101050819012905950575019175 -:10059000029501750391010507190029FF15002532 -:1005A000FF950675088100C011241FBECFEFDAE069 -:1005B000DEBFCDBF04B603FE24C080910404909139 -:1005C0000504A0910604B09107048730904BA74022 -:1005D000B04BB9F410920404109205041092060472 -:1005E0001092070414BE84B7877F84BF88E10FB6DA -:1005F000F89480936000109260000FBEE0E0F8E392 -:10060000099512E0A0E0B1E0EEE1F9E602C0059044 -:100610000D92A832B107D9F714E0A8E2B2E001C008 -:100620001D92A430B107E1F70E94A0130C948D3401 -:100630000C94000061110DC0FC018281882331F00F -:1006400085EE0E94671E0E94683003C085EE0E94FE -:100650002F1F80E090E008950E940F0E40E050E0D0 -:1006600069E070E080E091E00C94600F08950E94D2 -:1006700049036E9A769A8CE293E0892B11F00C94E0 -:100680002C03089586E393E0892B11F00C94360334 -:100690000895279A2F988FEF9FEF9093870080936C -:1006A00086008AE08093800089E1809381000C9429 -:1006B000113081110BC080918000877F8093800072 -:1006C00010928D0010928C002F9808952F988330EF -:1006D00041F4809180008860809380008FEF9FEFCD -:1006E00012C09091800098609093800023E030E0E9 -:1006F000281B3109220F331F8FEF9FEF02C0969501 -:1007000087952A95E2F790938D0080938C00089549 -:100710008B3B910568F4883A910530F5853A91054F -:10072000C0F48430910598F4019709F06FC071C04E -:10073000803E910508F46AC0883E910540F09C0116 -:10074000205F31092031310508F060C05CC09C0198 -:10075000A1C0853A910509F45FC0863A910509F474 -:100760005EC023E830E496C0883A910509F45AC087 -:10077000893A910509F459C08A3A910509F458C09B -:100780008B3A910509F457C08C3A910509F456C08B -:100790008D3A910509F455C0803B910509F454C088 -:1007A0008E3A910509F453C08F3A910509F452C06D -:1007B000813B910509F451C0823B910509F450C079 -:1007C000833B910509F44FC0843B910509F44EC069 -:1007D000853B910509F44DC0863B910509F44CC059 -:1007E000873B910509F44BC0883B910509F44AC049 -:1007F000893B910509F449C08A3B910509F048C03D -:100800002AE236E447C09C01306544C020E030E075 -:1008100041C021E030E03EC021E830E43BC022E8A6 -:1008200030E438C022EE34E435C029EE34E432C07E -:100830002AEE34E42FC025EB34E42CC026EB34E45C -:1008400029C027EB34E426C02CEC34E423C02DEC83 -:1008500034E420C023E835E41DC02AE835E41AC09A -:1008600022E935E417C024E935E414C021E236E476 -:1008700011C023E236E40EC024E236E40BC025E2C8 -:1008800036E408C026E236E405C027E236E402C0BA -:1008900020E034E4C90108959CE0799FF00111241F -:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71 -:1008B000FF1FE25DFE4F25913491C9010895880F15 -:1008C000991F82559040FC0125913491C9010895EA -:1008D000880F991F825D9E4FFC0125913491C901BB -:1008E00008950E944C049C019A9581159F4110F433 -:1008F000C9010895C90190528115904128F4C90198 -:100900009F700E9468040895C90190538115904119 -:1009100020F4C9019927906C0895C901905440971B -:1009200028F4C9018F709927946D0895203180E4CF -:10093000380719F480E091ED0895213190E43907EA -:1009400019F480E090ED0895223140E4340719F461 -:1009500080E092ED0895233180E4380719F480E0B7 -:1009600093ED0895211590E5390799F40E945623D7 -:1009700040E065E088E491E00E94600F2FEF44E3DF -:100980008CE0215040408040E1F700C000000C9412 -:10099000FE29213090E5390731F48091F002816021 -:1009A0008093F0020895C90190558115904108F097 -:1009B00062C0432F55274F70552741305105F9F438 -:1009C000C90174E0880F991F7A95E1F78827937021 -:1009D000B901E3E0660F771FEA95E1F760767727C4 -:1009E000862B972B9C682370332702C0440F551F1A -:1009F0002A95E2F74F715527842B952B08954230A5 -:100A0000510529F4922F8827816F906A0895433009 -:100A10005105B9F4C90153E0880F991F5A95E1F7C0 -:100A2000807E97702370332741E050E002C0440F6E -:100A3000551F2A95E2F74F715527842B952B9C68FB -:100A400008954430510589F5C90143E0880F991F85 -:100A50004A95E1F7807E97702370332741E050E09C -:100A600002C0440F551F2A95E2F74F715527842B7A -:100A7000952B9A680895C90190568115904118F4F4 -:100A8000C901906F0895C90190578115904120F4D4 -:100A9000C9019F7090620895C901905881159041D5 -:100AA00020F4C9019F70906A0895203E3105E0F45A -:100AB000203C310568F52133310509F475C048F44F -:100AC0002932310509F46BC02A32310509F07BC0A7 -:100AD00075C02933310501F122383105E9F025339C -:100AE000310509F070C051C0233E3105B1F140F429 -:100AF000203E3105D1F0223E310509F064C01CC012 -:100B0000263E310579F1273E310509F05CC038C039 -:100B1000C9010E945F0408958091010380FD02C015 -:100B200081FF51C080EE90E04FC08091010380FFB3 -:100B3000F9CF89E390E048C08091010382FF0AC0A9 -:100B40008091010384FF03C080E090E03DC083EE0C -:100B500090E03AC082EE90E037C08091010382FFBE -:100B6000EFCFF8CF8091010383FF07C0809101038D -:100B700084FDEACF87EE90E027C086EE90E024C0A7 -:100B80008091010383FFF2CFF8CF8091010385FFAD -:100B900003C089E290E018C085E390E015C0809121 -:100BA000010385FDF9CFF5CF8091010386FF03C0D6 -:100BB0008AE290E009C081E390E006C080910103E1 -:100BC00086FDF9CFF5CFC9010E94880308950895E5 -:100BD0005F926F927F928F929F92AF92BF92CF92CD -:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6 -:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9 -:100C00002F5F3F4F4E018BE0880E911C60E070E03B -:100C100000E010E0E12CF12CC12CD12CA12CB12C46 -:100C20008AE0782E622E532E41E050E0E3E9F1E0B5 -:100C3000A62DB52D872D01900D928A95E1F7F9012A -:100C4000819191919F01FC01E07FFF27E032F10546 -:100C500059F48F709927FA0102C0EE0FFF1F8A9591 -:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E -:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC -:100C8000DF2A29C0E034F10559F48F709927FA0161 -:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063 -:100CA000E035F10559F48F709927FA0102C0EE0F73 -:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2 -:100CC00051F48F709927FA0102C0EE0FFF1F8A9529 -:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9 -:100CE0008A2D8095892384B985B18A2985B997B1E0 -:100CF0008C2D8095892387B988B18C2988B99AB1C0 -:100D00008E2D809589238AB98BB18E298BB99DB19F -:100D1000802F809589238DB98EB1802B8EB990B3A9 -:100D2000862F8095892380BB81B3862B81BB2A9631 -:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC -:100D40000F91FF90EF90DF90CF90BF90AF909F906A -:100D50008F907F906F905F9008955F926F927F92D7 -:100D60008F929F92AF92BF92CF92DF92EF92FF92BB -:100D70000F931F93CF93DF93CDB7DEB768970FB66E -:100D8000F894DEBF0FBECDBF85B7806885BF85B73D -:100D9000806885BF0E94E8059E012F5F3F4F4E018E -:100DA00089E1880E911C60E070E000E010E0E12C29 -:100DB000F12CC12CD12CA12CB12C98E1792E622ED2 -:100DC000532E41E050E0EDE9F1E0A62DB52D872D41 -:100DD00001900D928A95E1F7F901819191919F011E -:100DE000FC01E07FFF27E032F10559F48F7099276D -:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62 -:100E000037C0E033F10559F48F709927FA0102C019 -:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1 -:100E2000F10559F48F709927FA0102C0EE0FFF1FE8 -:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446 -:100E40008F709927FA0102C0EE0FFF1F8A95E2F713 -:100E50000E2B1F2B0DC0E036F10551F48F70992732 -:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F -:100E70002815390509F0A7CF94B18A2D80958923CB -:100E800084B985B18A2985B997B18C2D809589233C -:100E900087B988B18C2988B99AB18E2D809589231C -:100EA0008AB98BB18E298BB99DB1802F809589230A -:100EB0008DB98EB1802B8EB990B3862F8095892302 -:100EC00080BB81B3862B81BB10922902109228022D -:100ED000109233021092320210922B0210922A02C8 -:100EE000109235021092340210922D0210922C02B0 -:100EF000109237021092360210922F0210922E0298 -:100F0000109239021092380210923102109230027F -:100F100010923B0210923A0287E393E0892BB9F0DA -:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC -:100F30001F910F91FF90EF90DF90CF90BF90AF90F7 -:100F40009F908F907F906F905F900C94370368967E -:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA -:100F60000F91FF90EF90DF90CF90BF90AF909F9048 -:100F70008F907F906F905F9008955F926F927F92B5 -:100F80008F929F92AF92BF92CF92DF92EF92FF9299 -:100F90000F931F93CF93DF93CDB7DEB7A2970FB612 -:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17 -:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26 -:100FC0003AE0532E470101E010E048E1642E55E07D -:100FD000752EE3E9F1E0D401852D01900D928A95FB -:100FE000E1F7F701819191917F019C01207F3327E7 -:100FF0002032310589F424B18F709927A80102C0ED -:10100000440F551F8A95E2F7CA01242B24B995B1E4 -:101010008095892385B94FC02033310589F427B1E4 -:101020008F709927F80102C0EE0FFF1F8A95E2F733 -:10103000CF012E2B27B998B18095892388B93BC061 -:101040002034310589F42AB18F709927A80102C094 -:10105000440F551F8A95E2F7CA01242B2AB99BB188 -:10106000809589238BB927C02035310589F42DB1AE -:101070008F709927F80102C0EE0FFF1F8A95E2F7E3 -:10108000CF012E2B2DB99EB1809589238EB913C027 -:101090002036310581F420B38F709927A80102C052 -:1010A000440F551F8A95E2F7CA01242B20BB91B348 -:1010B0008095892381BB50EA5A95F1F7BE016F5F95 -:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC -:1010D0001196462D01900D924A95E1F7FB01419141 -:1010E0005191BF01FA01E07FFF27E032F10511F4D1 -:1010F000E3B113C0E033F10511F4E6B10EC0E03402 -:10110000F10511F4E9B109C0E035F10511F4ECB1D4 -:1011100004C0E036F105B9F4EFB1F0E04F705527A7 -:1011200002C0F595E7954A95E2F7E0FD08C0A801F1 -:10113000022E02C0440F551F0A94E2F702C040E09D -:1011400050E0842B952B2F5F3F4F2C30310509F059 -:10115000BCCFF601208131812817390721F0918316 -:101160008083709270010E94E805F2E0CF0ED11CDE -:10117000EA14FB0409F02DCF809170018823A1F1BE -:10118000815080937001882339F08FE99FE00197A7 -:10119000F1F700C0000028C0809132029091330224 -:1011A0009093290280932802809134029091350215 -:1011B00090932B0280932A028091360290913702FD -:1011C00090932D0280932C028091380290913902E5 -:1011D00090932F0280932E0280913A0290913B02CD -:1011E000909331028093300282E493E0892B11F0D6 -:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4 -:10120000CDBFDF91CF911F910F91FF90EF90DF90B5 -:10121000CF90BF90AF909F908F907F906F905F9096 -:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D -:10123000918108950895CF92DF92EF92FF920F93DC -:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601 -:10125000F894DEBF0FBECDBF8C01862F642F88238C -:1012600079F0F80192812FE7482F992329F083E044 -:1012700093E00E94C41904C083E093E00E94D41953 -:10128000F80180818B3091F59181943009F0A8C2EA -:101290009281809173019923B1F08F5F80937301E4 -:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207 -:1012B0009A95E1F7E0917101F0917201EE0FFF1F35 -:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03 -:1012D000BD4F01900D929A95E1F7E0917101F09167 -:1012E0007201EE0FFF1F21E332E093C08A3009F054 -:1012F000CBC0F8019181943009F072C29281809143 -:101300007301992309F473C081508093730196E4AB -:10131000E5EBF1E0DE01A551BE4F01900D929A95EB -:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA -:1013300031E02C0F3D1FE20FF31F60817181680FB8 -:10134000711D882777FD8095982F0E94AC3120E091 -:1013500030E040E451E40E94113120E030E040E808 -:1013600050E40E94A9309B01AC0160E070E080E095 -:1013700090E40E94C33221E230ED42E053E40E9447 -:1013800060324CE050E00E94BB0F20E04BE760E091 -:1013900083E093E00E94B41920E04BE761E083E032 -:1013A00093E00E94B41920E04BE762E083E093E011 -:1013B0000E94B41920E04BE763E083E093E00E94D1 -:1013C000B41920E04BE764E083E093E0C454DD4FC0 -:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146 -:1013E0000F91FF90EF90DF90CF900C94B41996E49A -:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501 -:10140000E1F7E0917101F0917201EE0FFF1F25EA03 -:1014100031E02C0F3D1FE20FF31F60817181680FD7 -:10142000711D882777FD8095982F0E94AC3120E0B0 -:1014300030E040E451E40E94113120E030E040E827 -:1014400050E40E94A9309B01AC0160E070E080E0B4 -:1014500090E40E94C33221E230ED42E053E40E9466 -:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F -:101470000FBECDBFDF91CF911F910F91FF90EF90E5 -:10148000DF90CF900C94BE0C893009F0D3C0F801E6 -:101490009181943009F0A4C19281992309F4A0C1EB -:1014A00080917101909172010196909372018093E5 -:1014B000710120E04BE760E083E093E00E94B41903 -:1014C00020E04BE761E083E093E00E94B41920E064 -:1014D0004BE762E083E093E00E94B41920E04BE721 -:1014E00063E083E093E00E94B41920E04BE764E0FE -:1014F00083E093E00E94B4190E94BE0C00E010E06B -:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5 -:10151000BE4F9F2D01900D929A95E1F7E0917101D8 -:10152000F0917201E00FF11FEE0FFF1F2FE531E088 -:101530002C0F3D1FE20FF31F60817181680F711D39 -:10154000882777FD8095982F0E94AC3120E030E00D -:1015500040E451E40E94113120E030E040E850E4E2 -:101560000E94A9309B01AC0160E070E080E090E453 -:101570000E94C33221E230ED42E053E40E94603227 -:101580004CE050E00E94BB0F3FEF87EE93E03150FC -:1015900080409040E1F700C0000080917301E5EBCE -:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E -:1015B000E1F7E0917101F0917201E00FF11FEE0F80 -:1015C000FF1F29E131E02C0F3D1FE20FF31F608167 -:1015D0007181680F711D882777FD8095982F0E9473 -:1015E000AC3120E030E040E451E40E94113120E0D1 -:1015F00030E040E850E40E94A9309B01AC0160E07B -:1016000070E080E090E40E94C33221E230ED42E0DD -:1016100053E40E9460320E94EB0C8FEF9CE701972D -:10162000F1F700C000000F5F1F4F0830110509F0EF -:1016300069CF94C1883009F0D3C0F801918194300A -:1016400009F0CEC09281992309F4CAC0809171013A -:10165000909172010197909372018093710120E043 -:101660004BE760E083E093E00E94B41920E04BE791 -:1016700061E083E093E00E94B41920E04BE762E070 -:1016800083E093E00E94B41920E04BE763E083E03D -:1016900093E00E94B41920E04BE764E083E093E01C -:1016A0000E94B4190E94BE0C00E010E056E4F52E32 -:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C -:1016C00001900D929A95E1F7E0917101F09172010C -:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39 -:1016E000E20FF31F60817181680F711D882777FDFC -:1016F0008095982F0E94AC3120E030E040E451E426 -:101700000E94113120E030E040E850E40E94A9300E -:101710009B01AC0160E070E080E090E40E94C33285 -:1017200021E230ED42E053E40E9460324CE050E0B0 -:101730000E94BB0F3FEF87EE93E031508040904016 -:10174000E1F700C0000080917301E5EBF1E0DE01FC -:10175000A357BF4F9F2D01900D929A95E1F7E0910D -:101760007101F0917201E00FF11FEE0FFF1F2DE8E4 -:1017700030E02C0F3D1FE20FF31F60817181680F75 -:10178000711D882777FD8095982F0E94AC3120E04D -:1017900030E040E451E40E94113120E030E040E8C4 -:1017A00050E40E94A9309B01AC0160E070E080E051 -:1017B00090E40E94C33221E230ED42E053E40E9403 -:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD -:1017D00000000F5F1F4F0830110509F069CFBEC030 -:1017E000F801228190917301222309F45DC026E45F -:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568 -:10180000E1F7E0917101F0917201E80FF11DEE0F27 -:10181000FF1F27E430E02C0F3D1FE20FF31F608114 -:101820007181690F711D882777FD8095982F0E941F -:10183000AC3120E030E040E451E40E9411316B0112 -:101840007C01F801818165E070E0681B71098827DF -:1018500077FD8095982F0E94AC319B01AC01C701A8 -:10186000B6010E94A9309B01AC0160E070E080E00D -:1018700090E40E94C33221E230ED42E053E40E9442 -:1018800060324FE050E0C454DD4F0FB6F894DEBF35 -:101890000FBECDBFDF91CF911F910F91FF90EF90C1 -:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176 -:1018B000119601900D922A95E1F7E0917101F09156 -:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39 -:1018D0003D1FE20FF31F60817181690F711D882721 -:1018E00077FD8095982F0E94AC3120E030E040E4F5 -:1018F00051E40E9411316B017C01F801818165E0A6 -:1019000070E0681B7109882777FD8095982F0E94E9 -:10191000AC319B01AC01C701B6010E94A9309B010B -:10192000AC0160E070E080E090E40E94C33221E20C -:1019300030ED42E053E40E946032C454DD4F0FB6F4 -:10194000F894DEBF0FBECDBFDF91CF911F910F91F5 -:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0 -:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0 -:101970000F91FF90EF90DF90CF9008951092870223 -:1019800010928602809171008D7F8093710080910A -:1019900090008F7780939000109248021092470237 -:1019A00010928002109281021092820210928302A1 -:1019B00010927F0210927E02EEE5F2E0AEE4B2E019 -:1019C00011921192119211921D921D9282E0EE37A6 -:1019D000F807B1F708956F927F928F929F92AF921E -:1019E000BF92CF92DF92EF92FF920F931F93CF930C -:1019F000DF936B017C010EE712E04CE5A42E42E080 -:101A0000B42EC7E0D0E0A7019601F801929182912F -:101A1000729162918F010E940D31882349F02197C4 -:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB -:101A3000F8011082118212821382F5011182108244 -:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA -:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5 -:101A600055816681778140835183628373831482B9 -:101A700015821682178212962D913C91139711961A -:101A80003C932E9313961C921E92129734961296A4 -:101A90008730910519F7C3CF809186029091870214 -:101AA000019797FD05C0909387028093860204C03A -:101AB0001092870210928602E0918602F0918702CE -:101AC0003097C9F4809171008D7F8093710080916F -:101AD00090008F7780939000109280021092810284 -:101AE000109282021092830210927F0210927E0264 -:101AF0001092470285C03197DF01AA0FBB1FAA0FC2 -:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23 -:101B1000FF1FE25BFD4FC081D18160908002709019 -:101B200081028090820290908302A7019601662D27 -:101B3000772D882D992D0E940D3187FF25C0262DE8 -:101B4000372D482D592DC701B6010E94A83020E03D -:101B500030E04AEF54E40E9411315B018C012A2DE0 -:101B60003B2D402F512F662D772D882D992D0E94CA -:101B7000A9303B014C01A7019601772D992D0E94B8 -:101B80000D31181664F72EC0A7019601662D772D2A -:101B9000882D992D0E945C32181634F5A701960104 -:101BA000662D772D882D992D0E94A83020E030E0F9 -:101BB0004AEF54E40E9411315B018C012A2D3B2D28 -:101BC000402F512F662D772D882D992D0E94A830FA -:101BD0003B014C01A7019601772D992D0E945C32A3 -:101BE00087FFECCF10924D02C0928002D09281020A -:101BF000E0928202F0928302D0937F02C0937E0231 -:101C0000DF91CF911F910F91FF90EF90DF90CF90D8 -:101C1000BF90AF909F908F907F906F9008953E9A65 -:101C2000E1E7F0E080818D7F808382E08093900007 -:101C30008AE18093910008951F920F920FB60F9240 -:101C40001124CF92DF92EF92FF922F933F934F9305 -:101C50005F936F937F938F939F93AF93BF93CF9334 -:101C6000DF93EF93FF9380914702882309F479C0B3 -:101C700020E030E0A90160918002709181028091A2 -:101C80008202909183020E945C3218160CF069C0A7 -:101C900020E030E040E251E46091490270914A0254 -:101CA00080914B0290914C020E945C321816BCF459 -:101CB00080918402909185020196609186027091D4 -:101CC00087020E9448349093850280938402109288 -:101CD000490210924A0210924B0210924C02C0919B -:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC -:101CF000DD4F288139814A815B8160E074E284E7AD -:101D00009BE40E9411310E94793170939700609397 -:101D10009600288139814A815B8160E074E284E722 -:101D20009BE40E9411310E947931759567957093FB -:101D300099006093980020E030E040E85FE3609114 -:101D4000490270914A0280914B0290914C020E948C -:101D5000A9306093490270934A0280934B0290939A -:101D60004C0280914802882309F493C0C09043023A -:101D7000D0904402E0904502F090460220E030E02E -:101D8000A901C701B6010E945C321816F4F4A7013C -:101D9000960160E074E284E79BE40E9411310E94A6 -:101DA00079317093970060939600A701960160E0E7 -:101DB00074E284E79BE40E9411310E9479317595A9 -:101DC0006795709399006093980060913D027091BF -:101DD0003E026F5F7F4F70933E0260933D0280E052 -:101DE00090E00E94AA3120913F0230914002409140 -:101DF0004102509142020E945C3287FD4AC08091AC -:101E00003C028F5F80933C029091F0038917A0F011 -:101E10008091F503882319F010923C020DC0809147 -:101E200071008D7F80937100809190008F778093F7 -:101E30009000109248022DC0E091F103F091F2035E -:101E400080913C0298E0899FE00DF11D1124808172 -:101E50009181A281B3818093430290934402A09325 -:101E60004502B093460220E030E040E85EE3648142 -:101E70007581868197810E94603260933F027093E2 -:101E80004002809341029093420210923E021092CF -:101E90003D02FF91EF91DF91CF91BF91AF919F9163 -:101EA0008F917F916F915F914F913F912F91FF9013 -:101EB000EF90DF90CF900F900FBE0F901F9018956E -:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174 -:101ED00080914702882331F04A8369830E94BE0CB7 -:101EE00069814A8181E0809348021093F203009354 -:101EF000F1036093F0034093F503109249021092AE -:101F00004A0210924B0210924C0210923C02F801CD -:101F10004081518162817381409343025093440216 -:101F2000609345027093460220E030E040E85EE3B3 -:101F300064817581868197810E94603260933F023F -:101F400070934002809341029093420210923E02AD -:101F500010923D02809171008260809371008091A7 -:101F600090008068809390000F900F90DF91CF9148 -:101F70001F910F9108956F927F928F929F92AF92CF -:101F8000BF92CF92DF92EF92FF920F931F93CF9366 -:101F9000DF936B017C01EA018091480281110E946C -:101FA000BE0C81E08093470220E030E0A901C70128 -:101FB000B6010E945C3218160CF09AC06090800244 -:101FC00070908102809082029090830220E030E045 -:101FD000A901662D772D882D992D0E940D31811133 -:101FE00028C0C0928002D0928102E0928202F092D8 -:101FF0008302D0937F02C0937E02809186029091EB -:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C -:10201000C082D182E282F382FC01EE0FFF1FE25BFD -:10202000FD4FD183C08301969093870280938602EF -:102030005FC0A7019601662D772D882D992D0E94EE -:102040000D3187FF25C0262D372D482D592DC7016D -:10205000B6010E94A83020E030E04AEF54E40E942C -:1020600011315B018C012A2D3B2D402F512F662D04 -:10207000772D882D992D0E94A9303B014C01A70195 -:102080009601772D992D0E940D31181664F7A9CF6E -:10209000A7019601662D772D882D992D0E945C321F -:1020A00018160CF09ECFA7019601662D772D882D6E -:1020B000992D0E94A83020E030E04AEF54E40E94BD -:1020C00011315B018C012A2D3B2D402F512F662DA4 -:1020D000772D882D992D0E94A8303B014C01A70136 -:1020E0009601772D992D0E945C3287FFECCF79CF36 -:1020F000809171008260809371008091900080686F -:1021000080939000DF91CF911F910F91FF90EF90FE -:10211000DF90CF90BF90AF909F908F907F906F9007 -:102120000895809191020895CF93DF9300D01F927C -:10213000CDB7DEB72091FA03243021F523E02983BF -:102140009B838A832093E9008FEF06C095ED9A95D3 -:10215000F1F70000882329F09091E800815095FF65 -:10216000F5CF8091E80085FF0DC040E050E063E0CE -:1021700070E0CE0101960E947E148091E8008E7777 -:102180008093E8000F900F900F90DF91CF9108950A -:10219000CF93DF9300D01F92CDB7DEB72091FA0323 -:1021A000243029F522E029839B838A8383E080936E -:1021B000E9008FEF06C095ED9A95F1F700008823AE -:1021C00029F09091E800815095FFF5CF8091E800CB -:1021D00085FF0DC040E050E063E070E0CE01019665 -:1021E0000E947E148091E8008E778093E8000F9023 -:1021F0000F900F90DF91CF9108952091FA03243032 -:10220000F9F422E02093E9002FEF06C035ED3A956E -:10221000F1F70000222329F03091E800215035FF2A -:10222000F5CF2091E80025FF0BC040E050E065E0CD -:1022300070E00E947E148091E8008E778093E80021 -:102240000895CF93DF93EC018091FA03843041F538 -:1022500081E08093E9008FEF06C095ED9A95F1F744 -:102260000000882329F09091E800815095FFF5CF78 -:102270008091E80085FF14C040E050E068E070E025 -:10228000CE010E947E148091E8008E778093E80052 -:1022900088E0FE01A9E8B2E001900D928A95E1F78D -:1022A000DF91CF910895BF92CF92DF92EF92FF928C -:1022B0000F931F93CF93DF937C01B62EE90100E0CB -:1022C00010E0C42ED12C0BC04991202F2B0D2F775D -:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5 -:1022E0001D0594F3DF91CF911F910F91FF90EF9017 -:1022F000DF90CF90BF90089570E06F5F7F4F6F7059 -:1023000077270C94B4190F931F93CF93C42F633086 -:10231000710509F04AC0842F807F803849F18039E7 -:1023200009F043C0622F6F7770E080E090E00E9478 -:10233000AC3120E030E040E451E40E9411319B01D7 -:10234000AC0160E070E080E090E40E94C3320F775F -:1023500010E023E0159507952A95E1F72DEC3CEC6C -:1023600042E053E40E946032A8010E94BB0F1DC0EE -:10237000622F6F7770E080E090E00E94AC3120E047 -:1023800030E040E451E40E9411319B01AC0160E077 -:1023900070E080E090E40E94C3322DEC3CEC42E01F -:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1 -:1023B0001F910F910C94BE0CCF911F910F91089516 -:1023C0000F931F93CF93DF93CDB7DEB727970FB649 -:1023D000F894DEBF0FBECDBF8C0114C08A810E946D -:1023E0008E199A819D839B819E839C819F838111FD -:1023F0001EC089818430B1F08730A1F08630A1F011 -:102400008530A1F0BE016F5F7F4F84E791E00E94AD -:10241000FB1C8111E3CF84E791E00E94EC1C0E9439 -:1024200067190DC083E003C082E001C081E0AE0106 -:102430004B5F5F4F682FC8010E94211AE3CF279698 -:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5 -:102450000F910895EF92FF920F93CF93DF9300D0E7 -:1024600000D000D0CDB7DEB77B014A832B830C832D -:10247000842F2E834D830E948E192E814D818111D0 -:102480001BC082E0E816F10479F083E0E816F1045D -:1024900021F0EA94EF2821F50BC0073F11F487E003 -:1024A00001C084E089830BC0273FD9F786E0FACFCB -:1024B000473FB9F785E0F6CF42954F704983BE019B -:1024C0006F5F7F4F84E791E00E94B11C84E791E049 -:1024D0000E94CF1C84E791E00E94EC1C0E946719C7 -:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 -:1024F0000F91FF90EF9008958091F903811109C029 -:102500000E946D160E94CA168091E200846080933A -:10251000E20008951092F9030895089508950C9427 -:102520006129809192028F5F8093920262E30E9400 -:102530002834911135C01092920280919302882321 -:1025400079F18091FA03843049F58091E9008F7028 -:102550009091EC0090FF02C090E801C090E0982BB1 -:1025600084E08093E9008091EB0080FF14C08091AB -:10257000EE0087FD03C00FC01092F1008091E800CB -:1025800085FDFACF8091E80080FF05C08091E800CA -:102590008E778093E8009F709093E90010929302E9 -:1025A000089542E061EC81E00E94E31542E061ECB5 -:1025B00082E00E94E31542E061EC83E00E94E315B3 -:1025C00042E261EC84E00E94E31542E361E885E0C9 -:1025D0000E94E31542E360E886E00C94E3158091E5 -:1025E000FC03833009F454C030F4813071F0823040 -:1025F00009F0A5C08CC08A3009F479C08B3009F489 -:102600005FC0893009F09BC020C08091FB03813AF4 -:1026100009F095C08091E800877F8093E800809161 -:10262000FF0390910004892B21F060E080E090E0AE -:1026300003C068E089E892E070E00E941C15809178 -:10264000E8008B778093E80008958091FB03813246 -:1026500009F075C08091FF0390910004892B09F067 -:102660006EC08091E800877F8093E80005C080916C -:10267000FA03882309F463C08091E80082FFF7CF52 -:102680008091F100809391028091E8008B7753C094 -:102690008091FB03813A09F052C08091FF03909131 -:1026A0000004892B09F04BC08091E800877F80935C -:1026B000E8008091E80080FFFCCF80918A0136C05D -:1026C0008091FB038132D9F58091FF039091000442 -:1026D000892BA9F58091E800877F8093E8000E940C -:1026E0001A168091FD0380938A010C9456238091E1 -:1026F000FB03813221F58091E800877F8093E80019 -:102700000E941A168091FE0380938802089580919A -:10271000FB03813AA1F48091E800877F8093E80071 -:102720008091E80080FFFCCF809188028093F100C7 -:102730008091E8008E778093E8000C941A16089533 -:1027400083E093E00E94F0196AE272E183E093E093 -:102750000E94461A60EE71E183E093E00E944A1AFB -:1027600084B7877F84BF88E10FB6F89480936000B8 -:10277000109260000FBE90E080E80FB6F89480934E -:102780006100909361000FBE0E94741D0E946D163F -:102790000E94CA168091E20084608093E2007894DF -:1027A00063E871E183E093E00E94EC196CE771E16A -:1027B00083E093E00E94E41963E571E183E093E034 -:1027C0000E94E8190E940F0E0E9467190E94761D50 -:1027D00080E891E00E94201D0BC00E941E2980917C -:1027E000F803882329F00E94492981110E94681466 -:1027F0008091FA03853089F383E093E00E94F91B0E -:102800000E94801DF5CF292F332723303105B1F0E9 -:102810004CF42130310509F44DC02230310509F066 -:102820004EC007C02132310541F12232310591F10C -:1028300046C0E0EDF0E084EE93E045C0992781309A -:10284000910569F08230910589F0892B09F037C034 -:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0 -:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2 -:10287000E491F0E086E893E026C0643000F5E62FAE -:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF -:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1 -:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA -:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085 -:1028C000F0E080E090E0DA018D939C93CF010895D1 -:1028D00080E189BD82E189BD09B400FEFDCF809110 -:1028E000D8008F7D8093D8008091E0008260809333 -:1028F000E0008091E00081FDFCCF0895BF92CF926F -:10290000DF92EF92FF920F931F93CF93DF937C019F -:102910008B01EA010E943B16B82E811133C020972B -:1029200031F028813981021B130BE20EF31EC12CFA -:10293000D12C23C08091E80085FD15C08091E8006E -:102940008E778093E800209749F0888199818C0DDB -:102950009D1D9983888325E0B22E14C00E943B16EA -:10296000882359F00EC0F70181917F018093F10017 -:1029700001501109FFEFCF1ADF0A01151105D1F639 -:1029800001C0B82E8B2DDF91CF911F910F91FF9039 -:10299000EF90DF90CF90BF900895BF92CF92DF92DB -:1029A000EF92FF920F931F93CF93DF937C018B01E4 -:1029B000EA010E943B16B82E811133C0209731F0F6 -:1029C00028813981021B130BE20EF31EC12CD12C7E -:1029D00023C08091E80085FD15C08091E8008B77C9 -:1029E0008093E800209749F0888199818C0D9D1D86 -:1029F0009983888345E0B42E14C00E943B16882337 -:102A000059F00EC08091F100F70181937F010150D0 -:102A10001109FFEFCF1ADF0A01151105D1F601C028 -:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA -:102A3000DF90CF90BF90089540910104509102041F -:102A40004617570748F06115710539F44091E800C1 -:102A50004E774093E80001C0BA01FC0140E033C06A -:102A60008091FA03882309F444C0853009F443C0F7 -:102A70008091E80083FD41C08091E80082FD33C071 -:102A80008091E80080FF1FC09091F3008091F200D8 -:102A9000392F20E0A901482BCA0106C0419140937B -:102AA000F1006150710901966115710519F08830C6 -:102AB0009105A0F341E0089709F040E08091E8001B -:102AC0008E778093E8006115710551F64111C8CFEA -:102AD0000AC08091FA03882361F0853061F080910B -:102AE000E80083FD0AC08091E80082FFF2CF80E019 -:102AF000089582E0089583E0089581E0089540916B -:102B00000104509102044617570748F061157105FA -:102B100039F44091E8004E774093E80001C0BA01D3 -:102B2000FC0140E034C08091FA03882309F445C0D9 -:102B3000853009F444C08091E80083FD42C0809153 -:102B4000E80082FD34C08091E80080FF20C09091B1 -:102B5000F3008091F200392F20E0A901482BCA012F -:102B600007C044914093F10031966150710901967C -:102B70006115710519F08830910598F341E00897C7 -:102B800009F040E08091E8008E778093E8006115BD -:102B9000710549F64111C7CF0AC08091FA03882315 -:102BA00061F0853061F08091E80083FD0AC080917A -:102BB000E80082FFF2CF80E0089582E0089583E08C -:102BC000089581E00895982F2CC09093E9009817FC -:102BD00039F07091EC002091ED005091F00003C0AD -:102BE000242F762F50E021FD02C09F5F1AC0309144 -:102BF000EB003E7F3093EB003091ED003D7F309352 -:102C0000ED003091EB0031603093EB007093EC00FD -:102C10002093ED005093F0002091EE0027FDE5CFCA -:102C200007C0973090F28F708093E90081E008959B -:102C300080E008958091FB0387FD05C08091E80046 -:102C400080FF0EC012C08091E80082FD05C0809117 -:102C5000FA038111F8CF08958091E8008B7708C0BE -:102C60008091FA038111EACF08958091E8008E7770 -:102C70008093E80008958091E4009091E50045E696 -:102C80002091EC0020FD1FC023C02091FA032223D5 -:102C900091F0253091F02091EB0025FD10C020919E -:102CA000E4003091E5002817390751F34150C9017C -:102CB00039F784E0089582E0089583E0089581E083 -:102CC000089580E008952091E80020FFDECFF9CF3D -:102CD0002091E80022FFD9CFF4CF0E94DB160E949A -:102CE000E316E0EEF0E0808181608083E8EDF0E0C3 -:102CF00080818F77808319BCA7EDB0E08C918E7FA7 -:102D00008C9380818F7E80831092F90308950F93B6 -:102D10001F93CF93DF930E94DB160E94E316C8ED4A -:102D2000D0E088818F7788838881806888838881D4 -:102D30008F7D888319BC1092FA031092F6031092CB -:102D4000F8031092F70300EE10E0F80180818B7F0A -:102D5000808388818160888342E060E080E00E9417 -:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B -:102D7000808181608083808188608083F801808188 -:102D80008E7F8083888180618883DF91CF911F91BE -:102D90000F910895E8EDF0E080818F7E8083E7ED6C -:102DA000F0E080818160808384E082BF81E0809355 -:102DB000F9030C948716E8EDF0E080818E7F808324 -:102DC0001092E20008951092DA001092E100089546 -:102DD0001F920F920FB60F9211242F933F934F9390 -:102DE0005F936F937F938F939F93AF93BF93EF9373 -:102DF000FF938091E10082FF0BC08091E20082FF8F -:102E000007C08091E1008B7F8093E1000E949112C6 -:102E10008091DA0080FF1FC08091D80080FF1BC026 -:102E20008091DA008E7F8093DA008091D90080FF54 -:102E30000DC080E189BD82E189BD09B400FEFDCFEE -:102E400081E08093FA030E947C1205C019BC1092A5 -:102E5000FA030E948A128091E10080FF19C08091DC -:102E6000E20080FF15C08091E2008E7F8093E20037 -:102E70008091E20080618093E2008091D8008062BE -:102E80008093D80019BC85E08093FA030E948E12CB -:102E90008091E10084FF30C08091E20084FF2CC06B -:102EA00080E189BD82E189BD09B400FEFDCF80913A -:102EB000D8008F7D8093D8008091E1008F7E809331 -:102EC000E1008091E2008F7E8093E2008091E20039 -:102ED00081608093E2008091F603882311F084E002 -:102EE00007C08091E30087FF02C083E001C081E05A -:102EF0008093FA030E948F128091E10083FF29C022 -:102F00008091E20083FF25C08091E100877F80935C -:102F1000E10082E08093FA031092F6038091E100D1 -:102F20008E7F8093E1008091E2008E7F8093E200AB -:102F30008091E20080618093E20042E060E080E006 -:102F40000E94E3158091F00088608093F0000E9459 -:102F50008D12FF91EF91BF91AF919F918F917F91D2 -:102F60006F915F914F913F912F910F900FBE0F90F6 -:102F70001F9018951F920F920FB60F9211242F9346 -:102F80003F934F935F936F937F938F939F93AF93F1 -:102F9000BF93CF93EF93FF938091E9008F7090914F -:102FA000EC0090FF02C090E801C090E0C92FC82B50 -:102FB0001092E9008091F000877F8093F000789470 -:102FC0000E94FE171092E9008091F00088608093C3 -:102FD000F000CF70C093E900FF91EF91CF91BF91C6 -:102FE000AF919F918F917F916F915F914F913F91A1 -:102FF0002F910F900FBE0F901F9018951F93CF9396 -:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37 -:10301000CDBFEBEFF3E08091F100819324E0E3304A -:10302000F207C9F70E94EF128091E80083FF37C1D1 -:103030008091FB039091FC03953009F488C038F42B -:103040009130B1F170F0933009F029C131C098305E -:1030500009F4F8C0993009F404C1963009F01FC191 -:103060009DC0803821F0823809F019C108C08091D4 -:10307000F7039091F803992389F082600FC0809143 -:10308000FF03909100048F7099278093E90080914D -:10309000EB0085FB882780F91092E9009091E80009 -:1030A000977F9093E8008093F1001092F100D5C0D3 -:1030B000882319F0823009F0F2C08F7121F082303C -:1030C00009F0EDC00BC08091FD03813009F0E7C02D -:1030D000933009F080E08093F8032FC08091FD03C6 -:1030E00081112BC08091FF03909100048F7099276C -:1030F000009709F4D4C08093E9002091EB0020FFF1 -:103100001CC02091FC03233021F48091EB008062ED -:1031100012C09091EB0090619093EB0021E030E0C1 -:1031200001C0220F8A95EAF72093EA001092EA0084 -:103130008091EB0088608093EB001092E900809111 -:10314000E800877F8093E8000E941A16A8C08111CA -:10315000A6C08091FD039091FE038F779927182FC9 -:103160009091E3009078982B9093E3008091E80091 -:10317000877F8093E8000E941A168091E80080FF04 -:10318000FCCF8091E30080688093E300112311F06D -:1031900083E001C082E08093FA0381C080588230CE -:1031A00008F07DC08091FD039091FE038C3D23E0EB -:1031B000920779F583E08A838AE289834FB7F8948E -:1031C000DE01139620E03EE051E2E32FF0E0509361 -:1031D0005700E49120FF03C0E295EF703F5FEF706E -:1031E0008E2F90E0EA3010F0C79601C0C0968D9304 -:1031F0009D932F5F243149F74FBF8091E800877F6F -:103200008093E8006AE270E0CE0101960E941C15EE -:1032100013C0AE01455D5F4F6091FF030E94031430 -:103220000097E9F12091E800277F2093E800BC0196 -:103230008BA59CA50E947F158091E8008B778093D9 -:10324000E8002DC0803859F58091E800877F809391 -:10325000E8008091F6038093F1008091E8008E777A -:1032600071CF81111CC09091FD039230C0F4809108 -:10327000E800877F8093E8009093F6030E941A1677 -:103280008091F603811104C08091E30087FF02C0A2 -:1032900084E001C081E08093FA030E94D112809102 -:1032A000E80083FF0AC08091E800877F8093E800F0 -:1032B0008091EB0080628093EB00AC960FB6F8949F -:1032C000DEBF0FBECDBFDF91CF911F910895CF9389 -:1032D0008091FA038823B1F08091E9008F7090917A -:1032E000EC0090FF02C090E801C090E0C92FC82B0D -:1032F0001092E9008091E80083FD0E94FE17CF70D4 -:10330000C093E900CF910895881F8827881F0895EA -:1033100091E0883F08F490E0892F0895982F907FDE -:10332000903B99F038F4903981F0903A71F09038F0 -:10333000C9F40BC0903DA1F018F4903C99F410C072 -:10334000903E19F0903F71F402C083E00895E82F99 -:10335000E15FEF3038F4F0E0E15FFD4F80810895E8 -:1033600082E0089580E008950F932F774F776F7074 -:10337000606BDC01ED91FC91022F242F462F63E05E -:1033800070E009950F9108950F932F774F776F7025 -:103390006069DC01ED91FC91022F242F462F63E040 -:1033A00070E009950F9108950F932F774F776F7005 -:1033B0006068DC01ED91FC91022F242F462F63E021 -:1033C00070E009950F910895FC017383628308955D -:1033D000FC01738F628F0895FC01758F648F0895CF -:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A -:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8 -:103400001D821C821F821E82198618861B861A86C0 -:103410001D861C861F861E86198A188A1B8A1A8A90 -:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60 -:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199 -:103440000895CF92DF92FF920F931F93CF93DF9354 -:103450001F92CDB7DEB7F62E6A018C0108511F4FBF -:1034600008C0F60161916F01C80149830E94341CB4 -:1034700049818C2D841B8F15A0F30F90DF91CF9184 -:103480001F910F91FF90DF90CF900895FC01718301 -:1034900060830895FC0171A360A30895AF92BF9269 -:1034A000CF92DF92EF92FF920F931F93CF93DF9310 -:1034B00000D01F92CDB7DEB77C016B01142FB22E66 -:1034C000A02EDC0195968C9195978430F1F45A9654 -:1034D000ED91FC915B97309709F4D8C0CB0101972F -:1034E00063E070E00E943434DB01AA0FBB1FA60F1B -:1034F000B71F49832A830B834C2D4A1B9E012F5FE4 -:103500003F4FBD01C7010995B1C06230710509F493 -:1035100053C06330710529F06130710509F09CC01A -:1035200083C0842F807F803A01F130F48038B9F075 -:10353000803909F0ABC00DC0803EE9F0803F09F151 -:10354000803B09F0A3C0D7011296ED91FC9113972F -:1035500023C0D7011496ED91FC9115971DC0D7019A -:103560001696ED91FC91179717C0D7011896ED911B -:10357000FC91199711C0D7011A96ED91FC911B97F8 -:103580000BC0423F09F082C0D7011C96ED91FC911F -:103590001D97309731F47AC0309709F477C0123F05 -:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C -:1035B0004B2DC70109955AC0842F807F803D59F05B -:1035C000803F79F0803C09F061C0D7011E96ED91F3 -:1035D000FC911F9719C0D7015096ED91FC9151971E -:1035E00013C0433F31F4D7015296ED91FC915397AC -:1035F00008C0413F09F04AC0D7015496ED91FC91B3 -:103600005597309741F442C0309709F43FC0133FBB -:1036100011F0113F19F44B2D612F03C0612F6F7012 -:103620004B2DC701099522C0842F0E948819882339 -:1036300031F0D7015696ED91FC91579707C0163F90 -:1036400029F5D7015896ED91FC9159973097F1F0F3 -:10365000612FC70109950AC064307105A8F416C02E -:103660000A2D2B2D412FB601C7010995D7015E9672 -:10367000ED91FC915F97309789F00A2D2B2D412F0A -:10368000B601C70109950AC0C12CD12CD7015C969F -:10369000ED91FC915D97309719F7E8CF0F900F905F -:1036A0000F90DF91CF911F910F91FF90EF90DF90DE -:1036B000CF90BF90AF900895EF92FF920F931F931A -:1036C000CF93DF93EC01162F862F0E948819882351 -:1036D00069F0FDA081E08DA300E020E0412F61E0D2 -:1036E00070E0CE010E944E1AFDA27CC0812F0E9484 -:1036F00084194DA1882309F440C0443029F01AA34D -:1037000021E030E03FA32EA3812F0E948E1981304B -:1037100031F070F0823051F0833059F507C08DA33D -:1037200000E020E0412F61E070E01EC08DA35AC090 -:10373000103F19F0173FE9F404C084E08DA31AA3E9 -:103740003FC02EA13FA1C90163E070E00E94343464 -:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8 -:103760006EA30CA12BA14AA1CE010E944E1A1DA24C -:1037700039C01DA21FA21EA235C0442399F12EA15B -:103780003FA1C90163E070E00E9434347C01FE0176 -:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC -:1037A0008130910591F082E0E816F104D9F40CA182 -:1037B0002BA14AA1CE010E944E1A8DA1843091F016 -:1037C00081E090E09FA38EA30DC0423059F400E049 -:1037D0002BA14AA1CE010E944E1A8DA1843011F076 -:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A -:1037F0000895CF92DF92EF92FF920F931F93CF9392 -:10380000DF93EC01E8A1F9A1309709F009958E0149 -:1038100008511F4FC8010E94661CE12CF12CC82ED4 -:10382000D12C0FC060E0C8010E947A1C682FCE0125 -:103830000E945C1B61E0C8010E948B1C8FEFE81A9C -:10384000F80AEC14FD0470F3DF91CF911F910F91F2 -:10385000FF90EF90DF90CF900895FC014283748336 -:1038600063831182108208950F931F93CF93DF9388 -:10387000EC01062F0E94AC1C182F298130E0C901F1 -:1038800001966A8170E00E944834488150E08417B4 -:10389000950729F4812F0E94AF1C80E012C0EB81B4 -:1038A000FC81E20FF31F00832981822F90E00196B3 -:1038B0006A8170E00E9448348983812F0E94AF1C86 -:1038C00081E0DF91CF911F910F910895CF93DF9306 -:1038D000EC010E94AC1C29819881291710F0C22F9D -:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E -:1038F000CF910895FC012081862F90E0820F911DC9 -:10390000628170E00E9448340380F481E02DE80F6A -:10391000F91F808108950F931F93CF93DF931F9218 -:10392000CDB7DEB78C0169830E94AC1C482FF8012B -:1039300080816981262F30E0280F311D6281C90105 -:1039400070E00E9448348083842F0F90DF91CF91E4 -:103950001F910F910C94AF1C8FB7F89408958FBFEF -:103960000895FC01CB012091FA032430B1F42181A8 -:103970002F702093E90040E050E064E070E00E9486 -:103980007E1481110BC09091E80095FD07C09091C5 -:10399000E8009E779093E800089582E008952091D2 -:1039A000FA032430A9F4FC0181818F708093E9002F -:1039B0003091F3002091F200932F80E0822B892B2D -:1039C00049F08091E8008E778093E8000C943B16D4 -:1039D00082E0089580E008952091FA03243051F4A4 -:1039E000FC0121812F702093E9002091E80020FD47 -:1039F0000C94CF1C0895FC01CB012091FA032430D4 -:103A000011F080E0089526812F702093E900209125 -:103A1000E80022FFF6CF2091E80025FFF2CF40E03A -:103A200050E064E070E00E94CD148091E80085FDD4 -:103A300005C08091E8008B778093E80081E00895CD -:103A400090939502809394020895E0919402F091EE -:103A50009502309721F00190F081E02D099480E0EB -:103A60000895E0919402F0919502309721F0028040 -:103A7000F381E02D09940895E0919402F09195026C -:103A8000309721F00480F581E02D0994089520916C -:103A90009602309197028217930771F090939702E4 -:103AA00080939602E0919402F0919502309721F074 -:103AB0000680F781E02D09940895209198023091B5 -:103AC00099028217930771F090939902809398025C -:103AD000E0919402F0919502309721F00084F185F5 -:103AE000E02D0994089508950C94731D0E94952962 -:103AF0000E94AD060E94692A0C9411300C94E705CF -:103B00005F926F927F928F929F92AF92BF92CF926D -:103B1000DF92EF92FF920F931F93CF93DF93CDB776 -:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456 -:103B3000BD079AE9C92E92E0D92E00E010E0AA2430 -:103B4000A394B12C502E802F0E9411093C01F60144 -:103B5000E190F1906F01E826F926E114F10431F4C7 -:103B60000F5F1F4F0530110569F73AC08091F002D1 -:103B700081FD0E941A0920E030E04501022E02C0BA -:103B8000880C991C0A94E2F7C4018E219F21892B8D -:103B900009F12E835F826820792081E0672809F48B -:103BA00080E088870E949E298160782F9A87898784 -:103BB0004E815F8168858A850E94391EF801EE0F6B -:103BC000FF1FE656FD4F80819181882599259183BD -:103BD000808316C02F5F3F4F2C30310571F6C0CF68 -:103BE0008FEF89838A831B820E949E298160782FB0 -:103BF0009D838C8349815A816B818D810E94391EFE -:103C00000E94562D1091A4020E94251D1817D9F06C -:103C10000E94251D8093A4022A960FB6F894DEBF59 -:103C20000FBECDBFDF91CF911F910F91FF90EF900D -:103C3000DF90CF90BF90AF909F908F907F906F90CC -:103C40005F900C947E1D2A960FB6F894DEBF0FBECF -:103C5000CDBFDF91CF911F910F91FF90EF90DF903B -:103C6000CF90BF90AF909F908F907F906F905F901C -:103C70000895CF93DF93CDB7DEB72B970FB6F894A7 -:103C8000DEBF0FBECDBF4F83588769877A878B878A -:103C9000DE01119686E0FD0111928A95E9F785E033 -:103CA000FE01379601900D928A95E1F749815A817C -:103CB0006B817C818D819E810E9415262B960FB68B -:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3 -:103CD000C82F882309F4C1C0823859F40E94251DD9 -:103CE00081FDBBC089E30E947C280E94F82889E3FB -:103CF0000CC0833879F40E94251D80FDAEC083E599 -:103D00000E947C280E94F82883E50E949E28CF917B -:103D10000C94F828843859F40E94251D82FD9DC01A -:103D200087E40E947C280E94F82887E4EECF845024 -:103D3000813A48F48C2F0E94732F81118EC08C2FF2 -:103D40000E947C28E4CF8C2F805E883050F4C770AE -:103D500081E090E001C0880FCA95EAF70E94BF2871 -:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD -:103D700031F482E890E005C081E890E002C083E879 -:103D800090E0CF910C94471D8C2F885A833108F016 -:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B -:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB -:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B -:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9 -:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF -:103DE00092E038C082EE90E035C089EE90E032C0BB -:103DF0008AEE90E02FC085EB90E02CC086EB90E03F -:103E000029C087EB90E026C08CEC90E023C08DECBD -:103E100090E020C083E891E01DC08AE891E01AC0DC -:103E200082E991E017C084E991E014C081E292E058 -:103E300011C083E292E00EC084E292E00BC085E202 -:103E400092E008C086E292E005C087E292E002C0FC -:103E500080E090E0CF910C945D1DCF910895882370 -:103E600009F44DC0823859F40E94251D81FF47C0D6 -:103E700089E30E947C280E94F82889E30CC08338DB -:103E800071F40E94251D80FF3AC083E50E947C28C2 -:103E90000E94F82883E50E949E280C94F828843814 -:103EA00059F40E94251D82FF2AC087E40E947C28C5 -:103EB0000E94F82887E4EFCF982F9450913A08F4A5 -:103EC000EACF982F905E983058F4282F277081E021 -:103ED00090E001C0880F2A95EAF70E94C528DDCF3F -:103EE000982F955A933020F480E090E00C94471D71 -:103EF000885A833120F480E090E00C945D1D089591 -:103F0000882321F00E94BF280C94F8280895882364 -:103F100021F00E94C5280C94F8280895BF92CF92F2 -:103F2000DF92EF92FF920F931F93CF93DF93CDB762 -:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A -:103F400085E0F801DE01119601900D928A95E1F766 -:103F5000F80130812181F280558152955F70838113 -:103F60009481892B39F02F3F41F481E090E03F3F6D -:103F700031F003C081E090E002C080E090E080FD7D -:103F800073C339832A8389819A815E830E94392889 -:103F9000B92E8F830E9438280E9460272B2D2295EE -:103FA0002F7030E05E816F812530310509F4E6C065 -:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA -:103FC0008F70223031050CF045C017C02C30310500 -:103FD0004CF42A3031050CF0E7C12830310509F0E6 -:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6 -:103FF0002F30310509F038C323C3182F411101C0F8 -:1040000002C01295107FFF2059F0112309F46BC2F2 -:10401000812F6F830E94CF280E94F8286F8163C28E -:10402000862F0E942F1F112309F41EC3812F0E9487 -:10403000D52827960FB6F894DEBF0FBECDBFDF910F -:10404000CF911F910F91FF90EF90DF90CF90BF9095 -:104050000C94F828403211F08295807F662319F085 -:10406000613071F523C0FF20B1F0511101C032C0A1 -:10407000513081F527960FB6F894DEBF0FBECDBF45 -:10408000DF91CF911F910F91FF90EF90DF90CF9034 -:10409000BF900C94DF28511101C003C0513009F4C6 -:1040A000E3C28E830E94E2288E819AC1FF2021F014 -:1040B000563008F0D9C20EC0553008F0D5C290C1B4 -:1040C000FF20C9F0552331F0F801958190FF0BC214 -:1040D0009F70958327960FB6F894DEBF0FBECDBFB5 -:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 -:1040F000BF900C94801F552309F472C109C22B2D67 -:1041000026952695237030E02115310529F02130C0 -:10411000310509F0A9C219C0FF2021F0862F9B2D7F -:10412000937002C080E090E027960FB6F894DEBF4F -:104130000FBECDBFDF91CF911F910F91FF90EF90F8 -:10414000DF90CF90BF900C94471DFF2021F0862F69 -:104150009B2D937002C080E090E027960FB6F894F4 -:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA -:10417000EF90DF90CF90BF900C945D1D862FFF20B5 -:1041800019F00E945C2C02C00E94C42C27960FB626 -:10419000F894DEBF0FBECDBFDF91CF911F910F917D -:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14 -:1041B000837009F079C0F11057C2262F22952695F9 -:1041C0002770220F220F862F8F70C82ED12CE12C42 -:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A -:1041E000D2F764FF10C06FE070E080E090E004C0A0 -:1041F000660F771F881F991F2A95D2F760957095D3 -:104200008095909503C060E070E0CB012B2D269542 -:1042100026952370422F50E042305105D9F04330AB -:10422000510569F16C297D298E299F29413051055D -:1042300051F127960FB6F894DEBF0FBECDBFDF91C8 -:10424000CF911F910F91FF90EF90DF90CF90BF9093 -:104250000C9475276C297D298E299F2927960FB6E6 -:10426000F894DEBF0FBECDBFDF91CF911F910F91AC -:10427000FF90EF90DF90CF90BF900C9487270E9423 -:104280007527C701B60127960FB6F894DEBF0FBE9B -:10429000CDBFDF91CF911F910F91FF90EF90DF90F5 -:1042A000CF90BF900C946327FF2019F08B2D817065 -:1042B00001C08695882309F4D7C1262F229526951B -:1042C0002770220F220F862F8F70C82ED12CE12C41 -:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439 -:1042E000D2F764FF10C06FE070E080E090E004C09F -:1042F000660F771F881F991F2A95D2F760957095D2 -:104300008095909503C060E070E0CB012B2D269541 -:1043100026952370422F50E042305105D9F04330AA -:10432000510569F16C297D298E299F29413051055C -:1043300051F127960FB6F894DEBF0FBECDBFDF91C7 -:10434000CF911F910F91FF90EF90DF90CF90BF9092 -:104350000C9414286C297D298E299F2927960FB645 -:10436000F894DEBF0FBECDBFDF91CF911F910F91AB -:10437000FF90EF90DF90CF90BF900C9426280E9482 -:104380001428C701B60127960FB6F894DEBF0FBEFA -:10439000CDBFDF91CF911F910F91FF90EF90DF90F4 -:1043A000CF90BF900C940228603F59F120F4603EFA -:1043B00008F494C008C0623F09F467C0F0F1633F9D -:1043C00009F08CC065C0162F1F708B2D8F71FF20D8 -:1043D00021F00E94AD27812F7DCE0E94C827812F1A -:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9 -:1043F0001F910F91FF90EF90DF90CF90BF900C94A2 -:10440000871FFF20B1F0553008F02EC18B2D8F7122 -:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8 -:104420001F910F91FF90EF90DF90CF90BF900C9471 -:10443000E727563008F018C1E9CFFF2099F08B2DFF -:104440008F7127960FB6F894DEBF0FBECDBFDF91F8 -:10445000CF911F910F91FF90EF90DF90CF90BF9081 -:104460000C94AD278B2D8F7127960FB6F894DEBF75 -:104470000FBECDBFDF91CF911F910F91FF90EF90B5 -:10448000DF90CF90BF900C94C827F110EBCFD7CF1F -:10449000FF2099F08B2D8F7127960FB6F894DEBF11 -:1044A0000FBECDBFDF91CF911F910F91FF90EF9085 -:1044B000DF90CF90BF900C949E2727960FB6F8946C -:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047 -:1044D000EF90DF90CF90BF900C949927FF20A9F028 -:1044E000552309F4ACCF862F27960FB6F894DEBF7C -:1044F0000FBECDBFDF91CF911F910F91FF90EF9035 -:10450000DF90CF90BF900C94671E552309F4AACF7B -:10451000862F27960FB6F894DEBF0FBECDBFDF9172 -:10452000CF911F910F91FF90EF90DF90CF90BF90B0 -:104530000C942F1F4B2D4F70C8010E941A03279611 -:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4 -:104550000F91FF90EF90DF90CF90BF900C94CB26FF -:10456000F11082C09B2D9F70492F50E042305105C1 -:1045700099F144F44115510569F04130510509F0B4 -:1045800073C019C043305105C1F14430510509F0E1 -:104590006BC044C027960FB6F894DEBF0FBECDBFE8 -:1045A000DF91CF911F910F91FF90EF90DF90CF900F -:1045B000BF900C94223027960FB6F894DEBF0FBE42 -:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2 -:1045D000CF90BF900C94393027960FB6F894DEBF79 -:1045E0000FBECDBFDF91CF911F910F91FF90EF9044 -:1045F000DF90CF90BF900C94553027960FB6F8946B -:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 -:10461000EF90DF90CF90BF900C946830862F279654 -:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3 -:104630000F91FF90EF90DF90CF90BF900C948C3053 -:104640004B2D4F70C80127960FB6F894DEBF0FBEF2 -:10465000CDBFDF91CF911F910F91FF90EF90DF9031 -:10466000CF90BF900C941B0927960FB6F894DEBF2D -:104670000FBECDBFDF91CF911F910F91FF90EF90B3 -:10468000DF90CF90BF9008950E94DC280E94B1284F -:104690000E94F8280E94F72D0E944B2D80E090E0A8 -:1046A0000E94471D80E090E00C945D1D0E94CC2884 -:1046B0000C9444230E943928292F22952F7030E032 -:1046C0002C3031054CF42A3031056CF4225031097C -:1046D0002230310590F407C02C30310551F02F30D5 -:1046E000310559F406C0803E10F0803F31F481E07E -:1046F000089593FB882780F9089580E00895CF936B -:10470000DF9300D000D01F92CDB7DEB70F900F908F -:104710000F900F900F90DF91CF910895CF93DF937B -:1047200000D000D000D0CDB7DEB726960FB6F894F3 -:10473000DEBF0FBECDBFDF91CF9108951F93CF9302 -:10474000DF93C091DB0216E012C0D0E01C9FF001A5 -:104750001D9FF00D1124E555FD4F4081518162816F -:104760007381848195810E948E232196C7708091E8 -:10477000DC02C813EACFDF91CF911F9108954091D9 -:10478000A5025091A6026091A7027091A8028091A3 -:10479000A9029091AA020C948E230F931F93CF939A -:1047A000DF938091AA0282958F7009F069C0809191 -:1047B000A702882309F464C0A091DB02D091DC0237 -:1047C000B091A502C091A6028091A8029091A90281 -:1047D00021E030E0BF3F11F020E030E0122FBC01BB -:1047E0006095709506E04AC0009721F0CF3F29F40C -:1047F000212F05C021E030E002C020E030E020FDA4 -:104800003BC04A2F50E0049FF001059FF00D11249A -:10481000E555FD4F2181C2132FC02081B2132CC05A -:104820002281211129C0238134812817390718F0EA -:10483000281B390B02C0260F371F283C3105E0F436 -:104840008091AA028F7080618093AA0286E0849F83 -:10485000F001859FF00D1124E055FD4F80818F7090 -:104860008061808385EA92E00E948E1FDF91CF9164 -:104870001F910F910C949E23AF5FA770AD13B4CF1F -:10488000DF91CF911F910F910895EF92FF920F93B7 -:104890001F93CF93DF93CDB7DEB762970FB6F8942F -:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695 -:1048B00001900D928A95E1F7D8014C9111965C9187 -:1048C000119712966C9112971396ED90FC90149795 -:1048D0007091A502E091A6028091A8029091A90290 -:1048E000009739F0EF3F41F421E030E07F3F31F0B5 -:1048F00003C021E030E002C020E030E020FD5CC1D8 -:104900002091A702222309F4F1C0E816F90628F045 -:104910009701281B390BC90104C0809590958E0D15 -:104920009F1D883C910508F098C08091AA02982F9D -:10493000907F09F064C0E51314C0741312C06111B4 -:1049400010C08F7080618093AA020E94BF2385EA05 -:1049500092E00E948E1F8091AA02D80115968C9336 -:1049600043C1EF2839F05F3F41F481E090E04F3FD1 -:1049700031F003C081E090E002C080E090E080FD73 -:1049800003C081E0862702C080E090E080FF2EC057 -:104990008091DB022091DC0236E013C090E0389F6A -:1049A000F001399FF00D1124E555FD4F718157132A -:1049B00006C07081471303C07281671317C0019648 -:1049C00087708213EBCF12C19F7059F0882309F4CE -:1049D0000BC107C09F7029F0F8019581907F09F401 -:1049E00003C1805E883008F4FFC0D2C0662309F49A -:1049F000FBC08091AA0281608093AA02F5C0E513F2 -:104A000008C0741306C0611104C0D80115968C93B8 -:104A10009DC04D875E878D859E856A8B0E945A2337 -:104A20006A89882309F4B4C0662309F4B1C02091CF -:104A3000AA02822F82958F7090E002970CF4C6C074 -:104A40008091A5029091A60298878F831986FB8694 -:104A5000EA862C87CE01079646C08091AA02982F3D -:104A6000907F59F47E2DF98AE88A89890E947F23F4 -:104A700085EA92E00E948E1F95C0E51311C0741361 -:104A80000FC061110DC0F8018583C8010E948E1FFF -:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F -:104AA0004D875E878D859E856A8B0E945A236A8911 -:104AB000882309F46DC0662309F46AC02091AA0214 -:104AC000822F82958F7090E002970CF47FC08091C6 -:104AD000A5029091A6029A8389831B82FD82EC82B3 -:104AE0002E83CE0101960E948E1F70C0E816F90633 -:104AF00028F09701281B390BC90104C080959095B7 -:104B00008E0D9F1D883C910508F046C0662309F470 -:104B10003FC0E51330C074132EC02091AA0220FDBF -:104B200021C0322F32953F70832F90E00097D1F053 -:104B3000D80115962C9315970F9741F0832F8F5F0F -:104B40008295807F2F70282B15962C93C8010E9488 -:104B50008E1F86E0F801A5EAB2E001900D928A95D9 -:104B6000E1F73EC086E0F801A5EAB2E001900D92BF -:104B70008A95E1F737C04D875E878D859E850E94B7 -:104B80005A23811123C08091AA0281608093AA02D6 -:104B9000C8010E948E1F26C07E2DF98AE88A898965 -:104BA0000E947F23E5EAF2E086E0DF011D928A950C -:104BB000E9F70E94BF2318C0662351F34D875E8733 -:104BC0008D859E850E945A23882311F386E0F80183 -:104BD000A5EAB2E001900D928A95E1F70E94CD23FB -:104BE0000E94BF2381E014C080E012C04D875E8721 -:104BF0008D859E850E943928292F22952F7030E0BF -:104C0000223031050CF4E0CE243031050CF6E2CE32 -:104C100062960FB6F894DEBF0FBECDBFDF91CF9185 -:104C20001F910F91FF90EF9008951F93CF93DF9303 -:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51 -:104C40004F83588769877A878B879C87CE01079621 -:104C50000E9445248823D9F02F8138858A859B8539 -:104C6000892B39F03F3F19F080E090E004C02F3FDE -:104C7000D9F781E090E0892B09F06DC04F8158850C -:104C800069857A858B859C850E948E2364C086E029 -:104C9000FE013796DE01119601900D928A95E1F79B -:104CA000FF81E8854A855B854115510539F0EF3F65 -:104CB00041F481E090E0FF3F31F003C081E090E0FB -:104CC00002C080E090E080FD46C02091DC0230E030 -:104CD000C9010196877099276091DB0270E0861701 -:104CE000970709F440C0F983EA835D834C8396E01B -:104CF000929FD001939FB00D1124A555BD4FFE0189 -:104D0000319601900D929A95E1F78093DC020E9412 -:104D10009E2321C0189FC001112485559D4F0E94DC -:104D20004524882371F1E091DB021E9FF0011124DC -:104D3000E555FD4F40815181628173818481958168 -:104D40000E948E238091DB0290E001968770992764 -:104D50008093DB0201C016E08091DB029091DC02BF -:104D60008913D8CF0EC00E9456231092DC021092F5 -:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1 -:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1 -:104D9000CF911F910895DF92EF92FF920F931F938F -:104DA000CF93DF93EC01009709F46EC0D12CEE2471 -:104DB000E394F12C8E010F5F1F4FFE018491843725 -:104DC00048F4843008F04CC0813071F0823009F032 -:104DD0005BC01EC0853709F43FC080F1982F9458FE -:104DE000903708F051C03FC02296F8018491982F67 -:104DF000905E983050F48770FE2D01C0FF0F8A95A9 -:104E0000EAF78F2F0E94CF2813C00E94671E2FC081 -:104E10002296F8018491982F905E983060F4877004 -:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B -:104E30000E94F8281CC00E942F1F19C02296F8015A -:104E4000049107C08FE99FE00197F1F700C00000CF -:104E500001500111F7CF0BC02296F801D49007C082 -:104E60000E94671E03C08F770E942F1FE8018D2DBF -:104E700007C08150EFE9FFE03197F1F700C0000073 -:104E8000882309F497CFF5CFDF91CF911F910F9130 -:104E9000FF90EF90DF9008956093E1027093E2023B -:104EA0008093E3029093E4020C9444236093DD0228 -:104EB0007093DE028093DF029093E0020C9444230F -:104EC00008950C944C270F931F930091E1021091C9 -:104ED000E2022091E3023091E402602B712B822BDD -:104EE000932B1F910F910C944C270F931F930091BC -:104EF000E1021091E2022091E3023091E40260238A -:104F00007123822393231F910F910C944C270F93AD -:104F10001F930091E1021091E2022091E30230918F -:104F2000E40260277127822793271F910F910C9429 -:104F30004C2760E070E0CB010C94562741E050E034 -:104F400060E070E004C0440F551F661F771F8A950C -:104F5000D2F7CB01BA010C94562741E050E060E053 -:104F600070E004C0440F551F661F771F8A95D2F763 -:104F70008091DD029091DE02A091DF02B091E0020B -:104F8000482B592B6A2B7B2BCB01BA010C9456274B -:104F900041E050E060E070E004C0440F551F661F20 -:104FA000771F8A95D2F740955095609570958091BE -:104FB000DD029091DE02A091DF02B091E002482371 -:104FC00059236A237B23CB01BA010C94562741E075 -:104FD00050E060E070E004C0440F551F661F771F6B -:104FE0008A95D2F78091DD029091DE02A091DF02D6 -:104FF000B091E002482759276A277B27CB01BA01E5 -:105000000C9456270F931F930091DD021091DE023E -:105010002091DF023091E002602B712B822B932BC9 -:105020001F910F910C9456270F931F930091DD024F -:105030001091DE022091DF023091E00260237123A3 -:10504000822393231F910F910C9456270F931F9344 -:105050000091DD021091DE022091DF023091E0022A -:1050600060277127822793271F910F910C94562751 -:105070000895CF92DF92EF92FF920F931F93CF93F9 -:10508000DF93EC01C090E102D090E202E090E302F5 -:10509000F090E4028091DD029091DE02A091DF02A7 -:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF -:1050B000B701A601002E04C07695679557954795D0 -:1050C0000A94D2F740FF08C0BE01802F0E947104ED -:1050D0008130910509F007C00150110948F7BE0160 -:1050E00080E00E947104DF91CF911F910F91FF909A -:1050F000EF90DF90CF90089540918B0150918C01FB -:1051000020E030E09FEFFA01E20FF31F62816817A1 -:10511000A1F09F3F19F4611101C0922F2F5F3F4F03 -:105120002630310581F707C0FA01E90FF11D97FD1F -:10513000FA95828308959F3FB9F7089540918B01B6 -:1051400050918C0120E030E0FA01E20FF31F9281D0 -:10515000981301C012822F5F3F4F26303105A1F70F -:10516000089581E090E0E0918B01F0918C01E80FCF -:10517000F91F1082019688309105A9F70895909142 -:10518000E502982B9093E502089580959091E502B1 -:1051900098239093E50208951092E5020895909166 -:1051A000E602982B9093E602089580959091E6028E -:1051B00098239093E60208951092E6020895809352 -:1051C000E70208951092E702089540918B015091F3 -:1051D0008C0120E030E080E0FA01E20FF31F9181C2 -:1051E00091118F5F2F5F3F4F27303105A9F7089549 -:1051F000E0918B01F0918C018091E5028083E09138 -:105200008B01F0918C0180819091E602892B808343 -:105210009091E702992361F0E0918B01F0918C016C -:105220008081892B80830E94E52881110E94E228D9 -:1052300080918B0190918C010C94311D8091FA0327 -:10524000843021F11092F10220E488E190E00FB661 -:10525000F894A895809360000FBE2093600080E0D2 -:105260000E94590383B7817F846083BF83B78160C5 -:1052700083BF7894889583B78E7F83BF88E10FB60C -:10528000F89480936000109260000FBE0895089516 -:105290000895CF9380E00E9459030E9447290E94FD -:1052A000BD070E944829C0E08C2F0E941109892B5C -:1052B00029F4CF5FC530C1F780E001C081E0CF9114 -:1052C00008950E94562380E00E9459030E941130E5 -:1052D0000E94251D0C94E7051F920F920FB60F92A6 -:1052E00011248F939F93AF93BF938091F10281110B -:1052F00013C08091F2029091F302A091F402B09158 -:10530000F5024196A11DB11D8093F2029093F30224 -:10531000A093F402B093F502BF91AF919F918F914A -:105320000F900FBE0F901F90189582E084BD93E000 -:1053300095BD9AEF97BD80936E0008958FB7F8944E -:105340004091F2025091F3026091F4027091F502E3 -:105350008FBFCA010895CF92DF92EF92FF920F9311 -:105360001F932FB7F8944091F2025091F30260918D -:10537000F4027091F5022FBF6A017B01EE24FF2435 -:105380008C0120E030E0C016D106E206F30620F0E2 -:105390009A01281B390B05C09C0120953095240FDC -:1053A000351FC9011F910F91FF90EF90DF90CF90B3 -:1053B00008951F920F920FB60F9211248F939F930F -:1053C000AF93BF938091F2029091F302A091F40207 -:1053D000B091F5020196A11DB11D8093F202909348 -:1053E000F302A093F402B093F502BF91AF919F91A5 -:1053F0008F910F900FBE0F901F9018950E946D1601 -:10540000F8942FEF87EA91E6215080409040E1F731 -:1054100000C0000087E090EBDC01809304049093CF -:105420000504A0930604B09307042CE088E190E003 -:105430000FB6F894A895809360000FBE209360008B -:10544000FFCFCF92DF92EF92FF920F931F93CF93F4 -:10545000DF93C82ED12C01E010E08D2D0E941109A0 -:105460007C01C0E0D0E098010C2E02C0220F331F57 -:105470000A94E2F72E213F21232B29F42196CC30E8 -:10548000D10589F708C06C2F7D2D80E00E944C0467 -:10549000C812F4CF06C0D39485E0D812DECF80E0E6 -:1054A00001C081E0DF91CF911F910F91FF90EF90AC -:1054B000DF90CF900895CF93C82F8CE20E94212ACD -:1054C000882321F08C2FCF910C94212A80E0CF915A -:1054D0000895CF930E94AC2B811102C00E948D2BA6 -:1054E000C5E608C00E94BD078FE39CE90197F1F76C -:1054F00000C00000C150B1F789E20E945B2A81110F -:105500000AC18AE20E945B2A81110E948D2B85E0EC -:105510000E945B2A81110E94FE290E94B72B809372 -:10552000F00287E00E945B2A882399F18BE10E94B8 -:105530005B2A882351F09091F00291FB882780F933 -:1055400021E0822780FB91F922C08EE00E945B2A35 -:10555000882351F09091F00292FB882780F921E096 -:10556000822780FB92F913C080E10E945B2A909110 -:10557000F002882341F093FB882780F921E08227FD -:1055800080FB93F904C0892F809580FB90F990935C -:10559000F0028091F0020E94BB2B0E94C92B8093E5 -:1055A000010380EE0E945B2A882341F08091010371 -:1055B000982F909590FB80F98093010389E30E94D6 -:1055C0005B2A882359F09091010391FB882780F989 -:1055D00021E0822780FB91F99093010382EE0E94E3 -:1055E0005B2A882359F09091010392FB882780F968 -:1055F00021E0822780FB92F99093010386EE0E94BE -:105600005B2A882359F09091010393FB882780F946 -:1056100021E0822780FB93F99093010383EE0E949F -:105620005B2A882359F09091010394FB882780F925 -:1056300021E0822780FB94F99093010385E30E9487 -:105640005B2A882359F09091010395FB882780F904 -:1056500021E0822780FB95F99093010381E30E946A -:105660005B2A882359F09091010396FB882780F9E3 -:1056700021E0822780FB96F99093010381E10E944B -:105680005B2A882359F09091010397FB882780F9C2 -:1056900021E0822780FB97F9909301038091010319 -:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8 -:1056B0005B2A8111C2608FE10E945B2A8111C46064 -:1056C00080E20E945B2A8111C86081E20E945B2A0D -:1056D0008111C06182E20E945B2A8111C06283E273 -:1056E0000E945B2A8111C06484E20E945B2A8823A5 -:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B -:105700006C2F03C00E94C02B682F70E080E090E0F7 -:10571000CF910C946127CF9108956DEE7EEF80E0DC -:1057200090E00E94783460E082E090E00E946A3469 -:1057300060E083E090E00E946A3460E084E090E002 -:105740000E946A3460E085E090E00E946A3460E084 -:1057500086E090E00C946A3480E090E00E9464342B -:1057600021E08D3E9E4F09F020E0822F089582E0D7 -:1057700090E00C945C34682F82E090E00C946A34E2 -:1057800083E090E00C945C34682F83E090E00C940C -:105790006A3484E090E00C945C34682F84E090E0FC -:1057A0000C946A3486E090E00C945C34682F86E0B8 -:1057B00090E00C946A348091FE0280FF0BC06091EF -:1057C000900185E0689FB0011124759567957595E6 -:1057D00067952AC081FF09C06091900185E0689FAC -:1057E000B0011124759567951FC082FF07C06091B5 -:1057F000900185E0689FB001112416C04091F80225 -:105800004423C9F060918F01461788F720919001D9 -:1058100085E0289F90011124429FC001439F900D75 -:10582000112470E00E9448346038710540F461151D -:10583000710539F002C065E070E0862F08958FE7AA -:10584000089581E008958091FE0280FF08C0609174 -:105850008E0170E0759567957595679521C081FFFC -:1058600006C060918E0170E07595679519C082FF42 -:1058700004C060918E0170E010C08091F80288230E -:10588000C1F060918D018617A0F790918E01989FCD -:10589000C001112470E00E9448346038710528F47A -:1058A0006115710521F0862F08958FE7089581E035 -:1058B000089561E070E0F4CF803F21F40E94DB2B7B -:1058C000819504C0813F29F40E94DB2B8093FB0269 -:1058D0000895823F21F40E94DB2B819504C0833F11 -:1058E00029F40E94DB2B8093FA020895893F19F472 -:1058F0000E94232C05C08A3F31F40E94232C8195FD -:105900008093FC0208958B3F21F40E94232C819503 -:1059100004C08C3F29F40E94232C8093FD0208953B -:10592000843F21F48091F902816017C0853F21F402 -:105930008091F902826011C0863F21F48091F902C2 -:1059400084600BC0873F21F48091F902886005C014 -:10595000883F31F48091F90280618093F9020895C3 -:105960008D3F21F48091FE0281600BC08E3F21F4B7 -:105970008091FE02826005C08F3F29F48091FE0273 -:1059800084608093FE020895803F29F48091FB0299 -:1059900087FF6EC007C0813F41F48091FB0218165B -:1059A0000CF066C01092FB0263C09091FA02823F35 -:1059B00019F497FF5DC005C0833F31F419160CF050 -:1059C00057C01092FA0254C0893F31F48091FC0212 -:1059D00018160CF04DC006C08A3F39F48091FC02C5 -:1059E00087FF46C01092FC0243C08B3F29F4809190 -:1059F000FD0287FF3DC006C08C3F39F48091FD0257 -:105A00001816B4F51092FD0233C0843F21F4809142 -:105A1000F9028E7F05C0853F31F48091F9028D7FB8 -:105A20008093F90225C0863F21F48091F9028B7F93 -:105A3000F7CF873F21F48091F902877FF1CF883F2C -:105A400021F48091F9028F7EEBCF8D3F21F480917C -:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F -:105A600005C08F3F29F48091FE028B7F8093FE0258 -:105A70008091FA0281110EC08091FB0281110AC04F -:105A80008091FC02811106C08091FD02811102C04B -:105A90001092F802089589EF92E00E943C1D0E9446 -:105AA0009E299093F7028093F6020895CF938091F8 -:105AB000F6029091F7020E94AB294091F80244232C -:105AC00021F02091910130E006C0209192015AE02E -:105AD000259F900111248217930708F486C08091B6 -:105AE000FA0281110DC09091FB02911109C09091B1 -:105AF000FC02911105C09091FD02992309F475C033 -:105B00004F3F19F04F5F4093F802181624F40E949B -:105B1000DB2B8093FA028091FA0287FF05C00E9476 -:105B2000DB2B81958093FA028091FB02181624F4F6 -:105B30000E94DB2B8093FB028091FB0287FF05C054 -:105B40000E94DB2B81958093FB026091FA02662311 -:105B500039F1C091FB02CC2319F1772767FD7095CD -:105B6000872F972F0E94AC3123E333E343E35FE3B6 -:105B70000E9460320E9479316093FA026C2F77277D -:105B800067FD7095872F972F0E94AC3123E333E395 -:105B900043E35FE30E9460320E9479316093FB022D -:105BA0008091FC02181624F40E94232C8093FC029E -:105BB0008091FC0287FF05C00E94232C8195809371 -:105BC000FC028091FD02181624F40E94232C80937D -:105BD000FD028091FD0287FF05C00E94232C819564 -:105BE0008093FD02CF910C944B2DCF910895E9EF56 -:105BF000F2E085E0DF011D928A95E9F71092F80244 -:105C00001092FE020895833089F130F4813061F002 -:105C1000823009F06EC019C0853009F449C0B8F16E -:105C2000863009F066C055C020919201862F90E021 -:105C3000820F911D8F3F910520F4620F60939201B6 -:105C400008958FEF80939201089520919101862FFE -:105C500090E0820F911D8F3F910520F4620F6093B9 -:105C6000910108958FEF8093910108952091900103 -:105C7000862F90E0820F911D8F3F910520F4620FD7 -:105C80006093900108958FEF809390010895209183 -:105C90008F01862F90E0820F911D8F3F910520F498 -:105CA000620F60938F0108958FEF80938F010895A5 -:105CB00020918E01862F90E0820F911D8F3F9105DC -:105CC00020F4620F60938E0108958FEF80938E0110 -:105CD000089520918D01862F90E0820F911D8F3FB6 -:105CE000910520F4620F60938D0108958FEF8093EA -:105CF0008D010895833021F130F4813059F08230E4 -:105D000009F049C012C0853089F128F1863009F0C8 -:105D100042C037C080919201681720F4861B80939F -:105D2000920108951092920108958091910168174F -:105D300020F4861B8093910108951092910108959B -:105D400080919001681720F4861B8093900108953C -:105D500010929001089580918F01681720F4861B9E -:105D600080938F01089510928F01089580918E0184 -:105D7000681720F4861B80938E01089510928E017F -:105D8000089580918D01681720F4861B80938D0102 -:105D9000089510928D01089541E050E060E070E0B8 -:105DA00004C0440F551F661F771F8A95D2F7CB0199 -:105DB000BA010E9461270C945623873200F58E3178 -:105DC00008F086C08E3009F466C060F4873009F4AC -:105DD0004DC018F4863049F531C0883041F18B3020 -:105DE00021F57BC0863109F478C018F48031E9F4DC -:105DF0005CC0893109F471C08B31B9F442C0883379 -:105E000009F46BC048F4893209F460C0853309F4A1 -:105E10005DC0873251F45AC0833409F457C018F476 -:105E20008A3318F057C0883499F080E008950E94B2 -:105E3000B72B0E94C92B0E94D22B4FC08091F00239 -:105E4000817F8E7F8093F00281E08093FF0208952E -:105E50000E9456232FEF83ED90E321508040904025 -:105E6000E1F700C000000E94FE2937C08091F002D7 -:105E700080FF03C0817F8E7F01C081608093F0022C -:105E80002CC09091F00291FB882780F921E08227B5 -:105E900080FB91F913C09091F00292FB882780F962 -:105EA00021E0822780FB92F909C09091F00293FBD8 -:105EB000882780F921E0822780FB93F99093F002F4 -:105EC000882359F091609093F00207C080E003C0EE -:105ED0008D5101C089530E94CC2E81E0089580E04D -:105EE000089580E00895CF93C82F8091FF028130FC -:105EF00071F020F0823009F089C037C0A0918B0189 -:105F0000B0918C018C91823209F082C007C0A091BF -:105F10008B01B0918C018C91823249F48C2F0E94BC -:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64 -:105F30000E94712F811115C0C43169F030F4CB304B -:105F400081F0C03109F068C009C0C93221F0C833FE -:105F500009F062C006C01092FF025EC082E080932A -:105F6000FF0281E090E081705AC0C932C9F060F44C -:105F7000C431B1F020F4C73009F04CC034C0CE5168 -:105F8000C63008F047C017C0CE3439F120F4CB3406 -:105F900009F040C01CC0C135C1F0C235D9F513C0ED -:105FA00080910003882319F01092000333C081E030 -:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161 -:105FC0008093000327C061E003C061E007C06AE07E -:105FD000809100030E94032E1DC06AE0809100039F -:105FE0000E947A2E17C08EE18093920182E3809303 -:105FF00091018AE08093900184E180938F0188E091 -:1060000080938E0188E280938D0104C01092FF027C -:1060100080E005C081E003C080E090E0A4CFCF9194 -:1060200008950E94AC2B811102C00E948D2B0E940A -:10603000D22B8093030480FF02C0869501C080E0CC -:106040000C94590380910304982F9695292F30E0E2 -:10605000233031054CF49F5F990F8170892B81604B -:10606000809303040E94D62B8091030486950C94A0 -:10607000590380910304982F969591F09158990FA8 -:106080008170892B809303048E7F91E009F490E066 -:106090008091030490FB80F9809303040E94D62B27 -:1060A0008091030486950C94590380910304982FE2 -:1060B000909590FB80F9809303040E94D62B8091E9 -:1060C000030480FF02C0869501C080E00C94590350 -:1060D00030910304232F26952F5F2F77822F90E096 -:1060E000317004972CF4220F232B2093030402C059 -:1060F0003093030480910304282F2E7F91E009F44C -:1061000090E090FB80F9809303040E94D62B80914D -:10611000030486950C94590320910304922F9695BD -:106120009827990F822F8170892B809303048E7F8B -:1061300091E009F490E08091030490FB80F9809352 -:1061400003040E94D62B8091030486950C94590376 -:106150005058BB27AA270ED075C166D130F06BD13D -:1061600020F031F49F3F11F41EF45BC10EF4E09572 -:10617000E7FB51C1E92F77D180F3BA1762077307A4 -:106180008407950718F071F49EF58FC10EF4E09521 -:106190000B2EBA2FA02D0B01B90190010C01CA01E1 -:1061A000A0011124FF27591B99F0593F50F4503E8C -:1061B00068F11A16F040A22F232F342F4427585F7E -:1061C000F3CF469537952795A795F0405395C9F796 -:1061D0007EF41F16BA0B620B730B840BBAF091504E -:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED -:1061F000BA0F621F731F841F48F4879577956795C0 -:10620000B795F7959E3F08F0B3CF9395880F08F0A8 -:106210009927EE0F979587950895D9D008F481E0D6 -:1062200008950CD00FC107D140F0FED030F021F41A -:106230005F3F19F0F0C0511139C1F3C014D198F388 -:106240009923C9F35523B1F3951B550BBB27AA27F7 -:1062500062177307840738F09F5F5F4F220F331F69 -:10626000441FAA1FA9F333D00E2E3AF0E0E830D035 -:1062700091505040E695001CCAF729D0FE2F27D038 -:10628000660F771F881FBB1F261737074807AB0706 -:10629000B0E809F0BB0B802DBF01FF2793585F4F7B -:1062A0002AF09E3F510568F0B6C000C15F3FECF395 -:1062B000983EDCF3869577956795B795F7959F5F40 -:1062C000C9F7880F911D9695879597F90895E1E094 -:1062D000660F771F881FBB1F621773078407BA07F3 -:1062E00020F0621B730B840BBA0BEE1F88F7E0954E -:1062F000089504D06894B111D9C00895BCD088F035 -:106300009F5790F0B92F9927B751A0F0D1F0660FA1 -:10631000771F881F991F1AF0BA95C9F712C0B130BC -:1063200081F0C3D0B1E00895C0C0672F782F8827CF -:10633000B85F39F0B93FCCF3869577956795B395FB -:10634000D9F73EF490958095709561957F4F8F4F6A -:106350009F4F0895E89409C097FB3EF4909580956F -:10636000709561957F4F8F4F9F4F9923A9F0F92F1B -:1063700096E9BB279395F695879577956795B79599 -:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F -:106390007F4F8F4F9F4F16C0882311F096E911C091 -:1063A000772321F09EE8872F762F05C0662371F0B2 -:1063B00096E8862F70E060E02AF09A95660F771FC6 -:1063C000881FDAF7880F9695879597F90895990FA2 -:1063D0000008550FAA0BE0E8FEEF16161706E807AF -:1063E000F907C0F012161306E407F50798F0621BD0 -:1063F000730B840B950B39F40A2661F0232B242BA5 -:10640000252B21F408950A2609F4A140A6958FEFC3 -:10641000811D811D089597F99F6780E870E060E015 -:1064200008959FEF80EC089500240A94161617062D -:1064300018060906089500240A9412161306140675 -:1064400005060895092E0394000C11F4882352F0D8 -:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90 -:106460008F4F9F4F089557FD9058440F551F59F077 -:106470005F3F71F04795880F97FB991F61F09F3F31 -:1064800079F087950895121613061406551FF2CF5A -:106490004695F1DF08C0161617061806991FF1CFAA -:1064A00086957105610508940895E894BB276627D1 -:1064B0007727CB0197F908958ADF08F48FEF0895C5 -:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C -:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7 -:1064E000950F50E0551F629FF001729FBB27F00D82 -:1064F000B11D639FAA27F00DB11DAA1F649F6627D7 -:10650000B00DA11D661F829F2227B00DA11D621F25 -:10651000739FB00DA11D621F839FA00D611D221FDF -:10652000749F3327A00D611D231F849F600D211DC3 -:10653000822F762F6A2F11249F5750408AF0E1F066 -:1065400088234AF0EE0FFF1FBB1F661F771F881FAF -:1065500091505040A9F79E3F510570F05CCFA6CFF7 -:106560005F3FECF3983EDCF3869577956795B7959A -:10657000F795E7959F5FC1F7FE2B880F911D9695C4 -:10658000879597F90895FA01EE0FFF1F30962105C0 -:10659000310599F16115710561F48038BFE39B07FE -:1065A00049F168949038810561F08038BFEF9B070E -:1065B00041F0992342F5FF3FE1053105210511F135 -:1065C000E8940894E795D901AA2329F4AB2FBE2FAC -:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD -:1065E00050F019F0FF3A38F49F779F930CD00F903A -:1065F00007FC905808953EF014CF60E070E080E80A -:106600009FE308954FE79F775F934F933F932F93B7 -:106610009ED02F913F914F915F9152DF05C019F4A9 -:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784 -:1066300007F80F92E8942BE33AEA48EB5FE74EDF66 -:106640000F920F920F924DB75EB70F92C0D0ECEA47 -:10665000F0E016D04F915F91EF91FF91E595EE1F1D -:10666000FF1F49F0FE57E0684427EE0F441FFA95DC -:10667000E1F74195550B32D00F9007FE26C00895E3 -:10668000DF93CF931F930F93FF92EF92DF927B01E3 -:106690008C01689405C0DA2EEF011EDFFE01E8943C -:1066A000A5912591359145915591AEF3EF0162DDAC -:1066B000FE019701A801DA9479F7DF90EF90FF903F -:1066C0000F911F91CF91DF9108959B01AC0160E084 -:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1 -:1066E0009923D9F3940F511DBBF39150504094F06E -:1066F00059F0882332F0660F771F881F9150504061 -:10670000C1F79E3F510544F7880F911D96958795D7 -:1067100097F908955F3FACF0983E9CF0BB278695B3 -:1067200077956795B79508F4B1609395C1F7BB0F5E -:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87 -:10674000E3CFB4CE0EF076C06CCE689464CE93DE08 -:10675000C8F39923D1F3C6F3DF93CF931F930F931D -:10676000FF92C92FDD2788232AF02197660F771F14 -:10677000881FDAF720E030E040E85FEB9FE38839DC -:1067800020F0803E30F021968F77E3DCE4EDF0E0FE -:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F -:1067A000FB2E6F5771097595771F880B990BD4DDF8 -:1067B00028E132E741E35FE38FDEAF2D9801AE01C0 -:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166 -:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785 -:1067E0003327442750781FC0B75188F4AB2F0024BB -:1067F000469537952795011CA395D2F3002069F0A3 -:10680000220F331F441FB395DAF30DD0A1CC6130B2 -:106810007105A0E88A07B94630F49B01AC016627F0 -:10682000772788279078309621F020833183428320 -:10683000538308959F3F31F0915020F487957795C9 -:106840006795B795880F911D9695879597F9089547 -:10685000991B79E004C0991F961708F0961B881FB2 -:106860007A95C9F780950895AA1BBB1B51E107C013 -:10687000AA1FBB1FA617B70710F0A61BB70B881FD0 -:10688000991F5A95A9F780959095BC01CD0108955F -:1068900097FB072E16F4009407D077FD09D00E94CD -:1068A000343407FC05D03EF4909581959F4F0895B0 -:1068B000709561957F4F0895F999FECF92BD81BD86 -:1068C000F89A992780B50895A8E1B0E042E050E039 -:1068D0000C947F34262FF999FECF1FBA92BD81BD4B -:1068E00020BD0FB6F894FA9AF99A0FBE0196089552 -:1068F0000E946A34272F0C946B34DC01CB01FC011D -:10690000F999FECF06C0F2BDE1BDF89A319600B408 -:0E6910000D9241505040B8F70895F894FFCF13 -:10691E0055D0A44600001644000000000000484276 -:10692E0061978A460000C8430000000000004842FC -:10693E0055D024460000C843000000000000484225 -:10694E0000005C460000C843000000000000484202 -:10695E0061978A4600007A4455D0A4460000C84389 -:10696E00000000000000484200005C460000C843E2 -:10697E00000000000000484255D024460000164496 -:10698E000507000C058540000001064000000100CF -:10699E0091102111FD10C810941001E8022808145E -:1069AE000A321E42004500250026004300610060A9 -:1069BE000020003700640065006600670044004652 -:1069CE000024004700000002000400050007000933 -:1069DE00000B000C000E0010001100130015001724 -:1069EE000018001A001C001D001F002100230024A7 -:1069FE00002600280029002B002D002F0030003229 -:106A0E000034003500370039003B00F6030F042830 -:106A1E0004410469051C05E604C6043F4D362002F8 -:106A2E000302000001000101010101000101010248 -:086A3E00030405060708090026 +:100000000C947C050C94C0050C94C0050C94C005A0 +:100010000C94C0050C94C0050C94C0050C94C0054C +:100020000C94C0050C94C0050C94C7180C94991935 +:100030000C94B2270C94C0050C94C0050C94C00518 +:100040000C94C0050C94C0050C94C0050C94C0051C +:100050000C94C0050C941A280C94C0050C94C0058F +:100060000C94C0050C94C0050C94C0050C94C005FC +:100070000C94C0050C94C0050C94C0050C94C005EC +:100080000C94E50E0C94C0050C94C0050C94C005AE +:100090000C94C0050C94C0050C94C0050C94C005CC +:1000A0000C94C0050C94C0050C94C0051B062B06CF +:1000B0003D064D06530662066E06730680068806E8 +:1000C00098069D06061A281A161B281A161B6D1A62 +:1000D000901A161BE51AF81AFB1DFB1D381E381E58 +:1000E000921ED01E48214821E91E4821EA1FEA1F1E +:1000F000AD20C4204821332107634236B79BD8A7DF +:100100001A39685618AEBAAB558C1D3CB7CC57633C +:10011000BD6DEDFD753EF6177231BF000000803FEA +:1001200008000000BE922449123EABAAAA2ABECD06 +:10013000CCCC4C3E00000080BEABAAAAAA3E000078 +:100140000000BF000000803F000000000008417870 +:10015000D3BB4387D1133D190E3CC3BD4282AD2BA7 +:100160003E68EC8276BED98FE1A93E4C80EFFFBE9F +:1001700001C4FF7F3F000000000035001E001F008B +:100180002000210022002300240025002600270053 +:100190002A002B0014001A000800150017001C008C +:1001A00018000C00120013004C0029000400160077 +:1001B000070009000A000B000D000E000F003300BD +:1001C0003400E1001D001B000600190005001100AD +:1001D000100036003700380028000530E000E2004B +:1001E000E30003302C002C0004305000510052007A +:1001F0004F0035001E001F002000210022002300B8 +:1002000024002500260027002A002B0014001A00D5 +:10021000090013000A000D000F0018001C00330035 +:100220004C002900040015001600170007000B0001 +:10023000110008000C0012003400E1001D001B003A +:100240000600190005000E001000360037003800C7 +:1002500028000530E000E200E30003302C002C0011 +:1002600004305000510052004F0035001E001F00A6 +:100270002000210022002300240025002600270062 +:100280002A002B0034003600370013001C00090040 +:100290000A00060015000F004C002900040012009F +:1002A000080018000C0007000B00170011001600D2 +:1002B0003800E100330014000D000E001B000500A3 +:1002C00010001A0019001D0028000530E000E200AF +:1002D000E30003302C002C00043050005100520089 +:1002E0004F0035021E021F022002210222022302B9 +:1002F00024022502260227022A0035021E021F02BE +:1003000020022102220223022402250226022702C1 +:100310004C004C003A003B003C003D003E003F00DA +:100320002D022E022F023002310201004000410056 +:1003300042004300440045000100010001000100AB +:1003400001000100010001000100010001000100A5 +:100350000100AB00AA00A900AE0035001E001F007E +:100360002000210022002300240025002600270071 +:100370002A0035001E001F0020002100220023005B +:1003800024002500260027004C004C003A003B00CA +:100390003C003D003E003F002D002E002F003000AD +:1003A000310001004000410042004300440045008C +:1003B0000100010001000100010001000100010035 +:1003C00001000100010001000100AB00AA00A9002A +:1003D000AE0000000000000000000000000000006F +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:100430000000000000000000000003300000000089 +:100440000430000000000000000000000000000078 +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F000000000000000000000003A003B003C0047 +:100900003D003E003F0040004100420043004400E3 +:10091000450001000050010001000100010001003C +:1009200001000100010001004C0001000100010074 +:1009300007300630135012500030013002300100F1 +:10094000010001000B300A300930083001000100BD +:10095000010001000100010001000100010001008F +:10096000010001000100010001000100010001007F +:1009700001002A0354006800650020005000720046 +:1009800065006F006E006900630020004B00650089 +:10099000790062006F0061007200640000002C03A7 +:1009A0004F007200740068006F006C0069006E00F8 +:1009B00065006100720020004B0065007900620054 +:1009C0006F006100720064007300000004030904FA +:1009D00009025400030100A0FA0904000001030108 +:1009E0000100092111010001223F000705810308D0 +:1009F000000A09040100010301020009211101009C +:100A000001224D000705820308000A0904020001C3 +:100A100003000000092111010001223600070583AF +:100A20000308000A1201100100000008EDFE6160D9 +:100A300001000102000105010980A10185021601E2 +:100A40000026B7001A01002AB70075109501810031 +:100A5000C0050C0901A1018503160100269C021A9C +:100A600001002A9C02751095018100C00501090250 +:100A7000A1010901A1000509190129051500250198 +:100A80009505750181029501750381010501093004 +:100A900009311581257F9502750881060938158170 +:100AA000257F950175088106050C0A3802158125F8 +:100AB0007F950175088106C0C005010906A10105E1 +:100AC0000719E029E71500250195087501810295B0 +:100AD0000175088101050819012905950575019120 +:100AE000029501750391010507190029FF150025DD +:100AF000FF950675088100C011241FBECFEFDAE014 +:100B0000DEBFCDBF04B603FE24C08091F3039091F5 +:100B1000F403A091F503B091F6038730904BA74002 +:100B2000B04BB9F41092F3031092F4031092F50352 +:100B30001092F60314BE84B7877F84BF88E10FB696 +:100B4000F89480936000109260000FBEE0E0F8E33C +:100B5000099512E0A0E0B1E0E8EAF3E602C00590F2 +:100B60000D92A63FB107D9F713E0A6EFB2E001C09E +:100B70001D92A33FB107E1F70E940D160C94D231EC +:100B80000C940000279A2F988FEF9FEF9093870087 +:100B9000809386008AE08093800089E180938100C1 +:100BA0000C94092D282F81110BC080918000877F24 +:100BB0008093800010928D0010928C002F980895E1 +:100BC0002F9880918000886080938000233019F4F2 +:100BD0008FEF9FEF0FC083E090E0821B9109880F99 +:100BE000991F2FEF3FEFA90102C0569547958A95AF +:100BF000E2F7CA0190938D0080938C000895CF9303 +:100C0000DF93EC010E94AE28BE0180E090E0DF910E +:100C1000CF910C9428250F931F93462F50E04C3012 +:100C2000510508F098C0DC01FA01EA5AFF4F12960C +:100C30008C910C949631882309F48DC000E010E06B +:100C4000980140E064E070E089EC91E00E9463125A +:100C500081E090E00FC0882309F47DC000E010E03F +:100C6000980140E066E070E089E591E00E9463123F +:100C700082E090E00E94FF056EC0882309F46BC0FB +:100C800000E010E0980140E068E070E089E891E061 +:100C90000E94631284E090E0EDCF882311F083E09E +:100CA00005C083E00CC0882349F084E00E94A5259C +:100CB00040E164E083E00E94C90A4DC084E00E94E4 +:100CC000C625F6CF882331F085EE0E948F1C0E9446 +:100CD000602D41C085EE0E94571D3DC08823D9F18B +:100CE0000E94F70D38C08823B1F10E94F00D00E09A +:100CF00010E0980140E064E070E089EE91E029C0E6 +:100D0000882349F185E00E94C6250E94180E23C061 +:100D1000882309F100E010E0980140E068E070E00D +:100D200089E191E00E94631285E00E94A52513C02D +:100D3000882389F00E94F61204C0882361F00E9483 +:100D4000011300E010E0980140E068E070E089E104 +:100D500091E00E94631280E090E01F910F9108954E +:100D60000F931F932FEF89EF90E021508040904028 +:100D7000E1F700C0000000E010E0980140E064E00E +:100D800070E089EE91E00E9463121F910F91089527 +:100D9000CF92DF92EF92FF920F931F93CF93DF9347 +:100DA000CDB7DEB7CC58D1090FB6F894DEBF0FBE71 +:100DB000CDBF2091B30325FFC5C08C01FC019281FA +:100DC00080910001992309F460C096E4E5E2F2E025 +:100DD000DE01A95BBF4F01900D929A95E1F7F801F2 +:100DE0009081E091F602F091F702E90FF11DEE0F0C +:100DF000FF1F27E430E02C0F3D1FE20FF31F60813F +:100E00007181680F711D882777FD8095982F0E944A +:100E1000A42E20E030E040E451E40E94092E6B0152 +:100E20007C01F801218185E090E0821B9109BC01E1 +:100E3000882777FD8095982F0E94A42E9B01AC01F6 +:100E4000C701B6010E94A12D9B01AC0160E070E0DA +:100E500080E090E40E94173020E030E04CE551E45F +:100E60000E94B42F4FE050E0C457DF4F0FB6F89404 +:100E7000DEBF0FBECDBFDF91CF911F910F91FF90CD +:100E8000EF90DF90CF900C94031296E4E5E2F2E04D +:100E9000DE01119601900D929A95E1F7F80190818B +:100EA000E091F602F091F702E90FF11DEE0FFF1F3E +:100EB00021E030E02C0F3D1FE20FF31F60817181B4 +:100EC000680F711D882777FD8095982F0E94A42EAA +:100ED00020E030E040E451E40E94092E6B017C01E7 +:100EE000F801218185E090E0821B9109BC018827EF +:100EF00077FD8095982F0E94A42E9B01AC01C7011D +:100F0000B6010E94A12D9B01AC0160E070E080E081 +:100F100090E40E94173020E030E04CE551E40E945C +:100F2000B42FC457DF4F0FB6F894DEBF0FBECDBF4E +:100F3000DF91CF911F910F91FF90EF90DF90CF90B5 +:100F40000C944B0EC457DF4F0FB6F894DEBF0FBEA4 +:100F5000CDBFDF91CF911F910F91FF90EF90DF9068 +:100F6000CF9008950F931F9300E010E0980140E0A8 +:100F700063E070E081E091E00E9463122FEF82E570 +:100F800097E0215080409040E1F700C000001F91A1 +:100F90000F91089508950E94C2056E9A769A0C9456 +:100FA000B0060C94CA070C94C8060895880F991FC0 +:100FB000FC01E650F040859194910895880F991FA7 +:100FC000FC01E658FE4F8591949108950F931F936D +:100FD000CF93DF93EC01811520E49207A0F5C115B2 +:100FE00080E3D80708F0E1C0C83ED105D8F4C03E80 +:100FF000D10508F0EEC1C83AD10578F4C53AD1055B +:1010000008F074C0C130D10509F46DC008F4DEC128 +:10101000C430D10508F0DDC1D9C1CB3BD10508F4FE +:1010200070C0D4C1C11590E2D90708F0B9C0C1158C +:1010300021E0D20708F0CDC1C03FD10508F4C6C1F8 +:101040008E01106506C2C13080E5D80709F4BDC025 +:1010500068F5C13120E4D20709F4AEC050F4C031C4 +:1010600090E4D90708F0A5C0CF70DD278E01146D7C +:10107000F0C1C33120E4D20709F4A4C008F49FC032 +:10108000C115D04509F0A2C10E946C210E94180E22 +:101090000E94B2079FEF24E38CE0915020408040F3 +:1010A000E1F700C000000E943F28D3C1C11520E62F +:1010B000D20730F4C11581E5D80708F48CC02DC1E2 +:1010C000C11590E7D90708F481C1C11520E8D207FE +:1010D00008F478C1C11580E9D80708F077C1DF703E +:1010E0008E01106AB6C101E010E0B3C1C53AD10566 +:1010F00009F471C1C63AD10509F070C102E810E4E3 +:10110000A8C1C83AD10509F46CC1C93AD10509F49E +:101110006BC1CA3AD10509F46AC1CB3AD10509F4C9 +:1011200069C1CC3AD10509F468C1CD3AD10509F4B9 +:1011300067C1C03BD10509F466C1CE3AD10509F4B7 +:1011400065C1CF3AD10509F464C1C13BD10509F4A9 +:1011500063C1C23BD10509F462C1C33BD10509F4A7 +:1011600061C1C43BD10509F460C1C53BD10509F497 +:101170005FC1C63BD10509F45EC1C73BD10509F487 +:101180005DC1C83BD10509F45CC1C93BD10509F477 +:101190005BC1CA3BD10509F45AC100E014E459C14E +:1011A000CE019F700E94DE0755C1DD278E01106CB5 +:1011B00050C100E011ED4DC100E010ED4AC100E06A +:1011C00012ED47C100E013ED44C18091C703816077 +:1011D0008093C7033EC10E949B28811102C00E94D8 +:1011E00077280E94B32890E09093F2038093F10354 +:1011F000C23090E5D90721F48091F103816086C067 +:10120000C43020E5D20721F48091F10382607EC0D2 +:10121000C63080E5D80721F48091F103846076C060 +:10122000C83090E5D90719F48091F10327C0CA307E +:1012300020E5D20721F48091F103806167C0CC30B2 +:1012400080E5D80721F48091F10380625FC0CE3041 +:1012500090E5D90721F48091F103806457C0C03133 +:1012600020E5D20721F48091F10380684FC0C2319C +:1012700080E5D80729F48091F1038460886046C036 +:10128000C33090E5D90721F48091F1038E7F3EC0F1 +:10129000C53020E5D20721F48091F1038D7F36C05F +:1012A000C73080E5D80721F48091F1038B7F2EC0F1 +:1012B000C93090E5D90719F48091F10326C0CB30ED +:1012C00020E5D20721F48091F1038F7E1FC0CD303D +:1012D00080E5D80721F48091F1038F7D17C0CF30CE +:1012E00090E5D90721F48091F1038F7B0FC0C131C4 +:1012F00020E5D20721F48091F1038F7707C0C33135 +:10130000D04531F48091F1038B7F877F8093F10387 +:101310008091F1030E94B7289CC08D2F99278F7070 +:10132000992781309105D9F49E012370332702C09B +:10133000880F991F2A95E2F79C688E0144E0000F00 +:10134000111F4A95E1F700271370802B912B53E072 +:10135000CC0FDD1F5A95E1F7C076DD272FC0823014 +:10136000910531F4DC2FCC278E01016F106A71C01A +:101370008330910569F4CE018370992701E010E074 +:1013800002C0000F111F8A95E2F7C8019C680FC0C8 +:10139000049709F05EC0CE018370992701E010E048 +:1013A00002C0000F111F8A95E2F7C8019A6823E076 +:1013B000CC0FDD1F2A95E1F7C07ED7708C010C2B76 +:1013C0001D2B47C0DF708E01106243C000E010E0AB +:1013D00040C08E013EC001E810E43BC003E810E4C9 +:1013E00038C002EE14E435C009EE14E432C00AEE4F +:1013F00014E42FC005EB14E42CC006EB14E429C060 +:1014000007EB14E426C00CEC14E423C00DEC14E448 +:1014100020C003E815E41DC00AE815E41AC002E97B +:1014200015E417C004E915E414C001E216E411C084 +:1014300003E216E40EC004E216E40BC005E216E473 +:1014400008C006E216E405C007E216E402C00AE29C +:1014500016E4C801DF91CF911F910F9108959CE090 +:10146000799FF00111249CE3899FE00DF11D112467 +:10147000E60FF11DEE0FFF1FE658FE4F8591949188 +:10148000803E9105E0F4803C910558F5813391054B +:1014900009F46FC048F48932910509F463C08A32B7 +:1014A000910509F46DC072C089339105E9F0823865 +:1014B0009105D1F08533910509F44DC067C0833E95 +:1014C000910581F138F4803E9105B9F0823E910595 +:1014D000D9F05CC0863E910561F1873E9105A1F18E +:1014E00055C00E94D60708952091F10320FD02C047 +:1014F00021FF4CC080EE90E049C08091F10380FF55 +:10150000F9CF89E390E042C08091F10382FF0EC0E1 +:101510008091F10384FF03C080E090E037C083EE48 +:1015200090E034C08091F10382FFF2CF82EE90E030 +:101530002DC08091F10383FF0BC08091F10384FDE6 +:10154000EBCF87EE90E022C08091F10383FFF5CFCF +:1015500086EE90E01BC08091F10385FF07C089E211 +:1015600090E014C08091F10385FFF9CF85E390E00E +:101570000DC08091F10386FF07C08AE290E006C0AB +:101580008091F10386FFF9CF81E390E00E94E607A6 +:101590000895CF92DF92EF92FF920F931F9301E095 +:1015A00010E020E030E06801790104C0CC0CDD1CC3 +:1015B000EE1CFF1C8A95D2F704C0000F111F221FDA +:1015C000331F6A95D2F70C291D292E293F29C09077 +:1015D000B303D090B403E090B503F090B603C022FB +:1015E000D122E222F322842FC016D106E206F306AE +:1015F00041F41F910F91FF90EF90DF90CF900C94EA +:10160000A5251F910F91FF90EF90DF90CF900C9444 +:10161000C62508950C94090B5F926F927F928F926A +:101620009F92AF92BF92CF92DF92EF92FF920F9371 +:101630001F93CF93DF93CDB7DEB72A970FB6F894F9 +:10164000DEBF0FBECDBFCE0101966C014E019BE007 +:10165000890E911C20E030E040E050E060E070E056 +:1016600000E010E0E12CF12C6C2C5D2C8AE0782E4F +:10167000AA24A394B12CEBE6F2E0A62DB52D872D7C +:1016800001900D928A95E1F7F601819191916F0198 +:10169000FC01E07FFF27E032F10559F48F709927B4 +:1016A000F50102C0EE0FFF1F8A95E2F7EE2AFF2A2E +:1016B00037C0E033F10559F48F709927F50102C066 +:1016C000EE0FFF1F8A95E2F70E2B1F2B29C0E03487 +:1016D000F10559F48F709927F50102C0EE0FFF1F35 +:1016E0008A95E2F76E2B7F2B1BC0E035F10559F48C +:1016F0008F709927F50102C0EE0FFF1F8A95E2F760 +:101700004E2B5F2B0DC0E036F10551F48F709927F9 +:10171000F50102C0EE0FFF1F8A95E2F72E2B3F2B3B +:10172000C814D90409F0A7CF84B19E2D90958923C0 +:1017300084B985B1E82AE5B887B1902F90958923BF +:1017400087B988B1082B08B98AB1962F909589235B +:101750008AB98BB1682B6BB98DB1942F9095892381 +:101760008DB98EB1482B4EB980B3922F90958923B5 +:1017700080BB81B3282B21BB2A960FB6F894DEBF1D +:101780000FBECDBFDF91CF911F910F91FF90EF90D2 +:10179000DF90CF90BF90AF909F908F907F906F9091 +:1017A0005F9008955F926F927F928F929F92AF9217 +:1017B000BF92CF92DF92EF92FF920F931F93CF933E +:1017C000DF93CDB7DEB768970FB6F894DEBF0FBED4 +:1017D000CDBF85B7806885BF85B7806885BF0E940B +:1017E0000C0BCE0101966C014E0199E1890E911C02 +:1017F00020E030E040E050E060E070E000E010E029 +:10180000E12CF12C6C2C5D2C88E1782EAA24A39479 +:10181000B12CE5E7F2E0A62DB52D872D01900D92B4 +:101820008A95E1F7F601819191916F01FC01E07FCA +:10183000FF27E032F10559F48F709927F50102C0B6 +:10184000EE0FFF1F8A95E2F7EE2AFF2A37C0E0333A +:10185000F10559F48F709927F50102C0EE0FFF1FB3 +:101860008A95E2F70E2B1F2B29C0E034F10559F4BD +:101870008F709927F50102C0EE0FFF1F8A95E2F7DE +:101880006E2B7F2B1BC0E035F10559F48F70992723 +:10189000F50102C0EE0FFF1F8A95E2F74E2B5F2B7A +:1018A0000DC0E036F10551F48F709927F50102C0A3 +:1018B000EE0FFF1F8A95E2F72E2B3F2BC814D90499 +:1018C00009F0A7CF84B19E2D9095892384B985B165 +:1018D000E82AE5B887B1902F9095892387B988B118 +:1018E000082B08B98AB1962F909589238AB98BB1B4 +:1018F000682B6BB98DB1942F909589238DB98EB1DA +:10190000482B4EB980B3922F9095892380BB81B329 +:10191000282B21BBE2E0F3E0A8EFB2E01192119294 +:101920001D921D9283E0EC30F807C1F768960FB660 +:10193000F894DEBF0FBECDBFDF91CF911F910F9105 +:10194000FF90EF90DF90CF90BF90AF909F908F90DF +:101950007F906F905F900C94CB075F926F927F9215 +:101960008F929F92AF92BF92CF92DF92EF92FF92AF +:101970000F931F93CF93DF93CDB7DEB7A2970FB628 +:10198000F894DEBF0FBECDBF6E0149E1C40ED11C7D +:1019900088EFA82E82E0B82E75019AE0592E4601F4 +:1019A00001E010E028E1622E35E0732EEBE6F2E074 +:1019B000D401852D01900D928A95E1F7D6018D9184 +:1019C0009D916D019C01207F33272032310591F4D8 +:1019D00024B18F709927F80102C0EE0FFF1F8A957E +:1019E000E2F7CF01922F982B94B995B18095892376 +:1019F00085B953C02033310591F427B18F709927F1 +:101A0000A80102C0440F551F8A95E2F7CA01922F20 +:101A1000982B97B998B18095892388B93EC0203416 +:101A2000310591F42AB18F709927D80102C0AA0F0D +:101A3000BB1F8A95E2F7CD01922F982B9AB99BB1E3 +:101A4000809589238BB929C02035310591F42DB1BA +:101A50008F709927F80102C0EE0FFF1F8A95E2F7F9 +:101A6000CF01922F982B9DB99EB1809589238EB975 +:101A700014C02036310589F420B38F709927A8014E +:101A800002C0440F551F8A95E2F7CA01922F982B86 +:101A900090BB91B38095892381BB50EA5A95F1F7A9 +:101AA000BE016F5F7F4F20E030E040E050E0E5E7AF +:101AB000F2E0DE011196862D01900D928A95E1F7F4 +:101AC000DB018D919D91BD01FC01E07FFF27E0329C +:101AD000F10511F4E3B113C0E033F10511F4E6B1FF +:101AE0000EC0E034F10511F4E9B109C0E035F105AB +:101AF00011F4ECB104C0E036F105B9F4EFB1F0E057 +:101B00008F70992702C0F595E7958A95E2F7E0FD79 +:101B100008C0C801042E02C0880F991F0A94E2F77A +:101B200002C080E090E0282B392B4F5F5F4F4C3094 +:101B3000510509F0BCCFF70180819181821793078D +:101B400021F031832083709209020E940C0BF2E095 +:101B5000EF0EF11C42E0E41643E0F40609F026CF54 +:101B6000809109028823C9F081508093090288235B +:101B700039F08FE99FE00197F1F700C000000DC038 +:101B8000E2E0F3E0D5018D919D915D018193919308 +:101B9000B2E0AB16B3E0BB06A9F70E94D10781E023 +:101BA000A2960FB6F894DEBF0FBECDBFDF91CF91E6 +:101BB0001F910F91FF90EF90DF90CF90BF90AF906B +:101BC0009F908F907F906F905F900895E82FF0E046 +:101BD000EE0FFF1FEE5FFC4F808191810895089505 +:101BE0008091DC0381608093DC030C94C928809190 +:101BF000DC038E7F8093DC030C94C9280E949B2811 +:101C0000811102C00E9477280E94C5288093DC03BE +:101C10003E9A809171008D7F8093710082E0809365 +:101C200090008AE18093910081E080930E030895F3 +:101C300080910E03811102C00E94FE0D10925E037E +:101C400010925D03809171008D7F8093710080916F +:101C500090008F77809390001092200310921F03C2 +:101C600010925703109258031092590310925A037E +:101C70001092560310925503E5E3F3E0A5E2B3E0BA +:101C800011921192119211921D921D9283E0E535ED +:101C9000F807B1F70895CF92DF92EF92FF920F937A +:101CA0001F93CF93DF9320911F03222309F484C055 +:101CB0006B017C0180910E03811102C00E94FE0D18 +:101CC00005E513E0C7E0D0E0A7019601F801929185 +:101CD0008291729162918F010E94052E811131C013 +:101CE000FE01EE0FFF1FEE0FFF1FEB5CFC4F10829B +:101CF000118212821382DE01AA0FBB1FAB5DBC4FA3 +:101D000011961C921E92C730D105E9F021964481AC +:101D10005581668177814083518362837383148206 +:101D200015821682178212968D919C9113971196A7 +:101D30009C938E9313961C921E9212973496129631 +:101D4000E2CF219708F680915D0390915E030197A1 +:101D500097FD05C090935E0380935D0304C01092CD +:101D60005E0310925D0380915D0390915E0320916C +:101D70005B0330915C032817390724F010925C0351 +:101D800010925B03892BC1F4809171008D7F809349 +:101D90007100809190008F7780939000109257038C +:101DA000109258031092590310925A03109256033E +:101DB0001092550310921F03DF91CF911F910F9145 +:101DC000FF90EF90DF90CF9008951F920F920FB683 +:101DD0000F9211244F925F926F927F928F929F92F7 +:101DE000AF92BF92CF92DF92EF92FF922F933F93E9 +:101DF0004F935F936F937F938F939F93AF93BF9313 +:101E0000CF93DF93EF93FF9380911F03882309F40F +:101E10009BC1C0915D03D0915E031C161D060CF0A2 +:101E200093C140900F035090100360901103709085 +:101E3000120320E030E0A901C301B2010E94B02FDB +:101E400018160CF065C0C130D10509F452C080915C +:101E50005B0390915C03BE010E9482317C019093F0 +:101E60005C0380935B038090210390902203A090F9 +:101E70002303B090240320E030E040E85FE3C50195 +:101E8000B4010E94A12D60932103709322038093DB +:101E9000230390932403F701EE0FFF1FEE0FFF1FA4 +:101EA000EB5CFC4FA301920160817181828193817F +:101EB0000E94092E20E030E040E05EE30E94B42F53 +:101EC0009B01AC01C501B4010E94B02F18168CF41F +:101ED000C7010196BE010E94823190935C038093FA +:101EE0005B0310922103109222031092230310929D +:101EF0002403E0915B03F0915C03EE0FFF1FEE0FF4 +:101F0000FF1FEB5CFC4F6081718182819381D0C0A7 +:101F1000C0905703D0905803E0905903F0905A03B3 +:101F200020E030E0A901C701B6010E94052E2197EB +:101F3000882309F4A2C0FE01EE0FFF1FEE0FFF1F62 +:101F4000EB5CFC4F80809180A280B380A50194015E +:101F5000C701B6010E94052E87FF31C0A50194017B +:101F600060E070E08CED93EC0E94092E20E030E000 +:101F700040E451E40E94092E20E030E040E05FE3BD +:101F80000E94B42F9B01AC0160E070E080E090E41F +:101F90000E9417309B01AC01C501B4010E94B42F0F +:101FA0009B01AC01C701B6010E94052E87FF07C047 +:101FB000A701960160E070E08CED93E439C0A501C3 +:101FC0009401C701B6010E94B02F18160CF055C03D +:101FD000A501940160E070E08CED93E40E94092E6D +:101FE00020E030E040E451E40E94092E20E030E09F +:101FF00040E05FE30E94B42F9B01AC0160E070E021 +:1020000080E090E40E9417309B01AC01C501B4014F +:102010000E94B42F9B01AC01C701B6010E94B02FF2 +:1020200018165CF5A701960160E070E08CED93EC6A +:102030000E94092E20E030E040E451E40E94092E85 +:1020400020E030E040E05FE30E94B42F9B01AC0150 +:1020500060E070E080E090E40E9417309B01AC01EA +:10206000C701B6010E94B42F6093570370935803C1 +:102070008093590390935A0313C0FE01EE0FFF1F84 +:10208000EE0FFF1FEB5CFC4F80819181A281B38139 +:102090008093570390935803A0935903B0935A0326 +:1020A00060915703709158038091590390915A039E +:1020B00020910C0330910D032F3F4FEF340731F087 +:1020C0002F5F3F4F30930D0320930C030E940C139E +:1020D0006B017C0120E034E244EF51E40E94052EC4 +:1020E00087FF08C086EFC82E88E2D82E84EFE82E3E +:1020F00081E4F82E20E030E040E051E4C701B60171 +:102100000E94B42F9B01AC0160E074E284E79BE481 +:102110000E94092E6B017C010E94712E7093970022 +:102120006093960020910A0230910B0240910C02BC +:1021300050910D02C701B6010E94B42F0E94712E6A +:10214000709399006093980080912003882309F48C +:1021500033C1C0901B03D0901C03E0901D03F0908E +:102160001E0320E030E0A901C701B6010E94B02F94 +:102170001816D4F580910C0390910D038F3F2FEF2B +:10218000920729F0019690930D0380930C03C701E9 +:10219000B6010E940C1320E030E040E051E40E94C0 +:1021A000B42F9B01AC0160E074E284E79BE40E94E1 +:1021B000092E6B017C010E94712E70939700609331 +:1021C000960020910A0230910B0240910C0250912E +:1021D0000D02C701B6010E94B42F0E94712E7093A8 +:1021E00099006093980008C0109297001092960092 +:1021F0001092990010929800609115037091160347 +:102200006F5F7F4F709316036093150320919600C4 +:102210003091970080E090E0232BF1F0C091960080 +:10222000D09197000E94A22E6B017C01BE0180E03C +:1022300090E00E94A22E9B01AC0160911703709167 +:1022400018038091190390911A030E94092E20E02F +:102250003FEF4FE757E410C00E94A22E6B017C01B4 +:1022600020E030EE4FEF54E46091170370911803B3 +:102270008091190390911A030E94B42F9B01AC0125 +:10228000C701B6010E94B02F87FD96C0809113034D +:102290008F5F8093130390E02091D8033091D9038E +:1022A00082179307A0F08091E303882319F010921E +:1022B00013030DC0809171008D7F80937100809118 +:1022C00090008F7780939000109220037DC08091C2 +:1022D0001403C0911303811128C0C090DD03D09076 +:1022E000DE03E090DF03F090E00320E030E0A9019E +:1022F000C701B6010E94B02F1816BCF481E080938C +:10230000140310921B0310921C0310921D031092D1 +:102310001E03C0921703D0921803E0921903F092A3 +:102320001A03C150C093130343C0109214031092B8 +:102330000D0310920C03E091DA03F091DB0348E007 +:10234000C49FE00DF11D112480819181A281B38190 +:1023500080931B0390931C03A0931D03B0931E0353 +:1023600020E030E040E85EE36481758186819781FA +:102370000E94B42F6B017C0120E030E048EC52E475 +:1023800060910E0270910F028091100290911102E3 +:102390000E94092E9B01AC01C701B6010E94B42F17 +:1023A00060931703709318038093190390931A0393 +:1023B00010921603109215038091DC0380FD04C077 +:1023C0001092200310921F03FF91EF91DF91CF91A4 +:1023D000BF91AF919F918F917F916F915F914F913D +:1023E0003F912F91FF90EF90DF90CF90BF90AF90F3 +:1023F0009F908F907F906F905F904F900F900FBE47 +:102400000F901F901895CF92DF92EF92FF92CF938B +:10241000DF936B017C01EA0180910E03811102C000 +:102420000E94FE0D8091DC0380FF46C080915D0319 +:1024300090915E0308970CF03FC0809171008D7FF2 +:10244000809371008091200381110E94180E81E019 +:1024500080931F0310920D0310920C0320E030E0D4 +:10246000A901C701B6010E94B02F1816DCF48091B3 +:102470005D0390915E03FC01EE0FFF1FEE0FFF1F47 +:10248000EB5CFC4FC082D182E282F382FC01EE0F52 +:10249000FF1FEB5DFC4FD183C083019690935E03D9 +:1024A00080935D03809171008260809371008091C0 +:1024B0009000806880939000DF91CF91FF90EF9023 +:1024C000DF90CF9008958F929F92AF92BF92CF925C +:1024D000DF92EF92FF920F931F93CF93DF93EC0164 +:1024E0007B01D42E4801590180910E03811102C055 +:1024F0000E94FE0D8091DC0380FF6BC08091710013 +:102500008D7F8093710080911F0381110E94180EAE +:1025100081E080932003D093DB03C093DA03F09231 +:10252000D903E092D803D092E3038092DD03909226 +:10253000DE03A092DF03B092E00310922103109219 +:102540002203109223031092240310921303888114 +:102550009981AA81BB8180931B0390931C03A09354 +:102560001D03B0931E0320E030E040E85EE36C8181 +:102570007D818E819F810E94B42F6B017C0120E0C0 +:1025800030E048EC52E460910E0270910F028091AD +:102590001002909111020E94092E9B01AC01C7010B +:1025A000B6010E94B42F60931703709318038093B1 +:1025B000190390931A031092160310921503809139 +:1025C0007100826080937100809190008068809398 +:1025D0009000DF91CF911F910F91FF90EF90DF90CE +:1025E000CF90BF90AF909F908F90089580915F03A0 +:1025F00090E0019666E070E00E94823180935F0374 +:10260000089580915F0390E0019766E070E00E947A +:10261000823180935F0308958F929F92AF92BF9211 +:10262000CF92DF92EF92FF920F931F93CF93DF939E +:102630006B017C01C0910C03D0910D03BE0180E0C1 +:1026400090E00E94A22E4B015C01A701960160E080 +:1026500070E08CE594E40E94092E9B01AC01C50159 +:10266000B4010E94B42F0E94762E20915F03233084 +:1026700009F473C028F4222351F02130E9F02CC171 +:10268000243009F4A0C0253009F4E0C025C180E061 +:1026900090E0A0E0BFE380930A0290930B02A09326 +:1026A0000C02B0930D0210920F03109210031092BF +:1026B00011031092120310C110920F031092100315 +:1026C00010921103109212036431710540F46A30C4 +:1026D000710560F520E030E040E85EE32BC0693C26 +:1026E000710508F0AAC080E090E00E94A22E20E0D0 +:1026F00030E040EA51E40E94A02D20E030E044E3C5 +:1027000053E40E94092E9B01AC010E94B42F20E0EB +:1027100030E040E05EE30E94B42F9B01AC0160E03A +:1027200070E080E09EE30E94A02D44C020E030E0F5 +:1027300040E05FE3C701B6010E94B42F6B017C014A +:1027400080E090E0A0E0BEE380930A0290930B0249 +:10275000A0930C02B0930D02BFC010920F03109211 +:10276000100310921103109212034AE0469F900149 +:10277000479F300D1124C90168EB7BE00E946E3148 +:10278000BC016C5D754077FF03C07195619571095F +:10279000882777FD8095982F0E94A42E2EE333EC96 +:1027A0004EE259E30E94B42F20E030E040EC5EE3BB +:1027B0000E94A12D60930A0270930B0280930C0279 +:1027C00090930D0289C010920F0310921003109283 +:1027D000110310921203CE0183709927892BE1F027 +:1027E000BE016170772780E090E00E94A22E20E079 +:1027F00030E040E05EE30E94B42F20E030E040E4AF +:102800005FE30E94A12D60930A0270930B028093F4 +:102810000C0290930D020CC080E090E0A0E0BFE3BA +:1028200080930A0290930B02A0930C02B0930D02C6 +:10283000C770DD27CD2B09F04FC010920A0210920D +:102840000B0210920C0210920D0246C010920F0360 +:1028500010921003109211031092120300E010E086 +:1028600020E03FE300930A0210930B0220930C0236 +:1028700030930D026739710578F180E090E00E9495 +:10288000A22E20E030E047E153E40E94A02D20E09A +:1028900030E04AE754E40E94092E20E030E048E4AA +:1028A00052E40E94B42F20E030E040EA51E40E945C +:1028B000E62E0E94712E660F771F660F771FFB01B1 +:1028C000E357FD4F2081318142815381C701B60119 +:1028D0000E94B42F6B017C01C701B601DF91CF913B +:1028E0001F910F91FF90EF90DF90CF90BF90AF902E +:1028F0009F908F900895809168030895CF93DF9300 +:1029000000D01F92CDB7DEB79C018091E8038430E0 +:1029100019F593E099833B832A839093E9008FEF25 +:102920009091E800815095FD06C095ED9A95F1F7DC +:1029300000008111F5CF8091E80085FF0DC040E0D7 +:1029400050E063E070E0CE0101960E94B7168091DE +:10295000E8008E778093E8000F900F900F90DF9142 +:10296000CF910895CF93DF9300D01F92CDB7DEB7FC +:102970002091E803243021F522E029839B838A8378 +:1029800083E08093E9008FEF9091E800815095FDFE +:1029900006C095ED9A95F1F700008111F5CF809171 +:1029A000E80085FF0DC040E050E063E070E0CE013C +:1029B00001960E94B7168091E8008E778093E80018 +:1029C0000F900F900F90DF91CF9108952091E80321 +:1029D0002430F1F422E02093E9002FEF3091E80059 +:1029E000215035FD06C035ED3A95F1F70000211173 +:1029F000F5CF2091E80025FF0BC040E050E065E0F6 +:102A000070E00E94B7168091E8008E778093E8000E +:102A10000895CF93DF932091E803243039F521E026 +:102A20002093E9002FEF3091E800215035FD06C0DA +:102A300035ED3A95F1F700002111F5CF2091E8002E +:102A400025FF14C0EC0140E050E068E070E00E9417 +:102A5000B7168091E8008E778093E80088E0FE0149 +:102A6000A0E6B3E001900D928A95E1F7DF91CF9156 +:102A700008958091E703811109C00E944C180E94BB +:102A8000A9188091E20084608093E200089510927A +:102A9000E7030895089508950C94A72742E061EC98 +:102AA00081E00E94C61742E061EC82E00E94C617F6 +:102AB00042E061EC83E00C94C6178091EA03833016 +:102AC00009F453C030F4813071F0823009F48CC0C5 +:102AD00008958A3009F478C08B3009F45EC08930DB +:102AE00009F09AC020C08091E903813A09F094C0AE +:102AF0008091E800877F8093E8008091ED039091BA +:102B0000EE03892B21F468E080E693E003C060E0E7 +:102B100080E090E070E00E9402178091E8008B77DF +:102B20008093E80008958091E903813209F074C030 +:102B30008091ED039091EE03892B09F06DC0809197 +:102B4000E800877F8093E8008091E80082FD05C05F +:102B50008091E8038111F8CF5FC08091F1008093EC +:102B600068038091E8008B7753C08091E903813A34 +:102B700009F052C08091ED039091EE03892B09F08A +:102B80004BC08091E800877F8093E8008091E80047 +:102B900080FFFCCF80911C0236C08091E903813216 +:102BA000D9F58091ED039091EE03892BA9F58091E1 +:102BB000E800877F8093E8000E94FB178091EB0379 +:102BC00080931C020C946C218091E903813221F5E1 +:102BD0008091E800877F8093E8000E94FB17809136 +:102BE000EC038093690308958091E903813AA1F48D +:102BF0008091E800877F8093E8008091E80080FF63 +:102C0000FCCF809169038093F1008091E8008E777A +:102C10008093E8000C94FB17089584B7877F84BFE6 +:102C200088E10FB6F89480936000109260000FBEA8 +:102C300090E080E80FB6F894809361009093610073 +:102C40000FBE0E949E1B0E944C180E94A9188091E2 +:102C5000E20084608093E20078940E942F1B0E941F +:102C6000A01B82E192E00E944A1B8091E80385301C +:102C700069F40E9461278091E6038823B1F30E94E2 +:102C80008F27882391F30E94A116EFCF0E94A81BE3 +:102C9000ECCF292F332723303105C9F064F42130DC +:102CA000310581F02230310509F043C084E590E020 +:102CB00020ED39E042C021323105F1F022323105F8 +:102CC00041F137C082E190E024E23AE036C0992732 +:102CD0008130910541F08230910541F0892B49F511 +:102CE000ECECF9E005C0EEE9F9E002C0E2E7F9E05A +:102CF000849190E09F0121C06330D8F4E62FF0E08A +:102D0000EE0FFF1FEA51FD4F2081318189E090E0F5 +:102D100014C0633070F470E0FB01EE0FFF1FE0524F +:102D2000FD4F20813181FB01E352FD4F808190E016 +:102D300004C080E090E020E030E0FA01318320839D +:102D4000089580E189BD82E189BD09B400FEFDCF0F +:102D50008091D8008F7D8093D8008091E0008260C0 +:102D60008093E0008091E00081FDFCCF0895CF9238 +:102D7000DF92EF92FF920F931F93CF93DF93EC01BB +:102D80008B016A010E941A18811133C0C114D10449 +:102D900039F0F60180819181081B190BC80FD91FEA +:102DA000E12CF12C0115110519F18091E80085FD48 +:102DB00016C08091E8008E778093E800C114D1049A +:102DC00049F0F60180819181E80EF91EF182E082DE +:102DD00085E00FC00E941A18882321F30AC0899148 +:102DE0008093F10001501109FFEFEF1AFF0ADACFCB +:102DF00080E0DF91CF911F910F91FF90EF90DF90D6 +:102E0000CF9008952091EF033091F00326173707F4 +:102E100048F06115710539F42091E8002E77209370 +:102E2000E80001C0B90140E061157105A9F12091E8 +:102E3000E803222309F443C0253009F442C020915D +:102E4000E80023FD40C02091E80022FD32C020911F +:102E5000E80020FFE9CF4091F3002091F20030E03C +:102E6000342BFC01CF016115710559F02830310573 +:102E700040F481918093F100615071092F5F3F4FC1 +:102E8000F1CF41E02830310509F040E02091E80021 +:102E90002E772093E800C8CF4111C9CF0AC0809196 +:102EA000E803882361F0853061F08091E80083FDBC +:102EB0000AC08091E80082FFF2CF80E0089582E0AE +:102EC000089583E0089581E008952091EF03309103 +:102ED000F0032617370748F06115710539F4209182 +:102EE000E8002E772093E80001C0B901FC0120E042 +:102EF0006115710591F18091E803882309F440C0C0 +:102F0000853009F43FC08091E80083FD3DC0809189 +:102F1000E80082FD2FC08091E80080FFE9CF20917A +:102F2000F3008091F20090E0922B6115710559F049 +:102F30008830910540F424912093F100319661503E +:102F400071090196F2CF21E0089709F020E0809105 +:102F5000E8008E778093E800CBCF2111CCCF0AC058 +:102F60008091E803882361F0853061F08091E8006A +:102F700083FD0AC08091E80082FFF2CF80E00895CF +:102F800082E0089583E0089581E00895982F9730B6 +:102F900058F59093E900981739F07091EC00209162 +:102FA000ED005091F00003C0242F762F50E021FF58 +:102FB00019C03091EB003E7F3093EB003091ED0073 +:102FC0003D7F3093ED003091EB0031603093EB00AA +:102FD0007093EC002093ED005093F0002091EE00F0 +:102FE00027FF07C09F5FD3CF8F708093E90081E0F8 +:102FF000089580E008958091E90387FF11C08091D2 +:10300000E80082FD05C08091E8038111F8CF11C06E +:103010008091E8008B770BC08091E803882349F00A +:103020008091E80080FFF8CF8091E8008E77809350 +:10303000E80008952091E4003091E50095E6409184 +:10304000EC00842F817040FF22C08091E80080FD59 +:103050001CC08091E803882391F0853091F0809125 +:10306000EB0085FD10C04091E4005091E50042174F +:10307000530729F39A01915011F784E0089582E0F3 +:10308000089583E0089581E0089580E008954091D7 +:10309000E80042FFDECF08950E94BA180E94C218CD +:1030A000E0EEF0E0808181608083E8EDF0E08081F7 +:1030B0008F77808319BCA7EDB0E08C918E7F8C93C5 +:1030C00080818F7E80831092E70308950F931F9372 +:1030D000CF93DF930E94BA180E94C218C8EDD0E0C7 +:1030E00088818F77888388818068888388818F7DB5 +:1030F000888319BC1092E8031092E4031092E6034F +:103100001092E50300EE10E0F80180818B7F808350 +:1031100088818160888342E060E080E00E94C61779 +:10312000E1EEF0E080818E7F8083E2EEF0E080814E +:1031300081608083808188608083F80180818E7FB8 +:103140008083888180618883DF91CF911F910F9167 +:103150000895E8EDF0E080818F7E8083E7EDF0E078 +:1031600080818160808384E082BF81E08093E70377 +:103170000C946618E8EDF0E080818E7F80831092D9 +:10318000E20008951092DA001092E10008951F9273 +:103190000F920FB60F9211242F933F934F935F938B +:1031A0006F937F938F939F93AF93BF93EF93FF930F +:1031B0008091E10082FF0BC08091E20082FF07C096 +:1031C0008091E1008B7F8093E1000E942E1B809113 +:1031D000DA0080FF1FC08091D80080FF1BC0809163 +:1031E000DA008E7F8093DA008091D90080FF0DC0D5 +:1031F00080E189BD82E189BD09B400FEFDCF81E097 +:103200008093E8030E94391505C019BC1092E803A9 +:103210000E9447158091E10080FF19C08091E20073 +:1032200080FF15C08091E2008E7F8093E200809144 +:10323000E20080618093E2008091D80080628093F8 +:10324000D80019BC85E08093E8030E944B1580915B +:10325000E10084FF30C08091E20084FF2CC080E157 +:1032600089BD82E189BD09B400FEFDCF8091D800FF +:103270008F7D8093D8008091E1008F7E8093E10064 +:103280008091E2008F7E8093E2008091E200816075 +:103290008093E2008091E403882311F084E007C06A +:1032A0008091E30087FD02C081E001C083E080934C +:1032B000E8030E944C158091E10083FF29C08091B2 +:1032C000E20083FF25C08091E100877F8093E100C9 +:1032D00082E08093E8031092E4038091E1008E7F06 +:1032E0008093E1008091E2008E7F8093E2008091E4 +:1032F000E20080618093E20042E060E080E00E94B2 +:10330000C6178091F00088608093F0000E944A15F3 +:10331000FF91EF91BF91AF919F918F917F916F91AD +:103320005F914F913F912F910F900FBE0F901F9083 +:1033300018951F920F920FB60F9211242F933F935F +:103340004F935F936F937F938F939F93AF93BF93AD +:10335000CF93DF93EF93FF93C091E900CF708091FB +:10336000EC00D82FD17080FDD0E81092E900809158 +:10337000F000877F8093F00078940E94DD1910920E +:10338000E9008091F00088608093F000CD2BCF7031 +:10339000C093E900FF91EF91DF91CF91BF91AF9181 +:1033A0009F918F917F916F915F914F913F912F915D +:1033B0000F900FBE0F901F9018951F93CF93DF9320 +:1033C000CDB7DEB7AA970FB6F894DEBF0FBECDBF5C +:1033D000E9EEF3E088E08E0F9091F10091938E1367 +:1033E000FBCF0E945D158091E80083FF1FC1809193 +:1033F000E9039091EA03492F50E04A30510508F063 +:1034000015C1FA01EE59FF4F0C949631803881F0C6 +:10341000823809F00BC18091ED038F708093E90031 +:103420008091EB0085FB882780F91092E90006C0A7 +:103430008091E5039091E603911182609091E800FC +:10344000977F9093E8008093F1001092F100C8C03C +:10345000282F2D7F09F0EAC0882319F0823061F00F +:10346000E5C08091EB03813009F0E0C0933009F0B2 +:1034700080E08093E6032BC08091EB03811127C08D +:103480008091ED038F7009F4D1C08093E900209101 +:10349000EB0020FF1CC0933021F48091EB00806290 +:1034A00014C09091EB0090619093EB0021E030E02C +:1034B000A90102C0440F551F8A95E2F74093EA0024 +:1034C0001092EA008091EB0088608093EB001092EC +:1034D000E9008091E800877F86C08111A7C0109124 +:1034E000EB031F778091E3008078812B8093E300CA +:1034F0008091E800877F8093E8000E94FB1780910D +:10350000E80080FFFCCF8091E30080688093E300B7 +:10351000111102C082E001C083E08093E80386C0FD +:103520008058823008F082C08091EB039091EC03C8 +:103530008C3D53E0950779F583E08A838AE289839D +:103540004FB7F894DE01139620E03EE051E2E32FFE +:10355000F0E050935700E49120FF03C0E295EF7034 +:103560003F5FEF708E2F90E0EA3010F0C79601C0F9 +:10357000C0968D939D932F5F243149F74FBF809163 +:10358000E800877F8093E8006AE270E0CE01019650 +:103590000E94021714C0AE014F5F5F4F6091ED03B0 +:1035A0000E944916BC01009709F440C09091E800C0 +:1035B000977F9093E80089819A810E946517809196 +:1035C000E8008B778093E80031C0803879F58091EE +:1035D000E800877F8093E8008091E4038093F10006 +:1035E0008091E8008E778093E8000E94FB171EC050 +:1035F00081111CC09091EB039230C0F48091E800DF +:10360000877F8093E8009093E4030E94FB178091EA +:10361000E403811106C08091E30087FD02C081E0D0 +:1036200001C084E08093E8030E944E158091E80079 +:1036300083FF0AC08091E800877F8093E800809133 +:10364000EB0080628093EB00AA960FB6F894DEBF81 +:103650000FBECDBFDF91CF911F9108950895CF93F5 +:103660008091E8038823A1F0C091E900CF70909188 +:10367000EC00892F817090FD80E8C82B1092E90042 +:103680008091E80083FD0E94DD19CF70C093E900AE +:10369000CF91089590936F0380936E030895E09106 +:1036A0006E03F0916F03309721F00190F081E02DCF +:1036B000099480E00895E0916E03F0916F033097D4 +:1036C00021F00280F381E02D09940895E0916E03CA +:1036D000F0916F03309721F00480F581E02D09947B +:1036E000089520916C0330916D038217930771F058 +:1036F00090936D0380936C03E0916E03F0916F03E0 +:10370000309721F00680F781E02D099408952091EB +:103710006A0330916B038217930771F090936B03E8 +:1037200080936A03E0916E03F0916F03309721F06C +:103730000084F185E02D0994089508950C949D1B53 +:103740000E94DB270E94D20B0E9461280C94092D55 +:103750004F925F927F928F929F92AF92BF92CF9241 +:10376000DF92EF92FF920F931F93CF93DF93CDB72A +:10377000DEB72A970FB6F894DEBF0FBECDBF0E940A +:10378000AD0C91E7C92E93E0D92E00E010E0AA24F9 +:10379000A394B12C702E802F0E94E60D4C01F601EF +:1037A000419051906F014826592641145104B1F4BB +:1037B0000F5F1F4F0530110569F78FEF89838A83EB +:1037C0001B820E94E4278160782F9D838C8349812E +:1037D0005A816B818D810E94611C3AC08091C70320 +:1037E00081FD0E94EF0D20E030E07501022E02C045 +:1037F000EE0CFF1C0A94E2F7C70184219521892B66 +:1038000009F12E837F828E209F2091E0892809F480 +:1038100090E098870E94E4278160782F9A878987B3 +:103820004E815F8168858A850E94611C000F111F8F +:10383000F801EF58FC4F80819181E826F926F1824A +:10384000E08206C02F5F3F4F2C30310571F6B0CFBC +:103850000E94482A109170030E944F1B1817D9F03C +:103860000E944F1B809370032A960FB6F894DEBF18 +:103870000FBECDBFDF91CF911F910F91FF90EF90C1 +:10388000DF90CF90BF90AF909F908F907F905F9090 +:103890004F900C940A0B2A960FB6F894DEBF0FBE19 +:1038A000CDBFDF91CF911F910F91FF90EF90DF90EF +:1038B000CF90BF90AF909F908F907F905F904F90F0 +:1038C0000895CF93DF93CDB7DEB72B970FB6F8945B +:1038D000DEBF0FBECDBF4F83588769877A878B873E +:1038E000DE01119686E0FD0111928A95E9F785E0E7 +:1038F000FE01379601900D928A95E1F749815A8130 +:103900006B817C818D819E810E9406242B960FB64F +:10391000F894DEBF0FBECDBFDF91CF910895CF9356 +:10392000882309F4C2C0C82F823859F40E944F1B63 +:1039300081FDBBC089E30E94AF260E94322789E344 +:103940000CC0833879F40E944F1B80FDAEC083E524 +:103950000E94AF260E94322783E50E94CC26CF9199 +:103960000C943227843859F40E944F1B82FD9DC06D +:1039700087E40E94AF260E94322787E4EECF8CEFC7 +:103980008C0F813A48F48C2F0E94712C81118DC0CC +:103990008C2F0E94AF26E3CF80E28C0F883048F452 +:1039A000C77081E001C0880FCA95EAF70E94EB2634 +:1039B000D6CF8BE58C0F833078F4C53A29F0C63A20 +:1039C00031F083E890E005C081E890E002C082E831 +:1039D00090E0CF910C94711B88E58C0F833108F037 +:1039E00064C0C83A39F1C93A41F1CA3A49F1CB3A0F +:1039F00051F1CC3A59F1CD3A61F1C03B69F1CE3A7F +:103A000071F1CF3A79F1C13B81F1C23B89F1C33BFE +:103A100091F1C43B99F1C53BA1F1C63BA9F1C73B6C +:103A2000B1F1C83BB9F1C93BC1F1CA3BC9F180E072 +:103A300090E038C082EE90E035C089EE90E032C070 +:103A40008AEE90E02FC085EB90E02CC086EB90E0F2 +:103A500029C087EB90E026C08CEC90E023C08DEC71 +:103A600090E020C083E891E01DC08AE891E01AC090 +:103A700082E991E017C084E991E014C081E292E00C +:103A800011C083E292E00EC084E292E00BC085E2B6 +:103A900092E008C086E292E005C087E292E002C0B0 +:103AA0008AE292E0CF910C94871BCF9108958823EE +:103AB00009F44BC0823859F40E944F1B81FF45C066 +:103AC00089E30E94AF260E94322789E30CC0833825 +:103AD00071F40E944F1B80FF38C083E50E94AF261F +:103AE0000E94322783E50E94CC260C94322784382A +:103AF00059F40E944F1B82FF28C087E40E94AF2622 +:103B00000E94322787E4EFCF9CEF980F913A58F349 +:103B100090E2980F983050F4877091E001C0990FAF +:103B20008A95EAF7892F0E94F126DFCF9BE5980F4F +:103B3000933020F480E090E00C94711B885A83311C +:103B400020F480E090E00C94871B0895882321F0F6 +:103B50000E94EB260C9432270895882321F00E94BE +:103B6000F1260C9432270895BF92CF92DF92EF9204 +:103B7000FF920F931F93CF93DF9300D000D000D01C +:103B8000CDB7DEB725E0FC01DE01119601900D9264 +:103B90002A95E1F7FC01D0801181028125812295CF +:103BA0002F7043815481452B09F472C31F3F21F4C8 +:103BB000FFEFDF1609F46CC37C012E830E94D3074C +:103BC000D9821A8369817A81802F0E94AB26182FAF +:103BD000B92E0E9460260E9427252E81002319F00D +:103BE0000E9408272E81EB2DE295EF70F0E0E4595A +:103BF000FF4F0C9496318B2D807F9B2D9F70F92E5B +:103C0000882319F0F29480EFF822002389F0FF2036 +:103C100009F47CC280E2810F883020F48F2D0E944D +:103C2000EB2603C08F2D0E94FB260E9432276EC216 +:103C3000812F0E94571DFF2009F42AC3105E8F2D8B +:103C4000183018F40E94F12602C00E94012726961F +:103C50000FB6F894DEBF0FBECDBFDF91CF911F919D +:103C60000F91FF90EF90DF90CF90BF900C94322790 +:103C70008B2D807F9B2D9F70803211F4892F03C084 +:103C8000892F8295807F112319F0113011F12BC0FB +:103C90000023A9F0222389F1213079F526960FB669 +:103CA000F894DEBF0FBECDBFDF91CF911F910F9172 +:103CB000FF90EF90DF90CF90BF900C941B272223B2 +:103CC00019F0213009F4E4C28E830E941E278E81F0 +:103CD0009BC1002321F0263008F0DAC20EC0253047 +:103CE00008F0D6C291C10023C9F0222331F0F701B8 +:103CF000958190FF0BC29F70958326960FB6F8941E +:103D0000DEBF0FBECDBFDF91CF911F910F91FF900E +:103D1000EF90DF90CF90BF900C94A61D222309F462 +:103D200073C109C22B2D26952695237030E02115ED +:103D3000310521F021303105D1F0AAC2002321F054 +:103D4000812F9B2D937002C080E090E026960FB6E5 +:103D5000F894DEBF0FBECDBFDF91CF911F910F91C1 +:103D6000FF90EF90DF90CF90BF900C94711B0023D9 +:103D700021F0812F9B2D937002C080E090E0269669 +:103D80000FB6F894DEBF0FBECDBFDF91CF911F916C +:103D90000F91FF90EF90DF90CF90BF900C94871B16 +:103DA000812F002319F00E94502902C00E94B829D7 +:103DB00026960FB6F894DEBF0FBECDBFDF91CF9130 +:103DC0001F910F91FF90EF90DF90CF90BF900C94D8 +:103DD0003D2A8B2D837009F07BC0011159C2812FC0 +:103DE000829586958770880F880F912F9F70C92EB6 +:103DF000D12CE12CF12C082E04C0CC0CDD1CEE1CC7 +:103E0000FF1C0A94D2F714FF12C04FE050E060E0AC +:103E100070E004C0440F551F661F771F8A95D2F7C4 +:103E2000CB01BA01609570958095909503C060E0D4 +:103E300070E0CB012B2D269526952370422F50E064 +:103E400042305105D9F04330510569F16C297D2983 +:103E50008E299F294130510551F126960FB6F894CD +:103E6000DEBF0FBECDBFDF91CF911F910F91FF90AD +:103E7000EF90DF90CF90BF900C944E256C297D2958 +:103E80008E299F2926960FB6F894DEBF0FBECDBFB0 +:103E9000DF91CF911F910F91FF90EF90DF90CF9026 +:103EA000BF900C946A250E944E25C701B601269644 +:103EB0000FB6F894DEBF0FBECDBFDF91CF911F913B +:103EC0000F91FF90EF90DF90CF90BF900C94322530 +:103ED000002319F08B2D817001C08695882309F489 +:103EE000D7C1812F829586958770880F880F912F73 +:103EF0009F70C92ED12CE12CF12C082E04C0CC0CC3 +:103F0000DD1CEE1CFF1C0A94D2F714FF12C04FE018 +:103F100050E060E070E004C0440F551F661F771F3B +:103F20008A95D2F7CB01BA016095709580959095EE +:103F300003C060E070E0CB012B2D26952695237001 +:103F4000422F50E042305105D9F04330510569F11C +:103F50006C297D298E299F294130510551F12696E2 +:103F60000FB6F894DEBF0FBECDBFDF91CF911F918A +:103F70000F91FF90EF90DF90CF90BF900C94282688 +:103F80006C297D298E299F2926960FB6F894DEBFCD +:103F90000FBECDBFDF91CF911F910F91FF90EF909A +:103FA000DF90CF90BF900C9444260E942826C70132 +:103FB000B60126960FB6F894DEBF0FBECDBFDF91D7 +:103FC000CF911F910F91FF90EF90DF90CF90BF9016 +:103FD0000C940C26103F49F118F4103E48F491C09F +:103FE000123F09F453C0E8F1133F09F464C089C0DB +:103FF0001F708B2D8F71002321F00E94A525812F2A +:104000007CCE0E94C625812F26960FB6F894DEBF7F +:104010000FBECDBFDF91CF911F910F91FF90EF9019 +:10402000DF90CF90BF900C94AD1D0023B1F02530F0 +:1040300008F02EC18B2D8F7126960FB6F894DEBF37 +:104040000FBECDBFDF91CF911F910F91FF90EF90E9 +:10405000DF90CF90BF900C94EB25263008F018C16C +:10406000E9CF0023A9F08B2D8F7126960FB6F89417 +:10407000DEBF0FBECDBFDF91CF911F910F91FF909B +:10408000EF90DF90CF90BF900C94A525002359F3BB +:104090008B2D8F7126960FB6F894DEBF0FBECDBF65 +:1040A000DF91CF911F910F91FF90EF90DF90CF9014 +:1040B000BF900C94C625002399F08B2D8F71269606 +:1040C0000FB6F894DEBF0FBECDBFDF91CF911F9129 +:1040D0000F91FF90EF90DF90CF90BF900C949025C0 +:1040E00026960FB6F894DEBF0FBECDBFDF91CF91FD +:1040F0001F910F91FF90EF90DF90CF90BF900C94A5 +:1041000086250023A9F0222309F4ADCF812F26961E +:104110000FB6F894DEBF0FBECDBFDF91CF911F91D8 +:104120000F91FF90EF90DF90CF90BF900C948F1C79 +:10413000222309F4ADCF812F26960FB6F894DEBF67 +:104140000FBECDBFDF91CF911F910F91FF90EF90E8 +:10415000DF90CF90BF900C94571D4B2D4F70612F67 +:10416000C7010E940B0626960FB6F894DEBF0FBE5D +:10417000CDBFDF91CF911F910F91FF90EF90DF9016 +:10418000CF90BF900C94AA24011182C09B2D9F70E8 +:10419000492F50E04230510509F443C0C4F44115A1 +:1041A000510571F14130510509F072C026960FB6E4 +:1041B000F894DEBF0FBECDBFDF91CF911F910F915D +:1041C000FF90EF90DF90CF90BF900C94312D433053 +:1041D0005105C1F14430510509F05AC0812F26968E +:1041E0000FB6F894DEBF0FBECDBFDF91CF911F9108 +:1041F0000F91FF90EF90DF90CF90BF900C94832DA4 +:1042000026960FB6F894DEBF0FBECDBFDF91CF91DB +:104210001F910F91FF90EF90DF90CF90BF900C9483 +:104220001A2D26960FB6F894DEBF0FBECDBFDF91D4 +:10423000CF911F910F91FF90EF90DF90CF90BF90A3 +:104240000C944D2D26960FB6F894DEBF0FBECDBF51 +:10425000DF91CF911F910F91FF90EF90DF90CF9062 +:10426000BF900C94602D4B2D4F70612FC701269687 +:104270000FB6F894DEBF0FBECDBFDF91CF911F9177 +:104280000F91FF90EF90DF90CF90BF900C94D507E7 +:1042900026960FB6F894DEBF0FBECDBFDF91CF914B +:1042A0001F910F91FF90EF90DF90CF90BF900895F6 +:1042B0000E9408270E9418270E94DD260E943227AC +:1042C0000E94EE2A0E943D2A80E090E00E94711B2D +:1042D00080E090E00C94871B0E94F8260C945821F3 +:1042E0000E94A026292F22952F7030E02C30310516 +:1042F0004CF42A3031056CF422503109223031055A +:1043000088F407C02C30310549F02F30310531F0E9 +:1043100009C0803E48F0803F29F406C093FB8827FF +:1043200080F9089580E0089581E00895CF93DF93A8 +:1043300000D000D01F92CDB7DEB70F900F900F9036 +:104340000F900F90DF91CF910895CF93DF9300D01E +:1043500000D000D0CDB7DEB726960FB6F894DEBFFA +:104360000FBECDBFDF91CF9108951F93CF93DF9301 +:10437000C0917B0316E080917C03C81799F0D0E0D0 +:104380001C9FF0011D9FF00D1124E358FC4F40814C +:10439000518162817381848195810E94A52121963A +:1043A000C770E9CFDF91CF911F9108954091AD0380 +:1043B0005091AE036091AF037091B0038091B1034F +:1043C0009091B2030C94A5218091B20382958F70D5 +:1043D00009F054C08091AF03882309F44FC0809145 +:1043E0007B03A0917C036091AD037091AE0340917B +:1043F000B0035091B103B6E08A1709F43FC090E0D2 +:1044000041155105C1F17F3F11F46F3FA1F1B89FF4 +:10441000F001B99FF00D1124E358FC4F2181721374 +:104420002AC02081621327C02281211124C0238148 +:1044300034812417350710F421503109241B350B22 +:10444000283C3105C0F42091B2032F7020612093E5 +:10445000B20326E0289FF001299FF00D1124EE57AA +:10446000FC4F80818F70806180838DEA93E00E9491 +:10447000B41D0C94B52101968770BECF0895CF92DC +:10448000DF92EF92FF920F931F93CF93DF93CDB7FD +:10449000DEB762970FB6F894DEBF0FBECDBF8C01BA +:1044A00085E0F801DE011D9601900D928A95E1F7F5 +:1044B000D8014C9111965C91119712966C911297BC +:1044C0001396CD90DC9014973091AD037091AE03AC +:1044D0008091B0039091B103009709F46BC17F3FC5 +:1044E00019F43F3F09F466C1E090AF03EE2009F4F0 +:1044F000C0C02091B203C816D90628F0F601E81B07 +:10450000F90BCF0104C0809590958C0D9D1DFF2463 +:10451000F394883C910578F0F12C207F09F0C6C017 +:104520007C2DD98AC88A89890E9496218DEA93E0D8 +:104530000E94B41DB1C0822F807F09F046C0751360 +:1045400014C0341312C0611110C02F702061209369 +:10455000B2030E94D6218DEA93E00E94B41D80919F +:10456000B203D80115968C932EC0CD2819F15F3F68 +:1045700011F44F3FF9F0F62E61111CC080917B03BE +:1045800020917C0336E0821709F45AC090E0389FEE +:10459000F001399FF00D1124E358FC4F718157133E +:1045A00006C07081471303C07281711103C0019668 +:1045B0008770E9CFF62E662309F418C18091B20303 +:1045C00081608093B203F12C11C1751308C03413BC +:1045D00006C0611104C08091B203D801C3C04D87E9 +:1045E0005E878D859E856A8B0E9470216A898823EB +:1045F000E1F16623D1F12091B203822F82958F7071 +:1046000090E0029774F08091AD039091AE0398878B +:104610008F831986DB86CA862C87CE0107960E9477 +:10462000B41D86E0F801ADEAB3E001900D928A95E1 +:10463000E1F70E94E4210E94D621FF24F394D6C022 +:104640004D875E878D859E850E94A026292F229505 +:104650002F7030E0223031050CF0BCC09F7009F0A3 +:10466000B6C0805E883008F4C1C0C8010E94B41D85 +:10467000E4CFC816D90608F453C0F601E81BF90BBD +:10468000CF01883C910508F450C0F12C7C2DD98ACB +:10469000C88A89890E949621EDEAF3E086E0DF016D +:1046A0001D928A95E9F70E94D621A0C0751314C007 +:1046B000341312C0611110C08091B203F8018583D8 +:1046C000C8010E94B41D86E0EDEAF3E0DF011D920F +:1046D0008A95E9F7FE2C8AC04D875E878D859E8579 +:1046E0006A8B0E9470216A89882309F4BECF6623F1 +:1046F00009F4BBCF2091B203822F82958F7090E096 +:1047000002970CF48ECF8091AD039091AE039A8303 +:1047100089831B82DD82CC822E83CE0101967FCFDE +:10472000809590958C0D9D1DACCFF62E662309F4D7 +:104730009CCF75132EC034132CC02091B20320FDE2 +:104740001FC0822F82958F70D9F0D80115962C93B7 +:1047500015978F3049F08F5F982F9295907F822F19 +:104760008F70892B15968C93C8010E94B41D86E02A +:10477000F801ADEAB3E001900D928A95E1F793CF8D +:1047800086E0F801ADEAB3E001900D928A95E1F779 +:104790002DC04D875E878D859E850E947021811179 +:1047A00040CF8091B20381608093B203C8010E9420 +:1047B000B41D1CC0662309F458CF4D875E878D85D4 +:1047C0009E850E947021882309F44FCF2ACF811142 +:1047D00048CF0CC0243031050CF047CF9F7009F44E +:1047E00040CFF8019581907F09F03BCF8F2D6296E5 +:1047F0000FB6F894DEBF0FBECDBFDF91CF911F91F2 +:104800000F91FF90EF90DF90CF9008951F93CF937B +:10481000DF93CDB7DEB72C970FB6F894DEBF0FBE8F +:10482000CDBF4F83588769877A878B879C87CE0156 +:1048300007960E943F22882369F08F8198852A85F8 +:104840003B85232BF1F19F3F09F063C08F3F09F0B7 +:1048500060C037C086E0FE013796DE0111960190F8 +:104860000D928A95E1F76F817885EA85FB8530970F +:1048700041F17F3F11F46F3F21F120917C0330E043 +:10488000C90101968770992740917B0350E08417F6 +:10489000950709F447C069837A83FD83EC8396E02A +:1048A000929FD001939FB00D1124A358BC4FFE01DD +:1048B000319601900D929A95E1F780937C030E94C6 +:1048C000B52116E080917B0390917C038917C1F19B +:1048D000189FC001112483589C4F0E943F228823B7 +:1048E00079F1E0917B031E9FF0011124E358FC4F06 +:1048F0004081518162817381848195810E94A521CB +:1049000080917B0390E001968770992780937B03C9 +:10491000D9CF4F81588569857A858B859C850E9482 +:10492000A521CFCF0E946C2110927C0310927B03B3 +:10493000EDEAF3E086E0DF011D928A95E9F7C1CF49 +:104940002C960FB6F894DEBF0FBECDBFDF91CF918E +:104950001F910895EF92FF920F931F93CF93DF93D0 +:104960008C01009709F46CC0F12CEE24E394E8016B +:104970002196F8018491843740F4843008F051C0C6 +:10498000813081F0823019F15BC0853709F444C071 +:10499000A8F19CE7980F903708F052C08F770E94DB +:1049A000571D41C00E5F1F4FFE01C49180E28C0F66 +:1049B000883048F4C7708E2D01C0880FCA95EAF779 +:1049C0000E940B2714C08C2F0E948F1C2DC00E5FDD +:1049D0001F4FFE01C49180E28C0F883058F4C770DD +:1049E0008E2D01C0880FCA95EAF70E9411270E94F8 +:1049F00032271AC08C2F0E94571D16C00E5F1F4F02 +:104A0000FE01C491CC2381F08FE99FE00197F1F77B +:104A100000C00000C150F6CF0E5F1F4FFE01F490A2 +:104A200003C00E948F1C8E018F2D882309F49FCF15 +:104A3000EFE9FFE03197F1F700C000008150F5CFBA +:104A4000DF91CF911F910F91FF90EF9008950895FE +:104A50006093B7037093B8038093B9039093BA033C +:104A60000C9458210F931F930091B7031091B80332 +:104A70002091B9033091BA03DC01CB01802B912B3B +:104A8000A22BB32B8093B7039093B803A093B903E1 +:104A9000B093BA031F910F910C9458210F931F9359 +:104AA0000091B7031091B8032091B9033091BA0374 +:104AB000DC01CB0180239123A223B3238093B7038E +:104AC0009093B803A093B903B093BA031F910F91C9 +:104AD0000C9458210F931F930091B7031091B803C2 +:104AE0002091B9033091BA03DC01CB0180279127D3 +:104AF000A227B3278093B7039093B803A093B90379 +:104B0000B093BA031F910F910C9458211092B303E4 +:104B10001092B4031092B5031092B6030C9458216E +:104B200041E050E060E070E004C0440F551F661F94 +:104B3000771F8A95D2F74093B3035093B4036093E1 +:104B4000B5037093B6030C94582141E050E060E047 +:104B500070E004C0440F551F661F771F8A95D2F777 +:104B60008091B3039091B403A091B503B091B603C3 +:104B7000482B592B6A2B7B2B4093B3035093B403E0 +:104B80006093B5037093B6030C94582141E050E054 +:104B900060E070E004C0440F551F661F771F8A95C0 +:104BA000D2F740955095609570958091B3039091A0 +:104BB000B403A091B503B091B603482359236A23E7 +:104BC0007B234093B3035093B4036093B503709376 +:104BD000B6030C94582141E050E060E070E004C05E +:104BE000440F551F661F771F8A95D2F78091B30334 +:104BF0009091B403A091B503B091B603482759270B +:104C00006A277B274093B3035093B4036093B503A3 +:104C10007093B6030C9458210F931F930091B30324 +:104C20001091B4032091B5033091B603DC01CB01A0 +:104C3000802B912BA22BB32B8093B3039093B403BF +:104C4000A093B503B093B6031F910F910C94582114 +:104C50000F931F930091B3031091B4032091B503F8 +:104C60003091B603DC01CB0180239123A223B3232F +:104C70008093B3039093B403A093B503B093B603AA +:104C80001F910F910C9458210F931F930091B30320 +:104C90001091B4032091B5033091B603DC01CB0130 +:104CA00080279127A227B3278093B3039093B4035F +:104CB000A093B503B093B6031F910F910C945821A4 +:104CC0000895CF92DF92EF92FF920F931F93CF93AD +:104CD000DF938C01C090B703D090B803E090B90384 +:104CE000F090BA038091B3039091B403A091B503FF +:104CF000B091B603C82AD92AEA2AFB2ACFE1D0E02C +:104D0000D701C6010C2E04C0B695A7959795879537 +:104D10000A94D2F780FF06C0B8018C2F0E942F0A98 +:104D2000019721F4219760F780E001C08C2FDF917B +:104D3000CF911F910F91FF90EF90DF90CF9008954A +:104D4000CF93DF93EC010E946126BE010E942F0ADF +:104D5000DF91CF910895CB010E94A0260895209164 +:104D60001D0230911E02F90132969FEF40E05191F1 +:104D7000581789F09F3F19F4511101C0942F4F5FCC +:104D80004630A9F79F3F39F0F901E90FF11D97FD72 +:104D9000FA9582830895089520911D0230911E0294 +:104DA000F9013296285F3F4F9081981301C010821D +:104DB0003196E217F307C1F7089581E090E0E091A2 +:104DC0001D02F0911E02E80FF91F10820196883033 +:104DD0009105A9F708959091C603892B8093C60386 +:104DE000089580959091C60389238093C603089502 +:104DF0001092C60308959091C503892B8093C50333 +:104E0000089580959091C50389238093C5030895E3 +:104E10001092C50308959091C403892B8093C40315 +:104E2000089580959091C40389238093C4030895C5 +:104E30001092C40308958093BB0308951092BB039E +:104E4000089580911D0290911E02FC0131969C01F3 +:104E5000285F3F4F80E0919191118F5FE217F30738 +:104E6000D1F70895E0911D02F0911E028091C603D2 +:104E70008083E0911D02F0911E0290818091C50314 +:104E8000892B8083E0911D02F0911E029081809118 +:104E9000C403892B80838091BB03882361F0E09158 +:104EA0001D02F0911E029081892B80830E94212790 +:104EB00081111092BB0380911D0290911E020C94EF +:104EC0005B1B8091E803843039F11092C80320E421 +:104ED00088E190E00FB6F894A895809360000FBE2B +:104EE0002093600080E00E94D20580E00E940A0BBF +:104EF00083B7817F846083BF83B7816083BF7894E9 +:104F0000889583B78E7F83BF88E10FB6F89480932E +:104F10006000109260000FBE089508950895CF9329 +:104F200080E00E94D2050E948D270E94AD0C0E9455 +:104F30008E27C0E08C2F0E94E60D892B29F4CF5FCD +:104F4000C530C1F780E001C081E0CF9108950E9493 +:104F50006C2180E00E94D2050E94092D0E944F1B07 +:104F60000C940A0B1F920F920FB60F9211248F937D +:104F70009F93AF93BF938091C803811113C0809119 +:104F8000C9039091CA03A091CB03B091CC03419681 +:104F9000A11DB11D8093C9039093CA03A093CB03B5 +:104FA000B093CC03BF91AF919F918F910F900FBEA3 +:104FB0000F901F90189582E084BD93E095BD9AEF05 +:104FC00097BD80936E0008952FB7F8948091C90320 +:104FD0009091CA03A091CB03B091CC032FBF089549 +:104FE000CF92DF92EF92FF920F931F932FB7F89417 +:104FF0004091C9035091CA036091CB037091CC03D7 +:105000002FBF6A017B01EE24FF248C0120E030E0F9 +:10501000C016D106E206F30610F4415051099A0178 +:10502000281B390BC9011F910F91FF90EF90DF9062 +:10503000CF9008951F920F920FB60F9211248F9365 +:105040009F93AF93BF938091C9039091CA03A0919E +:10505000CB03B091CC030196A11DB11D8093C90370 +:105060009093CA03A093CB03B093CC03BF91AF91AD +:105070009F918F910F900FBE0F901F9018950E94D7 +:105080004C18F8942FEF87EA91E621508040904029 +:10509000E1F700C0000087E090EBDC018093F303B0 +:1050A0009093F403A093F503B093F6039CE088E19A +:1050B0000FB6F894A895809360000FBE909360009F +:1050C000FFCF0E949B28811102C00E9477280E9476 +:1050D000A6288093C7030E94B3288093F1030E94FF +:1050E000AA28682F70E080E090E00C9428256DEEEF +:1050F0007EEF80E090E00E94BC3160E082E090E0D2 +:105100000E94AA3160E083E090E00E94AA3160E052 +:1051100084E090E00E94AA3160E085E090E00E9487 +:10512000AA3160E086E090E00E94AA316FEF87E04C +:1051300090E00C94AA3180E090E00E94A43121E03C +:105140008D3E9E4F09F020E0822F089582E090E08E +:105150000C949C3183E090E00C949C31682F83E0A8 +:1051600090E00C94AA3184E090E00C949C31682F7C +:1051700084E090E00C94AA3186E090E00C949C319D +:10518000682F86E090E00C94AA3187E090E00C94C0 +:105190009C31682F87E090E00C94AA318091CF0376 +:1051A00080FF0BC06091220285E0689FB00111244E +:1051B00075956795759567952BC081FF09C06091BE +:1051C000220285E0689FB00111247595679520C083 +:1051D00082FF07C06091220285E0689FB001112420 +:1051E00017C09091D0039923D1F0609121029617B6 +:1051F00088F72091220285E0289F90011124929F38 +:10520000A001939F500D112470E0CA010E948231C9 +:105210006038710540F46115710539F002C065E030 +:1052200070E0862F08958FE7089581E008958091BA +:10523000CF0380FF08C06091200270E075956795EC +:105240007595679521C081FF06C06091200270E0CE +:105250007595679519C082FF04C06091200270E0C7 +:1052600010C09091D0039923C1F060911F0296174E +:10527000A0F780912002899FC001112470E00E9454 +:1052800082316038710528F46115710521F0862F8F +:1052900008958FE7089581E0089561E070E0F4CF0C +:1052A000803F21F40E94CE28819504C0813F29F4DB +:1052B0000E94CE288093D3030895823F21F40E9458 +:1052C000CE28819504C0833F29F40E94CE28809384 +:1052D000D2030895893F19F40E94172905C08A3F17 +:1052E00031F40E94172981958093D40308958B3F50 +:1052F00021F40E941729819504C08C3F29F40E9453 +:1053000017298093D5030895843F21F48091D10318 +:10531000816017C0853F21F48091D103826011C064 +:10532000863F21F48091D10384600BC0873F21F434 +:105330008091D103886005C0883F31F48091D1030A +:1053400080618093D10308958D3F21F48091CF0334 +:1053500081600BC08E3F21F48091CF03826005C035 +:105360008F3F29F48091CF0384608093CF03089509 +:10537000803F39F48091D30387FF6CC01092D30330 +:1053800069C0813F29F48091D3031816BCF362C031 +:105390009091D203823F29F497FF5CC01092D20310 +:1053A00059C0833F19F41916CCF354C0893F41F416 +:1053B0008091D40318160CF04DC01092D4034AC04B +:1053C0008A3F29F48091D40387FF44C0F6CF8B3FF6 +:1053D00039F48091D50387FF3DC01092D5033AC0C0 +:1053E0008C3F29F48091D5031816BCF333C0843F59 +:1053F00021F48091D1038E7F17C0853F21F48091E5 +:10540000D1038D7F11C0863F21F48091D1038B7F22 +:105410000BC0873F21F48091D103877F05C0883F6F +:1054200031F48091D1038F7E8093D10313C08D3FDF +:1054300021F48091CF038E7F0BC08E3F21F48091A9 +:10544000CF038D7F05C08F3F29F48091CF038B7FE1 +:105450008093CF038091D20381110EC08091D3033A +:1054600081110AC08091D403811106C08091D503B7 +:10547000811102C01092D003089581ED93E00E9443 +:10548000661B0E94E4279093CE038093CD0308957A +:105490001F93CF93DF938091CD039091CE030E9411 +:1054A000F027AC019091D003992321F020912302A1 +:1054B00030E006C0209124028AE0289F9001112448 +:1054C0004217530708F486C08091D203C091D303DA +:1054D000D091D4031091D503811107C0C11176C0BA +:1054E000D11174C0111172C075C09F3F19F09F5F38 +:1054F0009093D003181624F40E94CE288093D203F0 +:105500008091D20387FF05C00E94CE2881958093A9 +:10551000D2031C1624F40E94CE288093D3038091DA +:10552000D30387FF05C00E94CE2881958093D303C3 +:105530006091D203662339F1C091D303CC2319F1D2 +:10554000772767FD7095872F972F0E94A42E23E35E +:1055500033E343E35FE30E94B42F0E94712E609314 +:10556000D2036C2F772767FD7095872F972F0E94A6 +:10557000A42E23E333E343E35FE30E94B42F0E94AE +:10558000712E6093D3031D1624F40E941729809373 +:10559000D4038091D40387FF05C00E941729819509 +:1055A0008093D403111624F40E9417298093D50305 +:1055B0008091D50387FF05C00E94172981958093AC +:1055C000D503DF91CF911F910C943D2A9F3F09F0A5 +:1055D0008ECF96CFDF91CF911F910895E1EDF3E04B +:1055E00085E0DF011D928A95E9F71092D0031092B1 +:1055F000CF030895833081F128F4813059F082304F +:10560000D1F00895853009F449C0B8F1863009F425 +:1056100056C0089580912402262F30E0280F311DB6 +:105620002F3F310524F4680F6093240208958FEF13 +:1056300080932402089580912302262F30E0280FC2 +:10564000311D2F3F310524F4680F60932302089524 +:105650008FEF80932302089580912202262F30E05D +:10566000280F311D2F3F310524F4680F609322026B +:1056700008958FEF80932202089580912102262FB2 +:1056800030E0280F311D2F3F310524F4680F60935F +:10569000210208958FEF80932102089580912002C6 +:1056A000262F30E0280F311D2F3F310524F4680FDD +:1056B0006093200208958FEF8093200208958091D7 +:1056C0001F02262F30E0280F311D2F3F310524F413 +:1056D000680F60931F0208958FEF80931F02089553 +:1056E000833011F128F4813049F0823091F008952F +:1056F000853081F120F18630C1F108958091240236 +:10570000681720F4861B80932402089510922402C7 +:10571000089580912302681720F4861B809323024A +:10572000089510922302089580912202681720F4B0 +:10573000861B809322020895109222020895809180 +:105740002102681720F4861B80932102089510928D +:105750002102089580912002681720F4861B80930F +:105760002002089510922002089580911F02681768 +:1057700020F4861B80931F02089510921F02089543 +:105780000F931F938732D8F58E3108F087C08E3083 +:1057900009F471C098F4873009F45BC08B3009F4C8 +:1057A00091C0863009F095C08091C703817F8E7FBC +:1057B0008093C70381E08093D7038CC0863109F4BE +:1057C00081C068F4803109F084C08091C70383FBF5 +:1057D000222720F991E0922790FB83F955C0893167 +:1057E00009F470C08B3109F074C08091C70381FB4C +:1057F000222720F991E0922790FB81F945C0883358 +:1058000009F460C050F4893209F45EC0853309F4AC +:105810005BC0873209F458C05CC0833409F454C0BB +:1058200028F48A3308F455C0895339C0883409F004 +:1058300050C00E946C210E94B2070FEF13ED20E3CD +:10584000015010402040E1F700C000000E943F28B6 +:1058500039C09091C703892F8095817080FB90F9A2 +:1058600029F0966098609093C70334C0997F977F22 +:105870009093C70327C08091C70382FB222720F99A +:1058800091E0922790FB82F98093C7039923D1F08E +:105890008091C70381608093C70314C08D5141E09C +:1058A00050E060E070E08A019B0104C0000F111F0E +:1058B000221F331F8A95D2F7C901B8010E942825FB +:1058C0000E946C2181E006C061E070E080E090E021 +:1058D000F5CF80E01F910F91089580E0089580E05A +:1058E0000895CF93C82F8091D703813069F018F0C5 +:1058F0008230C9F184C0E0911D02F0911E028081C6 +:10590000823209F07EC007C0E0911D02F0911E02B4 +:105910008081823261F48C2F0E946D2C811104C031 +:105920008C2F0E94C02B1DC081E090E01AC08C2FEC +:105930000E946F2C811114C0C43179F048F4CB302F +:1059400079F0C03109F061C082E08093D70308C0CC +:10595000C93219F0C83321F058C01092D70355C08E +:1059600081E0817054C0C93291F120F5C43179F1E0 +:10597000B0F4C73009F047C08EE18093240282E37F +:10598000809323028AE08093220284E180932102A3 +:1059900088E08093200288E280931F0234C0CE51B9 +:1059A000C63088F5EC2FF0E0E451FD4F8081809304 +:1059B000D60329C0CE34E9F020F4CB3421F56AE0D7 +:1059C00013C0C13579F0C235F1F461E00DC08091AA +:1059D000D603882319F01092D60315C081E0809376 +:1059E000D70315C061E006C08091D6030E94FA2A51 +:1059F0000AC06AE08091D6030E94702B04C0109206 +:105A0000D70380E004C081E002C080E0AACFCF913C +:105A100008950E949B28811102C00E9477280E944D +:105A2000BC288093F20380FF02C0869501C080E00D +:105A30000C94D2058091F203982F9695292F30E08F +:105A4000233031054CF49F5F990F8170892B816061 +:105A50008093F2030E94C0288091F20386950C94F3 +:105A6000D2058091F203982F969591F09158990F55 +:105A70008170892B8093F2038E7F91E009F490E08E +:105A80008091F20390FB80F98093F2030E94C0287A +:105A90008091F20386950C94D2058091F203982FA1 +:105AA000909590FB80F98093F2030E94C02880912A +:105AB000F20380FF02C0869501C080E00C94D205FD +:105AC0009091F203892F86958F5F8F779170843044 +:105AD00028F4880F892B8093F20302C09093F2037D +:105AE0008091F2038E7F91E009F490E08091F203BF +:105AF00090FB80F98093F2030E94C0288091F2030A +:105B000086950C94D2052091F203922F96958927C1 +:105B1000982F990F822F8170892B8093F2038E7FAB +:105B200091E009F490E08091F20390FB80F980937A +:105B3000F2030E94C0288091F20386950C94D2054E +:105B40005058BB27AA270ED0D1C1C2D130F0C7D13F +:105B500020F031F49F3F11F41EF4B7C10EF4E0952C +:105B6000E7FB9FC1E92FD3D180F3BA176207730710 +:105B70008407950718F071F49EF5EBC10EF4E095DB +:105B80000B2EBA2FA02D0B01B90190010C01CA01F7 +:105B9000A0011124FF27591B99F0593F50F4503EA2 +:105BA00068F11A16F040A22F232F342F4427585F94 +:105BB000F3CF469537952795A795F0405395C9F7AC +:105BC0007EF41F16BA0B620B730B840BBAF0915064 +:105BD000A1F0FF0FBB1F661F771F881FC2F70EC003 +:105BE000BA0F621F731F841F48F4879577956795D6 +:105BF000B795F7959E3F08F0B3CF9395880F08F0BF +:105C00009927EE0F97958795089527D108F481E09D +:105C100008950CD06BC163D140F05AD130F021F41B +:105C20005F3F19F03EC1511195C14FC170D198F33A +:105C30009923C9F35523B1F3951B550BBB27AA270D +:105C400062177307840738F09F5F5F4F220F331F7F +:105C5000441FAA1FA9F333D00E2E3AF0E0E830D04B +:105C600091505040E695001CCAF729D0FE2F27D04E +:105C7000660F771F881FBB1F261737074807AB071C +:105C8000B0E809F0BB0B802DBF01FF2793585F4F91 +:105C90002AF09E3F510568F004C15CC15F3FECF300 +:105CA000983EDCF3869577956795B795F7959F5F56 +:105CB000C9F7880F911D9695879597F90895E1E0AA +:105CC000660F771F881FBB1F621773078407BA0709 +:105CD00020F0621B730B840BBA0BEE1F88F7E09564 +:105CE000089504D06894B11135C1089518D188F091 +:105CF0009F5790F0B92F9927B751A0F0D1F0660FB8 +:105D0000771F881F991F1AF0BA95C9F712C0B130D2 +:105D100081F01FD1B1E008951CC1672F782F88272B +:105D2000B85F39F0B93FCCF3869577956795B39511 +:105D3000D9F73EF490958095709561957F4F8F4F80 +:105D40009F4F0895E89409C097FB3EF49095809585 +:105D5000709561957F4F8F4F9F4F9923A9F0F92F31 +:105D600096E9BB279395F695879577956795B795AF +:105D7000F111F8CFFAF4BB0F11F460FF1BC06F5F95 +:105D80007F4F8F4F9F4F16C0882311F096E911C0A7 +:105D9000772321F09EE8872F762F05C0662371F0C8 +:105DA00096E8862F70E060E02AF09A95660F771FDC +:105DB000881FDAF7880F9695879597F9089588D008 +:105DC00018F011F08CD038F480C0C4C0E92F9FD0F7 +:105DD000B0F35523C9F3E7FB6217730784079507F0 +:105DE000A8F199F3E92FFF2788232AF03197660F4E +:105DF000771F881FDAF7952F5527442332F09150EB +:105E00005040220F331F441FD2F7BB27E91BF50B6D +:105E1000621B730B840BB109C1F222F4620F731F72 +:105E2000841FB11D31972AF0660F771F881FBB1F93 +:105E3000EFCF915050405AF041F0882332F0660F76 +:105E4000771F881F91505040C1F7939530C08695B9 +:105E5000779567959F5FD9F7F8CF990F0008550F91 +:105E6000AA0BE0E8FEEF16161706E807F907C0F0E0 +:105E700012161306E407F50798F0621B730B840BE8 +:105E8000950B39F40A2661F0232B242B252B21F4C2 +:105E900008950A2609F4A140A6958FEF811D811D62 +:105EA000089597F99F6780E870E060E008959F3F4C +:105EB00031F0915020F4879577956795B795880FC5 +:105EC000911D9695879597F908959FEF80EC089519 +:105ED00000240A94161617061806090608950024C9 +:105EE0000A9412161306140605060895092E039443 +:105EF000000C11F4882352F0BB0F40F4BF2B11F4B7 +:105F000060FF04C06F5F7F4F8F4F9F4F089557FD15 +:105F10009058440F551F59F05F3F71F04795880F17 +:105F200097FB991F61F09F3F79F0879508951216AE +:105F300013061406551FF2CF4695F1DF08C016165A +:105F400017061806991FF1CF86957105610508940B +:105F50000895E894BB2766277727CB0197F9089522 +:105F60007CDF08F48FEF08950BD0C0CFB1DF28F0AD +:105F7000B6DF18F0952309F094CFA7CF1124EACF0C +:105F8000C6DFA0F3959FD1F3950F50E0551F629F98 +:105F9000F001729FBB27F00DB11D639FAA27F00D82 +:105FA000B11DAA1F649F6627B00DA11D661F829FA9 +:105FB0002227B00DA11D621F739FB00DA11D621F8E +:105FC000839FA00D611D221F749F3327A00D611DAB +:105FD000231F849F600D211D822F762F6A2F11248D +:105FE0009F5750408AF0E1F088234AF0EE0FFF1FE0 +:105FF000BB1F661F771F881F91505040A9F79E3F17 +:10600000510570F04ECFA6CF5F3FECF3983EDCF326 +:10601000869577956795B795F795E7959F5FC1F753 +:10602000FE2B880F911D9695879597F90895FA0193 +:10603000EE0FFF1F30962105310599F161157105AD +:1060400061F48038BFE39B0749F16894903881057B +:1060500061F08038BFEF9B0741F0992342F5FF3F85 +:10606000E1053105210511F1E8940894E795D9017E +:10607000AA2329F4AB2FBE2FF85FD0F310C0FF5F27 +:1060800070F4A695E0F7F73950F019F0FF3A38F4BC +:106090009F779F930CD00F9007FC905808953EF087 +:1060A00014CF60E070E080E89FE308954FE79F77AA +:1060B0005F934F933F932F939ED02F913F914F919A +:1060C0005F9152DF05C019F40EF0EBCE42CFFDCE4A +:1060D00026DFC8F39638C0F707F80F92E8942BE351 +:1060E0003AEA48EB5FE74EDF0F920F920F924DB7FF +:1060F0005EB70F92C0D0E8EFF0E016D04F915F91FD +:10610000EF91FF91E595EE1FFF1F49F0FE57E06804 +:106110004427EE0F441FFA95E1F74195550B32D015 +:106120000F9007FE26C00895DF93CF931F930F9320 +:10613000FF92EF92DF927B018C01689405C0DA2E0A +:10614000EF011EDFFE01E894A5912591359145915F +:106150005591AEF3EF0106DDFE019701A801DA9437 +:1061600079F7DF90EF90FF900F911F91CF91DF9122 +:1061700008959B01AC0160E070E080E89FE349CDA9 +:1061800090CE95CECCDEE8F39923D9F3940F511D30 +:10619000BBF39150504094F059F0882332F0660FD1 +:1061A000771F881F91505040C1F79E3F510544F71B +:1061B000880F911D9695879597F908955F3FACF0EC +:1061C000983E9CF0BB27869577956795B79508F420 +:1061D000B1609395C1F7BB0F58F711F460FFE8CF9A +:1061E0006F5F7F4F8F4F9F4FE3CFB4CE0EF05FCEE8 +:1061F0006CCE689456CE93DEC8F39923D1F3C6F3E0 +:10620000DF93CF931F930F93FF92C92FDD2788232E +:106210002AF02197660F771F881FDAF720E030E019 +:1062200040E85FEB9FE3883920F0803E30F0219614 +:106230008F7787DCE0E2F1E003C083DCEDE4F1E09E +:1062400073DF8B01BE01EC01FB2E6F577109759551 +:10625000771F880B990B78DD28E132E741E35FE394 +:106260008FDEAF2D9801AE01FF900F911F91CF915E +:10627000DF9178DC3BCEFA01DC01AA0FBB1F9B014A +:10628000AC01BF5728F422273327442750781FC07A +:10629000B75188F4AB2F0024469537952795011CFC +:1062A000A395D2F3002069F0220F331F441FB3954A +:1062B000DAF30DD045CC61307105A0E88A07B94604 +:1062C00030F49B01AC0166277727882790783096B9 +:1062D00021F020833183428353830895AA1BBB1B83 +:1062E00051E107C0AA1FBB1FA617B70710F0A61BD6 +:1062F000B70B881F991F5A95A9F780959095BC01F7 +:10630000CD01089597FB072E16F4009407D077FD72 +:1063100009D00E946E3107FC05D03EF4909581951E +:106320009F4F0895709561957F4F0895EE0FFF1F61 +:106330000590F491E02D0994F999FECF92BD81BDAD +:10634000F89A992780B50895A8E1B0E042E050E0BE +:106350000C94C431262FF999FECF92BD81BDF89AD5 +:10636000019700B4021639F01FBA20BD0FB6F89499 +:10637000FA9AF99A0FBE08950196272F0E94AB3121 +:106380000C94AA31DC01CB01FC01F999FECF06C0C7 +:10639000F2BDE1BDF89A319600B40D9241505040E3 +:0863A000B8F70895F894FFCF4F +:1063A8000C52D02445000000410000DC44000000ED +:1063B8004152D0A4440000404100005C4400000069 +:1063C8004148F17644000000415C978A440000008F +:1063D800411FD592440000004152D0A4440000005F +:1063E800415CFFB844000000410AA7CF4400000008 +:1063F800410000DC44000000410AA7CF440000002F +:10640800410000DC44000000410000000000008062 +:106418004052D024450000404100000000000080A8 +:10642800400AA74F45000040410AA7CF440000009A +:10643800410000DC44000000410000000000008032 +:106448004052D024450000004100000000000080B8 +:10645800405CFF384500000041000000000000805B +:106468004052D02445000000410AA7CF4400000054 +:10647800410000DC440000004100000000000080F2 +:106488004052D024450000804110F176440000A01D +:106498004112F1F6440000004141909B440000A0E5 +:1064A8004112F1F64400000041050000003F0000E1 +:1064B800C8427B140915E614B2147E1401BC0328E3 +:1064C80008140A321E000002000400050007000933 +:1064D800000B000C000E001000110013001500172F +:1064E8000018001A001C001D001F002100230024B2 +:1064F800002600280029002B002D002F0030003234 +:106508000034003500370039003B004200450025C3 +:106518000026004300610060002000370064006529 +:1065280000660067004400460024004700314980A7 +:106538003F5D8B803FF8BF803FCAE1803F73ED80AD +:106548003FCAE1803FF8BF803F5D8B803F31498083 +:106558003F0000803FF16D7F3F75EA7E3F4C827EB1 +:106568003F833F7E3F84287E3F833F7E3F4C827E31 +:106578003F75EA7E3FF16D7F3F0000803F3F4D361B +:10658800B90A6C0A360AE209FB09140A0102030473 +:06659800050607080900DA :00000001FF diff --git a/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex index a29f23c00..c42365c43 100644 --- a/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex +++ b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex @@ -250,79 +250,79 @@ :107FE4000C94ED3E0C94113F0C94193F0C94213FDA :0C7FF4000C94F23E0C94033F0C94293FC7 :040000030000700089 -:100000000C94A0050C94E4050C94E4050C94E40510 -:100010000C94E4050C94E4050C94E4050C94E405BC -:100020000C94E4050C94E4050C94B6180C9488190F -:100030000C94A1270C94E4050C94E4050C94E405BD -:100040000C94E4050C94E4050C94E4050C94E4058C -:100050000C94E4050C9409280C94E4050C94E40534 -:100060000C94E4050C94E4050C94E4050C94E4056C -:100070000C94E4050C94E4050C94E4050C94E4055C -:100080000C94090F0C94E4050C94E4050C94E4051D -:100090000C94E4050C94E4050C94E4050C94E4053C -:1000A0000C94E4050C94E4050C94E4053F064F061B -:1000B000610671067706860692069706A406AC06C8 -:1000C000BC06C106C813C813C813C813C813C81385 -:1000D000C813C813C813C813DF13DF13DF13DF13EC -:1000E000DF13DF13DF13DF13DF13DF13C813C813AE -:1000F000C813C813C813DF13DF13DF13DF13DF13B5 -:10010000C813C813C813DF13DF13DF13F519171A49 -:10011000051B171A051B5C1A7F1A051BD41AE71A50 -:10012000EA1DEA1D271E271E811EBF1E372137210B -:10013000D81E3721D91FD91F9C20B3203721222157 -:1001400007634236B79BD8A71A39685618AEBAABC0 -:10015000558C1D3CB7CC5763BD6DEDFD753EF61754 -:100160007231BF000000803F08000000BE922449A9 -:10017000123EABAAAA2ABECDCCCC4C3E00000080D9 -:10018000BEABAAAAAA3E00000000BF000000803F4C -:100190000000000000084178D3BB4387D1133D190C -:1001A0000E3CC3BD4282AD2B3E68EC8276BED98F39 -:1001B000E1A93E4C80EFFFBE01C4FF7F3F0000007D -:1001C000000035001E001F00200021002200230037 -:1001D00024002500260027002A002B0014001A0006 -:1001E0000800150017001C0018000C001200130076 -:1001F0004C00290004001600070009000A000B004B -:100200000D000E000F0033003400E1001D001B0044 -:1002100006001900050011001000360037003800F4 -:1002200028000530E000E200E30003302C002C0041 -:1002300004305000510052004F0035001E001F00D6 -:100240002000210022002300240025002600270092 -:100250002A002B0014001A00090013000A000D00E8 -:100260000F0018001C0033004C002900040015008A -:100270001600170007000B00110008000C00120008 -:100280003400E1001D001B000600190005000E00EF -:10029000100036003700380028000530E000E2008A -:1002A000E30003302C002C000430500051005200B9 -:1002B0004F0035001E001F002000210022002300F7 -:1002C00024002500260027002A002B0034003600D9 -:1002D000370013001C0009000A00060015000F007B -:1002E0004C00290004001200080018000C00070050 -:1002F0000B001700110016003800E1003300140055 -:100300000D000E001B00050010001A0019001D0052 -:1003100028000530E000E200E30003302C002C0050 -:1003200004305000510052004F0035021E021F02DF -:100330002002210222022302240225022602270291 -:100340002A0035021E021F0220022102220223027D -:1003500024022502260227024C004C003A003B00F2 -:100360003C003D003E003F002D022E022F023002D5 -:1003700031020100400041004200430044004500BA -:100380000100010001000100010001000100010065 -:1003900001000100010001000100AB00AA00A9005A -:1003A000AE0035001E001F002000210022002300A7 -:1003B00024002500260027002A0035001E001F000B -:1003C0002000210022002300240025002600270011 -:1003D0004C004C003A003B003C003D003E003F001A -:1003E0002D002E002F0030003100010040004100A0 -:1003F00042004300440045000100010001000100EB -:1004000001000100010001000100010001000100E4 -:100410000100AB00AA00A900AE000000000000002F +:100000000C947C050C94C0050C94C0050C94C005A0 +:100010000C94C0050C94C0050C94C0050C94C0054C +:100020000C94C0050C94C0050C94C7180C94991935 +:100030000C94B2270C94C0050C94C0050C94C00518 +:100040000C94C0050C94C0050C94C0050C94C0051C +:100050000C94C0050C941A280C94C0050C94C0058F +:100060000C94C0050C94C0050C94C0050C94C005FC +:100070000C94C0050C94C0050C94C0050C94C005EC +:100080000C94E50E0C94C0050C94C0050C94C005AE +:100090000C94C0050C94C0050C94C0050C94C005CC +:1000A0000C94C0050C94C0050C94C0051B062B06CF +:1000B0003D064D06530662066E06730680068806E8 +:1000C00098069D06061A281A161B281A161B6D1A62 +:1000D000901A161BE51AF81AFB1DFB1D381E381E58 +:1000E000921ED01E48214821E91E4821EA1FEA1F1E +:1000F000AD20C4204821332107634236B79BD8A7DF +:100100001A39685618AEBAAB558C1D3CB7CC57633C +:10011000BD6DEDFD753EF6177231BF000000803FEA +:1001200008000000BE922449123EABAAAA2ABECD06 +:10013000CCCC4C3E00000080BEABAAAAAA3E000078 +:100140000000BF000000803F000000000008417870 +:10015000D3BB4387D1133D190E3CC3BD4282AD2BA7 +:100160003E68EC8276BED98FE1A93E4C80EFFFBE9F +:1001700001C4FF7F3F000000000035001E001F008B +:100180002000210022002300240025002600270053 +:100190002A002B0014001A000800150017001C008C +:1001A00018000C00120013004C0029000400160077 +:1001B000070009000A000B000D000E000F003300BD +:1001C0003400E1001D001B000600190005001100AD +:1001D000100036003700380028000530E000E2004B +:1001E000E30003302C002C0004305000510052007A +:1001F0004F0035001E001F002000210022002300B8 +:1002000024002500260027002A002B0014001A00D5 +:10021000090013000A000D000F0018001C00330035 +:100220004C002900040015001600170007000B0001 +:10023000110008000C0012003400E1001D001B003A +:100240000600190005000E001000360037003800C7 +:1002500028000530E000E200E30003302C002C0011 +:1002600004305000510052004F0035001E001F00A6 +:100270002000210022002300240025002600270062 +:100280002A002B0034003600370013001C00090040 +:100290000A00060015000F004C002900040012009F +:1002A000080018000C0007000B00170011001600D2 +:1002B0003800E100330014000D000E001B000500A3 +:1002C00010001A0019001D0028000530E000E200AF +:1002D000E30003302C002C00043050005100520089 +:1002E0004F0035021E021F022002210222022302B9 +:1002F00024022502260227022A0035021E021F02BE +:1003000020022102220223022402250226022702C1 +:100310004C004C003A003B003C003D003E003F00DA +:100320002D022E022F023002310201004000410056 +:1003300042004300440045000100010001000100AB +:1003400001000100010001000100010001000100A5 +:100350000100AB00AA00A900AE0035001E001F007E +:100360002000210022002300240025002600270071 +:100370002A0035001E001F0020002100220023005B +:1003800024002500260027004C004C003A003B00CA +:100390003C003D003E003F002D002E002F003000AD +:1003A000310001004000410042004300440045008C +:1003B0000100010001000100010001000100010035 +:1003C00001000100010001000100AB00AA00A9002A +:1003D000AE0000000000000000000000000000006F +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC :1004200000000000000000000000000000000000CC -:1004300000000000000000000000000000000000BC -:1004400000000000000000000000000000000000AC +:100430000000000000000000000003300000000089 +:100440000430000000000000000000000000000078 :10045000000000000000000000000000000000009C :10046000000000000000000000000000000000008C :10047000000000000000000000000000000000007C -:100480000000033000000000043000000000000005 +:10048000000000000000000000000000000000006C :10049000000000000000000000000000000000005C :1004A000000000000000000000000000000000004C :1004B000000000000000000000000000000000003C @@ -393,1471 +393,1488 @@ :1008C0000000000000000000000000000000000028 :1008D0000000000000000000000000000000000018 :1008E0000000000000000000000000000000000008 -:1008F00000000000000000000000000000000000F8 -:1009000000000000000000000000000000000000E7 -:1009100000000000000000000000000000000000D7 -:1009200000000000000000000000000000000000C7 -:1009300000000000000000000000000000000000B7 -:1009400000003A003B003C003D003E003F004000FC -:1009500041004200430044004500010000500100F6 +:1008F000000000000000000000003A003B003C0047 +:100900003D003E003F0040004100420043004400E3 +:10091000450001000050010001000100010001003C +:1009200001000100010001004C0001000100010074 +:1009300007300630135012500030013002300100F1 +:10094000010001000B300A300930083001000100BD +:10095000010001000100010001000100010001008F :10096000010001000100010001000100010001007F -:100970004C000100010001000730063013501250F6 -:100980000030013002300100010001000B300A305C -:1009900009300830010001000100010001000100E0 -:1009A000010001000100010001000100010001003F -:1009B000010001000100010001002A035400680049 -:1009C000650020005000720065006F006E00690035 -:1009D000630020004B006500790062006F00610039 -:1009E0007200640000002C034F0072007400680065 -:1009F0006F006C0069006E006500610072002000ED -:100A00004B006500790062006F00610072006400B5 -:100A1000730000000403090409025400030100A04C -:100A2000FA0904000001030101000921110100017C -:100A3000223F000705810308000A090401000103A1 -:100A4000010200092111010001224D000705820366 -:100A500008000A0904020001030000000921110135 -:100A600000012236000705830308000A1201100165 -:100A700000000008EDFE61600100010200010501B7 -:100A80000980A101850216010026B7001A01002A7B -:100A9000B700751095018100C0050C0901A1018501 -:100AA00003160100269C021A01002A9C027510956B -:100AB000018100C005010902A1010901A100050988 -:100AC000190129051500250195057501810295017A -:100AD000750381010501093009311581257F9502D2 -:100AE0007508810609381581257F950175088106ED -:100AF000050C0A38021581257F950175088106C00D -:100B0000C005010906A101050719E029E71500251F -:100B10000195087501810295017508810105081983 -:100B2000012905950575019102950175039101054E -:100B300007190029FF150025FF950675088100C0DB -:100B400011241FBECFEFDAE0DEBFCDBF04B603FE37 -:100B500024C08091A3039091A403A091A503B09118 -:100B6000A6038730904BA740B04BB9F41092A30373 -:100B70001092A4031092A5031092A60314BE84B78A -:100B8000877F84BF88E10FB6F8948093600010924D -:100B900060000FBEE0E0F8E3099512E0A0E0B1E0EC -:100BA000EAEEF2E602C005900D92A83AB107D9F735 -:100BB00013E0A8EAB2E001C01D92A33AB107E1F741 -:100BC0000E94FC150C9473310C940000279A2F9806 -:100BD0008FEF9FEF90938700809386008AE0809349 -:100BE000800089E1809381000C94F82C282F8111DA -:100BF0000BC080918000877F8093800010928D00D1 -:100C000010928C002F9808952F9880918000886012 -:100C100080938000233019F48FEF9FEF0FC083E0A3 -:100C200090E0821B9109880F991F2FEF3FEFA901D8 -:100C300002C0569547958A95E2F7CA0190938D00B8 -:100C400080938C000895CF93DF93EC010E949D2840 -:100C5000BE0180E090E0DF91CF910C9417250F93B7 -:100C60001F93462F50E04C30510508F098C0DC012E -:100C7000FA01EA5AFF4F12968C910C94373188236F -:100C800009F48DC000E010E0980140E064E070E0FD -:100C90008BEC91E00E94871281E090E00FC08823E6 -:100CA00009F47DC000E010E0980140E066E070E0EB -:100CB0008BE591E00E94871282E090E00E9423067B -:100CC0006EC0882309F46BC000E010E0980140E09A -:100CD00068E070E08BE891E00E94871284E090E089 -:100CE000EDCF882311F083E005C083E00CC088239A -:100CF00049F084E00E94942540E164E083E00E9492 -:100D0000ED0A4DC084E00E94B525F6CF882331F06E -:100D100085EE0E947E1C0E944F2D41C085EE0E94F0 -:100D2000461D3DC08823D9F10E941B0E38C0882380 -:100D3000B1F10E94140E00E010E0980140E064E080 -:100D400070E08BEE91E029C0882349F185E00E9494 -:100D5000B5250E943C0E23C0882309F100E010E075 -:100D6000980140E068E070E08BE191E00E9487121A -:100D700085E00E94942513C0882389F00E941A13ED -:100D800004C0882361F00E94251300E010E0980160 -:100D900040E068E070E08BE191E00E94871280E023 -:100DA00090E01F910F9108950F931F932FEF89EFFC -:100DB00090E0215080409040E1F700C0000000E04A -:100DC00010E0980140E064E070E08BEE91E00E945A -:100DD00087121F910F910895CF92DF92EF92FF92A9 -:100DE0000F931F93CF93DF93CDB7DEB7CC58D109C4 -:100DF0000FB6F894DEBF0FBECDBF2091630325FF71 -:100E0000C5C08C01FC01928180910201992309F4F3 -:100E100060C096E4E7E2F2E0DE01A95BBF4F01901B -:100E20000D929A95E1F7F8019081E0910001F0911F -:100E30000101E90FF11DEE0FFF1F27E430E02C0F39 -:100E40003D1FE20FF31F60817181680F711D8827BC -:100E500077FD8095982F0E94932E20E030E040E4AB -:100E600051E40E94F82D6B017C01F801218185E09D -:100E700090E0821B9109BC01882777FD8095982F0F -:100E80000E94932E9B01AC01C701B6010E94902DD8 -:100E90009B01AC0160E070E080E090E40E94AA2F2A -:100EA00020E030E04CE551E40E94472F4FE050E055 -:100EB000C457DF4F0FB6F894DEBF0FBECDBFDF9132 -:100EC000CF911F910F91FF90EF90DF90CF900C94F6 -:100ED000271296E4E7E2F2E0DE01119601900D920E -:100EE0009A95E1F7F8019081E0910001F0910101FC -:100EF000E90FF11DEE0FFF1F21E030E02C0F3D1F29 -:100F0000E20FF31F60817181680F711D882777FDE3 -:100F10008095982F0E94932E20E030E040E451E429 -:100F20000E94F82D6B017C01F801218185E090E0A1 -:100F3000821B9109BC01882777FD8095982F0E941C -:100F4000932E9B01AC01C701B6010E94902D9B011D -:100F5000AC0160E070E080E090E40E94AA2F20E005 -:100F600030E04CE551E40E94472FC457DF4F0FB6E5 -:100F7000F894DEBF0FBECDBFDF91CF911F910F91CF -:100F8000FF90EF90DF90CF900C946F0EC457DF4F1F -:100F90000FB6F894DEBF0FBECDBFDF91CF911F918A -:100FA0000F91FF90EF90DF90CF9008950F931F93D4 -:100FB00000E010E0980140E063E070E083E091E041 -:100FC0000E9487122FEF82E597E0215080409040E9 -:100FD000E1F700C000001F910F91089508950E944D -:100FE000E6056E9A769A0C94D4060C94EE070C944F -:100FF000EC060895880F991FFC01EE5BFF4F859169 -:1010000094910895880F991FFC01EE53FE4F85912E -:10101000949108950F931F93CF93DF93EC01811563 -:1010200020E49207A0F5C11580E3D80708F0E1C0DD -:10103000C83ED105D8F4C03ED10508F0EEC1C83A8B -:10104000D10578F4C53AD10508F074C0C130D10596 -:1010500009F46DC008F4DEC1C430D10508F0DDC16B -:10106000D9C1CB3BD10508F470C0D4C1C11590E201 -:10107000D90708F0B9C0C11521E0D20708F0CDC1E9 -:10108000C03FD10508F4C6C18E01106506C2C1304B -:1010900080E5D80709F4BDC068F5C13120E4D20766 -:1010A00009F4AEC050F4C03190E4D90708F0A5C0EF -:1010B000CF70DD278E01146DF0C1C33120E4D2075B -:1010C00009F4A4C008F49FC0C115D04509F0A2C11D -:1010D0000E945B210E943C0E0E94D6079FEF24E3F2 -:1010E0008CE0915020408040E1F700C000000E9459 -:1010F0002E28D3C1C11520E6D20730F4C11581E5F1 -:10110000D80708F48CC02DC1C11590E7D90708F4A1 -:1011100081C1C11520E8D20708F478C1C11580E962 -:10112000D80708F077C1DF708E01106AB6C101E000 -:1011300010E0B3C1C53AD10509F471C1C63AD10571 -:1011400009F070C102E810E4A8C1C83AD10509F459 -:101150006CC1C93AD10509F46BC1CA3AD10509F489 -:101160006AC1CB3AD10509F469C1CC3AD10509F479 -:1011700068C1CD3AD10509F467C1C03BD10509F476 -:1011800066C1CE3AD10509F465C1CF3AD10509F45B -:1011900064C1C13BD10509F463C1C23BD10509F467 -:1011A00062C1C33BD10509F461C1C43BD10509F457 -:1011B00060C1C53BD10509F45FC1C63BD10509F447 -:1011C0005EC1C73BD10509F45DC1C83BD10509F437 -:1011D0005CC1C93BD10509F45BC1CA3BD10509F427 -:1011E0005AC100E014E459C1CE019F700E94020868 -:1011F00055C1DD278E01106C50C100E011ED4DC1CD -:1012000000E010ED4AC100E012ED47C100E013ED2F -:1012100044C1809177038160809377033EC10E942F -:101220008A28811102C00E9466280E94A22890E0AC -:101230009093A2038093A103C23090E5D90721F4D3 -:101240008091A103816086C0C43020E5D20721F4DB -:101250008091A10382607EC0C63080E5D80721F46A -:101260008091A103846076C0C83090E5D90719F455 -:101270008091A10327C0CA3020E5D20721F48091D4 -:10128000A103806167C0CC3080E5D80721F480914C -:10129000A10380625FC0CE3090E5D90721F4809130 -:1012A000A103806457C0C03120E5D20721F48091AA -:1012B000A10380684FC0C23180E5D80729F480912E -:1012C000A1038460886046C0C33090E5D90721F44B -:1012D0008091A1038E7F3EC0C53020E5D20721F466 -:1012E0008091A1038D7F36C0C73080E5D80721F4F7 -:1012F0008091A1038B7F2EC0C93090E5D90719F4E6 -:101300008091A10326C0CB3020E5D20721F4809143 -:10131000A1038F7E1FC0CD3080E5D80721F48091D6 -:10132000A1038F7D17C0CF3090E5D90721F48091BC -:10133000A1038F7B0FC0C13120E5D20721F480913A -:10134000A1038F7707C0C331D04531F48091A10349 -:101350008B7F877F8093A1038091A1030E94A628A1 -:101360009CC08D2F99278F70992781309105D9F4D2 -:101370009E012370332702C0880F991F2A95E2F738 -:101380009C688E0144E0000F111F4A95E1F7002789 -:101390001370802B912B53E0CC0FDD1F5A95E1F792 -:1013A000C076DD272FC08230910531F4DC2FCC27A9 -:1013B0008E01016F106A71C08330910569F4CE010E -:1013C0008370992701E010E002C0000F111F8A9579 -:1013D000E2F7C8019C680FC0049709F05EC0CE0117 -:1013E0008370992701E010E002C0000F111F8A9559 -:1013F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D8 -:10140000C07ED7708C010C2B1D2B47C0DF708E0166 -:10141000106243C000E010E040C08E013EC001E811 -:1014200010E43BC003E810E438C002EE14E435C019 -:1014300009EE14E432C00AEE14E42FC005EB14E404 -:101440002CC006EB14E429C007EB14E426C00CEC16 -:1014500014E423C00DEC14E420C003E815E41DC01F -:101460000AE815E41AC002E915E417C004E915E416 -:1014700014C001E216E411C003E216E40EC004E257 -:1014800016E40BC005E216E408C006E216E405C047 -:1014900007E216E402C00AE216E4C801DF91CF9128 -:1014A0001F910F9108959CE0799FF00111249CE316 -:1014B000899FE00DF11D1124E60FF11DEE0FFF1FB6 -:1014C000EE53FE4F85919491803E9105E0F4803C6F -:1014D000910558F58133910509F46FC048F48932BC -:1014E000910509F463C08A32910509F46DC072C098 -:1014F00089339105E9F082389105D1F08533910562 -:1015000009F44DC067C0833E910581F138F4803EF7 -:101510009105B9F0823E9105D9F05CC0863E9105F7 -:1015200061F1873E9105A1F155C00E94FA07089527 -:101530002091A10320FD02C021FF4CC080EE90E06D -:1015400049C08091A10380FFF9CF89E390E042C0B8 -:101550008091A10382FF0EC08091A10384FF03C08C -:1015600080E090E037C083EE90E034C08091A1032A -:1015700082FFF2CF82EE90E02DC08091A10383FF25 -:101580000BC08091A10384FDEBCF87EE90E022C0D9 -:101590008091A10383FFF5CF86EE90E01BC0809180 -:1015A000A10385FF07C089E290E014C08091A103E8 -:1015B00085FFF9CF85E390E00DC08091A10386FF00 -:1015C00007C08AE290E006C08091A10386FFF9CFB0 -:1015D00081E390E00E940A080895CF92DF92EF9293 -:1015E000FF920F931F9301E010E020E030E06801CC -:1015F000790104C0CC0CDD1CEE1CFF1C8A95D2F7CF -:1016000004C0000F111F221F331F6A95D2F70C2947 -:101610001D292E293F29C0906303D0906403E090D8 -:101620006503F0906603C022D122E222F322842FC8 -:10163000C016D106E206F30641F41F910F91FF9008 -:10164000EF90DF90CF900C9494251F910F91FF9015 -:10165000EF90DF90CF900C94B52508950C942D0B4E -:101660005F926F927F928F929F92AF92BF92CF9232 -:10167000DF92EF92FF920F931F93CF93DF93CDB73B -:10168000DEB72A970FB6F894DEBF0FBECDBFCE01EE -:1016900001966C014E019BE0890E911C20E030E028 -:1016A00040E050E060E070E000E010E0E12CF12C60 -:1016B0006C2C5D2C8AE0782EAA24A394B12CEDE644 -:1016C000F2E0A62DB52D872D01900D928A95E1F7B8 -:1016D000F601819191916F01FC01E07FFF27E032DB -:1016E000F10559F48F709927F50102C0EE0FFF1F25 -:1016F0008A95E2F7EE2AFF2A37C0E033F10559F464 -:101700008F709927F50102C0EE0FFF1F8A95E2F74F -:101710000E2B1F2B29C0E034F10559F48F70992747 -:10172000F50102C0EE0FFF1F8A95E2F76E2B7F2BAB -:101730001BC0E035F10559F48F709927F50102C0FF -:10174000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A0 -:10175000F10551F48F709927F50102C0EE0FFF1FBC -:101760008A95E2F72E2B3F2BC814D90409F0A7CF96 -:1017700084B19E2D9095892384B985B1E82AE5B876 -:1017800087B1902F9095892387B988B1082B08B924 -:101790008AB1962F909589238AB98BB1682B6BB942 -:1017A0008DB1942F909589238DB98EB1482B4EB968 -:1017B00080B3922F9095892380BB81B3282B21BBC6 -:1017C0002A960FB6F894DEBF0FBECDBFDF91CF9142 -:1017D0001F910F91FF90EF90DF90CF90BF90AF904F -:1017E0009F908F907F906F905F9008955F926F921F -:1017F0007F928F929F92AF92BF92CF92DF92EF92A1 -:10180000FF920F931F93CF93DF93CDB7DEB7689707 -:101810000FB6F894DEBF0FBECDBF85B7806885BF19 -:1018200085B7806885BF0E94300BCE0101966C01A0 -:101830004E0199E1890E911C20E030E040E050E03B -:1018400060E070E000E010E0E12CF12C6C2C5D2CED -:1018500088E1782EAA24A394B12CE7E7F2E0A62D24 -:10186000B52D872D01900D928A95E1F7F6018191B2 -:1018700091916F01FC01E07FFF27E032F10559F4FF -:101880008F709927F50102C0EE0FFF1F8A95E2F7CE -:10189000EE2AFF2A37C0E033F10559F48F709927FB -:1018A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEA -:1018B00029C0E034F10559F48F709927F50102C071 -:1018C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D2 -:1018D000F10559F48F709927F50102C0EE0FFF1F33 -:1018E0008A95E2F74E2B5F2B0DC0E036F10551F4DF -:1018F0008F709927F50102C0EE0FFF1F8A95E2F75E -:101900002E2B3F2BC814D90409F0A7CF84B19E2DEC -:101910009095892384B985B1E82AE5B887B1902FDD -:101920009095892387B988B1082B08B98AB1962F79 -:10193000909589238AB98BB1682B6BB98DB1942F9F -:10194000909589238DB98EB1482B4EB980B3922FD3 -:101950009095892380BB81B3282B21BBE2EBF2E079 -:10196000A8EAB2E0119211921D921D9282E0EC3B26 -:10197000F807C1F768960FB6F894DEBF0FBECDBF6B -:10198000DF91CF911F910F91FF90EF90DF90CF905B -:10199000BF90AF909F908F907F906F905F900C94CE -:1019A000EF075F926F927F928F929F92AF92BF925A -:1019B000CF92DF92EF92FF920F931F93CF93DF931B -:1019C000CDB7DEB7A2970FB6F894DEBF0FBECDBF7E -:1019D0006E0149E1C40ED11C88EAA82E82E0B82E1F -:1019E00075019AE0592E460101E010E028E1622ECF -:1019F00035E0732EEDE6F2E0D401852D01900D92D5 -:101A00008A95E1F7D6018D919D916D019C01207F12 -:101A100033272032310591F424B18F709927F801D2 -:101A200002C0EE0FFF1F8A95E2F7CF01922F982B8D -:101A300094B995B18095892385B953C02033310578 -:101A400091F427B18F709927A80102C0440F551F48 -:101A50008A95E2F7CA01922F982B97B998B1809591 -:101A6000892388B93EC02034310591F42AB18F70A2 -:101A70009927D80102C0AA0FBB1F8A95E2F7CD01B2 -:101A8000922F982B9AB99BB1809589238BB929C045 -:101A90002035310591F42DB18F709927F80102C0DE -:101AA000EE0FFF1F8A95E2F7CF01922F982B9DB979 -:101AB0009EB1809589238EB914C02036310589F4F2 -:101AC00020B38F709927A80102C0440F551F8A9533 -:101AD000E2F7CA01922F982B90BB91B3809589238E -:101AE00081BB50EA5A95F1F7BE016F5F7F4F20E04E -:101AF00030E040E050E0E7E7F2E0DE011196862DAD -:101B000001900D928A95E1F7DB018D919D91BD01C8 -:101B1000FC01E07FFF27E032F10511F4E3B113C0CF -:101B2000E033F10511F4E6B10EC0E034F10511F433 -:101B3000E9B109C0E035F10511F4ECB104C0E036BB -:101B4000F105B9F4EFB1F0E08F70992702C0F59577 -:101B5000E7958A95E2F7E0FD08C0C801042E02C0AF -:101B6000880F991F0A94E2F702C080E090E0282BCA -:101B7000392B4F5F5F4F4C30510509F0BCCFF70157 -:101B8000808191818217930721F0318320837092A5 -:101B90000B020E94300BF2E0EF0EF11C42EBE41658 -:101BA00042E0F40609F026CF80910B028823C9F0A9 -:101BB000815080930B02882339F08FE99FE00197D1 -:101BC000F1F700C000000DC0E2EBF2E0D5018D910D -:101BD0009D915D0181939193B2EBAB16B2E0BB0690 -:101BE000A9F70E94F50781E0A2960FB6F894DEBF30 -:101BF0000FBECDBFDF91CF911F910F91FF90EF905E -:101C0000DF90CF90BF90AF909F908F907F906F901C -:101C10005F900895E82FF0E0EE0FFF1FEE54FD4FA8 -:101C2000808191810895089580918C0381608093D3 -:101C30008C030C94B82880918C038E7F80938C0346 -:101C40000C94B8280E948A28811102C00E9466283C -:101C50000E94B42880938C033E9A809171008D7FFE -:101C60008093710082E0809390008AE180939100DC -:101C700081E08093BE0208958091BE02811102C06E -:101C80000E94220E10920E0310920D03809171009B -:101C90008D7F80937100809190008F77809390006A -:101CA0001092D0021092CF021092070310920803F4 -:101CB0001092090310920A03109206031092050372 -:101CC000E5EEF2E0A5EDB2E01192119211921192BF -:101CD0001D921D9283E0E530F807B1F70895CF9289 -:101CE000DF92EF92FF920F931F93CF93DF93209198 -:101CF000CF02222309F484C06B017C018091BE02D3 -:101D0000811102C00E94220E05E013E0C7E0D0E07E -:101D1000A7019601F80192918291729162918F01CF -:101D20000E94F42D811131C0FE01EE0FFF1FEE0F56 -:101D3000FF1FEB51FD4F1082118212821382DE01D0 -:101D4000AA0FBB1FAB52BD4F11961C921E92C730FB -:101D5000D105E9F0219644815581668177814083E0 -:101D600051836283738314821582168217821296BE -:101D70008D919C91139711969C938E9313961C9220 -:101D80001E92129734961296E2CF219708F6809110 -:101D90000D0390910E03019797FD05C090930E03DC -:101DA00080930D0304C010920E0310920D038091D6 -:101DB0000D0390910E0320910B0330910C03281713 -:101DC000390724F010920C0310920B03892BC1F4F5 -:101DD000809171008D7F80937100809190008F774A -:101DE0008093900010920703109208031092090349 -:101DF00010920A0310920603109205031092CF026C -:101E0000DF91CF911F910F91FF90EF90DF90CF90D6 -:101E100008951F920F920FB60F9211244F925F9266 -:101E20006F927F928F929F92AF92BF92CF92DF92EA -:101E3000EF92FF922F933F934F935F936F937F9314 -:101E40008F939F93AF93BF93CF93DF93EF93FF93C2 -:101E50008091CF02882309F49BC1C0910D03D091DA -:101E60000E031C161D060CF093C14090BF0250904B -:101E7000C0026090C1027090C20220E030E0A9016F -:101E8000C301B2010E94432F18160CF065C0C13087 -:101E9000D10509F452C080910B0390910C03BE014F -:101EA0000E9423317C0190930C0380930B0380905C -:101EB000D1029090D202A090D302B090D40220E040 -:101EC00030E040E85FE3C501B4010E94902D6093CB -:101ED000D1027093D2028093D3029093D402F7017F -:101EE000EE0FFF1FEE0FFF1FEB51FD4FA3019201FD -:101EF00060817181828193810E94F82D20E030E021 -:101F000040E05EE30E94472F9B01AC01C501B40194 -:101F10000E94432F18168CF4C7010196BE010E943F -:101F2000233190930C0380930B031092D1021092F3 -:101F3000D2021092D3021092D402E0910B03F091DE -:101F40000C03EE0FFF1FEE0FFF1FEB51FD4F6081E3 -:101F5000718182819381D0C0C0900703D090080323 -:101F6000E0900903F0900A0320E030E0A901C701E6 -:101F7000B6010E94F42D2197882309F4A2C0FE0126 -:101F8000EE0FFF1FEE0FFF1FEB51FD4F8080918082 -:101F9000A280B380A5019401C701B6010E94F42D6F -:101FA00087FF31C0A501940160E070E08CED93ECF7 -:101FB0000E94F82D20E030E040E451E40E94F82D2A -:101FC00020E030E040E05FE30E94472F9B01AC013E -:101FD00060E070E080E090E40E94AA2F9B01AC01D9 -:101FE000C501B4010E94472F9B01AC01C701B60196 -:101FF0000E94F42D87FF07C0A701960160E070E002 -:102000008CED93E439C0A5019401C701B6010E948B -:10201000432F18160CF055C0A501940160E070E044 -:102020008CED93E40E94F82D20E030E040E451E490 -:102030000E94F82D20E030E040E05FE30E94472F4F -:102040009B01AC0160E070E080E090E40E94AA2F68 -:102050009B01AC01C501B4010E94472F9B01AC015B -:10206000C701B6010E94432F18165CF5A70196011F -:1020700060E070E08CED93EC0E94F82D20E030E001 -:1020800040E451E40E94F82D20E030E040E05FE3BE -:102090000E94472F9B01AC0160E070E080E090E47B -:1020A0000E94AA2F9B01AC01C701B6010E94472FD5 -:1020B00060930703709308038093090390930A03C6 -:1020C00013C0FE01EE0FFF1FEE0FFF1FEB51FD4F80 -:1020D00080819181A281B38180930703909308034B -:1020E000A0930903B0930A0360910703709108035A -:1020F0008091090390910A032091BC023091BD02A6 -:102100002F3F4FEF340731F02F5F3F4F3093BD0229 -:102110002093BC020E9430136B017C0120E034E26A -:1021200044EF51E40E94F42D87FF08C086EFC82ECB -:1021300088E2D82E84EFE82E81E4F82E20E030E00B -:1021400040E051E4C701B6010E94472F9B01AC015A -:1021500060E074E284E79BE40E94F82D6B017C014F -:102160000E94602E709397006093960020910C025D -:1021700030910D0240910E0250910F02C701B6013D -:102180000E94472F0E94602E7093990060939800E0 -:102190008091D002882309F433C1C090CB02D09043 -:1021A000CC02E090CD02F090CE0220E030E0A90118 -:1021B000C701B6010E94432F1816D4F58091BC02C6 -:1021C0009091BD028F3F2FEF920729F001969093D7 -:1021D000BD028093BC02C701B6010E94301320E00B -:1021E00030E040E051E40E94472F9B01AC0160E0E9 -:1021F00074E284E79BE40E94F82D6B017C010E944D -:10220000602E709397006093960020910C0230919D -:102210000D0240910E0250910F02C701B6010E94BB -:10222000472F0E94602E709399006093980008C019 -:1022300010929700109296001092990010929800B8 -:102240006091C5027091C6026F5F7F4F7093C602A6 -:102250006093C502209196003091970080E090E055 -:10226000232BF1F0C0919600D09197000E94912EFF -:102270006B017C01BE0180E090E00E94912E9B01E9 -:10228000AC016091C7027091C8028091C90290911F -:10229000CA020E94F82D20E03FEF4FE757E410C03C -:1022A0000E94912E6B017C0120E030EE4FEF54E450 -:1022B0006091C7027091C8028091C9029091CA02D0 -:1022C0000E94472F9B01AC01C701B6010E94432F1A -:1022D00087FD96C08091C3028F5F8093C30290E018 -:1022E000209188033091890382179307A0F0809191 -:1022F0009303882319F01092C3020DC080917100DE -:102300008D7F80937100809190008F7780939000F3 -:102310001092D0027DC08091C402C091C30281118D -:1023200028C0C0908D03D0908E03E0908F03F09072 -:10233000900320E030E0A901C701B6010E94432FBD -:102340001816BCF481E08093C4021092CB02109264 -:10235000CC021092CD021092CE02C092C702D0924F -:10236000C802E092C902F092CA02C150C093C302EF -:1023700043C01092C4021092BD021092BC02E091C0 -:102380008A03F0918B0348E0C49FE00DF11D1124F6 -:1023900080819181A281B3818093CB029093CC0202 -:1023A000A093CD02B093CE0220E030E040E85EE39F -:1023B00064817581868197810E94472F6B017C0122 -:1023C00020E030E048EC52E460911002709111027C -:1023D00080911202909113020E94F82D9B01AC0192 -:1023E000C701B6010E94472F6093C7027093C802CD -:1023F0008093C9029093CA021092C6021092C5023D -:1024000080918C0380FD04C01092D0021092CF0204 -:10241000FF91EF91DF91CF91BF91AF919F918F91FC -:102420007F916F915F914F913F912F91FF90EF902E -:10243000DF90CF90BF90AF909F908F907F906F90E4 -:102440005F904F900F900FBE0F901F901895CF92F6 -:10245000DF92EF92FF92CF93DF936B017C01EA0151 -:102460008091BE02811102C00E94220E80918C03D5 -:1024700080FF46C080910D0390910E0308970CF0E9 -:102480003FC0809171008D7F809371008091D00258 -:1024900081110E943C0E81E08093CF021092BD0218 -:1024A0001092BC0220E030E0A901C701B6010E94F1 -:1024B000432F1816DCF480910D0390910E03FC015C -:1024C000EE0FFF1FEE0FFF1FEB51FD4FC082D182B9 -:1024D000E282F382FC01EE0FFF1FEB52FD4FD1832E -:1024E000C083019690930E0380930D038091710039 -:1024F000826080937100809190008068809390004A -:10250000DF91CF91FF90EF90DF90CF9008958F9261 -:102510009F92AF92BF92CF92DF92EF92FF920F9372 -:102520001F93CF93DF93EC017B01D42E4801590117 -:102530008091BE02811102C00E94220E80918C0304 -:1025400080FF6BC0809171008D7F809371008091BE -:10255000CF0281110E943C0E81E08093D002D09383 -:102560008B03C0938A03F0928903E0928803D09290 -:10257000930380928D0390928E03A0928F03B0926A -:1025800090031092D1021092D2021092D3021092B4 -:10259000D4021092C30288819981AA81BB81809361 -:1025A000CB029093CC02A093CD02B093CE0220E058 -:1025B00030E040E85EE36C817D818E819F810E94E6 -:1025C000472F6B017C0120E030E048EC52E4609141 -:1025D00010027091110280911202909113020E94D8 -:1025E000F82D9B01AC01C701B6010E94472F6093F3 -:1025F000C7027093C8028093C9029093CA021092D6 -:10260000C6021092C50280917100826080937100B1 -:1026100080919000806880939000DF91CF911F910E -:102620000F91FF90EF90DF90CF90BF90AF909F9071 -:102630008F90089580910F0390E0019665E070E01F -:102640000E94233180930F03089580910F0390E03F -:10265000019765E070E00E94233180930F03089595 -:102660008F929F92AF92BF92CF92DF92EF92FF92A2 -:10267000CF93DF936B017C01C091BC02D091BD026E -:10268000BE0180E090E00E94912E4B015C01A70109 -:10269000960160E070E08CE594E40E94F82D9B01C7 -:1026A000AC01C501B4010E94472F0E94652E4091E4 -:1026B0000F03423009F45CC028F4442351F0413048 -:1026C000E9F0FBC0433009F481C0443009F4B4C0E0 -:1026D000F4C080E090E0A0E0BFE380930C02909310 -:1026E0000D02A0930E02B0930F021092BF0210923F -:1026F000C0021092C1021092C202DFC01092BF024B -:102700001092C0021092C1021092C202643171058F -:1027100040F46A307105E0F520E030E040E85EE327 -:102720003BC0693C710508F0C0C080E090E00E94A9 -:10273000912E20E030E040EA51E40E948F2D20E00D -:1027400030E044E353E40E94F82D9B01AC010E9469 -:10275000472F20E030E040E05EE30E94472F9B01DE -:10276000AC0160E070E080E09EE30E948F2D5BC0D2 -:102770001092BF021092C0021092C1021092C202C7 -:102780006432710578F4FB01EE59FF4F0C94373138 -:1027900020E030E040E05FE3C701B6010E94472F30 -:1027A0006B017C0180E090E0A0E0BEE380930C022E -:1027B00090930D02A0930E02B0930F027EC0A7016A -:1027C0009601C701B6010E94902DEACF1092BF0278 -:1027D0001092C0021092C1021092C2022AE0269FFB -:1027E000A001279F500D1124CA0168EB7BE00E94D5 -:1027F0000F31BC016C5D754077FF03C07195619529 -:102800007109882777FD8095982F0E94932E2EE3DB -:1028100033EC4EE259E30E94472F20E030E040ECD9 -:102820005EE30E94902D60930C0270930D028093E2 -:102830000E0290930F0241C01092BF021092C0028C -:102840001092C1021092C202CE0183709927892B87 -:10285000E1F0BE016170772780E090E00E94912E48 -:1028600020E030E040E05EE30E94472F20E030E0CF -:1028700040E45FE30E94902D60930C0270930D0280 -:1028800080930E0290930F020CC080E090E0A0E0D5 -:10289000BFE380930C0290930D02A0930E02B093BD -:1028A0000F02C770DD27CD2B41F410920C0210925D -:1028B0000D0210920E0210920F02C701B601DF91B5 -:1028C000CF91FF90EF90DF90CF90BF90AF909F900F -:1028D0008F900895809118030895CF93DF9300D0CF -:1028E0001F92CDB7DEB79C0180919803843019F513 -:1028F00093E099833B832A839093E9008FEF909133 -:10290000E800815095FD06C095ED9A95F1F700001D -:102910008111F5CF8091E80085FF0DC040E050E0C7 -:1029200063E070E0CE0101960E94A6168091E80057 -:102930008E778093E8000F900F900F90DF91CF91EA -:102940000895CF93DF9300D01F92CDB7DEB72091CB -:102950009803243021F522E029839B838A8383E036 -:102960008093E9008FEF9091E800815095FD06C0BB -:1029700095ED9A95F1F700008111F5CF8091E8006F -:1029800085FF0DC040E050E063E070E0CE010196AD -:102990000E94A6168091E8008E778093E8000F9041 -:1029A0000F900F90DF91CF910895209198032430DC -:1029B000F1F422E02093E9002FEF3091E80021505C -:1029C00035FD06C035ED3A95F1F700002111F5CF40 -:1029D0002091E80025FF0BC040E050E065E070E08A -:1029E0000E94A6168091E8008E778093E8000895F3 -:1029F000CF93DF9320919803243039F521E0209381 -:102A0000E9002FEF3091E800215035FD06C035ED8B -:102A10003A95F1F700002111F5CF2091E80025FF4C -:102A200014C0EC0140E050E068E070E00E94A6169F -:102A30008091E8008E778093E80088E0FE01A0E1B5 -:102A4000B3E001900D928A95E1F7DF91CF9108955F -:102A500080919703811109C00E943B180E94981829 -:102A60008091E20084608093E200089510929703C1 -:102A70000895089508950C94962742E061EC81E052 -:102A80000E94B51742E061EC82E00E94B51742E077 -:102A900061EC83E00C94B51780919A03833009F4BC -:102AA00053C030F4813071F0823009F48CC0089545 -:102AB0008A3009F478C08B3009F45EC0893009F09F -:102AC0009AC020C080919903813A09F094C0809106 -:102AD000E800877F8093E80080919D0390919E039A -:102AE000892B21F468E080E193E003C060E080E09E -:102AF00090E070E00E94F1168091E8008B7780935F -:102B0000E800089580919903813209F074C08091A2 -:102B10009D0390919E03892B09F06DC08091E80080 -:102B2000877F8093E8008091E80082FD05C0809156 -:102B300098038111F8CF5FC08091F1008093180352 -:102B40008091E8008B7753C080919903813A09F016 -:102B500052C080919D0390919E03892B09F04BC038 -:102B60008091E800877F8093E8008091E80080FFF3 -:102B7000FCCF80911E0236C0809199038132D9F535 -:102B800080919D0390919E03892BA9F58091E80087 -:102B9000877F8093E8000E94EA1780919B038093CF -:102BA0001E020C945B2180919903813221F5809162 -:102BB000E800877F8093E8000E94EA1780919C03D9 -:102BC00080931903089580919903813AA1F480912B -:102BD000E800877F8093E8008091E80080FFFCCFC9 -:102BE000809119038093F1008091E8008E778093A3 -:102BF000E8000C94EA17089584B7877F84BF88E1C2 -:102C00000FB6F89480936000109260000FBE90E0C1 -:102C100080E80FB6F89480936100909361000FBE36 -:102C20000E948D1B0E943B180E9498188091E20020 -:102C300084608093E20078940E941E1B0E948F1B88 -:102C400084E192E00E94391B80919803853069F4F9 -:102C50000E945027809196038823B1F30E947E271B -:102C6000882391F30E949016EFCF0E94971BECCF20 -:102C7000292F332723303105C9F064F42130310581 -:102C800081F02230310509F043C084E590E028E16D -:102C90003AE042C021323105F1F02232310541F1F2 -:102CA00037C082E190E02CE63AE036C099278130C7 -:102CB000910541F08230910541F0892B49F5E4E11D -:102CC000FAE005C0E6EEF9E002C0EAEBF9E0849133 -:102CD00090E09F0121C06330D8F4E62FF0E0EE0FC2 -:102CE000FF1FE856FD4F2081318189E090E014C03C -:102CF000633070F470E0FB01EE0FFF1FEE56FD4FE6 -:102D000020813181FB01E157FD4F808190E004C0BB -:102D100080E090E020E030E0FA01318320830895E4 -:102D200080E189BD82E189BD09B400FEFDCF8091BB -:102D3000D8008F7D8093D8008091E00082608093DE -:102D4000E0008091E00081FDFCCF0895CF92DF92FA -:102D5000EF92FF920F931F93CF93DF93EC018B01C0 -:102D60006A010E940918811133C0C114D10439F0DD -:102D7000F60180819181081B190BC80FD91FE12C26 -:102D8000F12C0115110519F18091E80085FD16C09F -:102D90008091E8008E778093E800C114D10449F057 -:102DA000F60180819181E80EF91EF182E08285E0D2 -:102DB0000FC00E940918882321F30AC089918093CB -:102DC000F10001501109FFEFEF1AFF0ADACF80E09E -:102DD000DF91CF911F910F91FF90EF90DF90CF90F7 -:102DE000089520919F033091A0032617370748F0DC -:102DF0006115710539F42091E8002E772093E800E1 -:102E000001C0B90140E061157105A9F12091980355 -:102E1000222309F443C0253009F442C02091E80080 -:102E200023FD40C02091E80022FD32C02091E8003F -:102E300020FFE9CF4091F3002091F20030E0342BE5 -:102E4000FC01CF016115710559F02830310540F4BE -:102E500081918093F100615071092F5F3F4FF1CF55 -:102E600041E02830310509F040E02091E8002E775C -:102E70002093E800C8CF4111C9CF0AC080919803C0 -:102E8000882361F0853061F08091E80083FD0AC0FD -:102E90008091E80082FFF2CF80E0089582E00895FB -:102EA00083E0089581E0089520919F033091A0036D -:102EB0002617370748F06115710539F42091E800AD -:102EC0002E772093E80001C0B901FC0120E06115D4 -:102ED000710591F180919803882309F440C08530F1 -:102EE00009F43FC08091E80083FD3DC08091E80077 -:102EF00082FD2FC08091E80080FFE9CF2091F30090 -:102F00008091F20090E0922B6115710559F08830A4 -:102F1000910540F424912093F1003196615071099C -:102F20000196F2CF21E0089709F020E08091E800B7 -:102F30008E778093E800CBCF2111CCCF0AC080914F -:102F40009803882361F0853061F08091E80083FD6B -:102F50000AC08091E80082FFF2CF80E0089582E00D -:102F6000089583E0089581E00895982F973058F5EB -:102F70009093E900981739F07091EC002091ED00E2 -:102F80005091F00003C0242F762F50E021FF19C08C -:102F90003091EB003E7F3093EB003091ED003D7FB0 -:102FA0003093ED003091EB0031603093EB00709383 -:102FB000EC002093ED005093F0002091EE0027FFED -:102FC00007C09F5FD3CF8F708093E90081E00895A1 -:102FD00080E008958091990387FF11C08091E800F7 -:102FE00082FD05C0809198038111F8CF11C08091B6 -:102FF000E8008B770BC080919803882349F080917B -:10300000E80080FFF8CF8091E8008E778093E80099 -:1030100008952091E4003091E50095E64091EC00A0 -:10302000842F817040FF22C08091E80080FD1CC089 -:1030300080919803882391F0853091F08091EB0086 -:1030400085FD10C04091E4005091E5004217530700 -:1030500029F39A01915011F784E0089582E00895D0 -:1030600083E0089581E0089580E008954091E800AC -:1030700042FFDECF08950E94A9180E94B118E0EE29 -:10308000F0E0808181608083E8EDF0E080818F77DF -:10309000808319BCA7EDB0E08C918E7F8C938081EA -:1030A0008F7E80831092970308950F931F93CF9381 -:1030B000DF930E94A9180E94B118C8EDD0E0888162 -:1030C0008F77888388818068888388818F7D8883D3 -:1030D00019BC1092980310929403109296031092C8 -:1030E000950300EE10E0F80180818B7F808388815A -:1030F0008160888342E060E080E00E94B517E1EEE5 -:10310000F0E080818E7F8083E2EEF0E0808181605C -:103110008083808188608083F80180818E7F8083B6 -:10312000888180618883DF91CF911F910F910895ED -:10313000E8EDF0E080818F7E8083E7EDF0E0808134 -:103140008160808384E082BF81E0809397030C9448 -:103150005518E8EDF0E080818E7F80831092E200C8 -:1031600008951092DA001092E10008951F920F92D4 -:103170000FB60F9211242F933F934F935F936F934A -:103180007F938F939F93AF93BF93EF93FF93809120 -:10319000E10082FF0BC08091E20082FF07C08091B6 -:1031A000E1008B7F8093E1000E941D1B8091DA007B -:1031B00080FF1FC08091D80080FF1BC08091DA0083 -:1031C0008E7F8093DA008091D90080FF0DC080E16E -:1031D00089BD82E189BD09B400FEFDCF81E0809305 -:1031E00098030E94281505C019BC109298030E94EC -:1031F00036158091E10080FF19C08091E20080FFC8 -:1032000015C08091E2008E7F8093E2008091E20001 -:1032100080618093E2008091D80080628093D80022 -:1032200019BC85E0809398030E943A158091E100D3 -:1032300084FF30C08091E20084FF2CC080E189BD12 -:1032400082E189BD09B400FEFDCF8091D8008F7D59 -:103250008093D8008091E1008F7E8093E10080917F -:10326000E2008F7E8093E2008091E2008160809393 -:10327000E20080919403882311F084E007C08091DC -:10328000E30087FD02C081E001C083E080939803E2 -:103290000E943B158091E10083FF29C08091E200EC -:1032A00083FF25C08091E100877F8093E10082E069 -:1032B00080939803109294038091E1008E7F809315 -:1032C000E1008091E2008E7F8093E2008091E20035 -:1032D00080618093E20042E060E080E00E94B517E8 -:1032E0008091F00088608093F0000E943915FF9172 -:1032F000EF91BF91AF919F918F917F916F915F916E -:103300004F913F912F910F900FBE0F901F901895E6 -:103310001F920F920FB60F9211242F933F934F934A -:103320005F936F937F938F939F93AF93BF93CF934D -:10333000DF93EF93FF93C091E900CF708091EC0091 -:10334000D82FD17080FDD0E81092E9008091F00074 -:10335000877F8093F00078940E94CC191092E90046 -:103360008091F00088608093F000CD2BCF70C093E7 -:10337000E900FF91EF91DF91CF91BF91AF919F91C4 -:103380008F917F916F915F914F913F912F910F900E -:103390000FBE0F901F9018951F93CF93DF93CDB75B -:1033A000DEB7AA970FB6F894DEBF0FBECDBFE9E92E -:1033B000F3E088E08E0F9091F10091938E13FBCF94 -:1033C0000E944C158091E80083FF1FC180919903F2 -:1033D00090919A03492F50E04A30510508F015C1E9 -:1033E000FA01EA57FF4F0C943731803881F0823868 -:1033F00009F00BC180919D038F708093E90080914B -:10340000EB0085FB882780F91092E90006C08091C7 -:10341000950390919603911182609091E800977FB7 -:103420009093E8008093F1001092F100C8C0282F1B -:103430002D7F09F0EAC0882319F0823061F0E5C0E1 -:1034400080919B03813009F0E0C0933009F080E067 -:10345000809396032BC080919B03811127C080919C -:103460009D038F7009F4D1C08093E9002091EB0097 -:1034700020FF1CC0933021F48091EB00806214C0C7 -:103480009091EB0090619093EB0021E030E0A90176 -:1034900002C0440F551F8A95E2F74093EA0010924C -:1034A000EA008091EB0088608093EB001092E900C5 -:1034B0008091E800877F86C08111A7C010919B038F -:1034C0001F778091E3008078812B8093E3008091C7 -:1034D000E800877F8093E8000E94EA178091E80067 -:1034E00080FFFCCF8091E30080688093E30011119E -:1034F00002C082E001C083E08093980386C08058B8 -:10350000823008F082C080919B0390919C038C3D97 -:1035100053E0950779F583E08A838AE289834FB780 -:10352000F894DE01139620E03EE051E2E32FF0E054 -:1035300050935700E49120FF03C0E295EF703F5F86 -:10354000EF708E2F90E0EA3010F0C79601C0C09661 -:103550008D939D932F5F243149F74FBF8091E800F1 -:10356000877F8093E8006AE270E0CE0101960E94B6 -:10357000F11614C0AE014F5F5F4F60919D030E9432 -:103580003816BC01009709F440C09091E800977F7D -:103590009093E80089819A810E9454178091E800F5 -:1035A0008B778093E80031C0803879F58091E8000E -:1035B000877F8093E800809194038093F10080914D -:1035C000E8008E778093E8000E94EA171EC0811100 -:1035D0001CC090919B039230C0F48091E800877FDB -:1035E0008093E800909394030E94EA1780919403DB -:1035F000811106C08091E30087FD02C081E001C017 -:1036000084E0809398030E943D158091E80083FF39 -:103610000AC08091E800877F8093E8008091EB00EA -:1036200080628093EB00AA960FB6F894DEBF0FBEBF -:10363000CDBFDF91CF911F9108950895CF938091D1 -:1036400098038823A1F0C091E900CF709091EC001D -:10365000892F817090FD80E8C82B1092E90080913D -:10366000E80083FD0E94CC19CF70C093E900CF9190 -:10367000089590931F0380931E030895E0911E0305 -:10368000F0911F03309721F00190F081E02D099413 -:1036900080E00895E0911E03F0911F03309721F020 -:1036A0000280F381E02D09940895E0911E03F091CA -:1036B0001F03309721F00480F581E02D09940895CF -:1036C00020911C0330911D038217930771F0909392 -:1036D0001D0380931C03E0911E03F0911F0330979C -:1036E00021F00680F781E02D0994089520911A03B6 -:1036F00030911B038217930771F090931B03809303 -:103700001A03E0911E03F0911F03309721F000840B -:10371000F185E02D0994089508950C948C1B0E9466 -:10372000CA270E94F60B0E9450280C94F82C4F9246 -:103730005F927F928F929F92AF92BF92CF92DF92D1 -:10374000EF92FF920F931F93CF93DF93CDB7DEB726 -:103750002A970FB6F894DEBF0FBECDBF0E94D10CE2 -:1037600091E2C92E93E0D92E00E010E0AA24A394A0 -:10377000B12C702E802F0E940A0E4C01F601419050 -:1037800051906F014826592641145104B1F40F5F3E -:103790001F4F0530110569F78FEF89838A831B82DC -:1037A0000E94D3278160782F9D838C8349815A8121 -:1037B0006B818D810E94501C3AC08091770381FDFE -:1037C0000E94130E20E030E07501022E02C0EE0CC4 -:1037D000FF1C0A94E2F7C70184219521892B09F186 -:1037E0002E837F828E209F2091E0892809F490E02B -:1037F00098870E94D3278160782F9A8789874E8186 -:103800005F8168858A850E94501C000F111FF80196 -:10381000EF5DFC4F80819181E826F926F182E082FC -:1038200006C02F5F3F4F2C30310571F6B0CF0E949C -:10383000372A109120030E943E1B1817D9F00E94CE -:103840003E1B809320032A960FB6F894DEBF0FBE6E -:10385000CDBFDF91CF911F910F91FF90EF90DF903F -:10386000CF90BF90AF909F908F907F905F904F9040 -:103870000C942E0B2A960FB6F894DEBF0FBECDBF68 -:10388000DF91CF911F910F91FF90EF90DF90CF903C -:10389000BF90AF909F908F907F905F904F900895D2 -:1038A000CF93DF93CDB7DEB72B970FB6F894DEBF7B -:1038B0000FBECDBF4F83588769877A878B87DE011C -:1038C000119686E0FD0111928A95E9F785E0FE01E7 -:1038D000379601900D928A95E1F749815A816B8163 -:1038E0007C818D819E810E94F5232B960FB6F894E2 -:1038F000DEBF0FBECDBFDF91CF910895CF93882358 -:1039000009F4C2C0C82F823859F40E943E1B81FDC1 -:10391000BBC089E30E949E260E94212789E30CC038 -:10392000833879F40E943E1B80FDAEC083E50E947F -:103930009E260E94212783E50E94BB26CF910C94EE -:103940002127843859F40E943E1B82FD9DC087E4E4 -:103950000E949E260E94212787E4EECF8CEF8C0FD9 -:10396000813A48F48C2F0E94602C81118DC08C2FDD -:103970000E949E26E3CF80E28C0F883048F4C77007 -:1039800081E001C0880FCA95EAF70E94DA26D6CFF7 -:103990008BE58C0F833078F4C53A29F0C63A31F0C4 -:1039A00083E890E005C081E890E002C082E890E002 -:1039B000CF910C94601B88E58C0F833108F064C0B4 -:1039C000C83A39F1C93A41F1CA3A49F1CB3A51F111 -:1039D000CC3A59F1CD3A61F1C03B69F1CE3A71F17F -:1039E000CF3A79F1C13B81F1C23B89F1C33B91F1FF -:1039F000C43B99F1C53BA1F1C63BA9F1C73BB1F16D -:103A0000C83BB9F1C93BC1F1CA3BC9F180E090E0C4 -:103A100038C082EE90E035C089EE90E032C08AEE88 -:103A200090E02FC085EB90E02CC086EB90E029C0A1 -:103A300087EB90E026C08CEC90E023C08DEC90E00A -:103A400020C083E891E01DC08AE891E01AC082E9B5 -:103A500091E017C084E991E014C081E292E011C0C6 -:103A600083E292E00EC084E292E00BC085E292E035 -:103A700008C086E292E005C087E292E002C08AE2D6 -:103A800092E0CF910C94761BCF910895882309F48E -:103A90004BC0823859F40E943E1B81FF45C089E328 -:103AA0000E949E260E94212789E30CC0833871F46E -:103AB0000E943E1B80FF38C083E50E949E260E9424 -:103AC000212783E50E94BB260C942127843859F4D2 -:103AD0000E943E1B82FF28C087E40E949E260E940F -:103AE000212787E4EFCF9CEF980F913A58F390E2AB -:103AF000980F983050F4877091E001C0990F8A9523 -:103B0000EAF7892F0E94E026DFCF9BE5980F9330DC -:103B100020F480E090E00C94601B885A833120F4FC -:103B200080E090E00C94761B0895882321F00E9499 -:103B3000DA260C9421270895882321F00E94E0269C -:103B40000C9421270895BF92CF92DF92EF92FF92BB -:103B50000F931F93CF93DF9300D000D000D0CDB749 -:103B6000DEB725E0FC01DE01119601900D922A9549 -:103B7000E1F7FC01D08011810281258122952F700F -:103B800043815481452B09F472C31F3F21F4FFEF99 -:103B9000DF1609F46CC37C012E830E94F707D982DB -:103BA0001A8369817A81802F0E949A26182FB92E54 -:103BB0000E944F260E9416252E81002319F00E9494 -:103BC000F7262E81EB2DE295EF70F0E0E057FF4FE6 -:103BD0000C9437318B2D807F9B2D9F70F92E88237D -:103BE00019F0F29480EFF822002389F0FF2009F405 -:103BF0007CC280E2810F883020F48F2D0E94DA266B -:103C000003C08F2D0E94EA260E9421276EC2812FB9 -:103C10000E94461DFF2009F42AC3105E8F2D183024 -:103C200018F40E94E02602C00E94F02626960FB6E5 -:103C3000F894DEBF0FBECDBFDF91CF911F910F91E2 -:103C4000FF90EF90DF90CF90BF900C9421278B2DA9 -:103C5000807F9B2D9F70803211F4892F03C0892FA4 -:103C60008295807F112319F0113011F12BC00023B0 -:103C7000A9F0222389F1213079F526960FB6F89420 -:103C8000DEBF0FBECDBFDF91CF911F910F91FF908F -:103C9000EF90DF90CF90BF900C940A27222319F069 -:103CA000213009F4E4C28E830E940D278E819BC1CE -:103CB000002321F0263008F0DAC20EC0253008F0CB -:103CC000D6C291C10023C9F0222331F0F7019581BA -:103CD00090FF0BC29F70958326960FB6F894DEBFB7 -:103CE0000FBECDBFDF91CF911F910F91FF90EF904D -:103CF000DF90CF90BF900C94951D222309F473C1DF -:103D000009C22B2D26952695237030E0211531050B -:103D100021F021303105D1F0AAC2002321F0812FFA -:103D20009B2D937002C080E090E026960FB6F89429 -:103D3000DEBF0FBECDBFDF91CF911F910F91FF90DE -:103D4000EF90DF90CF90BF900C94601B002321F088 -:103D5000812F9B2D937002C080E090E026960FB6D5 -:103D6000F894DEBF0FBECDBFDF91CF911F910F91B1 -:103D7000FF90EF90DF90CF90BF900C94761B812F37 -:103D8000002319F00E943F2902C00E94A72926960D -:103D90000FB6F894DEBF0FBECDBFDF91CF911F915C -:103DA0000F91FF90EF90DF90CF90BF900C942C2A52 -:103DB0008B2D837009F07BC0011159C2812F829530 -:103DC00086958770880F880F912F9F70C92ED12CF0 -:103DD000E12CF12C082E04C0CC0CDD1CEE1CFF1CC9 -:103DE0000A94D2F714FF12C04FE050E060E070E098 -:103DF00004C0440F551F661F771F8A95D2F7CB0169 -:103E0000BA01609570958095909503C060E070E070 -:103E1000CB012B2D269526952370422F50E0423062 -:103E20005105D9F04330510569F16C297D298E295E -:103E30009F294130510551F126960FB6F894DEBF07 -:103E40000FBECDBFDF91CF911F910F91FF90EF90EB -:103E5000DF90CF90BF900C943D256C297D298E2951 -:103E60009F2926960FB6F894DEBF0FBECDBFDF9117 -:103E7000CF911F910F91FF90EF90DF90CF90BF9067 -:103E80000C9459250E943D25C701B60126960FB610 -:103E9000F894DEBF0FBECDBFDF91CF911F910F9180 -:103EA000FF90EF90DF90CF90BF900C9421250023DE -:103EB00019F08B2D817001C08695882309F4D7C134 -:103EC000812F829586958770880F880F912F9F701C -:103ED000C92ED12CE12CF12C082E04C0CC0CDD1CF9 -:103EE000EE1CFF1C0A94D2F714FF12C04FE050E002 -:103EF00060E070E004C0440F551F661F771F8A956D -:103F0000D2F7CB01BA01609570958095909503C06A -:103F100060E070E0CB012B2D269526952370422F73 -:103F200050E042305105D9F04330510569F16C2918 -:103F30007D298E299F294130510551F126960FB6D2 -:103F4000F894DEBF0FBECDBFDF91CF911F910F91CF -:103F5000FF90EF90DF90CF90BF900C9417266C29C4 -:103F60007D298E299F2926960FB6F894DEBF0FBEB5 -:103F7000CDBFDF91CF911F910F91FF90EF90DF9018 -:103F8000CF90BF900C9433260E941726C701B6012C -:103F900026960FB6F894DEBF0FBECDBFDF91CF914E -:103FA0001F910F91FF90EF90DF90CF90BF900C94F6 -:103FB000FB25103F49F118F4103E48F491C0123F20 -:103FC00009F453C0E8F1133F09F464C089C01F70BD -:103FD0008B2D8F71002321F00E949425812F7CCEA0 -:103FE0000E94B525812F26960FB6F894DEBF0FBE2E -:103FF000CDBFDF91CF911F910F91FF90EF90DF9098 -:10400000CF90BF900C949C1D0023B1F0253008F098 -:104010002EC18B2D8F7126960FB6F894DEBF0FBE82 -:10402000CDBFDF91CF911F910F91FF90EF90DF9067 -:10403000CF90BF900C94DA25263008F018C1E9CF54 -:104040000023A9F08B2D8F7126960FB6F894DEBF52 -:104050000FBECDBFDF91CF911F910F91FF90EF90D9 -:10406000DF90CF90BF900C949425002359F38B2DB3 -:104070008F7126960FB6F894DEBF0FBECDBFDF91CD -:10408000CF911F910F91FF90EF90DF90CF90BF9055 -:104090000C94B525002399F08B2D8F7126960FB6C1 -:1040A000F894DEBF0FBECDBFDF91CF911F910F916E -:1040B000FF90EF90DF90CF90BF900C947F252696D5 +:1009700001002A0354006800650020005000720046 +:1009800065006F006E006900630020004B00650089 +:10099000790062006F0061007200640000002C03A7 +:1009A0004F007200740068006F006C0069006E00F8 +:1009B00065006100720020004B0065007900620054 +:1009C0006F006100720064007300000004030904FA +:1009D00009025400030100A0FA0904000001030108 +:1009E0000100092111010001223F000705810308D0 +:1009F000000A09040100010301020009211101009C +:100A000001224D000705820308000A0904020001C3 +:100A100003000000092111010001223600070583AF +:100A20000308000A1201100100000008EDFE6160D9 +:100A300001000102000105010980A10185021601E2 +:100A40000026B7001A01002AB70075109501810031 +:100A5000C0050C0901A1018503160100269C021A9C +:100A600001002A9C02751095018100C00501090250 +:100A7000A1010901A1000509190129051500250198 +:100A80009505750181029501750381010501093004 +:100A900009311581257F9502750881060938158170 +:100AA000257F950175088106050C0A3802158125F8 +:100AB0007F950175088106C0C005010906A10105E1 +:100AC0000719E029E71500250195087501810295B0 +:100AD0000175088101050819012905950575019120 +:100AE000029501750391010507190029FF150025DD +:100AF000FF950675088100C011241FBECFEFDAE014 +:100B0000DEBFCDBF04B603FE24C08091F3039091F5 +:100B1000F403A091F503B091F6038730904BA74002 +:100B2000B04BB9F41092F3031092F4031092F50352 +:100B30001092F60314BE84B7877F84BF88E10FB696 +:100B4000F89480936000109260000FBEE0E0F8E33C +:100B5000099512E0A0E0B1E0E8EAF3E602C00590F2 +:100B60000D92A63FB107D9F713E0A6EFB2E001C09E +:100B70001D92A33FB107E1F70E940D160C94D231EC +:100B80000C940000279A2F988FEF9FEF9093870087 +:100B9000809386008AE08093800089E180938100C1 +:100BA0000C94092D282F81110BC080918000877F24 +:100BB0008093800010928D0010928C002F980895E1 +:100BC0002F9880918000886080938000233019F4F2 +:100BD0008FEF9FEF0FC083E090E0821B9109880F99 +:100BE000991F2FEF3FEFA90102C0569547958A95AF +:100BF000E2F7CA0190938D0080938C000895CF9303 +:100C0000DF93EC010E94AE28BE0180E090E0DF910E +:100C1000CF910C9428250F931F93462F50E04C3012 +:100C2000510508F098C0DC01FA01EA5AFF4F12960C +:100C30008C910C949631882309F48DC000E010E06B +:100C4000980140E064E070E089EC91E00E9463125A +:100C500081E090E00FC0882309F47DC000E010E03F +:100C6000980140E066E070E089E591E00E9463123F +:100C700082E090E00E94FF056EC0882309F46BC0FB +:100C800000E010E0980140E068E070E089E891E061 +:100C90000E94631284E090E0EDCF882311F083E09E +:100CA00005C083E00CC0882349F084E00E94A5259C +:100CB00040E164E083E00E94C90A4DC084E00E94E4 +:100CC000C625F6CF882331F085EE0E948F1C0E9446 +:100CD000602D41C085EE0E94571D3DC08823D9F18B +:100CE0000E94F70D38C08823B1F10E94F00D00E09A +:100CF00010E0980140E064E070E089EE91E029C0E6 +:100D0000882349F185E00E94C6250E94180E23C061 +:100D1000882309F100E010E0980140E068E070E00D +:100D200089E191E00E94631285E00E94A52513C02D +:100D3000882389F00E94F61204C0882361F00E9483 +:100D4000011300E010E0980140E068E070E089E104 +:100D500091E00E94631280E090E01F910F9108954E +:100D60000F931F932FEF89EF90E021508040904028 +:100D7000E1F700C0000000E010E0980140E064E00E +:100D800070E089EE91E00E9463121F910F91089527 +:100D9000CF92DF92EF92FF920F931F93CF93DF9347 +:100DA000CDB7DEB7CC58D1090FB6F894DEBF0FBE71 +:100DB000CDBF2091B30325FFC5C08C01FC019281FA +:100DC00080910001992309F460C096E4E5E2F2E025 +:100DD000DE01A95BBF4F01900D929A95E1F7F801F2 +:100DE0009081E091F602F091F702E90FF11DEE0F0C +:100DF000FF1F27E430E02C0F3D1FE20FF31F60813F +:100E00007181680F711D882777FD8095982F0E944A +:100E1000A42E20E030E040E451E40E94092E6B0152 +:100E20007C01F801218185E090E0821B9109BC01E1 +:100E3000882777FD8095982F0E94A42E9B01AC01F6 +:100E4000C701B6010E94A12D9B01AC0160E070E0DA +:100E500080E090E40E94173020E030E04CE551E45F +:100E60000E94B42F4FE050E0C457DF4F0FB6F89404 +:100E7000DEBF0FBECDBFDF91CF911F910F91FF90CD +:100E8000EF90DF90CF900C94031296E4E5E2F2E04D +:100E9000DE01119601900D929A95E1F7F80190818B +:100EA000E091F602F091F702E90FF11DEE0FFF1F3E +:100EB00021E030E02C0F3D1FE20FF31F60817181B4 +:100EC000680F711D882777FD8095982F0E94A42EAA +:100ED00020E030E040E451E40E94092E6B017C01E7 +:100EE000F801218185E090E0821B9109BC018827EF +:100EF00077FD8095982F0E94A42E9B01AC01C7011D +:100F0000B6010E94A12D9B01AC0160E070E080E081 +:100F100090E40E94173020E030E04CE551E40E945C +:100F2000B42FC457DF4F0FB6F894DEBF0FBECDBF4E +:100F3000DF91CF911F910F91FF90EF90DF90CF90B5 +:100F40000C944B0EC457DF4F0FB6F894DEBF0FBEA4 +:100F5000CDBFDF91CF911F910F91FF90EF90DF9068 +:100F6000CF9008950F931F9300E010E0980140E0A8 +:100F700063E070E081E091E00E9463122FEF82E570 +:100F800097E0215080409040E1F700C000001F91A1 +:100F90000F91089508950E94C2056E9A769A0C9456 +:100FA000B0060C94CA070C94C8060895880F991FC0 +:100FB000FC01E650F040859194910895880F991FA7 +:100FC000FC01E658FE4F8591949108950F931F936D +:100FD000CF93DF93EC01811520E49207A0F5C115B2 +:100FE00080E3D80708F0E1C0C83ED105D8F4C03E80 +:100FF000D10508F0EEC1C83AD10578F4C53AD1055B +:1010000008F074C0C130D10509F46DC008F4DEC128 +:10101000C430D10508F0DDC1D9C1CB3BD10508F4FE +:1010200070C0D4C1C11590E2D90708F0B9C0C1158C +:1010300021E0D20708F0CDC1C03FD10508F4C6C1F8 +:101040008E01106506C2C13080E5D80709F4BDC025 +:1010500068F5C13120E4D20709F4AEC050F4C031C4 +:1010600090E4D90708F0A5C0CF70DD278E01146D7C +:10107000F0C1C33120E4D20709F4A4C008F49FC032 +:10108000C115D04509F0A2C10E946C210E94180E22 +:101090000E94B2079FEF24E38CE0915020408040F3 +:1010A000E1F700C000000E943F28D3C1C11520E62F +:1010B000D20730F4C11581E5D80708F48CC02DC1E2 +:1010C000C11590E7D90708F481C1C11520E8D207FE +:1010D00008F478C1C11580E9D80708F077C1DF703E +:1010E0008E01106AB6C101E010E0B3C1C53AD10566 +:1010F00009F471C1C63AD10509F070C102E810E4E3 +:10110000A8C1C83AD10509F46CC1C93AD10509F49E +:101110006BC1CA3AD10509F46AC1CB3AD10509F4C9 +:1011200069C1CC3AD10509F468C1CD3AD10509F4B9 +:1011300067C1C03BD10509F466C1CE3AD10509F4B7 +:1011400065C1CF3AD10509F464C1C13BD10509F4A9 +:1011500063C1C23BD10509F462C1C33BD10509F4A7 +:1011600061C1C43BD10509F460C1C53BD10509F497 +:101170005FC1C63BD10509F45EC1C73BD10509F487 +:101180005DC1C83BD10509F45CC1C93BD10509F477 +:101190005BC1CA3BD10509F45AC100E014E459C14E +:1011A000CE019F700E94DE0755C1DD278E01106CB5 +:1011B00050C100E011ED4DC100E010ED4AC100E06A +:1011C00012ED47C100E013ED44C18091C703816077 +:1011D0008093C7033EC10E949B28811102C00E94D8 +:1011E00077280E94B32890E09093F2038093F10354 +:1011F000C23090E5D90721F48091F103816086C067 +:10120000C43020E5D20721F48091F10382607EC0D2 +:10121000C63080E5D80721F48091F103846076C060 +:10122000C83090E5D90719F48091F10327C0CA307E +:1012300020E5D20721F48091F103806167C0CC30B2 +:1012400080E5D80721F48091F10380625FC0CE3041 +:1012500090E5D90721F48091F103806457C0C03133 +:1012600020E5D20721F48091F10380684FC0C2319C +:1012700080E5D80729F48091F1038460886046C036 +:10128000C33090E5D90721F48091F1038E7F3EC0F1 +:10129000C53020E5D20721F48091F1038D7F36C05F +:1012A000C73080E5D80721F48091F1038B7F2EC0F1 +:1012B000C93090E5D90719F48091F10326C0CB30ED +:1012C00020E5D20721F48091F1038F7E1FC0CD303D +:1012D00080E5D80721F48091F1038F7D17C0CF30CE +:1012E00090E5D90721F48091F1038F7B0FC0C131C4 +:1012F00020E5D20721F48091F1038F7707C0C33135 +:10130000D04531F48091F1038B7F877F8093F10387 +:101310008091F1030E94B7289CC08D2F99278F7070 +:10132000992781309105D9F49E012370332702C09B +:10133000880F991F2A95E2F79C688E0144E0000F00 +:10134000111F4A95E1F700271370802B912B53E072 +:10135000CC0FDD1F5A95E1F7C076DD272FC0823014 +:10136000910531F4DC2FCC278E01016F106A71C01A +:101370008330910569F4CE018370992701E010E074 +:1013800002C0000F111F8A95E2F7C8019C680FC0C8 +:10139000049709F05EC0CE018370992701E010E048 +:1013A00002C0000F111F8A95E2F7C8019A6823E076 +:1013B000CC0FDD1F2A95E1F7C07ED7708C010C2B76 +:1013C0001D2B47C0DF708E01106243C000E010E0AB +:1013D00040C08E013EC001E810E43BC003E810E4C9 +:1013E00038C002EE14E435C009EE14E432C00AEE4F +:1013F00014E42FC005EB14E42CC006EB14E429C060 +:1014000007EB14E426C00CEC14E423C00DEC14E448 +:1014100020C003E815E41DC00AE815E41AC002E97B +:1014200015E417C004E915E414C001E216E411C084 +:1014300003E216E40EC004E216E40BC005E216E473 +:1014400008C006E216E405C007E216E402C00AE29C +:1014500016E4C801DF91CF911F910F9108959CE090 +:10146000799FF00111249CE3899FE00DF11D112467 +:10147000E60FF11DEE0FFF1FE658FE4F8591949188 +:10148000803E9105E0F4803C910558F5813391054B +:1014900009F46FC048F48932910509F463C08A32B7 +:1014A000910509F46DC072C089339105E9F0823865 +:1014B0009105D1F08533910509F44DC067C0833E95 +:1014C000910581F138F4803E9105B9F0823E910595 +:1014D000D9F05CC0863E910561F1873E9105A1F18E +:1014E00055C00E94D60708952091F10320FD02C047 +:1014F00021FF4CC080EE90E049C08091F10380FF55 +:10150000F9CF89E390E042C08091F10382FF0EC0E1 +:101510008091F10384FF03C080E090E037C083EE48 +:1015200090E034C08091F10382FFF2CF82EE90E030 +:101530002DC08091F10383FF0BC08091F10384FDE6 +:10154000EBCF87EE90E022C08091F10383FFF5CFCF +:1015500086EE90E01BC08091F10385FF07C089E211 +:1015600090E014C08091F10385FFF9CF85E390E00E +:101570000DC08091F10386FF07C08AE290E006C0AB +:101580008091F10386FFF9CF81E390E00E94E607A6 +:101590000895CF92DF92EF92FF920F931F9301E095 +:1015A00010E020E030E06801790104C0CC0CDD1CC3 +:1015B000EE1CFF1C8A95D2F704C0000F111F221FDA +:1015C000331F6A95D2F70C291D292E293F29C09077 +:1015D000B303D090B403E090B503F090B603C022FB +:1015E000D122E222F322842FC016D106E206F306AE +:1015F00041F41F910F91FF90EF90DF90CF900C94EA +:10160000A5251F910F91FF90EF90DF90CF900C9444 +:10161000C62508950C94090B5F926F927F928F926A +:101620009F92AF92BF92CF92DF92EF92FF920F9371 +:101630001F93CF93DF93CDB7DEB72A970FB6F894F9 +:10164000DEBF0FBECDBFCE0101966C014E019BE007 +:10165000890E911C20E030E040E050E060E070E056 +:1016600000E010E0E12CF12C6C2C5D2C8AE0782E4F +:10167000AA24A394B12CEBE6F2E0A62DB52D872D7C +:1016800001900D928A95E1F7F601819191916F0198 +:10169000FC01E07FFF27E032F10559F48F709927B4 +:1016A000F50102C0EE0FFF1F8A95E2F7EE2AFF2A2E +:1016B00037C0E033F10559F48F709927F50102C066 +:1016C000EE0FFF1F8A95E2F70E2B1F2B29C0E03487 +:1016D000F10559F48F709927F50102C0EE0FFF1F35 +:1016E0008A95E2F76E2B7F2B1BC0E035F10559F48C +:1016F0008F709927F50102C0EE0FFF1F8A95E2F760 +:101700004E2B5F2B0DC0E036F10551F48F709927F9 +:10171000F50102C0EE0FFF1F8A95E2F72E2B3F2B3B +:10172000C814D90409F0A7CF84B19E2D90958923C0 +:1017300084B985B1E82AE5B887B1902F90958923BF +:1017400087B988B1082B08B98AB1962F909589235B +:101750008AB98BB1682B6BB98DB1942F9095892381 +:101760008DB98EB1482B4EB980B3922F90958923B5 +:1017700080BB81B3282B21BB2A960FB6F894DEBF1D +:101780000FBECDBFDF91CF911F910F91FF90EF90D2 +:10179000DF90CF90BF90AF909F908F907F906F9091 +:1017A0005F9008955F926F927F928F929F92AF9217 +:1017B000BF92CF92DF92EF92FF920F931F93CF933E +:1017C000DF93CDB7DEB768970FB6F894DEBF0FBED4 +:1017D000CDBF85B7806885BF85B7806885BF0E940B +:1017E0000C0BCE0101966C014E0199E1890E911C02 +:1017F00020E030E040E050E060E070E000E010E029 +:10180000E12CF12C6C2C5D2C88E1782EAA24A39479 +:10181000B12CE5E7F2E0A62DB52D872D01900D92B4 +:101820008A95E1F7F601819191916F01FC01E07FCA +:10183000FF27E032F10559F48F709927F50102C0B6 +:10184000EE0FFF1F8A95E2F7EE2AFF2A37C0E0333A +:10185000F10559F48F709927F50102C0EE0FFF1FB3 +:101860008A95E2F70E2B1F2B29C0E034F10559F4BD +:101870008F709927F50102C0EE0FFF1F8A95E2F7DE +:101880006E2B7F2B1BC0E035F10559F48F70992723 +:10189000F50102C0EE0FFF1F8A95E2F74E2B5F2B7A +:1018A0000DC0E036F10551F48F709927F50102C0A3 +:1018B000EE0FFF1F8A95E2F72E2B3F2BC814D90499 +:1018C00009F0A7CF84B19E2D9095892384B985B165 +:1018D000E82AE5B887B1902F9095892387B988B118 +:1018E000082B08B98AB1962F909589238AB98BB1B4 +:1018F000682B6BB98DB1942F909589238DB98EB1DA +:10190000482B4EB980B3922F9095892380BB81B329 +:10191000282B21BBE2E0F3E0A8EFB2E01192119294 +:101920001D921D9283E0EC30F807C1F768960FB660 +:10193000F894DEBF0FBECDBFDF91CF911F910F9105 +:10194000FF90EF90DF90CF90BF90AF909F908F90DF +:101950007F906F905F900C94CB075F926F927F9215 +:101960008F929F92AF92BF92CF92DF92EF92FF92AF +:101970000F931F93CF93DF93CDB7DEB7A2970FB628 +:10198000F894DEBF0FBECDBF6E0149E1C40ED11C7D +:1019900088EFA82E82E0B82E75019AE0592E4601F4 +:1019A00001E010E028E1622E35E0732EEBE6F2E074 +:1019B000D401852D01900D928A95E1F7D6018D9184 +:1019C0009D916D019C01207F33272032310591F4D8 +:1019D00024B18F709927F80102C0EE0FFF1F8A957E +:1019E000E2F7CF01922F982B94B995B18095892376 +:1019F00085B953C02033310591F427B18F709927F1 +:101A0000A80102C0440F551F8A95E2F7CA01922F20 +:101A1000982B97B998B18095892388B93EC0203416 +:101A2000310591F42AB18F709927D80102C0AA0F0D +:101A3000BB1F8A95E2F7CD01922F982B9AB99BB1E3 +:101A4000809589238BB929C02035310591F42DB1BA +:101A50008F709927F80102C0EE0FFF1F8A95E2F7F9 +:101A6000CF01922F982B9DB99EB1809589238EB975 +:101A700014C02036310589F420B38F709927A8014E +:101A800002C0440F551F8A95E2F7CA01922F982B86 +:101A900090BB91B38095892381BB50EA5A95F1F7A9 +:101AA000BE016F5F7F4F20E030E040E050E0E5E7AF +:101AB000F2E0DE011196862D01900D928A95E1F7F4 +:101AC000DB018D919D91BD01FC01E07FFF27E0329C +:101AD000F10511F4E3B113C0E033F10511F4E6B1FF +:101AE0000EC0E034F10511F4E9B109C0E035F105AB +:101AF00011F4ECB104C0E036F105B9F4EFB1F0E057 +:101B00008F70992702C0F595E7958A95E2F7E0FD79 +:101B100008C0C801042E02C0880F991F0A94E2F77A +:101B200002C080E090E0282B392B4F5F5F4F4C3094 +:101B3000510509F0BCCFF70180819181821793078D +:101B400021F031832083709209020E940C0BF2E095 +:101B5000EF0EF11C42E0E41643E0F40609F026CF54 +:101B6000809109028823C9F081508093090288235B +:101B700039F08FE99FE00197F1F700C000000DC038 +:101B8000E2E0F3E0D5018D919D915D018193919308 +:101B9000B2E0AB16B3E0BB06A9F70E94D10781E023 +:101BA000A2960FB6F894DEBF0FBECDBFDF91CF91E6 +:101BB0001F910F91FF90EF90DF90CF90BF90AF906B +:101BC0009F908F907F906F905F900895E82FF0E046 +:101BD000EE0FFF1FEE5FFC4F808191810895089505 +:101BE0008091DC0381608093DC030C94C928809190 +:101BF000DC038E7F8093DC030C94C9280E949B2811 +:101C0000811102C00E9477280E94C5288093DC03BE +:101C10003E9A809171008D7F8093710082E0809365 +:101C200090008AE18093910081E080930E030895F3 +:101C300080910E03811102C00E94FE0D10925E037E +:101C400010925D03809171008D7F8093710080916F +:101C500090008F77809390001092200310921F03C2 +:101C600010925703109258031092590310925A037E +:101C70001092560310925503E5E3F3E0A5E2B3E0BA +:101C800011921192119211921D921D9283E0E535ED +:101C9000F807B1F70895CF92DF92EF92FF920F937A +:101CA0001F93CF93DF9320911F03222309F484C055 +:101CB0006B017C0180910E03811102C00E94FE0D18 +:101CC00005E513E0C7E0D0E0A7019601F801929185 +:101CD0008291729162918F010E94052E811131C013 +:101CE000FE01EE0FFF1FEE0FFF1FEB5CFC4F10829B +:101CF000118212821382DE01AA0FBB1FAB5DBC4FA3 +:101D000011961C921E92C730D105E9F021964481AC +:101D10005581668177814083518362837383148206 +:101D200015821682178212968D919C9113971196A7 +:101D30009C938E9313961C921E9212973496129631 +:101D4000E2CF219708F680915D0390915E030197A1 +:101D500097FD05C090935E0380935D0304C01092CD +:101D60005E0310925D0380915D0390915E0320916C +:101D70005B0330915C032817390724F010925C0351 +:101D800010925B03892BC1F4809171008D7F809349 +:101D90007100809190008F7780939000109257038C +:101DA000109258031092590310925A03109256033E +:101DB0001092550310921F03DF91CF911F910F9145 +:101DC000FF90EF90DF90CF9008951F920F920FB683 +:101DD0000F9211244F925F926F927F928F929F92F7 +:101DE000AF92BF92CF92DF92EF92FF922F933F93E9 +:101DF0004F935F936F937F938F939F93AF93BF9313 +:101E0000CF93DF93EF93FF9380911F03882309F40F +:101E10009BC1C0915D03D0915E031C161D060CF0A2 +:101E200093C140900F035090100360901103709085 +:101E3000120320E030E0A901C301B2010E94B02FDB +:101E400018160CF065C0C130D10509F452C080915C +:101E50005B0390915C03BE010E9482317C019093F0 +:101E60005C0380935B038090210390902203A090F9 +:101E70002303B090240320E030E040E85FE3C50195 +:101E8000B4010E94A12D60932103709322038093DB +:101E9000230390932403F701EE0FFF1FEE0FFF1FA4 +:101EA000EB5CFC4FA301920160817181828193817F +:101EB0000E94092E20E030E040E05EE30E94B42F53 +:101EC0009B01AC01C501B4010E94B02F18168CF41F +:101ED000C7010196BE010E94823190935C038093FA +:101EE0005B0310922103109222031092230310929D +:101EF0002403E0915B03F0915C03EE0FFF1FEE0FF4 +:101F0000FF1FEB5CFC4F6081718182819381D0C0A7 +:101F1000C0905703D0905803E0905903F0905A03B3 +:101F200020E030E0A901C701B6010E94052E2197EB +:101F3000882309F4A2C0FE01EE0FFF1FEE0FFF1F62 +:101F4000EB5CFC4F80809180A280B380A50194015E +:101F5000C701B6010E94052E87FF31C0A50194017B +:101F600060E070E08CED93EC0E94092E20E030E000 +:101F700040E451E40E94092E20E030E040E05FE3BD +:101F80000E94B42F9B01AC0160E070E080E090E41F +:101F90000E9417309B01AC01C501B4010E94B42F0F +:101FA0009B01AC01C701B6010E94052E87FF07C047 +:101FB000A701960160E070E08CED93E439C0A501C3 +:101FC0009401C701B6010E94B02F18160CF055C03D +:101FD000A501940160E070E08CED93E40E94092E6D +:101FE00020E030E040E451E40E94092E20E030E09F +:101FF00040E05FE30E94B42F9B01AC0160E070E021 +:1020000080E090E40E9417309B01AC01C501B4014F +:102010000E94B42F9B01AC01C701B6010E94B02FF2 +:1020200018165CF5A701960160E070E08CED93EC6A +:102030000E94092E20E030E040E451E40E94092E85 +:1020400020E030E040E05FE30E94B42F9B01AC0150 +:1020500060E070E080E090E40E9417309B01AC01EA +:10206000C701B6010E94B42F6093570370935803C1 +:102070008093590390935A0313C0FE01EE0FFF1F84 +:10208000EE0FFF1FEB5CFC4F80819181A281B38139 +:102090008093570390935803A0935903B0935A0326 +:1020A00060915703709158038091590390915A039E +:1020B00020910C0330910D032F3F4FEF340731F087 +:1020C0002F5F3F4F30930D0320930C030E940C139E +:1020D0006B017C0120E034E244EF51E40E94052EC4 +:1020E00087FF08C086EFC82E88E2D82E84EFE82E3E +:1020F00081E4F82E20E030E040E051E4C701B60171 +:102100000E94B42F9B01AC0160E074E284E79BE481 +:102110000E94092E6B017C010E94712E7093970022 +:102120006093960020910A0230910B0240910C02BC +:1021300050910D02C701B6010E94B42F0E94712E6A +:10214000709399006093980080912003882309F48C +:1021500033C1C0901B03D0901C03E0901D03F0908E +:102160001E0320E030E0A901C701B6010E94B02F94 +:102170001816D4F580910C0390910D038F3F2FEF2B +:10218000920729F0019690930D0380930C03C701E9 +:10219000B6010E940C1320E030E040E051E40E94C0 +:1021A000B42F9B01AC0160E074E284E79BE40E94E1 +:1021B000092E6B017C010E94712E70939700609331 +:1021C000960020910A0230910B0240910C0250912E +:1021D0000D02C701B6010E94B42F0E94712E7093A8 +:1021E00099006093980008C0109297001092960092 +:1021F0001092990010929800609115037091160347 +:102200006F5F7F4F709316036093150320919600C4 +:102210003091970080E090E0232BF1F0C091960080 +:10222000D09197000E94A22E6B017C01BE0180E03C +:1022300090E00E94A22E9B01AC0160911703709167 +:1022400018038091190390911A030E94092E20E02F +:102250003FEF4FE757E410C00E94A22E6B017C01B4 +:1022600020E030EE4FEF54E46091170370911803B3 +:102270008091190390911A030E94B42F9B01AC0125 +:10228000C701B6010E94B02F87FD96C0809113034D +:102290008F5F8093130390E02091D8033091D9038E +:1022A00082179307A0F08091E303882319F010921E +:1022B00013030DC0809171008D7F80937100809118 +:1022C00090008F7780939000109220037DC08091C2 +:1022D0001403C0911303811128C0C090DD03D09076 +:1022E000DE03E090DF03F090E00320E030E0A9019E +:1022F000C701B6010E94B02F1816BCF481E080938C +:10230000140310921B0310921C0310921D031092D1 +:102310001E03C0921703D0921803E0921903F092A3 +:102320001A03C150C093130343C0109214031092B8 +:102330000D0310920C03E091DA03F091DB0348E007 +:10234000C49FE00DF11D112480819181A281B38190 +:1023500080931B0390931C03A0931D03B0931E0353 +:1023600020E030E040E85EE36481758186819781FA +:102370000E94B42F6B017C0120E030E048EC52E475 +:1023800060910E0270910F028091100290911102E3 +:102390000E94092E9B01AC01C701B6010E94B42F17 +:1023A00060931703709318038093190390931A0393 +:1023B00010921603109215038091DC0380FD04C077 +:1023C0001092200310921F03FF91EF91DF91CF91A4 +:1023D000BF91AF919F918F917F916F915F914F913D +:1023E0003F912F91FF90EF90DF90CF90BF90AF90F3 +:1023F0009F908F907F906F905F904F900F900FBE47 +:102400000F901F901895CF92DF92EF92FF92CF938B +:10241000DF936B017C01EA0180910E03811102C000 +:102420000E94FE0D8091DC0380FF46C080915D0319 +:1024300090915E0308970CF03FC0809171008D7FF2 +:10244000809371008091200381110E94180E81E019 +:1024500080931F0310920D0310920C0320E030E0D4 +:10246000A901C701B6010E94B02F1816DCF48091B3 +:102470005D0390915E03FC01EE0FFF1FEE0FFF1F47 +:10248000EB5CFC4FC082D182E282F382FC01EE0F52 +:10249000FF1FEB5DFC4FD183C083019690935E03D9 +:1024A00080935D03809171008260809371008091C0 +:1024B0009000806880939000DF91CF91FF90EF9023 +:1024C000DF90CF9008958F929F92AF92BF92CF925C +:1024D000DF92EF92FF920F931F93CF93DF93EC0164 +:1024E0007B01D42E4801590180910E03811102C055 +:1024F0000E94FE0D8091DC0380FF6BC08091710013 +:102500008D7F8093710080911F0381110E94180EAE +:1025100081E080932003D093DB03C093DA03F09231 +:10252000D903E092D803D092E3038092DD03909226 +:10253000DE03A092DF03B092E00310922103109219 +:102540002203109223031092240310921303888114 +:102550009981AA81BB8180931B0390931C03A09354 +:102560001D03B0931E0320E030E040E85EE36C8181 +:102570007D818E819F810E94B42F6B017C0120E0C0 +:1025800030E048EC52E460910E0270910F028091AD +:102590001002909111020E94092E9B01AC01C7010B +:1025A000B6010E94B42F60931703709318038093B1 +:1025B000190390931A031092160310921503809139 +:1025C0007100826080937100809190008068809398 +:1025D0009000DF91CF911F910F91FF90EF90DF90CE +:1025E000CF90BF90AF909F908F90089580915F03A0 +:1025F00090E0019666E070E00E94823180935F0374 +:10260000089580915F0390E0019766E070E00E947A +:10261000823180935F0308958F929F92AF92BF9211 +:10262000CF92DF92EF92FF920F931F93CF93DF939E +:102630006B017C01C0910C03D0910D03BE0180E0C1 +:1026400090E00E94A22E4B015C01A701960160E080 +:1026500070E08CE594E40E94092E9B01AC01C50159 +:10266000B4010E94B42F0E94762E20915F03233084 +:1026700009F473C028F4222351F02130E9F02CC171 +:10268000243009F4A0C0253009F4E0C025C180E061 +:1026900090E0A0E0BFE380930A0290930B02A09326 +:1026A0000C02B0930D0210920F03109210031092BF +:1026B00011031092120310C110920F031092100315 +:1026C00010921103109212036431710540F46A30C4 +:1026D000710560F520E030E040E85EE32BC0693C26 +:1026E000710508F0AAC080E090E00E94A22E20E0D0 +:1026F00030E040EA51E40E94A02D20E030E044E3C5 +:1027000053E40E94092E9B01AC010E94B42F20E0EB +:1027100030E040E05EE30E94B42F9B01AC0160E03A +:1027200070E080E09EE30E94A02D44C020E030E0F5 +:1027300040E05FE3C701B6010E94B42F6B017C014A +:1027400080E090E0A0E0BEE380930A0290930B0249 +:10275000A0930C02B0930D02BFC010920F03109211 +:10276000100310921103109212034AE0469F900149 +:10277000479F300D1124C90168EB7BE00E946E3148 +:10278000BC016C5D754077FF03C07195619571095F +:10279000882777FD8095982F0E94A42E2EE333EC96 +:1027A0004EE259E30E94B42F20E030E040EC5EE3BB +:1027B0000E94A12D60930A0270930B0280930C0279 +:1027C00090930D0289C010920F0310921003109283 +:1027D000110310921203CE0183709927892BE1F027 +:1027E000BE016170772780E090E00E94A22E20E079 +:1027F00030E040E05EE30E94B42F20E030E040E4AF +:102800005FE30E94A12D60930A0270930B028093F4 +:102810000C0290930D020CC080E090E0A0E0BFE3BA +:1028200080930A0290930B02A0930C02B0930D02C6 +:10283000C770DD27CD2B09F04FC010920A0210920D +:102840000B0210920C0210920D0246C010920F0360 +:1028500010921003109211031092120300E010E086 +:1028600020E03FE300930A0210930B0220930C0236 +:1028700030930D026739710578F180E090E00E9495 +:10288000A22E20E030E047E153E40E94A02D20E09A +:1028900030E04AE754E40E94092E20E030E048E4AA +:1028A00052E40E94B42F20E030E040EA51E40E945C +:1028B000E62E0E94712E660F771F660F771FFB01B1 +:1028C000E357FD4F2081318142815381C701B60119 +:1028D0000E94B42F6B017C01C701B601DF91CF913B +:1028E0001F910F91FF90EF90DF90CF90BF90AF902E +:1028F0009F908F900895809168030895CF93DF9300 +:1029000000D01F92CDB7DEB79C018091E8038430E0 +:1029100019F593E099833B832A839093E9008FEF25 +:102920009091E800815095FD06C095ED9A95F1F7DC +:1029300000008111F5CF8091E80085FF0DC040E0D7 +:1029400050E063E070E0CE0101960E94B7168091DE +:10295000E8008E778093E8000F900F900F90DF9142 +:10296000CF910895CF93DF9300D01F92CDB7DEB7FC +:102970002091E803243021F522E029839B838A8378 +:1029800083E08093E9008FEF9091E800815095FDFE +:1029900006C095ED9A95F1F700008111F5CF809171 +:1029A000E80085FF0DC040E050E063E070E0CE013C +:1029B00001960E94B7168091E8008E778093E80018 +:1029C0000F900F900F90DF91CF9108952091E80321 +:1029D0002430F1F422E02093E9002FEF3091E80059 +:1029E000215035FD06C035ED3A95F1F70000211173 +:1029F000F5CF2091E80025FF0BC040E050E065E0F6 +:102A000070E00E94B7168091E8008E778093E8000E +:102A10000895CF93DF932091E803243039F521E026 +:102A20002093E9002FEF3091E800215035FD06C0DA +:102A300035ED3A95F1F700002111F5CF2091E8002E +:102A400025FF14C0EC0140E050E068E070E00E9417 +:102A5000B7168091E8008E778093E80088E0FE0149 +:102A6000A0E6B3E001900D928A95E1F7DF91CF9156 +:102A700008958091E703811109C00E944C180E94BB +:102A8000A9188091E20084608093E200089510927A +:102A9000E7030895089508950C94A72742E061EC98 +:102AA00081E00E94C61742E061EC82E00E94C617F6 +:102AB00042E061EC83E00C94C6178091EA03833016 +:102AC00009F453C030F4813071F0823009F48CC0C5 +:102AD00008958A3009F478C08B3009F45EC08930DB +:102AE00009F09AC020C08091E903813A09F094C0AE +:102AF0008091E800877F8093E8008091ED039091BA +:102B0000EE03892B21F468E080E693E003C060E0E7 +:102B100080E090E070E00E9402178091E8008B77DF +:102B20008093E80008958091E903813209F074C030 +:102B30008091ED039091EE03892B09F06DC0809197 +:102B4000E800877F8093E8008091E80082FD05C05F +:102B50008091E8038111F8CF5FC08091F1008093EC +:102B600068038091E8008B7753C08091E903813A34 +:102B700009F052C08091ED039091EE03892B09F08A +:102B80004BC08091E800877F8093E8008091E80047 +:102B900080FFFCCF80911C0236C08091E903813216 +:102BA000D9F58091ED039091EE03892BA9F58091E1 +:102BB000E800877F8093E8000E94FB178091EB0379 +:102BC00080931C020C946C218091E903813221F5E1 +:102BD0008091E800877F8093E8000E94FB17809136 +:102BE000EC038093690308958091E903813AA1F48D +:102BF0008091E800877F8093E8008091E80080FF63 +:102C0000FCCF809169038093F1008091E8008E777A +:102C10008093E8000C94FB17089584B7877F84BFE6 +:102C200088E10FB6F89480936000109260000FBEA8 +:102C300090E080E80FB6F894809361009093610073 +:102C40000FBE0E949E1B0E944C180E94A9188091E2 +:102C5000E20084608093E20078940E942F1B0E941F +:102C6000A01B82E192E00E944A1B8091E80385301C +:102C700069F40E9461278091E6038823B1F30E94E2 +:102C80008F27882391F30E94A116EFCF0E94A81BE3 +:102C9000ECCF292F332723303105C9F064F42130DC +:102CA000310581F02230310509F043C084E590E020 +:102CB00020ED39E042C021323105F1F022323105F8 +:102CC00041F137C082E190E024E23AE036C0992732 +:102CD0008130910541F08230910541F0892B49F511 +:102CE000ECECF9E005C0EEE9F9E002C0E2E7F9E05A +:102CF000849190E09F0121C06330D8F4E62FF0E08A +:102D0000EE0FFF1FEA51FD4F2081318189E090E0F5 +:102D100014C0633070F470E0FB01EE0FFF1FE0524F +:102D2000FD4F20813181FB01E352FD4F808190E016 +:102D300004C080E090E020E030E0FA01318320839D +:102D4000089580E189BD82E189BD09B400FEFDCF0F +:102D50008091D8008F7D8093D8008091E0008260C0 +:102D60008093E0008091E00081FDFCCF0895CF9238 +:102D7000DF92EF92FF920F931F93CF93DF93EC01BB +:102D80008B016A010E941A18811133C0C114D10449 +:102D900039F0F60180819181081B190BC80FD91FEA +:102DA000E12CF12C0115110519F18091E80085FD48 +:102DB00016C08091E8008E778093E800C114D1049A +:102DC00049F0F60180819181E80EF91EF182E082DE +:102DD00085E00FC00E941A18882321F30AC0899148 +:102DE0008093F10001501109FFEFEF1AFF0ADACFCB +:102DF00080E0DF91CF911F910F91FF90EF90DF90D6 +:102E0000CF9008952091EF033091F00326173707F4 +:102E100048F06115710539F42091E8002E77209370 +:102E2000E80001C0B90140E061157105A9F12091E8 +:102E3000E803222309F443C0253009F442C020915D +:102E4000E80023FD40C02091E80022FD32C020911F +:102E5000E80020FFE9CF4091F3002091F20030E03C +:102E6000342BFC01CF016115710559F02830310573 +:102E700040F481918093F100615071092F5F3F4FC1 +:102E8000F1CF41E02830310509F040E02091E80021 +:102E90002E772093E800C8CF4111C9CF0AC0809196 +:102EA000E803882361F0853061F08091E80083FDBC +:102EB0000AC08091E80082FFF2CF80E0089582E0AE +:102EC000089583E0089581E008952091EF03309103 +:102ED000F0032617370748F06115710539F4209182 +:102EE000E8002E772093E80001C0B901FC0120E042 +:102EF0006115710591F18091E803882309F440C0C0 +:102F0000853009F43FC08091E80083FD3DC0809189 +:102F1000E80082FD2FC08091E80080FFE9CF20917A +:102F2000F3008091F20090E0922B6115710559F049 +:102F30008830910540F424912093F100319661503E +:102F400071090196F2CF21E0089709F020E0809105 +:102F5000E8008E778093E800CBCF2111CCCF0AC058 +:102F60008091E803882361F0853061F08091E8006A +:102F700083FD0AC08091E80082FFF2CF80E00895CF +:102F800082E0089583E0089581E00895982F9730B6 +:102F900058F59093E900981739F07091EC00209162 +:102FA000ED005091F00003C0242F762F50E021FF58 +:102FB00019C03091EB003E7F3093EB003091ED0073 +:102FC0003D7F3093ED003091EB0031603093EB00AA +:102FD0007093EC002093ED005093F0002091EE00F0 +:102FE00027FF07C09F5FD3CF8F708093E90081E0F8 +:102FF000089580E008958091E90387FF11C08091D2 +:10300000E80082FD05C08091E8038111F8CF11C06E +:103010008091E8008B770BC08091E803882349F00A +:103020008091E80080FFF8CF8091E8008E77809350 +:10303000E80008952091E4003091E50095E6409184 +:10304000EC00842F817040FF22C08091E80080FD59 +:103050001CC08091E803882391F0853091F0809125 +:10306000EB0085FD10C04091E4005091E50042174F +:10307000530729F39A01915011F784E0089582E0F3 +:10308000089583E0089581E0089580E008954091D7 +:10309000E80042FFDECF08950E94BA180E94C218CD +:1030A000E0EEF0E0808181608083E8EDF0E08081F7 +:1030B0008F77808319BCA7EDB0E08C918E7F8C93C5 +:1030C00080818F7E80831092E70308950F931F9372 +:1030D000CF93DF930E94BA180E94C218C8EDD0E0C7 +:1030E00088818F77888388818068888388818F7DB5 +:1030F000888319BC1092E8031092E4031092E6034F +:103100001092E50300EE10E0F80180818B7F808350 +:1031100088818160888342E060E080E00E94C61779 +:10312000E1EEF0E080818E7F8083E2EEF0E080814E +:1031300081608083808188608083F80180818E7FB8 +:103140008083888180618883DF91CF911F910F9167 +:103150000895E8EDF0E080818F7E8083E7EDF0E078 +:1031600080818160808384E082BF81E08093E70377 +:103170000C946618E8EDF0E080818E7F80831092D9 +:10318000E20008951092DA001092E10008951F9273 +:103190000F920FB60F9211242F933F934F935F938B +:1031A0006F937F938F939F93AF93BF93EF93FF930F +:1031B0008091E10082FF0BC08091E20082FF07C096 +:1031C0008091E1008B7F8093E1000E942E1B809113 +:1031D000DA0080FF1FC08091D80080FF1BC0809163 +:1031E000DA008E7F8093DA008091D90080FF0DC0D5 +:1031F00080E189BD82E189BD09B400FEFDCF81E097 +:103200008093E8030E94391505C019BC1092E803A9 +:103210000E9447158091E10080FF19C08091E20073 +:1032200080FF15C08091E2008E7F8093E200809144 +:10323000E20080618093E2008091D80080628093F8 +:10324000D80019BC85E08093E8030E944B1580915B +:10325000E10084FF30C08091E20084FF2CC080E157 +:1032600089BD82E189BD09B400FEFDCF8091D800FF +:103270008F7D8093D8008091E1008F7E8093E10064 +:103280008091E2008F7E8093E2008091E200816075 +:103290008093E2008091E403882311F084E007C06A +:1032A0008091E30087FD02C081E001C083E080934C +:1032B000E8030E944C158091E10083FF29C08091B2 +:1032C000E20083FF25C08091E100877F8093E100C9 +:1032D00082E08093E8031092E4038091E1008E7F06 +:1032E0008093E1008091E2008E7F8093E2008091E4 +:1032F000E20080618093E20042E060E080E00E94B2 +:10330000C6178091F00088608093F0000E944A15F3 +:10331000FF91EF91BF91AF919F918F917F916F91AD +:103320005F914F913F912F910F900FBE0F901F9083 +:1033300018951F920F920FB60F9211242F933F935F +:103340004F935F936F937F938F939F93AF93BF93AD +:10335000CF93DF93EF93FF93C091E900CF708091FB +:10336000EC00D82FD17080FDD0E81092E900809158 +:10337000F000877F8093F00078940E94DD1910920E +:10338000E9008091F00088608093F000CD2BCF7031 +:10339000C093E900FF91EF91DF91CF91BF91AF9181 +:1033A0009F918F917F916F915F914F913F912F915D +:1033B0000F900FBE0F901F9018951F93CF93DF9320 +:1033C000CDB7DEB7AA970FB6F894DEBF0FBECDBF5C +:1033D000E9EEF3E088E08E0F9091F10091938E1367 +:1033E000FBCF0E945D158091E80083FF1FC1809193 +:1033F000E9039091EA03492F50E04A30510508F063 +:1034000015C1FA01EE59FF4F0C949631803881F0C6 +:10341000823809F00BC18091ED038F708093E90031 +:103420008091EB0085FB882780F91092E90006C0A7 +:103430008091E5039091E603911182609091E800FC +:10344000977F9093E8008093F1001092F100C8C03C +:10345000282F2D7F09F0EAC0882319F0823061F00F +:10346000E5C08091EB03813009F0E0C0933009F0B2 +:1034700080E08093E6032BC08091EB03811127C08D +:103480008091ED038F7009F4D1C08093E900209101 +:10349000EB0020FF1CC0933021F48091EB00806290 +:1034A00014C09091EB0090619093EB0021E030E02C +:1034B000A90102C0440F551F8A95E2F74093EA0024 +:1034C0001092EA008091EB0088608093EB001092EC +:1034D000E9008091E800877F86C08111A7C0109124 +:1034E000EB031F778091E3008078812B8093E300CA +:1034F0008091E800877F8093E8000E94FB1780910D +:10350000E80080FFFCCF8091E30080688093E300B7 +:10351000111102C082E001C083E08093E80386C0FD +:103520008058823008F082C08091EB039091EC03C8 +:103530008C3D53E0950779F583E08A838AE289839D +:103540004FB7F894DE01139620E03EE051E2E32FFE +:10355000F0E050935700E49120FF03C0E295EF7034 +:103560003F5FEF708E2F90E0EA3010F0C79601C0F9 +:10357000C0968D939D932F5F243149F74FBF809163 +:10358000E800877F8093E8006AE270E0CE01019650 +:103590000E94021714C0AE014F5F5F4F6091ED03B0 +:1035A0000E944916BC01009709F440C09091E800C0 +:1035B000977F9093E80089819A810E946517809196 +:1035C000E8008B778093E80031C0803879F58091EE +:1035D000E800877F8093E8008091E4038093F10006 +:1035E0008091E8008E778093E8000E94FB171EC050 +:1035F00081111CC09091EB039230C0F48091E800DF +:10360000877F8093E8009093E4030E94FB178091EA +:10361000E403811106C08091E30087FD02C081E0D0 +:1036200001C084E08093E8030E944E158091E80079 +:1036300083FF0AC08091E800877F8093E800809133 +:10364000EB0080628093EB00AA960FB6F894DEBF81 +:103650000FBECDBFDF91CF911F9108950895CF93F5 +:103660008091E8038823A1F0C091E900CF70909188 +:10367000EC00892F817090FD80E8C82B1092E90042 +:103680008091E80083FD0E94DD19CF70C093E900AE +:10369000CF91089590936F0380936E030895E09106 +:1036A0006E03F0916F03309721F00190F081E02DCF +:1036B000099480E00895E0916E03F0916F033097D4 +:1036C00021F00280F381E02D09940895E0916E03CA +:1036D000F0916F03309721F00480F581E02D09947B +:1036E000089520916C0330916D038217930771F058 +:1036F00090936D0380936C03E0916E03F0916F03E0 +:10370000309721F00680F781E02D099408952091EB +:103710006A0330916B038217930771F090936B03E8 +:1037200080936A03E0916E03F0916F03309721F06C +:103730000084F185E02D0994089508950C949D1B53 +:103740000E94DB270E94D20B0E9461280C94092D55 +:103750004F925F927F928F929F92AF92BF92CF9241 +:10376000DF92EF92FF920F931F93CF93DF93CDB72A +:10377000DEB72A970FB6F894DEBF0FBECDBF0E940A +:10378000AD0C91E7C92E93E0D92E00E010E0AA24F9 +:10379000A394B12C702E802F0E94E60D4C01F601EF +:1037A000419051906F014826592641145104B1F4BB +:1037B0000F5F1F4F0530110569F78FEF89838A83EB +:1037C0001B820E94E4278160782F9D838C8349812E +:1037D0005A816B818D810E94611C3AC08091C70320 +:1037E00081FD0E94EF0D20E030E07501022E02C045 +:1037F000EE0CFF1C0A94E2F7C70184219521892B66 +:1038000009F12E837F828E209F2091E0892809F480 +:1038100090E098870E94E4278160782F9A878987B3 +:103820004E815F8168858A850E94611C000F111F8F +:10383000F801EF58FC4F80819181E826F926F1824A +:10384000E08206C02F5F3F4F2C30310571F6B0CFBC +:103850000E94482A109170030E944F1B1817D9F03C +:103860000E944F1B809370032A960FB6F894DEBF18 +:103870000FBECDBFDF91CF911F910F91FF90EF90C1 +:10388000DF90CF90BF90AF909F908F907F905F9090 +:103890004F900C940A0B2A960FB6F894DEBF0FBE19 +:1038A000CDBFDF91CF911F910F91FF90EF90DF90EF +:1038B000CF90BF90AF909F908F907F905F904F90F0 +:1038C0000895CF93DF93CDB7DEB72B970FB6F8945B +:1038D000DEBF0FBECDBF4F83588769877A878B873E +:1038E000DE01119686E0FD0111928A95E9F785E0E7 +:1038F000FE01379601900D928A95E1F749815A8130 +:103900006B817C818D819E810E9406242B960FB64F +:10391000F894DEBF0FBECDBFDF91CF910895CF9356 +:10392000882309F4C2C0C82F823859F40E944F1B63 +:1039300081FDBBC089E30E94AF260E94322789E344 +:103940000CC0833879F40E944F1B80FDAEC083E524 +:103950000E94AF260E94322783E50E94CC26CF9199 +:103960000C943227843859F40E944F1B82FD9DC06D +:1039700087E40E94AF260E94322787E4EECF8CEFC7 +:103980008C0F813A48F48C2F0E94712C81118DC0CC +:103990008C2F0E94AF26E3CF80E28C0F883048F452 +:1039A000C77081E001C0880FCA95EAF70E94EB2634 +:1039B000D6CF8BE58C0F833078F4C53A29F0C63A20 +:1039C00031F083E890E005C081E890E002C082E831 +:1039D00090E0CF910C94711B88E58C0F833108F037 +:1039E00064C0C83A39F1C93A41F1CA3A49F1CB3A0F +:1039F00051F1CC3A59F1CD3A61F1C03B69F1CE3A7F +:103A000071F1CF3A79F1C13B81F1C23B89F1C33BFE +:103A100091F1C43B99F1C53BA1F1C63BA9F1C73B6C +:103A2000B1F1C83BB9F1C93BC1F1CA3BC9F180E072 +:103A300090E038C082EE90E035C089EE90E032C070 +:103A40008AEE90E02FC085EB90E02CC086EB90E0F2 +:103A500029C087EB90E026C08CEC90E023C08DEC71 +:103A600090E020C083E891E01DC08AE891E01AC090 +:103A700082E991E017C084E991E014C081E292E00C +:103A800011C083E292E00EC084E292E00BC085E2B6 +:103A900092E008C086E292E005C087E292E002C0B0 +:103AA0008AE292E0CF910C94871BCF9108958823EE +:103AB00009F44BC0823859F40E944F1B81FF45C066 +:103AC00089E30E94AF260E94322789E30CC0833825 +:103AD00071F40E944F1B80FF38C083E50E94AF261F +:103AE0000E94322783E50E94CC260C94322784382A +:103AF00059F40E944F1B82FF28C087E40E94AF2622 +:103B00000E94322787E4EFCF9CEF980F913A58F349 +:103B100090E2980F983050F4877091E001C0990FAF +:103B20008A95EAF7892F0E94F126DFCF9BE5980F4F +:103B3000933020F480E090E00C94711B885A83311C +:103B400020F480E090E00C94871B0895882321F0F6 +:103B50000E94EB260C9432270895882321F00E94BE +:103B6000F1260C9432270895BF92CF92DF92EF9204 +:103B7000FF920F931F93CF93DF9300D000D000D01C +:103B8000CDB7DEB725E0FC01DE01119601900D9264 +:103B90002A95E1F7FC01D0801181028125812295CF +:103BA0002F7043815481452B09F472C31F3F21F4C8 +:103BB000FFEFDF1609F46CC37C012E830E94D3074C +:103BC000D9821A8369817A81802F0E94AB26182FAF +:103BD000B92E0E9460260E9427252E81002319F00D +:103BE0000E9408272E81EB2DE295EF70F0E0E4595A +:103BF000FF4F0C9496318B2D807F9B2D9F70F92E5B +:103C0000882319F0F29480EFF822002389F0FF2036 +:103C100009F47CC280E2810F883020F48F2D0E944D +:103C2000EB2603C08F2D0E94FB260E9432276EC216 +:103C3000812F0E94571DFF2009F42AC3105E8F2D8B +:103C4000183018F40E94F12602C00E94012726961F +:103C50000FB6F894DEBF0FBECDBFDF91CF911F919D +:103C60000F91FF90EF90DF90CF90BF900C94322790 +:103C70008B2D807F9B2D9F70803211F4892F03C084 +:103C8000892F8295807F112319F0113011F12BC0FB +:103C90000023A9F0222389F1213079F526960FB669 +:103CA000F894DEBF0FBECDBFDF91CF911F910F9172 +:103CB000FF90EF90DF90CF90BF900C941B272223B2 +:103CC00019F0213009F4E4C28E830E941E278E81F0 +:103CD0009BC1002321F0263008F0DAC20EC0253047 +:103CE00008F0D6C291C10023C9F0222331F0F701B8 +:103CF000958190FF0BC29F70958326960FB6F8941E +:103D0000DEBF0FBECDBFDF91CF911F910F91FF900E +:103D1000EF90DF90CF90BF900C94A61D222309F462 +:103D200073C109C22B2D26952695237030E02115ED +:103D3000310521F021303105D1F0AAC2002321F054 +:103D4000812F9B2D937002C080E090E026960FB6E5 +:103D5000F894DEBF0FBECDBFDF91CF911F910F91C1 +:103D6000FF90EF90DF90CF90BF900C94711B0023D9 +:103D700021F0812F9B2D937002C080E090E0269669 +:103D80000FB6F894DEBF0FBECDBFDF91CF911F916C +:103D90000F91FF90EF90DF90CF90BF900C94871B16 +:103DA000812F002319F00E94502902C00E94B829D7 +:103DB00026960FB6F894DEBF0FBECDBFDF91CF9130 +:103DC0001F910F91FF90EF90DF90CF90BF900C94D8 +:103DD0003D2A8B2D837009F07BC0011159C2812FC0 +:103DE000829586958770880F880F912F9F70C92EB6 +:103DF000D12CE12CF12C082E04C0CC0CDD1CEE1CC7 +:103E0000FF1C0A94D2F714FF12C04FE050E060E0AC +:103E100070E004C0440F551F661F771F8A95D2F7C4 +:103E2000CB01BA01609570958095909503C060E0D4 +:103E300070E0CB012B2D269526952370422F50E064 +:103E400042305105D9F04330510569F16C297D2983 +:103E50008E299F294130510551F126960FB6F894CD +:103E6000DEBF0FBECDBFDF91CF911F910F91FF90AD +:103E7000EF90DF90CF90BF900C944E256C297D2958 +:103E80008E299F2926960FB6F894DEBF0FBECDBFB0 +:103E9000DF91CF911F910F91FF90EF90DF90CF9026 +:103EA000BF900C946A250E944E25C701B601269644 +:103EB0000FB6F894DEBF0FBECDBFDF91CF911F913B +:103EC0000F91FF90EF90DF90CF90BF900C94322530 +:103ED000002319F08B2D817001C08695882309F489 +:103EE000D7C1812F829586958770880F880F912F73 +:103EF0009F70C92ED12CE12CF12C082E04C0CC0CC3 +:103F0000DD1CEE1CFF1C0A94D2F714FF12C04FE018 +:103F100050E060E070E004C0440F551F661F771F3B +:103F20008A95D2F7CB01BA016095709580959095EE +:103F300003C060E070E0CB012B2D26952695237001 +:103F4000422F50E042305105D9F04330510569F11C +:103F50006C297D298E299F294130510551F12696E2 +:103F60000FB6F894DEBF0FBECDBFDF91CF911F918A +:103F70000F91FF90EF90DF90CF90BF900C94282688 +:103F80006C297D298E299F2926960FB6F894DEBFCD +:103F90000FBECDBFDF91CF911F910F91FF90EF909A +:103FA000DF90CF90BF900C9444260E942826C70132 +:103FB000B60126960FB6F894DEBF0FBECDBFDF91D7 +:103FC000CF911F910F91FF90EF90DF90CF90BF9016 +:103FD0000C940C26103F49F118F4103E48F491C09F +:103FE000123F09F453C0E8F1133F09F464C089C0DB +:103FF0001F708B2D8F71002321F00E94A525812F2A +:104000007CCE0E94C625812F26960FB6F894DEBF7F +:104010000FBECDBFDF91CF911F910F91FF90EF9019 +:10402000DF90CF90BF900C94AD1D0023B1F02530F0 +:1040300008F02EC18B2D8F7126960FB6F894DEBF37 +:104040000FBECDBFDF91CF911F910F91FF90EF90E9 +:10405000DF90CF90BF900C94EB25263008F018C16C +:10406000E9CF0023A9F08B2D8F7126960FB6F89417 +:10407000DEBF0FBECDBFDF91CF911F910F91FF909B +:10408000EF90DF90CF90BF900C94A525002359F3BB +:104090008B2D8F7126960FB6F894DEBF0FBECDBF65 +:1040A000DF91CF911F910F91FF90EF90DF90CF9014 +:1040B000BF900C94C625002399F08B2D8F71269606 :1040C0000FB6F894DEBF0FBECDBFDF91CF911F9129 -:1040D0000F91FF90EF90DF90CF90BF900C947525DB -:1040E0000023A9F0222309F4ADCF812F26960FB625 -:1040F000F894DEBF0FBECDBFDF91CF911F910F911E -:10410000FF90EF90DF90CF90BF900C947E1C222305 -:1041100009F4ADCF812F26960FB6F894DEBF0FBEFF -:10412000CDBFDF91CF911F910F91FF90EF90DF9066 -:10413000CF90BF900C94461D4B2D4F70612FC7013F -:104140000E942F0626960FB6F894DEBF0FBECDBF95 -:10415000DF91CF911F910F91FF90EF90DF90CF9063 -:10416000BF900C949924011182C09B2D9F70492F00 -:1041700050E04230510509F443C0C4F441155105E3 -:1041800071F14130510509F072C026960FB6F894CE -:10419000DEBF0FBECDBFDF91CF911F910F91FF907A -:1041A000EF90DF90CF90BF900C94202D43305105BD -:1041B000C1F14430510509F05AC0812F26960FB63F -:1041C000F894DEBF0FBECDBFDF91CF911F910F914D -:1041D000FF90EF90DF90CF90BF900C94722D2696B9 +:1040D0000F91FF90EF90DF90CF90BF900C949025C0 +:1040E00026960FB6F894DEBF0FBECDBFDF91CF91FD +:1040F0001F910F91FF90EF90DF90CF90BF900C94A5 +:1041000086250023A9F0222309F4ADCF812F26961E +:104110000FB6F894DEBF0FBECDBFDF91CF911F91D8 +:104120000F91FF90EF90DF90CF90BF900C948F1C79 +:10413000222309F4ADCF812F26960FB6F894DEBF67 +:104140000FBECDBFDF91CF911F910F91FF90EF90E8 +:10415000DF90CF90BF900C94571D4B2D4F70612F67 +:10416000C7010E940B0626960FB6F894DEBF0FBE5D +:10417000CDBFDF91CF911F910F91FF90EF90DF9016 +:10418000CF90BF900C94AA24011182C09B2D9F70E8 +:10419000492F50E04230510509F443C0C4F44115A1 +:1041A000510571F14130510509F072C026960FB6E4 +:1041B000F894DEBF0FBECDBFDF91CF911F910F915D +:1041C000FF90EF90DF90CF90BF900C94312D433053 +:1041D0005105C1F14430510509F05AC0812F26968E :1041E0000FB6F894DEBF0FBECDBFDF91CF911F9108 -:1041F0000F91FF90EF90DF90CF90BF900C94092D1E +:1041F0000F91FF90EF90DF90CF90BF900C94832DA4 :1042000026960FB6F894DEBF0FBECDBFDF91CF91DB :104210001F910F91FF90EF90DF90CF90BF900C9483 -:104220003C2D26960FB6F894DEBF0FBECDBFDF91B2 +:104220001A2D26960FB6F894DEBF0FBECDBFDF91D4 :10423000CF911F910F91FF90EF90DF90CF90BF90A3 -:104240000C944F2D4B2D4F70612FC70126960FB642 -:10425000F894DEBF0FBECDBFDF91CF911F910F91BC -:10426000FF90EF90DF90CF90BF900C94F9072696C7 +:104240000C944D2D26960FB6F894DEBF0FBECDBF51 +:10425000DF91CF911F910F91FF90EF90DF90CF9062 +:10426000BF900C94602D4B2D4F70612FC701269687 :104270000FB6F894DEBF0FBECDBFDF91CF911F9177 -:104280000F91FF90EF90DF90CF90BF9008950E9424 -:10429000F7260E9407270E94CC260E9421270E9411 -:1042A000DD2A0E942C2A80E090E00E94601B80E0C2 -:1042B00090E00C94761B0E94E7260C9447210E9404 -:1042C0008F26292F22952F7030E02C3031054CF4A9 -:1042D0002A3031056CF4225031092230310588F43E -:1042E00007C02C30310549F02F30310531F009C0BD -:1042F000803E48F0803F29F406C093FB882780F970 -:10430000089580E0089581E00895CF93DF9300D071 -:1043100000D01F92CDB7DEB70F900F900F900F9087 -:104320000F90DF91CF910895CF93DF9300D000D00D -:1043300000D0CDB7DEB726960FB6F894DEBF0FBE1D -:10434000CDBFDF91CF9108951F93CF93DF93C0919D -:104350002B0316E080912C03C81799F0D0E01C9F26 -:10436000F0011D9FF00D1124E35DFC4F4081518150 -:1043700062817381848195810E9494212196C77006 -:10438000E9CFDF91CF911F91089540915D03509146 -:104390005E0360915F03709160038091610390916F -:1043A00062030C9494218091620382958F7009F0CE -:1043B00054C080915F03882309F44FC080912B0380 -:1043C000A0912C0360915D0370915E0340916003A6 -:1043D00050916103B6E08A1709F43FC090E041159F -:1043E0005105C1F17F3F11F46F3FA1F1B89FF0017A -:1043F000B99FF00D1124E35DFC4F218172132AC097 -:104400002081621327C02281211124C0238134819D -:104410002417350710F421503109241B350B283C93 -:104420003105C0F4209162032F7020612093620354 -:1044300026E0289FF001299FF00D1124EE5CFC4F2F -:1044400080818F70806180838DE593E00E94A31D41 -:104450000C94A42101968770BECF0895CF92DF926D -:10446000EF92FF920F931F93CF93DF93CDB7DEB7F9 -:1044700062970FB6F894DEBF0FBECDBF8C0185E00A -:10448000F801DE011D9601900D928A95E1F7D801A1 -:104490004C9111965C91119712966C91129713960C -:1044A000CD90DC90149730915D0370915E03809104 -:1044B000600390916103009709F46BC17F3F19F489 -:1044C0003F3F09F466C1E0905F03EE2009F4C0C0ED -:1044D00020916203C816D90628F0F601E81BF90BF3 -:1044E000CF0104C0809590958C0D9D1DFF24F39401 -:1044F000883C910578F0F12C207F09F0C6C07C2D16 -:10450000D98AC88A89890E9485218DE593E00E9415 -:10451000A31DB1C0822F807F09F046C0751314C05F -:10452000341312C0611110C02F70206120936203F8 -:104530000E94C5218DE593E00E94A31D8091620336 -:10454000D80115968C932EC0CD2819F15F3F11F438 -:104550004F3FF9F0F62E61111CC080912B03209182 -:104560002C0336E0821709F45AC090E0389FF0011E -:10457000399FF00D1124E35DFC4F7181571306C084 -:104580007081471303C07281711103C00196877057 -:10459000E9CFF62E662309F418C180916203816089 -:1045A00080936203F12C11C1751308C0341306C047 -:1045B000611104C080916203D801C3C04D875E873A -:1045C0008D859E856A8B0E945F216A898823E1F12F -:1045D0006623D1F120916203822F82958F7090E043 -:1045E000029774F080915D0390915E0398878F83AA -:1045F0001986DB86CA862C87CE0107960E94A31DEA -:1046000086E0F801ADE5B3E001900D928A95E1F7FF -:104610000E94D3210E94C521FF24F394D6C04D8768 -:104620005E878D859E850E948F26292F22952F706B -:1046300030E0223031050CF0BCC09F7009F0B6C0EC -:10464000805E883008F4C1C0C8010E94A31DE4CF79 -:10465000C816D90608F453C0F601E81BF90BCF01C0 -:10466000883C910508F450C0F12C7C2DD98AC88A69 -:1046700089890E948521EDE5F3E086E0DF011D9246 -:104680008A95E9F70E94C521A0C0751314C03413A0 -:1046900012C0611110C080916203F8018583C801C6 -:1046A0000E94A31D86E0EDE5F3E0DF011D928A95EF -:1046B000E9F7FE2C8AC04D875E878D859E856A8BC3 -:1046C0000E945F216A89882309F4BECF662309F41A -:1046D000BBCF20916203822F82958F7090E002976A -:1046E0000CF48ECF80915D0390915E039A83898351 -:1046F0001B82DD82CC822E83CE0101967FCF8095F6 -:1047000090958C0D9D1DACCFF62E662309F49CCFA1 -:1047100075132EC034132CC02091620320FD1FC0DE -:10472000822F82958F70D9F0D80115962C9315970A -:104730008F3049F08F5F982F9295907F822F8F70E6 -:10474000892B15968C93C8010E94A31D86E0F80161 -:10475000ADE5B3E001900D928A95E1F793CF86E045 -:10476000F801ADE5B3E001900D928A95E1F72DC017 -:104770004D875E878D859E850E945F21811140CF88 -:1047800080916203816080936203C8010E94A31D2F -:104790001CC0662309F458CF4D875E878D859E85A2 -:1047A0000E945F21882309F44FCF2ACF811148CF7F -:1047B0000CC0243031050CF047CF9F7009F440CF76 -:1047C000F8019581907F09F03BCF8F2D62960FB64F -:1047D000F894DEBF0FBECDBFDF91CF911F910F9137 -:1047E000FF90EF90DF90CF9008951F93CF93DF93CA -:1047F000CDB7DEB72C970FB6F894DEBF0FBECDBF96 -:104800004F83588769877A878B879C87CE01079665 -:104810000E942E22882369F08F8198852A853B8506 -:10482000232BF1F19F3F09F063C08F3F09F060C077 -:1048300037C086E0FE013796DE01119601900D9299 -:104840008A95E1F76F817885EA85FB85309741F19C -:104850007F3F11F46F3F21F120912C0330E0C9011B -:1048600001968770992740912B0350E08417950794 -:1048700009F447C069837A83FD83EC8396E0929FB5 -:10488000D001939FB00D1124A35DBC4FFE01319662 -:1048900001900D929A95E1F780932C030E94A42138 -:1048A00016E080912B0390912C038917C1F1189F7A -:1048B000C0011124835D9C4F0E942E22882379F130 -:1048C000E0912B031E9FF0011124E35DFC4F40811A -:1048D000518162817381848195810E9494218091AC -:1048E0002B0390E001968770992780932B03D9CFF3 -:1048F0004F81588569857A858B859C850E94942196 -:10490000CFCF0E945B2110922C0310922B03EDE578 -:10491000F3E086E0DF011D928A95E9F7C1CF2C967E -:104920000FB6F894DEBF0FBECDBFDF91CF911F91C0 -:104930000895EF92FF920F931F93CF93DF938C0113 -:10494000009709F46CC0F12CEE24E394E801219661 -:10495000F8018491843740F4843008F051C08130EC -:1049600081F0823019F15BC0853709F444C0A8F1A9 -:104970009CE7980F903708F052C08F770E94461D31 -:1049800041C00E5F1F4FFE01C49180E28C0F883042 -:1049900048F4C7708E2D01C0880FCA95EAF70E94AF -:1049A000FA2614C08C2F0E947E1C2DC00E5F1F4F54 -:1049B000FE01C49180E28C0F883058F4C7708E2DB0 -:1049C00001C0880FCA95EAF70E9400270E9421279C -:1049D0001AC08C2F0E94461D16C00E5F1F4FFE018D -:1049E000C491CC2381F08FE99FE00197F1F700C0DB -:1049F0000000C150F6CF0E5F1F4FFE01F49003C0C0 -:104A00000E947E1C8E018F2D882309F49FCFEFE931 -:104A1000FFE03197F1F700C000008150F5CFDF9142 -:104A2000CF911F910F91FF90EF900895089560939B -:104A30006703709368038093690390936A030C94EF -:104A400047210F931F9300916703109168032091F2 -:104A5000690330916A03DC01CB01802B912BA22BDF -:104A6000B32B8093670390936803A0936903B0937B -:104A70006A031F910F910C9447210F931F9300918C -:104A80006703109168032091690330916A03DC0188 -:104A9000CB0180239123A223B323809367039093B8 -:104AA0006803A0936903B0936A031F910F910C945C -:104AB00047210F931F930091670310916803209182 -:104AC000690330916A03DC01CB0180279127A2277B -:104AD000B3278093670390936803A0936903B0930F -:104AE0006A031F910F910C94472110926303109257 -:104AF000640310926503109266030C94472141E011 -:104B000050E060E070E004C0440F551F661F771F3F -:104B10008A95D2F7409363035093640360936503CF -:104B2000709366030C94472141E050E060E070E030 -:104B300004C0440F551F661F771F8A95D2F78091D6 -:104B4000630390916403A0916503B0916603482BC1 -:104B5000592B6A2B7B2B4093630350936403609320 -:104B60006503709366030C94472141E050E060E0D8 -:104B700070E004C0440F551F661F771F8A95D2F757 -:104B80004095509560957095809163039091640372 -:104B9000A0916503B0916603482359236A237B23C0 -:104BA00040936303509364036093650370936603BB -:104BB0000C94472141E050E060E070E004C0440FF5 -:104BC000551F661F771F8A95D2F7809163039091D6 -:104BD0006403A0916503B0916603482759276A27AB -:104BE0007B27409363035093640360936503709342 -:104BF00066030C9447210F931F9300916303109158 -:104C000064032091650330916603DC01CB01802BA6 -:104C1000912BA22BB32B8093630390936403A093F7 -:104C20006503B09366031F910F910C9447210F9376 -:104C30001F930091630310916403209165033091E9 -:104C40006603DC01CB0180239123A223B32380934D -:104C5000630390936403A0936503B09366031F916D -:104C60000F910C9447210F931F93009163031091B0 -:104C700064032091650330916603DC01CB0180273A -:104C80009127A227B3278093630390936403A09393 -:104C90006503B09366031F910F910C94472108950B -:104CA000CF92DF92EF92FF920F931F93CF93DF93F8 -:104CB0008C01C0906703D0906803E0906903F09086 -:104CC0006A038091630390916403A0916503B0919E -:104CD0006603C82AD92AEA2AFB2ACFE1D0E0D70105 -:104CE000C6010C2E04C0B695A795979587950A9492 -:104CF000D2F780FF06C0B8018C2F0E94530A01979B -:104D000021F4219760F780E001C08C2FDF91CF91D3 -:104D10001F910F91FF90EF90DF90CF900895CF9368 -:104D2000DF93EC010E945026BE010E94530ADF91DE -:104D3000CF910895CB010E948F26089520911F02E4 -:104D400030912002F90132969FEF40E051915817BF -:104D500089F09F3F19F4511101C0942F4F5F4630E5 -:104D6000A9F79F3F39F0F901E90FF11D97FDFA9579 -:104D700082830895089520911F0230912002F90145 -:104D80003296285F3F4F9081981301C01082319670 -:104D9000E217F307C1F7089581E090E0E0911F0268 -:104DA000F0912002E80FF91F1082019688309105DA -:104DB000A9F7089590917603892B8093760308953F -:104DC00080959091760389238093760308951092BD -:104DD0007603089590917503892B80937503089548 -:104DE000809590917503892380937503089510929F -:104DF0007503089590917403892B8093740308952B -:104E00008095909174038923809374030895109280 -:104E10007403089580936B03089510926B030895B3 -:104E200080911F0290912002FC0131969C01285F25 -:104E30003F4F80E0919191118F5FE217F307D1F717 -:104E40000895E0911F02F091200280917603808303 -:104E5000E0911F02F0912002908180917503892BCF -:104E60008083E0911F02F091200290818091740371 -:104E7000892B808380916B03882361F0E0911F026E -:104E8000F09120029081892B80830E94102781114C -:104E900010926B0380911F02909120020C944A1B88 -:104EA00080919803843039F11092780320E488E1EE -:104EB00090E00FB6F894A895809360000FBE209301 -:104EC000600080E00E94F60580E00E942E0B83B710 -:104ED000817F846083BF83B7816083BF7894889526 -:104EE00083B78E7F83BF88E10FB6F894809360000C -:104EF000109260000FBE089508950895CF9380E04A -:104F00000E94F6050E947C270E94D10C0E947D27FA -:104F1000C0E08C2F0E940A0E892B29F4CF5FC53088 -:104F2000C1F780E001C081E0CF9108950E945B212C -:104F300080E00E94F6050E94F82C0E943E1B0C9413 -:104F40002E0B1F920F920FB60F9211248F939F93E7 -:104F5000AF93BF9380917803811113C0809179033F -:104F600090917A03A0917B03B0917C034196A11D9F -:104F7000B11D8093790390937A03A0937B03B09340 -:104F80007C03BF91AF919F918F910F900FBE0F90B7 -:104F90001F90189582E084BD93E095BD9AEF97BD70 -:104FA00080936E0008952FB7F894809179039091C3 -:104FB0007A03A0917B03B0917C032FBF0895CF9219 -:104FC000DF92EF92FF920F931F932FB7F8944091C7 -:104FD000790350917A0360917B0370917C032FBF1A -:104FE0006A017B01EE24FF248C0120E030E0C01632 -:104FF000D106E206F30610F4415051099A01281B2C -:10500000390BC9011F910F91FF90EF90DF90CF9066 -:1050100008951F920F920FB60F9211248F939F93B2 -:10502000AF93BF938091790390917A03A0917B0312 -:10503000B0917C030196A11DB11D809379039093DB -:105040007A03A0937B03B0937C03BF91AF919F91B0 -:105050008F910F900FBE0F901F9018950E943B18D4 -:10506000F8942FEF87EA91E6215080409040E1F7D5 -:1050700000C0000087E090EBDC018093A3039093D5 -:10508000A403A093A503B093A6039CE088E10FB608 -:10509000F894A895809360000FBE90936000FFCFB6 -:1050A0000E948A28811102C00E9466280E949528C9 -:1050B000809377030E94A2288093A1030E949928DD -:1050C000682F70E080E090E00C9417256DEE7EEF85 -:1050D00080E090E00E945D3160E082E090E00E941C -:1050E0004B3160E083E090E00E944B3160E084E06F -:1050F00090E00E944B3160E085E090E00E944B31EF -:1051000060E086E090E00E944B316FEF87E090E036 -:105110000C944B3180E090E00E94453121E08D3EBF -:105120009E4F09F020E0822F089582E090E00C94D9 -:105130003D3183E090E00C943D31682F83E090E0B6 -:105140000C944B3184E090E00C943D31682F84E066 -:1051500090E00C944B3186E090E00C943D31682F48 -:1051600086E090E00C944B3187E090E00C943D3168 -:10517000682F87E090E00C944B3180917F0380FF93 -:105180000BC06091240285E0689FB00111247595E1 -:105190006795759567952BC081FF09C060912402C2 -:1051A00085E0689FB00111247595679520C082FF46 -:1051B00007C06091240285E0689FB001112417C0E8 -:1051C000909180039923D1F060912302961788F77C -:1051D0002091240285E0289F90011124929FA00134 -:1051E000939F500D112470E0CA010E942331603852 -:1051F000710540F46115710539F002C065E070E099 -:10520000862F08958FE7089581E0089580917F03A8 -:1052100080FF08C06091220270E0759567957595D2 -:10522000679521C081FF06C06091220270E07595EC -:10523000679519C082FF04C06091220270E010C01F -:10524000909180039923C1F0609121029617A0F7F5 -:1052500080912202899FC001112470E00E942331B5 -:105260006038710528F46115710521F0862F0895C5 -:105270008FE7089581E0089561E070E0F4CF803F0A -:1052800021F40E94BD28819504C0813F29F40E9429 -:10529000BD28809383030895823F21F40E94BD2896 -:1052A000819504C0833F29F40E94BD288093820326 -:1052B0000895893F19F40E94062905C08A3F31F4F8 -:1052C0000E94062981958093840308958B3F21F4E1 -:1052D0000E940629819504C08C3F29F40E9406296A -:1052E000809385030895843F21F480918103816038 -:1052F00017C0853F21F480918103826011C0863FF1 -:1053000021F48091810384600BC0873F21F4809158 -:105310008103886005C0883F31F4809181038061FA -:105320008093810308958D3F21F480917F038160F4 -:105330000BC08E3F21F480917F03826005C08F3FB8 -:1053400029F480917F03846080937F030895803FD8 -:1053500039F48091830387FF6CC01092830369C086 -:10536000813F29F4809183031816BCF362C09091A9 -:105370008203823F29F497FF5CC01092820359C0D8 -:10538000833F19F41916CCF354C0893F41F480913E -:10539000840318160CF04DC0109284034AC08A3F53 -:1053A00029F48091840387FF44C0F6CF8B3F39F402 -:1053B0008091850387FF3DC0109285033AC08C3FE2 -:1053C00029F4809185031816BCF333C0843F21F47F -:1053D000809181038E7F17C0853F21F480918103E6 -:1053E0008D7F11C0863F21F4809181038B7F0BC09C -:1053F000873F21F480918103877F05C0883F31F486 -:10540000809181038F7E8093810313C08D3F21F4AF -:1054100080917F038E7F0BC08E3F21F480917F03AC -:105420008D7F05C08F3F29F480917F038B7F809310 -:105430007F038091820381110EC0809183038111CB -:105440000AC080918403811106C080918503811177 -:1054500002C010928003089581E893E00E94551BDA -:105460000E94D32790937E0380937D0308951F931A -:10547000CF93DF9380917D0390917E030E94DF277D -:10548000AC0190918003992321F02091250230E016 -:1054900006C0209126028AE0289F9001112442171D -:1054A000530708F486C080918203C0918303D09192 -:1054B000840310918503811107C0C11176C0D111F9 -:1054C00074C0111172C075C09F3F19F09F5F909317 -:1054D0008003181624F40E94BD28809382038091D3 -:1054E000820387FF05C00E94BD28819580938203B7 -:1054F0001C1624F40E94BD288093830380918303AB -:1055000087FF05C00E94BD28819580938303609129 -:105510008203662339F1C0918303CC2319F17727E5 -:1055200067FD7095872F972F0E94932E23E333E317 -:1055300043E35FE30E94472F0E94602E6093820343 -:105540006C2F772767FD7095872F972F0E94932EDA -:1055500023E333E343E35FE30E94472F0E94602E7F -:10556000609383031D1624F40E940629809384030C -:105570008091840387FF05C00E940629819580934E -:105580008403111624F40E940629809385038091D8 -:10559000850387FF05C00E940629819580938503B6 -:1055A000DF91CF911F910C942C2A9F3F09F08ECF51 -:1055B00096CFDF91CF911F910895E1E8F3E085E068 -:1055C000DF011D928A95E9F71092800310927F0304 -:1055D0000895833081F128F4813059F08230D1F080 -:1055E0000895853009F449C0B8F1863009F456C0F1 -:1055F000089580912602262F30E0280F311D2F3F7D -:10560000310524F4680F6093260208958FEF80938C -:105610002602089580912502262F30E0280F311DA3 -:105620002F3F310524F4680F6093250208958FEF12 -:1056300080932502089580912402262F30E0280FC0 -:10564000311D2F3F310524F4680F60932402089523 -:105650008FEF80932402089580912302262F30E05B -:10566000280F311D2F3F310524F4680F609323026A -:1056700008958FEF80932302089580912202262FB0 +:104280000F91FF90EF90DF90CF90BF900C94D507E7 +:1042900026960FB6F894DEBF0FBECDBFDF91CF914B +:1042A0001F910F91FF90EF90DF90CF90BF900895F6 +:1042B0000E9408270E9418270E94DD260E943227AC +:1042C0000E94EE2A0E943D2A80E090E00E94711B2D +:1042D00080E090E00C94871B0E94F8260C945821F3 +:1042E0000E94A026292F22952F7030E02C30310516 +:1042F0004CF42A3031056CF422503109223031055A +:1043000088F407C02C30310549F02F30310531F0E9 +:1043100009C0803E48F0803F29F406C093FB8827FF +:1043200080F9089580E0089581E00895CF93DF93A8 +:1043300000D000D01F92CDB7DEB70F900F900F9036 +:104340000F900F90DF91CF910895CF93DF9300D01E +:1043500000D000D0CDB7DEB726960FB6F894DEBFFA +:104360000FBECDBFDF91CF9108951F93CF93DF9301 +:10437000C0917B0316E080917C03C81799F0D0E0D0 +:104380001C9FF0011D9FF00D1124E358FC4F40814C +:10439000518162817381848195810E94A52121963A +:1043A000C770E9CFDF91CF911F9108954091AD0380 +:1043B0005091AE036091AF037091B0038091B1034F +:1043C0009091B2030C94A5218091B20382958F70D5 +:1043D00009F054C08091AF03882309F44FC0809145 +:1043E0007B03A0917C036091AD037091AE0340917B +:1043F000B0035091B103B6E08A1709F43FC090E0D2 +:1044000041155105C1F17F3F11F46F3FA1F1B89FF4 +:10441000F001B99FF00D1124E358FC4F2181721374 +:104420002AC02081621327C02281211124C0238148 +:1044300034812417350710F421503109241B350B22 +:10444000283C3105C0F42091B2032F7020612093E5 +:10445000B20326E0289FF001299FF00D1124EE57AA +:10446000FC4F80818F70806180838DEA93E00E9491 +:10447000B41D0C94B52101968770BECF0895CF92DC +:10448000DF92EF92FF920F931F93CF93DF93CDB7FD +:10449000DEB762970FB6F894DEBF0FBECDBF8C01BA +:1044A00085E0F801DE011D9601900D928A95E1F7F5 +:1044B000D8014C9111965C91119712966C911297BC +:1044C0001396CD90DC9014973091AD037091AE03AC +:1044D0008091B0039091B103009709F46BC17F3FC5 +:1044E00019F43F3F09F466C1E090AF03EE2009F4F0 +:1044F000C0C02091B203C816D90628F0F601E81B07 +:10450000F90BCF0104C0809590958C0D9D1DFF2463 +:10451000F394883C910578F0F12C207F09F0C6C017 +:104520007C2DD98AC88A89890E9496218DEA93E0D8 +:104530000E94B41DB1C0822F807F09F046C0751360 +:1045400014C0341312C0611110C02F702061209369 +:10455000B2030E94D6218DEA93E00E94B41D80919F +:10456000B203D80115968C932EC0CD2819F15F3F68 +:1045700011F44F3FF9F0F62E61111CC080917B03BE +:1045800020917C0336E0821709F45AC090E0389FEE +:10459000F001399FF00D1124E358FC4F718157133E +:1045A00006C07081471303C07281711103C0019668 +:1045B0008770E9CFF62E662309F418C18091B20303 +:1045C00081608093B203F12C11C1751308C03413BC +:1045D00006C0611104C08091B203D801C3C04D87E9 +:1045E0005E878D859E856A8B0E9470216A898823EB +:1045F000E1F16623D1F12091B203822F82958F7071 +:1046000090E0029774F08091AD039091AE0398878B +:104610008F831986DB86CA862C87CE0107960E9477 +:10462000B41D86E0F801ADEAB3E001900D928A95E1 +:10463000E1F70E94E4210E94D621FF24F394D6C022 +:104640004D875E878D859E850E94A026292F229505 +:104650002F7030E0223031050CF0BCC09F7009F0A3 +:10466000B6C0805E883008F4C1C0C8010E94B41D85 +:10467000E4CFC816D90608F453C0F601E81BF90BBD +:10468000CF01883C910508F450C0F12C7C2DD98ACB +:10469000C88A89890E949621EDEAF3E086E0DF016D +:1046A0001D928A95E9F70E94D621A0C0751314C007 +:1046B000341312C0611110C08091B203F8018583D8 +:1046C000C8010E94B41D86E0EDEAF3E0DF011D920F +:1046D0008A95E9F7FE2C8AC04D875E878D859E8579 +:1046E0006A8B0E9470216A89882309F4BECF6623F1 +:1046F00009F4BBCF2091B203822F82958F7090E096 +:1047000002970CF48ECF8091AD039091AE039A8303 +:1047100089831B82DD82CC822E83CE0101967FCFDE +:10472000809590958C0D9D1DACCFF62E662309F4D7 +:104730009CCF75132EC034132CC02091B20320FDE2 +:104740001FC0822F82958F70D9F0D80115962C93B7 +:1047500015978F3049F08F5F982F9295907F822F19 +:104760008F70892B15968C93C8010E94B41D86E02A +:10477000F801ADEAB3E001900D928A95E1F793CF8D +:1047800086E0F801ADEAB3E001900D928A95E1F779 +:104790002DC04D875E878D859E850E947021811179 +:1047A00040CF8091B20381608093B203C8010E9420 +:1047B000B41D1CC0662309F458CF4D875E878D85D4 +:1047C0009E850E947021882309F44FCF2ACF811142 +:1047D00048CF0CC0243031050CF047CF9F7009F44E +:1047E00040CFF8019581907F09F03BCF8F2D6296E5 +:1047F0000FB6F894DEBF0FBECDBFDF91CF911F91F2 +:104800000F91FF90EF90DF90CF9008951F93CF937B +:10481000DF93CDB7DEB72C970FB6F894DEBF0FBE8F +:10482000CDBF4F83588769877A878B879C87CE0156 +:1048300007960E943F22882369F08F8198852A85F8 +:104840003B85232BF1F19F3F09F063C08F3F09F0B7 +:1048500060C037C086E0FE013796DE0111960190F8 +:104860000D928A95E1F76F817885EA85FB8530970F +:1048700041F17F3F11F46F3F21F120917C0330E043 +:10488000C90101968770992740917B0350E08417F6 +:10489000950709F447C069837A83FD83EC8396E02A +:1048A000929FD001939FB00D1124A358BC4FFE01DD +:1048B000319601900D929A95E1F780937C030E94C6 +:1048C000B52116E080917B0390917C038917C1F19B +:1048D000189FC001112483589C4F0E943F228823B7 +:1048E00079F1E0917B031E9FF0011124E358FC4F06 +:1048F0004081518162817381848195810E94A521CB +:1049000080917B0390E001968770992780937B03C9 +:10491000D9CF4F81588569857A858B859C850E9482 +:10492000A521CFCF0E946C2110927C0310927B03B3 +:10493000EDEAF3E086E0DF011D928A95E9F7C1CF49 +:104940002C960FB6F894DEBF0FBECDBFDF91CF918E +:104950001F910895EF92FF920F931F93CF93DF93D0 +:104960008C01009709F46CC0F12CEE24E394E8016B +:104970002196F8018491843740F4843008F051C0C6 +:10498000813081F0823019F15BC0853709F444C071 +:10499000A8F19CE7980F903708F052C08F770E94DB +:1049A000571D41C00E5F1F4FFE01C49180E28C0F66 +:1049B000883048F4C7708E2D01C0880FCA95EAF779 +:1049C0000E940B2714C08C2F0E948F1C2DC00E5FDD +:1049D0001F4FFE01C49180E28C0F883058F4C770DD +:1049E0008E2D01C0880FCA95EAF70E9411270E94F8 +:1049F00032271AC08C2F0E94571D16C00E5F1F4F02 +:104A0000FE01C491CC2381F08FE99FE00197F1F77B +:104A100000C00000C150F6CF0E5F1F4FFE01F490A2 +:104A200003C00E948F1C8E018F2D882309F49FCF15 +:104A3000EFE9FFE03197F1F700C000008150F5CFBA +:104A4000DF91CF911F910F91FF90EF9008950895FE +:104A50006093B7037093B8038093B9039093BA033C +:104A60000C9458210F931F930091B7031091B80332 +:104A70002091B9033091BA03DC01CB01802B912B3B +:104A8000A22BB32B8093B7039093B803A093B903E1 +:104A9000B093BA031F910F910C9458210F931F9359 +:104AA0000091B7031091B8032091B9033091BA0374 +:104AB000DC01CB0180239123A223B3238093B7038E +:104AC0009093B803A093B903B093BA031F910F91C9 +:104AD0000C9458210F931F930091B7031091B803C2 +:104AE0002091B9033091BA03DC01CB0180279127D3 +:104AF000A227B3278093B7039093B803A093B90379 +:104B0000B093BA031F910F910C9458211092B303E4 +:104B10001092B4031092B5031092B6030C9458216E +:104B200041E050E060E070E004C0440F551F661F94 +:104B3000771F8A95D2F74093B3035093B4036093E1 +:104B4000B5037093B6030C94582141E050E060E047 +:104B500070E004C0440F551F661F771F8A95D2F777 +:104B60008091B3039091B403A091B503B091B603C3 +:104B7000482B592B6A2B7B2B4093B3035093B403E0 +:104B80006093B5037093B6030C94582141E050E054 +:104B900060E070E004C0440F551F661F771F8A95C0 +:104BA000D2F740955095609570958091B3039091A0 +:104BB000B403A091B503B091B603482359236A23E7 +:104BC0007B234093B3035093B4036093B503709376 +:104BD000B6030C94582141E050E060E070E004C05E +:104BE000440F551F661F771F8A95D2F78091B30334 +:104BF0009091B403A091B503B091B603482759270B +:104C00006A277B274093B3035093B4036093B503A3 +:104C10007093B6030C9458210F931F930091B30324 +:104C20001091B4032091B5033091B603DC01CB01A0 +:104C3000802B912BA22BB32B8093B3039093B403BF +:104C4000A093B503B093B6031F910F910C94582114 +:104C50000F931F930091B3031091B4032091B503F8 +:104C60003091B603DC01CB0180239123A223B3232F +:104C70008093B3039093B403A093B503B093B603AA +:104C80001F910F910C9458210F931F930091B30320 +:104C90001091B4032091B5033091B603DC01CB0130 +:104CA00080279127A227B3278093B3039093B4035F +:104CB000A093B503B093B6031F910F910C945821A4 +:104CC0000895CF92DF92EF92FF920F931F93CF93AD +:104CD000DF938C01C090B703D090B803E090B90384 +:104CE000F090BA038091B3039091B403A091B503FF +:104CF000B091B603C82AD92AEA2AFB2ACFE1D0E02C +:104D0000D701C6010C2E04C0B695A7959795879537 +:104D10000A94D2F780FF06C0B8018C2F0E942F0A98 +:104D2000019721F4219760F780E001C08C2FDF917B +:104D3000CF911F910F91FF90EF90DF90CF9008954A +:104D4000CF93DF93EC010E946126BE010E942F0ADF +:104D5000DF91CF910895CB010E94A0260895209164 +:104D60001D0230911E02F90132969FEF40E05191F1 +:104D7000581789F09F3F19F4511101C0942F4F5FCC +:104D80004630A9F79F3F39F0F901E90FF11D97FD72 +:104D9000FA9582830895089520911D0230911E0294 +:104DA000F9013296285F3F4F9081981301C010821D +:104DB0003196E217F307C1F7089581E090E0E091A2 +:104DC0001D02F0911E02E80FF91F10820196883033 +:104DD0009105A9F708959091C603892B8093C60386 +:104DE000089580959091C60389238093C603089502 +:104DF0001092C60308959091C503892B8093C50333 +:104E0000089580959091C50389238093C5030895E3 +:104E10001092C50308959091C403892B8093C40315 +:104E2000089580959091C40389238093C4030895C5 +:104E30001092C40308958093BB0308951092BB039E +:104E4000089580911D0290911E02FC0131969C01F3 +:104E5000285F3F4F80E0919191118F5FE217F30738 +:104E6000D1F70895E0911D02F0911E028091C603D2 +:104E70008083E0911D02F0911E0290818091C50314 +:104E8000892B8083E0911D02F0911E029081809118 +:104E9000C403892B80838091BB03882361F0E09158 +:104EA0001D02F0911E029081892B80830E94212790 +:104EB00081111092BB0380911D0290911E020C94EF +:104EC0005B1B8091E803843039F11092C80320E421 +:104ED00088E190E00FB6F894A895809360000FBE2B +:104EE0002093600080E00E94D20580E00E940A0BBF +:104EF00083B7817F846083BF83B7816083BF7894E9 +:104F0000889583B78E7F83BF88E10FB6F89480932E +:104F10006000109260000FBE089508950895CF9329 +:104F200080E00E94D2050E948D270E94AD0C0E9455 +:104F30008E27C0E08C2F0E94E60D892B29F4CF5FCD +:104F4000C530C1F780E001C081E0CF9108950E9493 +:104F50006C2180E00E94D2050E94092D0E944F1B07 +:104F60000C940A0B1F920F920FB60F9211248F937D +:104F70009F93AF93BF938091C803811113C0809119 +:104F8000C9039091CA03A091CB03B091CC03419681 +:104F9000A11DB11D8093C9039093CA03A093CB03B5 +:104FA000B093CC03BF91AF919F918F910F900FBEA3 +:104FB0000F901F90189582E084BD93E095BD9AEF05 +:104FC00097BD80936E0008952FB7F8948091C90320 +:104FD0009091CA03A091CB03B091CC032FBF089549 +:104FE000CF92DF92EF92FF920F931F932FB7F89417 +:104FF0004091C9035091CA036091CB037091CC03D7 +:105000002FBF6A017B01EE24FF248C0120E030E0F9 +:10501000C016D106E206F30610F4415051099A0178 +:10502000281B390BC9011F910F91FF90EF90DF9062 +:10503000CF9008951F920F920FB60F9211248F9365 +:105040009F93AF93BF938091C9039091CA03A0919E +:10505000CB03B091CC030196A11DB11D8093C90370 +:105060009093CA03A093CB03B093CC03BF91AF91AD +:105070009F918F910F900FBE0F901F9018950E94D7 +:105080004C18F8942FEF87EA91E621508040904029 +:10509000E1F700C0000087E090EBDC018093F303B0 +:1050A0009093F403A093F503B093F6039CE088E19A +:1050B0000FB6F894A895809360000FBE909360009F +:1050C000FFCF0E949B28811102C00E9477280E9476 +:1050D000A6288093C7030E94B3288093F1030E94FF +:1050E000AA28682F70E080E090E00C9428256DEEEF +:1050F0007EEF80E090E00E94BC3160E082E090E0D2 +:105100000E94AA3160E083E090E00E94AA3160E052 +:1051100084E090E00E94AA3160E085E090E00E9487 +:10512000AA3160E086E090E00E94AA316FEF87E04C +:1051300090E00C94AA3180E090E00E94A43121E03C +:105140008D3E9E4F09F020E0822F089582E090E08E +:105150000C949C3183E090E00C949C31682F83E0A8 +:1051600090E00C94AA3184E090E00C949C31682F7C +:1051700084E090E00C94AA3186E090E00C949C319D +:10518000682F86E090E00C94AA3187E090E00C94C0 +:105190009C31682F87E090E00C94AA318091CF0376 +:1051A00080FF0BC06091220285E0689FB00111244E +:1051B00075956795759567952BC081FF09C06091BE +:1051C000220285E0689FB00111247595679520C083 +:1051D00082FF07C06091220285E0689FB001112420 +:1051E00017C09091D0039923D1F0609121029617B6 +:1051F00088F72091220285E0289F90011124929F38 +:10520000A001939F500D112470E0CA010E948231C9 +:105210006038710540F46115710539F002C065E030 +:1052200070E0862F08958FE7089581E008958091BA +:10523000CF0380FF08C06091200270E075956795EC +:105240007595679521C081FF06C06091200270E0CE +:105250007595679519C082FF04C06091200270E0C7 +:1052600010C09091D0039923C1F060911F0296174E +:10527000A0F780912002899FC001112470E00E9454 +:1052800082316038710528F46115710521F0862F8F +:1052900008958FE7089581E0089561E070E0F4CF0C +:1052A000803F21F40E94CE28819504C0813F29F4DB +:1052B0000E94CE288093D3030895823F21F40E9458 +:1052C000CE28819504C0833F29F40E94CE28809384 +:1052D000D2030895893F19F40E94172905C08A3F17 +:1052E00031F40E94172981958093D40308958B3F50 +:1052F00021F40E941729819504C08C3F29F40E9453 +:1053000017298093D5030895843F21F48091D10318 +:10531000816017C0853F21F48091D103826011C064 +:10532000863F21F48091D10384600BC0873F21F434 +:105330008091D103886005C0883F31F48091D1030A +:1053400080618093D10308958D3F21F48091CF0334 +:1053500081600BC08E3F21F48091CF03826005C035 +:105360008F3F29F48091CF0384608093CF03089509 +:10537000803F39F48091D30387FF6CC01092D30330 +:1053800069C0813F29F48091D3031816BCF362C031 +:105390009091D203823F29F497FF5CC01092D20310 +:1053A00059C0833F19F41916CCF354C0893F41F416 +:1053B0008091D40318160CF04DC01092D4034AC04B +:1053C0008A3F29F48091D40387FF44C0F6CF8B3FF6 +:1053D00039F48091D50387FF3DC01092D5033AC0C0 +:1053E0008C3F29F48091D5031816BCF333C0843F59 +:1053F00021F48091D1038E7F17C0853F21F48091E5 +:10540000D1038D7F11C0863F21F48091D1038B7F22 +:105410000BC0873F21F48091D103877F05C0883F6F +:1054200031F48091D1038F7E8093D10313C08D3FDF +:1054300021F48091CF038E7F0BC08E3F21F48091A9 +:10544000CF038D7F05C08F3F29F48091CF038B7FE1 +:105450008093CF038091D20381110EC08091D3033A +:1054600081110AC08091D403811106C08091D503B7 +:10547000811102C01092D003089581ED93E00E9443 +:10548000661B0E94E4279093CE038093CD0308957A +:105490001F93CF93DF938091CD039091CE030E9411 +:1054A000F027AC019091D003992321F020912302A1 +:1054B00030E006C0209124028AE0289F9001112448 +:1054C0004217530708F486C08091D203C091D303DA +:1054D000D091D4031091D503811107C0C11176C0BA +:1054E000D11174C0111172C075C09F3F19F09F5F38 +:1054F0009093D003181624F40E94CE288093D203F0 +:105500008091D20387FF05C00E94CE2881958093A9 +:10551000D2031C1624F40E94CE288093D3038091DA +:10552000D30387FF05C00E94CE2881958093D303C3 +:105530006091D203662339F1C091D303CC2319F1D2 +:10554000772767FD7095872F972F0E94A42E23E35E +:1055500033E343E35FE30E94B42F0E94712E609314 +:10556000D2036C2F772767FD7095872F972F0E94A6 +:10557000A42E23E333E343E35FE30E94B42F0E94AE +:10558000712E6093D3031D1624F40E941729809373 +:10559000D4038091D40387FF05C00E941729819509 +:1055A0008093D403111624F40E9417298093D50305 +:1055B0008091D50387FF05C00E94172981958093AC +:1055C000D503DF91CF911F910C943D2A9F3F09F0A5 +:1055D0008ECF96CFDF91CF911F910895E1EDF3E04B +:1055E00085E0DF011D928A95E9F71092D0031092B1 +:1055F000CF030895833081F128F4813059F082304F +:10560000D1F00895853009F449C0B8F1863009F425 +:1056100056C0089580912402262F30E0280F311DB6 +:105620002F3F310524F4680F6093240208958FEF13 +:1056300080932402089580912302262F30E0280FC2 +:10564000311D2F3F310524F4680F60932302089524 +:105650008FEF80932302089580912202262F30E05D +:10566000280F311D2F3F310524F4680F609322026B +:1056700008958FEF80932202089580912102262FB2 :1056800030E0280F311D2F3F310524F4680F60935F -:10569000220208958FEF80932202089580912102C3 +:10569000210208958FEF80932102089580912002C6 :1056A000262F30E0280F311D2F3F310524F4680FDD -:1056B0006093210208958FEF809321020895833033 -:1056C00011F128F4813049F0823091F0089585304D -:1056D00081F120F18630C1F108958091260268178A -:1056E00020F4861B809326020895109226020895C6 -:1056F00080912502681720F4861B80932502089567 -:1057000010922502089580912402681720F4861BC8 -:105710008093240208951092240208958091230218 -:10572000681720F4861B80932302089510922302A9 -:10573000089580912202681720F4861B809322022C -:10574000089510922202089580912102681720F492 -:10575000861B8093210208951092210208950F93D1 -:105760001F938732D8F58E3108F087C08E3009F448 -:1057700071C098F4873009F45BC08B3009F491C094 -:10578000863009F095C080917703817F8E7F80936A -:10579000770381E0809387038CC0863109F481C050 -:1057A00068F4803109F084C08091770383FB22275D -:1057B00020F991E0922790FB83F955C0893109F4D3 -:1057C00070C08B3109F074C08091770381FB222770 -:1057D00020F991E0922790FB81F945C0883309F4C4 -:1057E00060C050F4893209F45EC0853309F45BC0AF -:1057F000873209F458C05CC0833409F454C028F4DB -:105800008A3308F455C0895339C0883409F050C030 -:105810000E945B210E94D6070FEF13ED20E3015099 -:1058200010402040E1F700C000000E942E2839C03F -:1058300090917703892F8095817080FB90F929F0F2 -:10584000966098609093770334C0997F977F909388 -:10585000770327C08091770382FB222720F991E00C -:10586000922790FB82F9809377039923D1F080915E -:10587000770381608093770314C08D5141E050E03D -:1058800060E070E08A019B0104C0000F111F221F1D -:10589000331F8A95D2F7C901B8010E9417250E94CB -:1058A0005B2181E006C061E070E080E090E0F5CF30 -:1058B00080E01F910F91089580E0089580E00895A1 -:1058C000CF93C82F80918703813069F018F0823020 -:1058D000C9F184C0E0911F02F091200280818232E0 -:1058E00009F07EC007C0E0911F02F0912002808184 -:1058F000823261F48C2F0E945C2C811104C08C2FA9 -:105900000E94AF2B1DC081E090E01AC08C2F0E9436 -:105910005E2C811114C0C43179F048F4CB3079F099 -:10592000C03109F061C082E08093870308C0C932AA -:1059300019F0C83321F058C01092870355C081E098 -:10594000817054C0C93291F120F5C43179F1B0F4BD -:10595000C73009F047C08EE18093260282E380932E -:1059600025028AE08093240284E18093230288E068 -:105970008093220288E28093210234C0CE51C63047 -:1059800088F5EC2FF0E0E256FD4F8081809386038E -:1059900029C0CE34E9F020F4CB3421F56AE013C0FD -:1059A000C13579F0C235F1F461E00DC08091860314 -:1059B000882319F01092860315C081E08093870335 -:1059C00015C061E006C0809186030E94E92A0AC0E2 -:1059D0006AE0809186030E945F2B04C010928703C7 -:1059E00080E004C081E002C080E0AACFCF9108959A -:1059F0000E948A28811102C00E9466280E94AB285A -:105A00008093A20380FF02C0869501C080E00C94C1 -:105A1000F6058091A203982F9695292F30E0233028 -:105A200031054CF49F5F990F8170892B81608093C1 -:105A3000A2030E94AF288091A20386950C94F605DC -:105A40008091A203982F969591F09158990F8170AB -:105A5000892B8093A2038E7F91E009F490E08091DE -:105A6000A20390FB80F98093A2030E94AF2880914B -:105A7000A20386950C94F6058091A203982F909529 -:105A800090FB80F98093A2030E94AF288091A2032B -:105A900080FF02C0869501C080E00C94F6059091CD -:105AA000A203892F86958F5F8F779170843028F4B9 -:105AB000880F892B8093A20302C09093A203809148 -:105AC000A2038E7F91E009F490E08091A20390FB05 -:105AD00080F98093A2030E94AF288091A20386954B -:105AE0000C94F6052091A203922F96958927982F62 -:105AF000990F822F8170892B8093A2038E7F91E072 -:105B000009F490E08091A20390FB80F98093A203B6 -:105B10000E94AF288091A20386950C94F6055058F8 -:105B2000BB27AA270ED075C166D130F06BD120F00B -:105B300031F49F3F11F41EF45BC10EF4E095E7FBD6 -:105B400051C1E92F77D180F3BA1762077307840731 -:105B5000950718F071F49EF58FC10EF4E0950B2EA9 -:105B6000BA2FA02D0B01B90190010C01CA01A001AF -:105B70001124FF27591B99F0593F50F4503E68F10A -:105B80001A16F040A22F232F342F4427585FF3CF4B -:105B9000469537952795A795F0405395C9F77EF41C -:105BA0001F16BA0B620B730B840BBAF09150A1F065 -:105BB000FF0FBB1F661F771F881FC2F70EC0BA0FEB -:105BC000621F731F841F48F4879577956795B79573 -:105BD000F7959E3F08F0B3CF9395880F08F099276B -:105BE000EE0F979587950895D9D008F481E0089530 -:105BF0000CD00FC107D140F0FED030F021F45F3F50 -:105C000019F0F0C0511139C1F3C014D198F39923A0 -:105C1000C9F35523B1F3951B550BBB27AA27621770 -:105C20007307840738F09F5F5F4F220F331F441FB5 -:105C3000AA1FA9F333D00E2E3AF0E0E830D09150ED -:105C40005040E695001CCAF729D0FE2F27D0660FDA -:105C5000771F881FBB1F261737074807AB07B0E819 -:105C600009F0BB0B802DBF01FF2793585F4F2AF02F -:105C70009E3F510568F0B6C000C15F3FECF3983E0F -:105C8000DCF3869577956795B795F7959F5FC9F78C -:105C9000880F911D9695879597F90895E1E0660F15 -:105CA000771F881FBB1F621773078407BA0720F08E -:105CB000621B730B840BBA0BEE1F88F7E0950895F7 -:105CC00004D06894B111D9C00895BCD088F09F5712 -:105CD00090F0B92F9927B751A0F0D1F0660F771F38 -:105CE000881F991F1AF0BA95C9F712C0B13081F018 -:105CF000C3D0B1E00895C0C0672F782F8827B85F60 -:105D000039F0B93FCCF3869577956795B395D9F778 -:105D10003EF490958095709561957F4F8F4F9F4F82 -:105D20000895E89409C097FB3EF49095809570958E -:105D300061957F4F8F4F9F4F9923A9F0F92F96E9D7 -:105D4000BB279395F695879577956795B795F1114C -:105D5000F8CFFAF4BB0F11F460FF1BC06F5F7F4FE9 -:105D60008F4F9F4F16C0882311F096E911C07723FB -:105D700021F09EE8872F762F05C0662371F096E804 -:105D8000862F70E060E02AF09A95660F771F881FD3 -:105D9000DAF7880F9695879597F90895990F000877 -:105DA000550FAA0BE0E8FEEF16161706E807F907ED -:105DB000C0F012161306E407F50798F0621B730B88 -:105DC000840B950B39F40A2661F0232B242B252B09 -:105DD00021F408950A2609F4A140A6958FEF811DAC -:105DE000811D089597F99F6780E870E060E008954D -:105DF0009FEF80EC089500240A94161617061806E3 -:105E00000906089500240A941216130614060506BE -:105E10000895092E0394000C11F4882352F0BB0F4F -:105E200040F4BF2B11F460FF04C06F5F7F4F8F4FB2 -:105E30009F4F089557FD9058440F551F59F05F3FED -:105E400071F04795880F97FB991F61F09F3F79F09C -:105E500087950895121613061406551FF2CF46951E -:105E6000F1DF08C0161617061806991FF1CF8695A0 -:105E70007105610508940895E894BB276627772784 -:105E8000CB0197F908958ADF08F48FEF08950BD0BE -:105E9000C0CFB1DF28F0B6DF18F0952309F0A2CF0C -:105EA000A7CF1124EACFC6DFA0F3959FD1F3950FBA -:105EB00050E0551F629FF001729FBB27F00DB11D8E -:105EC000639FAA27F00DB11DAA1F649F6627B00D1E -:105ED000A11D661F829F2227B00DA11D621F739F07 -:105EE000B00DA11D621F839FA00D611D221F749F15 -:105EF0003327A00D611D231F849F600D211D822F5C -:105F0000762F6A2F11249F5750408AF0E1F08823A2 -:105F10004AF0EE0FFF1FBB1F661F771F881F9150AF -:105F20005040A9F79E3F510570F05CCFA6CF5F3F70 -:105F3000ECF3983EDCF3869577956795B795F795E2 -:105F4000E7959F5FC1F7FE2B880F911D969587956A -:105F500097F90895FA01EE0FFF1F309621053105DC -:105F600099F16115710561F48038BFE39B0749F130 -:105F700068949038810561F08038BFEF9B0741F04D -:105F8000992342F5FF3FE1053105210511F1E89420 -:105F90000894E795D901AA2329F4AB2FBE2FF85F07 -:105FA000D0F310C0FF5F70F4A695E0F7F73950F01A -:105FB00019F0FF3A38F49F779F930CD00F9007FCAD -:105FC000905808953EF014CF60E070E080E89FE3C1 -:105FD00008954FE79F775F934F933F932F939ED002 -:105FE0002F913F914F915F9152DF05C019F40EF050 -:105FF000F9CE42CFFDCE26DFC8F39638C0F707F8BA -:106000000F92E8942BE33AEA48EB5FE74EDF0F92FA -:106010000F920F924DB75EB70F92C0D0E0E4F1E05F -:1060200016D04F915F91EF91FF91E595EE1FFF1F05 -:1060300049F0FE57E0684427EE0F441FFA95E1F758 -:106040004195550B32D00F9007FE26C00895DF937F -:10605000CF931F930F93FF92EF92DF927B018C01FE -:10606000689405C0DA2EEF011EDFFE01E894A591C9 -:106070002591359145915591AEF3EF0162DDFE0119 -:106080009701A801DA9479F7DF90EF90FF900F91D4 -:106090001F91CF91DF9108959B01AC0160E070E00A -:1060A00080E89FE3A5CD9ECEACC0CCDEE8F399237B -:1060B000D9F3940F511DBBF39150504094F059F017 -:1060C000882332F0660F771F881F91505040C1F728 -:1060D0009E3F510544F7880F911D9695879597F936 -:1060E00008955F3FACF0983E9CF0BB27869577956E -:1060F0006795B79508F4B1609395C1F7BB0F58F752 -:1061000011F460FFE8CF6F5F7F4F8F4F9F4FE3CF5A -:10611000B4CE0EF076C06CCE689464CE93DEC8F335 -:106120009923D1F3C6F3DF93CF931F930F93FF927D -:10613000C92FDD2788232AF02197660F771F881F34 -:10614000DAF720E030E040E85FEB9FE3883920F0A9 -:10615000803E30F021968F77E3DCE8E6F1E003C083 -:10616000DFDCE5E9F1E073DF8B01BE01EC01FB2E22 -:106170006F5771097595771F880B990BD4DD28E14E -:1061800032E741E35FE38FDEAF2D9801AE01FF9070 -:106190000F911F91CF91DF91D4DC3BCEFA01DC014E -:1061A000AA0FBB1F9B01AC01BF5728F4222733273E -:1061B000442750781FC0B75188F4AB2F0024469570 -:1061C00037952795011CA395D2F3002069F0220F83 -:1061D000331F441FB395DAF30DD0A1CC61307105A4 -:1061E000A0E88A07B94630F49B01AC0166277727FF -:1061F00088279078309621F020833183428353831F -:1062000008959F3F31F0915020F4879577956795D9 -:10621000B795880F911D9695879597F90895AA1BB4 -:10622000BB1B51E107C0AA1FBB1FA617B70710F081 -:10623000A61BB70B881F991F5A95A9F780959095B3 -:10624000BC01CD01089597FB072E16F4009407D0EA -:1062500077FD09D00E940F3107FC05D03EF49095E0 -:1062600081959F4F0895709561957F4F0895EE0F2A -:10627000FF1F0590F491E02D0994F999FECF92BD8E -:1062800081BDF89A992780B50895A8E1B0E042E071 -:1062900050E00C946531262FF999FECF92BD81BD57 -:1062A000F89A019700B4021639F01FBA20BD0FB654 -:1062B000F894FA9AF99A0FBE08950196272F0E9432 -:1062C0004C310C944B31DC01CB01FC01F999FECF30 -:1062D00006C0F2BDE1BDF89A319600B40D9241506E -:0A62E0005040B8F70895F894FFCF7E -:1062EA0007000C52D02445000000410000DC4400A5 -:1062FA0000004152D0A4440000404100005C440028 -:10630A0000004148F17644000000415C978A44004D -:10631A000000411FD592440000004152D0A444001D -:10632A000000415CFFB844000000410AA7CF4400C6 -:10633A000000410000DC44000000410AA7CF4400ED -:10634A000000410000DC44000000410000000000A1 -:10635A0000804052D0244500004041000000000067 -:10636A000080400AA74F45000040410AA7CF4400D9 -:10637A000000410000DC4400000041000000000071 -:10638A0000804052D0244500000041000000000077 -:10639A000080405CFF38450000004100000000001A -:1063AA0000804052D02445000000410AA7CF440093 -:1063BA000000410000DC4400000041000000000031 -:1063CA0000804052D024450000804110F1764400FC -:1063DA0000A04112F1F6440000004141909B4400A4 -:1063EA0000A04112F1F64400000041050000003F00 -:1063FA000000C8426A14F814D514A1146D14016C73 -:10640A00032808140A321E000002000400050007CF -:10641A000009000B000C000E0010001100130015FB -:10642A0000170018001A001C001D001F002100237D -:10643A000024002600280029002B002D002F003000 -:10644A0000320034003500370039003B0042004575 -:10645A000025002600430061006000200037006428 -:10646A000065006600670044004600240047003FBC -:10647A004D36010BB40A7E0A2A0A430A5C0A010253 -:08648A000304050607080900E0 +:1056B0006093200208958FEF8093200208958091D7 +:1056C0001F02262F30E0280F311D2F3F310524F413 +:1056D000680F60931F0208958FEF80931F02089553 +:1056E000833011F128F4813049F0823091F008952F +:1056F000853081F120F18630C1F108958091240236 +:10570000681720F4861B80932402089510922402C7 +:10571000089580912302681720F4861B809323024A +:10572000089510922302089580912202681720F4B0 +:10573000861B809322020895109222020895809180 +:105740002102681720F4861B80932102089510928D +:105750002102089580912002681720F4861B80930F +:105760002002089510922002089580911F02681768 +:1057700020F4861B80931F02089510921F02089543 +:105780000F931F938732D8F58E3108F087C08E3083 +:1057900009F471C098F4873009F45BC08B3009F4C8 +:1057A00091C0863009F095C08091C703817F8E7FBC +:1057B0008093C70381E08093D7038CC0863109F4BE +:1057C00081C068F4803109F084C08091C70383FBF5 +:1057D000222720F991E0922790FB83F955C0893167 +:1057E00009F470C08B3109F074C08091C70381FB4C +:1057F000222720F991E0922790FB81F945C0883358 +:1058000009F460C050F4893209F45EC0853309F4AC +:105810005BC0873209F458C05CC0833409F454C0BB +:1058200028F48A3308F455C0895339C0883409F004 +:1058300050C00E946C210E94B2070FEF13ED20E3CD +:10584000015010402040E1F700C000000E943F28B6 +:1058500039C09091C703892F8095817080FB90F9A2 +:1058600029F0966098609093C70334C0997F977F22 +:105870009093C70327C08091C70382FB222720F99A +:1058800091E0922790FB82F98093C7039923D1F08E +:105890008091C70381608093C70314C08D5141E09C +:1058A00050E060E070E08A019B0104C0000F111F0E +:1058B000221F331F8A95D2F7C901B8010E942825FB +:1058C0000E946C2181E006C061E070E080E090E021 +:1058D000F5CF80E01F910F91089580E0089580E05A +:1058E0000895CF93C82F8091D703813069F018F0C5 +:1058F0008230C9F184C0E0911D02F0911E028081C6 +:10590000823209F07EC007C0E0911D02F0911E02B4 +:105910008081823261F48C2F0E946D2C811104C031 +:105920008C2F0E94C02B1DC081E090E01AC08C2FEC +:105930000E946F2C811114C0C43179F048F4CB302F +:1059400079F0C03109F061C082E08093D70308C0CC +:10595000C93219F0C83321F058C01092D70355C08E +:1059600081E0817054C0C93291F120F5C43179F1E0 +:10597000B0F4C73009F047C08EE18093240282E37F +:10598000809323028AE08093220284E180932102A3 +:1059900088E08093200288E280931F0234C0CE51B9 +:1059A000C63088F5EC2FF0E0E451FD4F8081809304 +:1059B000D60329C0CE34E9F020F4CB3421F56AE0D7 +:1059C00013C0C13579F0C235F1F461E00DC08091AA +:1059D000D603882319F01092D60315C081E0809376 +:1059E000D70315C061E006C08091D6030E94FA2A51 +:1059F0000AC06AE08091D6030E94702B04C0109206 +:105A0000D70380E004C081E002C080E0AACFCF913C +:105A100008950E949B28811102C00E9477280E944D +:105A2000BC288093F20380FF02C0869501C080E00D +:105A30000C94D2058091F203982F9695292F30E08F +:105A4000233031054CF49F5F990F8170892B816061 +:105A50008093F2030E94C0288091F20386950C94F3 +:105A6000D2058091F203982F969591F09158990F55 +:105A70008170892B8093F2038E7F91E009F490E08E +:105A80008091F20390FB80F98093F2030E94C0287A +:105A90008091F20386950C94D2058091F203982FA1 +:105AA000909590FB80F98093F2030E94C02880912A +:105AB000F20380FF02C0869501C080E00C94D205FD +:105AC0009091F203892F86958F5F8F779170843044 +:105AD00028F4880F892B8093F20302C09093F2037D +:105AE0008091F2038E7F91E009F490E08091F203BF +:105AF00090FB80F98093F2030E94C0288091F2030A +:105B000086950C94D2052091F203922F96958927C1 +:105B1000982F990F822F8170892B8093F2038E7FAB +:105B200091E009F490E08091F20390FB80F980937A +:105B3000F2030E94C0288091F20386950C94D2054E +:105B40005058BB27AA270ED0D1C1C2D130F0C7D13F +:105B500020F031F49F3F11F41EF4B7C10EF4E0952C +:105B6000E7FB9FC1E92FD3D180F3BA176207730710 +:105B70008407950718F071F49EF5EBC10EF4E095DB +:105B80000B2EBA2FA02D0B01B90190010C01CA01F7 +:105B9000A0011124FF27591B99F0593F50F4503EA2 +:105BA00068F11A16F040A22F232F342F4427585F94 +:105BB000F3CF469537952795A795F0405395C9F7AC +:105BC0007EF41F16BA0B620B730B840BBAF0915064 +:105BD000A1F0FF0FBB1F661F771F881FC2F70EC003 +:105BE000BA0F621F731F841F48F4879577956795D6 +:105BF000B795F7959E3F08F0B3CF9395880F08F0BF +:105C00009927EE0F97958795089527D108F481E09D +:105C100008950CD06BC163D140F05AD130F021F41B +:105C20005F3F19F03EC1511195C14FC170D198F33A +:105C30009923C9F35523B1F3951B550BBB27AA270D +:105C400062177307840738F09F5F5F4F220F331F7F +:105C5000441FAA1FA9F333D00E2E3AF0E0E830D04B +:105C600091505040E695001CCAF729D0FE2F27D04E +:105C7000660F771F881FBB1F261737074807AB071C +:105C8000B0E809F0BB0B802DBF01FF2793585F4F91 +:105C90002AF09E3F510568F004C15CC15F3FECF300 +:105CA000983EDCF3869577956795B795F7959F5F56 +:105CB000C9F7880F911D9695879597F90895E1E0AA +:105CC000660F771F881FBB1F621773078407BA0709 +:105CD00020F0621B730B840BBA0BEE1F88F7E09564 +:105CE000089504D06894B11135C1089518D188F091 +:105CF0009F5790F0B92F9927B751A0F0D1F0660FB8 +:105D0000771F881F991F1AF0BA95C9F712C0B130D2 +:105D100081F01FD1B1E008951CC1672F782F88272B +:105D2000B85F39F0B93FCCF3869577956795B39511 +:105D3000D9F73EF490958095709561957F4F8F4F80 +:105D40009F4F0895E89409C097FB3EF49095809585 +:105D5000709561957F4F8F4F9F4F9923A9F0F92F31 +:105D600096E9BB279395F695879577956795B795AF +:105D7000F111F8CFFAF4BB0F11F460FF1BC06F5F95 +:105D80007F4F8F4F9F4F16C0882311F096E911C0A7 +:105D9000772321F09EE8872F762F05C0662371F0C8 +:105DA00096E8862F70E060E02AF09A95660F771FDC +:105DB000881FDAF7880F9695879597F9089588D008 +:105DC00018F011F08CD038F480C0C4C0E92F9FD0F7 +:105DD000B0F35523C9F3E7FB6217730784079507F0 +:105DE000A8F199F3E92FFF2788232AF03197660F4E +:105DF000771F881FDAF7952F5527442332F09150EB +:105E00005040220F331F441FD2F7BB27E91BF50B6D +:105E1000621B730B840BB109C1F222F4620F731F72 +:105E2000841FB11D31972AF0660F771F881FBB1F93 +:105E3000EFCF915050405AF041F0882332F0660F76 +:105E4000771F881F91505040C1F7939530C08695B9 +:105E5000779567959F5FD9F7F8CF990F0008550F91 +:105E6000AA0BE0E8FEEF16161706E807F907C0F0E0 +:105E700012161306E407F50798F0621B730B840BE8 +:105E8000950B39F40A2661F0232B242B252B21F4C2 +:105E900008950A2609F4A140A6958FEF811D811D62 +:105EA000089597F99F6780E870E060E008959F3F4C +:105EB00031F0915020F4879577956795B795880FC5 +:105EC000911D9695879597F908959FEF80EC089519 +:105ED00000240A94161617061806090608950024C9 +:105EE0000A9412161306140605060895092E039443 +:105EF000000C11F4882352F0BB0F40F4BF2B11F4B7 +:105F000060FF04C06F5F7F4F8F4F9F4F089557FD15 +:105F10009058440F551F59F05F3F71F04795880F17 +:105F200097FB991F61F09F3F79F0879508951216AE +:105F300013061406551FF2CF4695F1DF08C016165A +:105F400017061806991FF1CF86957105610508940B +:105F50000895E894BB2766277727CB0197F9089522 +:105F60007CDF08F48FEF08950BD0C0CFB1DF28F0AD +:105F7000B6DF18F0952309F094CFA7CF1124EACF0C +:105F8000C6DFA0F3959FD1F3950F50E0551F629F98 +:105F9000F001729FBB27F00DB11D639FAA27F00D82 +:105FA000B11DAA1F649F6627B00DA11D661F829FA9 +:105FB0002227B00DA11D621F739FB00DA11D621F8E +:105FC000839FA00D611D221F749F3327A00D611DAB +:105FD000231F849F600D211D822F762F6A2F11248D +:105FE0009F5750408AF0E1F088234AF0EE0FFF1FE0 +:105FF000BB1F661F771F881F91505040A9F79E3F17 +:10600000510570F04ECFA6CF5F3FECF3983EDCF326 +:10601000869577956795B795F795E7959F5FC1F753 +:10602000FE2B880F911D9695879597F90895FA0193 +:10603000EE0FFF1F30962105310599F161157105AD +:1060400061F48038BFE39B0749F16894903881057B +:1060500061F08038BFEF9B0741F0992342F5FF3F85 +:10606000E1053105210511F1E8940894E795D9017E +:10607000AA2329F4AB2FBE2FF85FD0F310C0FF5F27 +:1060800070F4A695E0F7F73950F019F0FF3A38F4BC +:106090009F779F930CD00F9007FC905808953EF087 +:1060A00014CF60E070E080E89FE308954FE79F77AA +:1060B0005F934F933F932F939ED02F913F914F919A +:1060C0005F9152DF05C019F40EF0EBCE42CFFDCE4A +:1060D00026DFC8F39638C0F707F80F92E8942BE351 +:1060E0003AEA48EB5FE74EDF0F920F920F924DB7FF +:1060F0005EB70F92C0D0E8EFF0E016D04F915F91FD +:10610000EF91FF91E595EE1FFF1F49F0FE57E06804 +:106110004427EE0F441FFA95E1F74195550B32D015 +:106120000F9007FE26C00895DF93CF931F930F9320 +:10613000FF92EF92DF927B018C01689405C0DA2E0A +:10614000EF011EDFFE01E894A5912591359145915F +:106150005591AEF3EF0106DDFE019701A801DA9437 +:1061600079F7DF90EF90FF900F911F91CF91DF9122 +:1061700008959B01AC0160E070E080E89FE349CDA9 +:1061800090CE95CECCDEE8F39923D9F3940F511D30 +:10619000BBF39150504094F059F0882332F0660FD1 +:1061A000771F881F91505040C1F79E3F510544F71B +:1061B000880F911D9695879597F908955F3FACF0EC +:1061C000983E9CF0BB27869577956795B79508F420 +:1061D000B1609395C1F7BB0F58F711F460FFE8CF9A +:1061E0006F5F7F4F8F4F9F4FE3CFB4CE0EF05FCEE8 +:1061F0006CCE689456CE93DEC8F39923D1F3C6F3E0 +:10620000DF93CF931F930F93FF92C92FDD2788232E +:106210002AF02197660F771F881FDAF720E030E019 +:1062200040E85FEB9FE3883920F0803E30F0219614 +:106230008F7787DCE0E2F1E003C083DCEDE4F1E09E +:1062400073DF8B01BE01EC01FB2E6F577109759551 +:10625000771F880B990B78DD28E132E741E35FE394 +:106260008FDEAF2D9801AE01FF900F911F91CF915E +:10627000DF9178DC3BCEFA01DC01AA0FBB1F9B014A +:10628000AC01BF5728F422273327442750781FC07A +:10629000B75188F4AB2F0024469537952795011CFC +:1062A000A395D2F3002069F0220F331F441FB3954A +:1062B000DAF30DD045CC61307105A0E88A07B94604 +:1062C00030F49B01AC0166277727882790783096B9 +:1062D00021F020833183428353830895AA1BBB1B83 +:1062E00051E107C0AA1FBB1FA617B70710F0A61BD6 +:1062F000B70B881F991F5A95A9F780959095BC01F7 +:10630000CD01089597FB072E16F4009407D077FD72 +:1063100009D00E946E3107FC05D03EF4909581951E +:106320009F4F0895709561957F4F0895EE0FFF1F61 +:106330000590F491E02D0994F999FECF92BD81BDAD +:10634000F89A992780B50895A8E1B0E042E050E0BE +:106350000C94C431262FF999FECF92BD81BDF89AD5 +:10636000019700B4021639F01FBA20BD0FB6F89499 +:10637000FA9AF99A0FBE08950196272F0E94AB3121 +:106380000C94AA31DC01CB01FC01F999FECF06C0C7 +:10639000F2BDE1BDF89A319600B40D9241505040E3 +:0863A000B8F70895F894FFCF4F +:1063A8000C52D02445000000410000DC44000000ED +:1063B8004152D0A4440000404100005C4400000069 +:1063C8004148F17644000000415C978A440000008F +:1063D800411FD592440000004152D0A4440000005F +:1063E800415CFFB844000000410AA7CF4400000008 +:1063F800410000DC44000000410AA7CF440000002F +:10640800410000DC44000000410000000000008062 +:106418004052D024450000404100000000000080A8 +:10642800400AA74F45000040410AA7CF440000009A +:10643800410000DC44000000410000000000008032 +:106448004052D024450000004100000000000080B8 +:10645800405CFF384500000041000000000000805B +:106468004052D02445000000410AA7CF4400000054 +:10647800410000DC440000004100000000000080F2 +:106488004052D024450000804110F176440000A01D +:106498004112F1F6440000004141909B440000A0E5 +:1064A8004112F1F64400000041050000003F0000E1 +:1064B800C8427B140915E614B2147E1401BC0328E3 +:1064C80008140A321E000002000400050007000933 +:1064D800000B000C000E001000110013001500172F +:1064E8000018001A001C001D001F002100230024B2 +:1064F800002600280029002B002D002F0030003234 +:106508000034003500370039003B004200450025C3 +:106518000026004300610060002000370064006529 +:1065280000660067004400460024004700314980A7 +:106538003F5D8B803FF8BF803FCAE1803F73ED80AD +:106548003FCAE1803FF8BF803F5D8B803F31498083 +:106558003F0000803FF16D7F3F75EA7E3F4C827EB1 +:106568003F833F7E3F84287E3F833F7E3F4C827E31 +:106578003F75EA7E3FF16D7F3F0000803F3F4D361B +:10658800B90A6C0A360AE209FB09140A0102030473 +:06659800050607080900DA :00000001FF diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c index 0921bd593..d2316ba1b 100644 --- a/quantum/audio/voices.c +++ b/quantum/audio/voices.c @@ -54,28 +54,28 @@ float voice_envelope(float frequency) { } break; - case octave_crunch: - polyphony_rate = 0; - switch (compensated_index) { - case 0 ... 9: - case 20 ... 24: - case 30 ... 32: - frequency = frequency / 2; - note_timbre = TIMBRE_12; - break; - - case 10 ... 19: - case 25 ... 29: - case 33 ... 35: - frequency = frequency * 2; - note_timbre = TIMBRE_12; - break; + // case octave_crunch: + // polyphony_rate = 0; + // switch (compensated_index) { + // case 0 ... 9: + // case 20 ... 24: + // case 30 ... 32: + // frequency = frequency / 2; + // note_timbre = TIMBRE_12; + // break; + + // case 10 ... 19: + // case 25 ... 29: + // case 33 ... 35: + // frequency = frequency * 2; + // note_timbre = TIMBRE_12; + // break; - default: - note_timbre = TIMBRE_12; - break; - } - break; + // default: + // note_timbre = TIMBRE_12; + // break; + // } + // break; case duty_osc: // This slows the loop down a substantial amount, so higher notes may freeze -- cgit v1.2.3-70-g09d2 From 9ab7098c834ffe601ad5c39759acfddabbd6373f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 29 Apr 2016 21:21:08 -0400 Subject: fixes plover start sound --- keyboard/planck/keymaps/default/keymap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index e7a9ea9e4..ac4937b69 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -319,15 +319,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 12: if (record->event.pressed) { #ifdef AUDIO_ENABLE + stop_all_notes(); PLAY_NOTE_ARRAY(tone_plover, false, 0); #endif layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); layer_off(_MUSIC); - #ifdef AUDIO_ENABLE - stop_all_notes(); - #endif layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.3-70-g09d2 From 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 29 Apr 2016 22:19:40 -0400 Subject: moves backlight functionality to keyboard files and updates template makefile previously there were two backlight.c files (bad) --- keyboard/atomic/Makefile | 4 --- keyboard/atomic/atomic.c | 61 ++++++++++++++++++++++++++++++++++++++++++ keyboard/atomic/atomic.h | 5 +++- keyboard/atomic/backlight.c | 63 -------------------------------------------- keyboard/planck/Makefile | 4 --- keyboard/planck/backlight.c | 61 ------------------------------------------ keyboard/planck/planck.c | 61 ++++++++++++++++++++++++++++++++++++++++++ keyboard/planck/planck.h | 1 + keyboard/preonic/Makefile | 5 ---- keyboard/preonic/backlight.c | 61 ------------------------------------------ keyboard/preonic/preonic.c | 63 +++++++++++++++++++++++++++++++++++++++++++- keyboard/preonic/preonic.h | 1 + quantum/template/Makefile | 46 ++++++++++++++++++++++---------- quantum/template/template.c | 61 ++++++++++++++++++++++++++++++++++++++++++ quantum/template/template.h | 5 +++- 15 files changed, 287 insertions(+), 215 deletions(-) delete mode 100644 keyboard/atomic/backlight.c delete mode 100644 keyboard/planck/backlight.c delete mode 100644 keyboard/preonic/backlight.c (limited to 'keyboard/planck') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 1d91c34b7..c1a0a6db4 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -171,10 +171,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/atomic/atomic.c b/keyboard/atomic/atomic.c index 5e31264e6..399649716 100644 --- a/keyboard/atomic/atomic.c +++ b/keyboard/atomic/atomic.c @@ -57,3 +57,64 @@ void led_set_kb(uint8_t usb_led) { led_set_user(usb_led); } + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif \ No newline at end of file diff --git a/keyboard/atomic/atomic.h b/keyboard/atomic/atomic.h index d5461e424..0c7aeb1cc 100644 --- a/keyboard/atomic/atomic.h +++ b/keyboard/atomic/atomic.h @@ -3,8 +3,11 @@ #include "matrix.h" #include "keymap_common.h" -#include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif #include +#include // This a shortcut to help you visually see your layout. // The following is an example using the Planck MIT layout diff --git a/keyboard/atomic/backlight.c b/keyboard/atomic/backlight.c deleted file mode 100644 index 647b57e71..000000000 --- a/keyboard/atomic/backlight.c +++ /dev/null @@ -1,63 +0,0 @@ - -#include -#include "backlight.h" -#include "atomic.h" - - -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} \ No newline at end of file diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 01d9e3ce9..c0c6201cb 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -171,10 +171,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/backlight.c b/keyboard/planck/backlight.c deleted file mode 100644 index f69364b2a..000000000 --- a/keyboard/planck/backlight.c +++ /dev/null @@ -1,61 +0,0 @@ - -#include -#include "backlight.h" - -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} \ No newline at end of file diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 4b39cf1e8..655850150 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -32,3 +32,64 @@ void matrix_scan_kb(void) { void process_action_kb(keyrecord_t *record) { process_action_user(record); } + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif \ No newline at end of file diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index edcb5fbff..c5b59d999 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -10,6 +10,7 @@ #include "rgblight.h" #endif #include +#include #ifdef MIDI_ENABLE #include #endif diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 3504e2720..259dd6686 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -162,11 +162,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/preonic/backlight.c b/keyboard/preonic/backlight.c deleted file mode 100644 index f69364b2a..000000000 --- a/keyboard/preonic/backlight.c +++ /dev/null @@ -1,61 +0,0 @@ - -#include -#include "backlight.h" - -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} \ No newline at end of file diff --git a/keyboard/preonic/preonic.c b/keyboard/preonic/preonic.c index f639f247a..211f8d029 100644 --- a/keyboard/preonic/preonic.c +++ b/keyboard/preonic/preonic.c @@ -38,4 +38,65 @@ void matrix_scan_kb(void) { void process_action_kb(keyrecord_t *record) { process_action_user(record); -} \ No newline at end of file +} + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif \ No newline at end of file diff --git a/keyboard/preonic/preonic.h b/keyboard/preonic/preonic.h index 51ed9ba39..030acdadb 100644 --- a/keyboard/preonic/preonic.h +++ b/keyboard/preonic/preonic.h @@ -10,6 +10,7 @@ #include "rgblight.h" #endif #include +#include #ifdef MIDI_ENABLE #include #endif diff --git a/quantum/template/Makefile b/quantum/template/Makefile index 4fa195468..1a535ef2c 100644 --- a/quantum/template/Makefile +++ b/quantum/template/Makefile @@ -111,23 +111,41 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 # 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 -KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key +# change yes to no to disable +# +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 +KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -#NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/quantum/template/template.c b/quantum/template/template.c index cc52e496f..6050a2d20 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -46,3 +46,64 @@ void led_set_kb(uint8_t usb_led) { led_set_user(usb_led); } + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif \ No newline at end of file diff --git a/quantum/template/template.h b/quantum/template/template.h index b1c34d3cb..22742105a 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -3,7 +3,10 @@ #include "matrix.h" #include "keymap_common.h" -#include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#include #include // This a shortcut to help you visually see your layout. -- cgit v1.2.3-70-g09d2