From 13081356551dddf962778f81bc7b182285699438 Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Wed, 27 Jan 2016 19:47:42 +0100 Subject: Added a German layout inspired by the Kinesis Ergo Elan and based on the "german" keymap. --- .../ergodox_ez/keymaps/german-kinergo/keymap.c | 208 +++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c new file mode 100644 index 0000000000..f100d85f4b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c @@ -0,0 +1,208 @@ +// German keymap derived from "german", but more closely resembling the German layout of the Kinesis Ergo Elan. +// +// chschmitz, 2016-01-27 +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_german.h" + +// Layer names +#define BASE 0 // default layer +#define SYMB 1 // symbol layer +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| | Next | 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |X Tab X| Q | W | E | R | T | L1 | | L2 | Z | U | I | O | P | Ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Y | X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |#LGui#|# ^ #|X < X|XLEFTX|XRIGHT| |X UP X|#Down#|# # #|# + #| ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |XCTRLX|XALTX | | Alt |Ctrl/Esc| + * ,------+------+------| |------+--------+------. + * |XXX |XXX | Home | | PgUp |XXX |XXX | + * | Bkspc|Del |------| |------| Enter | Space| + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DE_ACUT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + KC_LGUI, KC_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_BSPC,KC_DELT,KC_END, + // right hand + KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT, + KC_UP, KC_DOWN, DE_HASH, DE_PLUS, KC_FN1, + KC_LALT,CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +// [BASE] = KEYMAP( // layer 0 : default +// // left hand +// KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, +// KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), +// KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, +// KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), +// LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS, +// ALT_T(KC_APP), KC_LGUI, +// KC_HOME, +// KC_SPC,KC_BSPC,KC_END, +// // right hand +// KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, +// KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), +// MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT, +// KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_FN1, +// KC_LALT,CTL_T(KC_ESC), +// KC_PGUP, +// KC_PGDN,KC_TAB, KC_ENT +// ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV, + KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, DE_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS, + KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Back |Forwd | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, + KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11, + KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12, + KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS, + KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +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; +}; + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case SYMB: + ergodox_right_led_1_on(); + break; + case MDIA: + ergodox_right_led_2_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; -- cgit v1.2.3 From bf257e3b37d79fb02aa694e93e343031938cebb9 Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Wed, 27 Jan 2016 20:14:11 +0100 Subject: Fixed regarding Ctrl and Alt keys. --- keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c index f100d85f4b..a39a55d859 100644 --- a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift | Y | X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * | LShift | Y | X | C | V | B | | | | N | M | , | . |# - #| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * |#LGui#|# ^ #|X < X|XLEFTX|XRIGHT| |X UP X|#Down#|# # #|# + #| ~L1 | * `----------------------------------' `----------------------------------' @@ -42,16 +42,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), KC_LGUI, KC_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, - ALT_T(KC_APP), KC_LGUI, + KC_LCTRL, KC_LALT, KC_HOME, KC_BSPC,KC_DELT,KC_END, // right hand KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), - MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT, + MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, KC_UP, KC_DOWN, DE_HASH, DE_PLUS, KC_FN1, - KC_LALT,CTL_T(KC_ESC), + KC_RALT, KC_RCTRL, KC_PGUP, KC_PGDN, KC_ENT, KC_SPC ), -- cgit v1.2.3 From 0c66ca026ef6b35a2ffada353b47fd6e53282a33 Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Wed, 27 Jan 2016 20:24:14 +0100 Subject: Fixed circonflex key. --- keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c index a39a55d859..bff9edb7fc 100644 --- a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c @@ -13,6 +13,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer + * + * X'es mark the spots where this is different from the "german" layout which it is based on. * * ,--------------------------------------------------. ,--------------------------------------------------. * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| | Next | 6 | 7 | 8 | 9 | 0 | ß | @@ -41,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), - KC_LGUI, KC_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, + KC_LGUI, DE_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, KC_LCTRL, KC_LALT, KC_HOME, KC_BSPC,KC_DELT,KC_END, -- cgit v1.2.3 From fdad7ecff945db3096646807851c83749e4189f7 Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Wed, 27 Jan 2016 22:05:11 +0100 Subject: Switched up and down keys to be closer to the vi etc. world. --- keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c index bff9edb7fc..33bd1de7ce 100644 --- a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| * | LShift | Y | X | C | V | B | | | | N | M | , | . |# - #| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |#LGui#|# ^ #|X < X|XLEFTX|XRIGHT| |X UP X|#Down#|# # #|# + #| ~L1 | + * |#LGui#|# ^ #|X < X|XLEFTX|XRIGHT| |XDownX|# Up #|# # #|# + #| ~L1 | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * |XCTRLX|XALTX | | Alt |Ctrl/Esc| @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, - KC_UP, KC_DOWN, DE_HASH, DE_PLUS, KC_FN1, + KC_DOWN, KC_UP, DE_HASH, DE_PLUS, KC_FN1, KC_RALT, KC_RCTRL, KC_PGUP, KC_PGDN, KC_ENT, KC_SPC -- cgit v1.2.3 From c8e7f9bbfc3d182f09b85b691cef63cf29909fb5 Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Thu, 28 Jan 2016 19:53:58 +0100 Subject: Made all layer change keys momentary. Removed Hyper and Meh in favor of layer 1 and 2 on both halves. --- .../ergodox_ez/keymaps/german-kinergo/keymap.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c index 33bd1de7ce..751049ac5e 100644 --- a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c @@ -17,15 +17,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * X'es mark the spots where this is different from the "german" layout which it is based on. * * ,--------------------------------------------------. ,--------------------------------------------------. - * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| | Next | 6 | 7 | 8 | 9 | 0 | ß | + * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| |XPRSCX| 6 | 7 | 8 | 9 | 0 | ß | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * |X Tab X| Q | W | E | R | T | L1 | | L2 | Z | U | I | O | P | Ü | + * |X Tab X| Q | W | E | R | T |X L1 X| |X L1 X| Z | U | I | O | P | Ü | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift | Y | X | C | V | B | | | | N | M | , | . |# - #| RShift | + * |--------+------+------+------+------+------|X L2 X| |X L2 X|------+------+------+------+------+--------| + * | LShift | Y | X | C | V | B | | | | N | M | , | . |X - X| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |#LGui#|# ^ #|X < X|XLEFTX|XRIGHT| |XDownX|# Up #|# # #|# + #| ~L1 | + * |XLGuiX|X ^ X|X < X|XLEFTX|XRIGHT| |XDownX|X Up X|X # X|X + X|XRGuiX| * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * |XCTRLX|XALTX | | Alt |Ctrl/Esc| @@ -40,19 +40,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = KEYMAP( // layer 0 : default // left hand KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DE_ACUT, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(1), KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, MO(2), KC_LGUI, DE_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, KC_LCTRL, KC_LALT, KC_HOME, KC_BSPC,KC_DELT,KC_END, // right hand - KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_PSCREEN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MO(1), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), - MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, - KC_DOWN, KC_UP, DE_HASH, DE_PLUS, KC_FN1, + MO(2), KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, + KC_DOWN, KC_UP, DE_HASH, DE_PLUS, KC_RGUI, KC_RALT, KC_RCTRL, KC_PGUP, KC_PGDN, KC_ENT, KC_SPC -- cgit v1.2.3 From 28d2b93b0a9d1e689da28272e7aee265abf3e3a9 Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Thu, 28 Jan 2016 19:55:14 +0100 Subject: Added documentation. --- .../keymaps/german-kinergo/layout-code.png | Bin 0 -> 55386 bytes .../ergodox_ez/keymaps/german-kinergo/layout.png | Bin 0 -> 71175 bytes .../ergodox_ez/keymaps/german-kinergo/readme.md | 25 +++++++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png create mode 100644 keyboard/ergodox_ez/keymaps/german-kinergo/layout.png create mode 100644 keyboard/ergodox_ez/keymaps/german-kinergo/readme.md diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png new file mode 100644 index 0000000000..a0ef551e12 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png differ diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout.png new file mode 100644 index 0000000000..76a1aa5d7a Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout.png differ diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md b/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md new file mode 100644 index 0000000000..0ccb183ca5 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md @@ -0,0 +1,25 @@ +# German Layout for the ErgoDox + +This layout is inspired by the "kinesis-qwerty-mod" from benblazak's +ergodox-firmware, as well as by the "german" layout from the qkm_firmware. +The goal was to have a layout that is pretty close to an ordinary German +keyboard, so I don't have to make adjustments on the operating system level +and I keep some of the muscle memory to use a regular keyboard. + +Modifications I made with regard to the aforementioned layouts: + +* The key layout is pretty close to the layout of a German Kinesis Ergo Elan. + The only exception I made is that I reversed the "up" and "down" cursor keys, + since that feels more natural to me. + +* All layer changes are "momentary", i.e. they only last as long as the respective key is pressed. + +* I sacrificed the Hyper and Meh keys, which I don't use, and put layer change keys in their place. + +## Default Layer + +![Layout of the default layer](layout.png "Layout of the default layer") + +## Code Layer + +![Layout of the code layer](layout-code.png "Layout of the code layer") -- cgit v1.2.3 From 9abd1eea79e8044708f45ab95baee52395097744 Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Thu, 28 Jan 2016 20:05:58 +0100 Subject: Added links. --- keyboard/ergodox_ez/keymaps/german-kinergo/readme.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md b/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md index 0ccb183ca5..f4e006f9c5 100644 --- a/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md @@ -1,7 +1,8 @@ # German Layout for the ErgoDox This layout is inspired by the "kinesis-qwerty-mod" from benblazak's -ergodox-firmware, as well as by the "german" layout from the qkm_firmware. +[ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the +[qmk_firmware](https://github.com/jackhumbert/qmk_firmware). The goal was to have a layout that is pretty close to an ordinary German keyboard, so I don't have to make adjustments on the operating system level and I keep some of the muscle memory to use a regular keyboard. @@ -16,6 +17,8 @@ Modifications I made with regard to the aforementioned layouts: * I sacrificed the Hyper and Meh keys, which I don't use, and put layer change keys in their place. +* I added a PrintScreen key which I use quite regularly for screenshots. + ## Default Layer ![Layout of the default layer](layout.png "Layout of the default layer") @@ -23,3 +26,6 @@ Modifications I made with regard to the aforementioned layouts: ## Code Layer ![Layout of the code layer](layout-code.png "Layout of the code layer") + +Christoph Schmitz <schm4704 at web dot de> +2016-01-28 -- cgit v1.2.3 From a38fa4b7271e7adf331a01c404c64cb37f27a4a6 Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Thu, 28 Jan 2016 20:17:45 +0100 Subject: Added media layer. --- .../ergodox_ez/keymaps/german-kinergo/layout-media.png | Bin 0 -> 67943 bytes keyboard/ergodox_ez/keymaps/german-kinergo/readme.md | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png new file mode 100644 index 0000000000..c64a03ba34 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png differ diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md b/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md index f4e006f9c5..557d85a8a4 100644 --- a/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md @@ -27,5 +27,9 @@ Modifications I made with regard to the aforementioned layouts: ![Layout of the code layer](layout-code.png "Layout of the code layer") +## Media Layer + +![Layout of the media layer](layout-media.png "Layout of the media layer") + Christoph Schmitz <schm4704 at web dot de> 2016-01-28 -- cgit v1.2.3 From 9bb20de57865582e27e08736f68cfbbc40af1c67 Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Thu, 28 Jan 2016 20:20:19 +0100 Subject: Fixed graphics. --- .../keymaps/german-kinergo/layout-media.png | Bin 67943 -> 67634 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png index c64a03ba34..56aea1dca4 100644 Binary files a/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png differ -- cgit v1.2.3 From 21c4dfe983b6697774008ea8b63b57b195ec012c Mon Sep 17 00:00:00 2001 From: Christoph Schmitz Date: Thu, 28 Jan 2016 20:22:48 +0100 Subject: Added .hex file. --- .../keymaps/german-kinergo/german-kinergo.hex | 1473 ++++++++++++++++++++ 1 file changed, 1473 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex b/keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex new file mode 100644 index 0000000000..574e810666 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex @@ -0,0 +1,1473 @@ +:100000000C9403070C9447070C9447070C9447077C +:100010000C9447070C9447070C9447070C94470728 +:100020000C9447070C9447070C9460120C943213FD +:100030000C9447070C9447070C9447070C94470708 +:100040000C9447070C940C2C0C9447070C9447070E +:100050000C9447070C9413220C9447070C94470701 +:100060000C9447070C9447070C9447070C944707D8 +:100070000C9447070C9447070C9447070C944707C8 +:100080000C9447070C9447070C9447070C944707B8 +:100090000C9447070C9447070C9447070C944707A8 +:1000A0000C9447070C9447070C9447079713B91310 +:1000B000A414B913A414FB131E14A41473148614EB +:1000C000D417D4170218021844188018801A801AFE +:1000D0009818801A8F198F195A1A801A801A6E1A56 +:1000E0000000F0A129002B003900E100E30000002E +:1000F0001E00140004001D0035004D001F001A00F2 +:1001000016001B0064004C002000080007000600D9 +:1001100050002A0021001500090019004F004A0074 +:10012000220017000A0005000000E0002E00015226 +:10013000000002520000E200AB0001520000025237 +:100140000000E60023001C000B0011000000E4008A +:10015000240018000D00100051004B0025000C0079 +:100160000E00360052002C00260012000F0037004F +:1001700031002800270013003300380030004E0003 +:100180002D002F003482E500E7000000010001008F +:1001900001000100010000003A001E0231002202AD +:1001A000010001003B001414210235000100010090 +:1001B0003C00241425022514010001003D002714F1 +:1001C00026022614010001003E0064142E023014A1 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002302000001004000240021001E00E5 +:10020000010001004100250022001F00370001000D +:100210004200260023002000270001004300300296 +:1002200030002D14270201004400450001000100A8 +:1002300001000000010001000100010001000000B8 +:100240003A000100F700FB00010001003B00F40050 +:10025000F200FA00FD00F5003C00F000F100F900AA +:10026000FE00F4003D00F500F300FC00FF0001007B +:100270003E000100F800F60000000100010001004E +:100280000000010000000100010001000000010069 +:10029000000001003F0001000100B4000000010067 +:1002A0004000AA00AC00B600010001004100A80017 +:1002B000AD00B5000100B7004200A900AE00B900D2 +:1002C0000100B60043000100AB00B70001000100CF +:1002D0004400450001000100010000000A00253033 +:1002E000313662003A200025303258000A722F63FE +:1002F0002030313233343536373839414243444582 +:10030000460A000A002530325800626F756E636538 +:10031000213A20006C6566742073696465206174FD +:100320007461636865640A006C656674207369644F +:1003300065206E6F7420726573706F6E64696E678E +:100340000A00747279696E6720746F207265736534 +:1003500074206D637032333031380A000A444542EC +:1003600055473A20656E61626C65642E0A005B73C6 +:100370005D004B6579626F617264207374617274A1 +:100380002E0A005B575D005B535D005B525D005BB6 +:10039000445D005B435D0016034500720067006F1B +:1003A0000044006F007800200045005A000000164D +:1003B000034500720067006F0044006F0078002062 +:1003C0000045005A0000000403090409028D0005DD +:1003D0000100A0FA09040000010301010009211134 +:1003E000010001223F000705810308000A090401FA +:1003F000000103010200092111010001224D000743 +:1004000005820308000A0904020001030000000934 +:1004100021110100012236000705830308000A09A3 +:100420000403000203000000092111010001222041 +:1004300000070584032000010705040320000109CB +:100440000404000103000000092111010001223908 +:1004500000070585031000011201100100000008CB +:10046000EDFE071301000102000105010906A101CB +:10047000050719E029E71500250195087501810296 +:100480000508190129059505750191029501750366 +:100490009101050719002977150025019578750147 +:1004A0008102C00631FF0974A1010975150025FFFD +:1004B0009520750881020976150025FF952075089D +:1004C0009102C005010980A101850216010026B72D +:1004D000001A01002AB700751095018100C0050CB3 +:1004E0000901A1018503160100269C021A01002AB8 +:1004F0009C02751095018100C005010902A1010946 +:1005000001A10005091901290515002501950575A9 +:100510000181029501750381010501093009311539 +:1005200081257F95027508810609381581257F95FB +:100530000175088106050C0A38021581257F950191 +:1005400075088106C0C005010906A101050719E06B +:1005500029E71500250195087501810295017508A7 +:10056000810105081901290595057501910295017B +:10057000750391010507190029FF150025FF950650 +:1005800075088100C00A002530325820006B65795B +:10059000626F6172645F7265706F72743A20000AF4 +:1005A0000025303258006B6579626F6172645F7349 +:1005B00065745F6C65643A200064656C5F6B657997 +:1005C0005F6269743A2063616E27742064656C3AD7 +:1005D00020253032580A006164645F6B65795F6280 +:1005E00069743A2063616E2774206164643A20253F +:1005F0003032580A00646F6E652E0A00626F6F67B2 +:100600006D61676963207363616E3A202E2E2E2020 +:1006100000290A002575002F002575005D2800259A +:10062000640020002564002000256400200025646B +:10063000007C0025303258006D6F7573656B6579ED +:10064000205B62746E7C782079207620685D287249 +:1006500065702F61636C293A205B006D6B5F776872 +:1006600065656C5F74696D655F746F5F6D6178203F +:100670003D2025640A006D6B5F776865656C5F6D72 +:1006800061785F7370656564203D2025640A006DA4 +:100690006B5F74696D655F746F5F6D6178203D207D +:1006A00025640A006D6B5F6D61785F7370656564CA +:1006B000203D2025640A006D6B5F696E746572765B +:1006C000616C203D2025640A006D6B5F64656C6180 +:1006D00079203D2025640A006D6B5F776865656C45 +:1006E0005F74696D655F746F5F6D6178203D202573 +:1006F000640A006D6B5F776865656C5F6D61785F3C +:100700007370656564203D2025640A006D6B5F741D +:10071000696D655F746F5F6D6178203D2025640AA7 +:10072000006D6B5F6D61785F7370656564203D205F +:1007300025640A006D6B5F696E74657276616C206A +:100740003D2025640A006D6B5F64656C6179203D16 +:100750002025640A000A00257500363A207768656E +:10076000656C5F74696D655F746F5F6D61783A2069 +:10077000000A00257500353A20776865656C5F6D65 +:1007800061785F73706565643A20000A0025750022 +:10079000343A2074696D655F746F5F6D61783A20DB +:1007A000000A00257500333A206D61785F7370652B +:1007B00065643A20000A00257500323A20696E749B +:1007C000657276616C286D73293A20000A002575E0 +:1007D00000313A2064656C6179282A31306D7329C3 +:1007E0003A20000A092D2056616C756573202D0A88 +:1007F000004D3E004D25643E20003F00736574208F +:1008000064656661756C740A00433E200077686514 +:1008100072652064656C74613A20637572736F72DF +:100820003D25642C20776865656C3D25640A536519 +:100830006520687474703A2F2F656E2E77696B6926 +:1008400070656469612E6F72672F77696B692F4DD0 +:100850006F7573655F6B6579730A000A092D204D0A +:100860006F7573656B6579202D0A4553432F713A77 +:1008700009717569740A313A0964656C6179282ACD +:1008800031306D73290A323A09696E746572766186 +:100890006C286D73290A333A096D61785F7370654E +:1008A00065640A343A0974696D655F746F5F6D61E0 +:1008B000780A353A09776865656C5F6D61785F73B2 +:1008C000706565640A363A09776865656C5F7469B6 +:1008D0006D655F746F5F6D61780A0A703A097072B6 +:1008E000696E742076616C7565730A643A09736584 +:1008F000742064656661756C74730A75703A092BAF +:10090000310A646F776E3A092D310A706775703A53 +:10091000092B31300A7067646F776E3A092D3130D8 +:100920000A0A7370656564203D2064656C746120FB +:100930002A206D61785F7370656564202A202872B3 +:100940006570656174202F2074696D655F746F5FD9 +:100950006D6178290A003F004D3E2000433E200093 +:100960004C25640A000A092D20436F6E736F6C6575 +:10097000202D0A4553432F713A09717569740A6D28 +:100980003A096D6F7573656B65790A000A092D2048 +:100990004D61676963202D0A643A09646562756771 +:1009A0000A783A096465627567206D6174726978C6 +:1009B0000A6B3A096465627567206B6579626F61DD +:1009C00072640A6D3A096465627567206D6F7573AC +:1009D000650A763A0976657273696F6E0A733A0929 +:1009E0007374617475730A633A09636F6E736F6C25 +:1009F00065206D6F64650A302D343A096C61796544 +:100A000072302D34284631302D4634290A50617514 +:100A1000733A09626F6F746C6F616465720A653A4C +:100A200009656570726F6D0A6E3A094E4B524F0A36 +:100A30007A3A09736C656570204C4544207465737F +:100A4000740A000A002575002E6E6B726F3A200042 +:100A50000A002575002E737761705F6261636B73A6 +:100A60006C6173685F6261636B73706163653A2088 +:100A7000000A002575002E737761705F67726176DA +:100A8000655F6573633A20000A002575002E6E6F5E +:100A90005F6775693A20000A002575002E7377613B +:100AA000705F72616C745F726775693A20000A004A +:100AB0002575002E737761705F6C616C745F6C6775 +:100AC00075693A20000A002575002E636170736C09 +:100AD0006F636B5F746F5F636F6E74726F6C3A20DD +:100AE000000A002575002E737761705F636F6E7466 +:100AF000726F6C5F636170736C6F636B3A20000A96 +:100B00000025303258006B65796D61705F636F6EE0 +:100B10006669672E7261773A20000A002575002EFB +:100B20006D6F7573653A20000A002575002E6B65A0 +:100B300079626F6172643A20000A002575002E6D9B +:100B400061747269783A20000A002575002E656E7E +:100B500061626C653A20000A0025303258006465F5 +:100B60006275675F636F6E6669672E7261773A20A0 +:100B7000000A0025750064656661756C745F6C61C0 +:100B80007965723A20003F004E4B524F3A206F6613 +:100B9000660A004E4B524F3A206F6E0A0074696D20 +:100BA00065725F636F756E743A202530346C580A35 +:100BB000006B6579626F6172645F6E6B726F3A2071 +:100BC00025580A006B6579626F6172645F69646CB5 +:100BD000653A2025580A006B6579626F6172645F1F +:100BE00070726F746F636F6C3A2025580A00686FDB +:100BF00073745F6B6579626F6172645F6C65647357 +:100C000028293A2025580A000A092D2053746174B6 +:100C10007573202D0A004743433A20342E382E3274 +:100C2000204156522D4C4942433A20312E382E3025 +:100C3000204156525F415243483A20617672350A4C +:100C4000004F5054494F4E533A204C554641204294 +:100C50004F4F544D41474943204D4F5553454B4508 +:100C6000592045585452414B455920434F4E534FFC +:100C70004C4520434F4D4D414E44204E4B524F204A +:100C80003531320A004255494C443A206664616469 +:100C90003765632D6469727479202831393A3332AB +:100CA0003A3137204A616E203238203230313629CD +:100CB0000A005649443A2030784645454428457252 +:100CC000676F446F7820455A29205049443A2030B4 +:100CD0007831333037284572676F446F7820455A32 +:100CE00029205645523A203078303030310A0044BD +:100CF0004553433A20742E6D2E6B2E206B6579621E +:100D00006F617264206669726D7761726520666FCB +:100D100072204572676F646F780A000A092D2056A9 +:100D2000657273696F6E202D0A000A6D6F757365A9 +:100D30003A206F66660A000A6D6F7573653A206F18 +:100D40006E0A000A6B6579626F6172643A206F66A1 +:100D5000660A000A6B6579626F6172643A206F6E91 +:100D60000A000A6D61747269783A206F66660A003B +:100D70000A6D61747269783A206F6E0A000A6465C0 +:100D80006275673A206F6E0A000A64656275673A99 +:100D9000206F66660A000A0A626F6F746C6F616486 +:100DA00065722E2E2E2000433E20006565636F6E17 +:100DB0006669673A0A00536C656570204C454420AB +:100DC000746573740A000000000000000000000059 +:100DD00000010204060A0F17202C3A4A5D71879D14 +:100DE000B3C7DAE9F5FCFFFCF5E9DAC7B39D877113 +:100DF0005D4A3A2C20170F0A060402010000000089 +:100E000000000000000011241FBECFEFDAE0DEBFBB +:100E1000CDBF04B603FE24C08091F9019091FA0180 +:100E2000A091FB01B091FC018730904BA740B04BE3 +:100E3000B9F41092F9011092FA011092FB0110928C +:100E4000FC0114BE84B7877F84BF88E10FB6F89495 +:100E500080936000109260000FBEE0E0FFE3099510 +:100E600011E0A0E0B1E0E4EBFBE502C005900D92DB +:100E7000AA33B107D9F711E0AAE3B1E001C01D928E +:100E8000A93FB107E1F70E949A0F0C94D82D0C945A +:100E90000000FF93EF93E0913A01F0913B0130970E +:100EA00009F00995EF91FF910895FC01859180303B +:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC +:100EC0000CC0419597FF09C0EDE260957095809543 +:100ED0009095611D711D811D911D27FF02C02195F7 +:100EE00030E350E2AA27660F771F881F991FAA1FB9 +:100EF000A41710F0A41B63955A95A9F7AA3008F01F +:100F0000A95FA05DAF93F39561157105810591050A +:100F100041F7ED3211F4EF93F395F21718F43F9384 +:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D +:100F3000F9918591803021F0853219F0AADFF9CF3F +:100F4000089520E0E89455915532C1F3503311F4DF +:100F5000689455915A3348F4505390F3220F022E5F +:100F6000220F220F200D250FF4CF0EF42195899129 +:100F70009991533619F3533729F1533559F1BC017F +:100F800088279927E8945C3621F48991999168948F +:100F90005591543639F446EF7EF077FF0DC08FEF50 +:100FA0009FEF0AC055374AE039F0583540E121F04B +:100FB000523642E009F00895FF93EF937DDFEF9101 +:100FC000FF91B7CFFF93EF93FC0181918030B9F38C +:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319 +:100FE000CDB7DEB72596A3DFCF91DF9108956111CC +:100FF0000BC0FC018281882321F085EE0E946816D7 +:1010000003C085EE0E94301780E090E008950895B7 +:101010006091BC017091BD018091BE019091BF01B2 +:101020000E94132156985E9825982D9826982E9800 +:1010300027982F98813029F0823031F4269A2E9A01 +:101040000895259A2D9A089556985E98089588E0F7 +:1010500098E0892B11F00E94080880E090E0089544 +:1010600056985E9825982D9826982E9827982F9810 +:101070008FEF90E0909389008093880090938B008D +:1010800080938A0090938D0080938C00259A2D9AEE +:101090002FEF80E792E0215080409040E1F700C0C0 +:1010A0000000269A2E9A2FEF80E792E02150804090 +:1010B0009040E1F700C00000279A2F9A2FEF80E7B9 +:1010C00092E0215080409040E1F700C00000259858 +:1010D0002D982FEF80E792E0215080409040E1F77B +:1010E00000C0000026982E982FEF80E792E0215054 +:1010F00080409040E1F700C0000027982F98569854 +:101100005E9825982D9826982E9827982F980895C0 +:1011100089EA8093800089E08093810024982C984C +:101120003F988AB18F748AB96E98479A8BB1806B59 +:101130008BB9769A0E94300887E098E0892B11F0ED +:101140000E94070880E090E0089580E2809300010B +:1011500080913C0181110EC00E94F40881E08093CF +:101160003C012FEF83ED90E3215080409040E1F768 +:1011700000C0000080E40E94FA0880930001811101 +:101180002EC00E94240980930001811128C00E9472 +:10119000240980930001811122C08FE30E94240959 +:1011A0008093000181111BC00E941C0980E40E94F1 +:1011B000FA0880930001811112C08CE00E9424097A +:1011C0008093000181110BC00E94240980930001CB +:1011D000811105C08FE30E942409809300010E94C1 +:1011E0001C098091000108951092B9008AE0809353 +:1011F000B800089594EA9093BC009091BC0097FFCA +:10120000FCCF9091B900987F983021F0903111F087 +:1012100081E008958093BB0084E88093BC008091B6 +:10122000BC0087FFFCCF8091B900887F883111F026 +:10123000803471F780E0089584E98093BC00809148 +:10124000BC0084FDFCCF08958093BB0084E88093AC +:10125000BC008091BC0087FFFCCF9091B900987FC3 +:1012600081E0983209F480E0089584E88093BC001E +:101270008091BC0087FFFCCF8091BB0008958091D6 +:101280000001811115C080E40E94FA0880930001DA +:1012900081110CC082E10E94240980930001811118 +:1012A00005C08FEF0E942409809300010E941C0951 +:1012B00084B1807F84B985B1807F85B98AB1837F0D +:1012C0008AB98BB1837F8BB93E98469808950E9466 +:1012D000A508809300010E943F0980B38C7080BBF9 +:1012E00081B3836F81BBECE4F1E0AEE3B1E0119236 +:1012F0001D9281E0EA35F807D1F788E898E0892B5C +:1013000011F00C94880808959F92AF92BF92CF92EB +:10131000DF92EF92FF920F931F93CF93DF93809111 +:1013200000018823E1F080913D018F5F80933D01B2 +:10133000811115C082E493E00E9455070E94A50820 +:1013400080930001882329F088E293E00E945507EA +:1013500006C084E193E00E9455070E9430080EE326 +:1013600011E0C0E0D0E0BB24B39482E0A82ECC24EE +:10137000C394D12C25E0E22E23E0F22EC73000F5F5 +:1013800080910001811162C080E40E94FA0880937C +:101390000001811112C082E10E94240980930001A2 +:1013A00081110BC0C6010C2E01C0880F0A94EAF708 +:1013B00080950E942409809300010E941C0946C068 +:1013C000CA30A1F028F4C83059F0C93061F005C026 +:1013D000CC3089F070F0CD3089F0209A289810C078 +:1013E000219A29980DC0229A2A980AC0239A2B98EC +:1013F00007C0529A01C0539A5B9802C03E9A469821 +:10140000E0EAEA95F1F78FB1799985C092E08170B1 +:101410008B25892B7C9B02C090E001C094E0892B36 +:101420007D9B02C090E001C098E0892B7E9B02C0AA +:1014300090E001C090E1892B9FB19095991F992769 +:10144000991F9295990F907E892B10C08091000171 +:10145000811176C080E40E94FA08809300018823FD +:1014600009F45BC0912C0E941C09892DF801908120 +:10147000981739F1808380910101882301F18091CF +:10148000D70180FF04C08AE093E00E945507809155 +:10149000D70180FF0CC0809101011F928F93FF92B2 +:1014A000EF920E94EE070F900F900F900F90809197 +:1014B000D70180FF04C083E093E00E945507A0920B +:1014C00001010E943F0921960F5F1F4FCE30D105C9 +:1014D00009F054CF809101018823B1F081508093AD +:1014E0000101882339F08FE99FE00197F1F700C0EF +:1014F00000000AC0ACE4B1E0EEE3F1E081918D932D +:1015000091E0EC34F907D1F787E298E0892BD1F02C +:101510000E94270817C090E07ACF83E10E94240937 +:101520008093000181119ECF81E40E94FA0880938C +:101530000001811197CF0E943509982E909493CF86 +:1015400080E094CF81E0DF91CF911F910F91FF90C8 +:10155000EF90DF90CF90BF90AF909F900895E82FCD +:10156000F0E0E45BFE4F80810895CF92DF92EF922E +:10157000FF920F931F93CF93DF938CEE92E00E9424 +:1015800055073CE4E32E31E0F32EC0E0D0E047EE17 +:10159000C42E42E0D42E0EED12E0DF93CF93DF9203 +:1015A000CF920E94EE0784EE92E00E945507F70169 +:1015B00081917F0190E00E9478219F938F931F93E8 +:1015C0000F930E94EE078CED92E00E945507219642 +:1015D0008DB79EB708960FB6F8949EBF0FBE8DBF0D +:1015E000CE30D105D1F6DF91CF911F910F91FF90B1 +:1015F000EF90DF90CF9008958B3B910578F4883A77 +:10160000910540F5853A9105D0F48430910508F0B4 +:10161000B1C08130910509F4ADC06BC0803E910529 +:1016200008F467C0883E910508F4A4C09C01205FBF +:1016300031092031310508F05CC090650895853A84 +:10164000910509F459C0863A910509F458C083E818 +:1016500090E40895883A910509F454C0893A9105B7 +:1016600009F453C08A3A910509F452C08B3A9105A6 +:1016700009F451C08C3A910509F450C08D3A910596 +:1016800009F44FC0803B910509F44EC08E3A910594 +:1016900009F44DC08F3A910509F44CC0813B910586 +:1016A00009F44BC0823B910509F44AC0833B910584 +:1016B00009F449C0843B910509F448C0853B910574 +:1016C00009F447C0863B910509F446C0873B910564 +:1016D00009F445C0883B910509F444C0893B910554 +:1016E00009F443C08A3B910509F042C08AE296E4BE +:1016F000089580E090E0089581E890E4089582E8FC +:1017000090E4089582EE94E4089589EE94E40895B7 +:101710008AEE94E4089585EB94E4089586EB94E4CE +:10172000089587EB94E408958CEC94E408958DEC8F +:1017300094E4089583E895E408958AE895E408958B +:1017400082E995E4089584E995E4089581E296E4B8 +:10175000089583E296E4089584E296E4089585E28C +:1017600096E4089586E296E4089587E296E4089563 +:1017700080E094E40895089596E0799FF0011124A3 +:1017800094E5899FE00DF11D1124E60FF11DEE0F88 +:10179000FF1FEC51FF4F859194910895880F991F79 +:1017A000805A9040FC01859194910895880F991F6B +:1017B00080529F4FFC0185919491089526E0729F7D +:1017C000F001112444E5849FE00DF11D1124E60F82 +:1017D000F11DEE0FFF1FEC51FF4F25913491C90110 +:1017E0009A9581159F4110F4C9010895C90190523D +:1017F0008115904128F4C9019F700E94D60B08956D +:10180000C90190538115904120F4C9019927906C2A +:101810000895211580E5380769F40E94A11A9FEF09 +:1018200024E34CE0915020404040E1F700C000002C +:101830000C943822213080E5380751F48CE593E090 +:101840000E9455078091D70181608093D701089548 +:10185000C90190558115904108F050C0832F9927F8 +:101860008F70992781309105D9F4A90143705527CC +:1018700002C0880F991F4A95E2F79C68A90164E0AD +:10188000440F551F6A95E1F744275370842B952B1D +:1018900073E0220F331F7A95E1F7207633271DC0BE +:1018A0008230910529F4922F8827816F906A0895DC +:1018B00083309105A9F4A9014370552781E090E098 +:1018C00002C0880F991F4A95E2F79C6843E0220FF7 +:1018D000331F4A95E1F7207E3770822B932B0895B2 +:1018E0000497F1F4A9014370552781E090E002C00C +:1018F000880F991F4A95E2F79A68E8CFC901905777 +:101900008115904120F4C9019F7090620895C9012A +:1019100090588115904120F4C9019F70906A0895F4 +:10192000203E3105E0F4203C310558F521333105E6 +:1019300009F470C048F42932310509F464C02A3230 +:10194000310509F46EC074C029333105F1F0223835 +:101950003105D9F02533310509F44EC069C0233E65 +:10196000310589F138F4203E3105C1F0223E3105C0 +:10197000E1F05EC0263E310569F1273E3105A9F14F +:1019800057C0C9010E94CE0B08958091EA0180FDE5 +:1019900002C081FF4DC080EE90E04BC08091EA0113 +:1019A00080FFF9CF89E390E044C08091EA0182FF93 +:1019B0000EC08091EA0184FF03C080E090E039C04E +:1019C00083EE90E036C08091EA0182FFF2CF82EE92 +:1019D00090E02FC08091EA0183FF0BC08091EA0163 +:1019E00084FDEBCF87EE90E024C08091EA0183FF75 +:1019F000F5CF86EE90E01DC08091EA0185FF07C01B +:101A000089E290E016C08091EA0185FFF9CF85E375 +:101A100090E00FC08091EA0186FF07C08AE290E063 +:101A200008C08091EA0186FFF9CF81E390E001C010 +:101A3000C9010E94FC0A0895089580916D010895DE +:101A40009FB7F89410925C019FBF9091F001943081 +:101A500009F058C09091E9009F702091EC0020FFA0 +:101A600002C020E801C020E0292B94E09093E90017 +:101A70009091EB0090FF43C09091EE0097FF3FC024 +:101A800090915A01992321F09091E80095FF37C079 +:101A900010925A0196E03091E80035FD15C0309162 +:101AA000F001343061F53091EB0035FD28C09150E4 +:101AB00021F481E080935A0122C0EFE9FFE03197E1 +:101AC000F1F700C00000E7CF8093F1008091E800BB +:101AD00085FD0AC08091E80080FFFCCF8091E8007E +:101AE0008E778093E80006C08FB7F89491E09093CA +:101AF0005C018FBF2F702093E90080E008952F7064 +:101B00002093E9008FEF0895CF93DF9300D01F92C9 +:101B1000CDB7DEB72091F001243019F523E02983F9 +:101B20009B838A832093E9008FEF9091E800815096 +:101B300095FD06C095ED9A95F1F700008111F5CF5E +:101B40008091E80085FF0DC040E050E063E070E068 +:101B5000CE0101960E9453108091E8008E77809309 +:101B6000E8000F900F900F90DF91CF910895CF93E1 +:101B7000DF9300D01F92CDB7DEB72091F001243063 +:101B800021F522E029839B838A8383E08093E90007 +:101B90008FEF9091E800815095FD06C095ED9A95E4 +:101BA000F1F700008111F5CF8091E80085FF0DC0AD +:101BB00040E050E063E070E0CE0101960E945310D7 +:101BC0008091E8008E778093E8000F900F900F903F +:101BD000DF91CF9108952091F0012430F1F422E0BB +:101BE0002093E9002FEF3091E800215035FD06C029 +:101BF00035ED3A95F1F700002111F5CF2091E8007D +:101C000025FF0BC040E050E065E070E00E945310FB +:101C10008091E8008E778093E8000895CF93DF935A +:101C2000EC018091F001843009F047C080910C01F3 +:101C30008823E1F080910D018823C1F085E0809335 +:101C4000E9008FEF9091E800815095FD06C095E185 +:101C50009A95F1F700008111F5CF8091E80085FF9A +:101C60002CC040E050E060E170E017C081E080935C +:101C7000E9008FEF9091E800815095FD06C095ED49 +:101C80009A95F1F700008111F5CF8091E80085FF6A +:101C900014C040E050E068E070E0CE010E945310B4 +:101CA0008091E8008E778093E80080E1FE01ADE549 +:101CB000B1E001900D928A95E1F7DF91CF910895FF +:101CC00083E993E00E9455078091EF01811109C0DB +:101CD0000E94E5110E9442128091E200846080938C +:101CE000E20008958FE893E00E9455071092EF01FB +:101CF00008958BE893E00C94550787E893E00E94E1 +:101D000055070C94F92B83E893E00E9455070E9435 +:101D1000CF210E94FF2B0E94DE140C941C0D809199 +:101D20005B018F5F80935B0162E30E946D2D9111D7 +:101D300035C010925B0180915C01882379F180911C +:101D4000F001843049F58091E9008F709091EC00AA +:101D500090FF02C090E801C090E0982B84E080934F +:101D6000E9008091EB0080FF14C08091EE0087FFB6 +:101D700010C08091E80085FF03C01092F100F9CFF8 +:101D80008091E80080FF05C08091E8008E77809305 +:101D9000E8009F709093E90010925C01089542E082 +:101DA00061EC81E00E945F1142E061EC82E00E9400 +:101DB0005F1142E061EC83E00E945F1142E261EC5E +:101DC00084E00E945F1142E161EC85E00C945F11B8 +:101DD0008091F201833009F455C030F4813071F004 +:101DE000823009F48EC008958A3009F47AC08B30AD +:101DF00009F460C0893009F09CC020C08091F101D5 +:101E0000813A09F096C08091E800877F8093E800CE +:101E10008091F5019091F601892B21F060E080E03E +:101E200090E003C060E18DE591E070E00E949C10BD +:101E30008091E8008B778093E80008958091F1010C +:101E4000813209F076C08091F5019091F6010097FA +:101E500019F0049709F06DC08091E800877F8093A6 +:101E6000E8008091E80082FD05C08091F0018111B9 +:101E7000F8CF5FC08091F10080936D018091E80000 +:101E80008B7753C08091F101813A09F052C0809163 +:101E9000F5019091F601892B09F04BC08091E80083 +:101EA000877F8093E8008091E80080FFFCCF8091DD +:101EB0000C0136C08091F1018132D9F58091F50194 +:101EC0009091F601892BA9F58091E800877F809396 +:101ED000E8000E9494118091F30180930C010C940E +:101EE000A11A8091F101813221F58091E800877F6C +:101EF0008093E8000E9494118091F40180936E0118 +:101F000008958091F101813AA1F48091E800877FE2 +:101F10008093E8008091E80080FFFCCF80916E0103 +:101F20008093F1008091E8008E778093E8000C9414 +:101F30009411089584B7877F84BF88E10FB6F89421 +:101F400080936000109260000FBE90E080E80FB6B2 +:101F5000F89480936100909361000FBE0E94671512 +:101F60000E94E5110E9442128091E20084608093F9 +:101F7000E20080E29DE00E940E2178940E94BC1451 +:101F80000E94691582E091E00E94D9140E94E72B1B +:101F900082E793E00E9455078091F001853089F433 +:101FA0008EE693E00E9455070E9492218091EE01F7 +:101FB000882391F30E94BA21882371F30E943D1077 +:101FC000EBCF0E949715E8CF292F33272330310517 +:101FD000A9F06CF42130310509F442C022303105FA +:101FE00009F043C08DE890E02BEC33E042C0213291 +:101FF0003105C9F02232310519F137C099278130F6 +:10200000910541F08230910541F0892B71F5E7ECA3 +:10201000F3E005C0EFEAF3E002C0E7E9F3E0849102 +:1020200090E09F0126C0653000F5E62FF0E0EE0F4E +:10203000FF1FEB5DFE4F2081318189E090E019C0E8 +:10204000653098F4E62FF0E0DF01AA0FBB1FA55E14 +:10205000BE4F2D913C91EA5EFE4F808190E009C019 +:1020600082E190E028E534E004C080E090E020E0E8 +:1020700030E0FA0131832083089580E189BD82E157 +:1020800089BD09B400FEFDCF8091D8008F7D80937B +:10209000D8008091E00082608093E0008091E000B1 +:1020A00081FDFCCF0895CF92DF92EF92FF920F93C4 +:1020B0001F93CF93DF937C018B01EA010E94B5113E +:1020C000811131C0209731F088819981081B190B4B +:1020D000E80EF91EC12CD12C0115110519F18091C2 +:1020E000E80085FD14C08091E8008E778093E800B9 +:1020F000209741F0888199818C0D9D1D998388835B +:1021000085E011C00E94B511882331F30CC0F7019E +:1021100081917F018093F10001501109FFEFCF1AE7 +:10212000DF0ADACF80E0DF91CF911F910F91FF900E +:10213000EF90DF90CF9008952091F7013091F80152 +:102140002617370748F06115710539F42091E8002A +:102150002E772093E80001C0B901FC0120E0611551 +:102160007105B9F18091F001882309F440C08530F0 +:1021700009F43FC08091E80083FD3DC08091E800F4 +:1021800082FF06C08091E80082FF26C080E00895AB +:102190008091E80080FFE3CF2091F3008091F2006E +:1021A00090E0922B6115710551F08830910538F45B +:1021B00021912093F100615071090196F3CF21E044 +:1021C000089709F020E08091E8008E778093E8007E +:1021D000C6CF2111C7CFD6CF8091F001882339F027 +:1021E000853039F08091E80083FFCCCF04C082E0D5 +:1021F000089583E0089581E008952091F7013091DA +:10220000F8012617370748F06115710539F4209158 +:10221000E8002E772093E80001C0B901FC0120E01E +:1022200061157105C1F18091F001882309F441C065 +:10223000853009F440C08091E80083FD3EC0809164 +:10224000E80082FF06C08091E80082FF27C080E09E +:1022500008958091E80080FFE3CF2091F300809102 +:10226000F20090E0922B6115710559F088309105CC +:1022700040F424912093F100319661507109019648 +:10228000F2CF21E0089709F020E08091E8008E77F6 +:102290008093E800C5CF2111C6CFD5CF8091F00142 +:1022A000882339F0853039F08091E80083FFCBCF67 +:1022B00004C082E0089583E0089581E00895982F96 +:1022C000973058F59093E900981739F07091EC0029 +:1022D0002091ED005091F00003C0242F762F50E0A4 +:1022E00021FF19C03091EB003E7F3093EB0030911D +:1022F000ED003D7F3093ED003091EB003160309385 +:10230000EB007093EC002093ED005093F0002091CF +:10231000EE0027FF07C09F5FD3CF8F708093E90047 +:1023200081E0089580E008958091F10187FD05C066 +:102330008091E80080FF0EC012C08091E80082FD0D +:1023400005C08091F0018111F8CF08958091E800D7 +:102350008B7708C08091F0018111EACF08958091B8 +:10236000E8008E778093E80008958091E4009091D2 +:10237000E50045E62091EC0020FF21C02091E80017 +:1023800020FD21C02091F001222389F0253089F021 +:102390002091EB0025FD0FC02091E4003091E50075 +:1023A0002817390739F3415041F0C901E3CF82E0E2 +:1023B000089583E0089581E0089584E008952091D0 +:1023C000E80022FFDFCF80E008950E9453120E94B0 +:1023D0005B12E0EEF0E0808181608083E8EDF0E068 +:1023E00080818F77808319BCA7EDB0E08C918E7FC0 +:1023F0008C9380818F7E80831092EF0108950F93DC +:102400001F93CF93DF930E9453120E945B12C8ED7B +:10241000D0E088818F7788838881806888838881ED +:102420008F7D888319BC1092F0011092EC011092FC +:10243000EE011092ED0100EE10E0F80180818B7F3B +:10244000808388818160888342E060E080E00E9430 +:102450005F11E1EEF0E080818E7F8083E2EEF0E0BC +:10246000808181608083808188608083F8018081A1 +:102470008E7F8083888180618883DF91CF911F91D7 +:102480000F910895E8EDF0E080818F7E8083E7ED85 +:10249000F0E080818160808384E082BF81E080936E +:1024A000EF010C94FF11E8EDF0E080818E7F8083D6 +:1024B0001092E20008951092DA001092E10008955F +:1024C0001F920F920FB60F9211242F933F934F93A9 +:1024D0005F936F937F938F939F93AF93BF93EF938C +:1024E000FF938091E10082FF0BC08091E20082FFA8 +:1024F00007C08091E1008B7F8093E1000E948F0EE6 +:102500008091DA0080FF1FC08091D80080FF1BC03F +:102510008091DA008E7F8093DA008091D90080FF6D +:102520000DC080E189BD82E189BD09B400FEFDCF07 +:1025300081E08093F0010E94600E05C019BC1092EA +:10254000F0010E94720E8091E10080FF19C080911D +:10255000E20080FF15C08091E2008E7F8093E20050 +:102560008091E20080618093E2008091D8008062D7 +:102570008093D80019BC85E08093F0010E947D0E05 +:102580008091E10084FF30C08091E20084FF2CC084 +:1025900080E189BD82E189BD09B400FEFDCF809153 +:1025A000D8008F7D8093D8008091E1008F7E80934A +:1025B000E1008091E2008F7E8093E2008091E20052 +:1025C00081608093E2008091EC01882311F084E027 +:1025D00007C08091E30087FF02C083E001C081E073 +:1025E0008093F0010E94830E8091E10083FF29C057 +:1025F0008091E20083FF25C08091E100877F809376 +:10260000E10082E08093F0011092EC018091E10002 +:102610008E7F8093E1008091E2008E7F8093E200C4 +:102620008091E20080618093E20042E060E080E01F +:102630000E945F118091F00088608093F0000E94FA +:10264000790EFF91EF91BF91AF919F918F917F9103 +:102650006F915F914F913F912F910F900FBE0F900F +:102660001F9018951F920F920FB60F9211242F935F +:102670003F934F935F936F937F938F939F93AF930A +:10268000BF93CF93EF93FF93C091E900CF708091F8 +:10269000EC001092E9008091F000877F8093F000B9 +:1026A00078940E946E131092E9008091F000886087 +:1026B0008093F000C093E900FF91EF91CF91BF911B +:1026C000AF919F918F917F916F915F914F913F91CA +:1026D0002F910F900FBE0F901F9018951F93CF93BF +:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63 +:1026F000CDBFE1EFF1E08091F100819321E0E93F6E +:10270000F207C9F70E94E80E8091E80083FF1CC120 +:102710002091F1013091F201832F90E08A309105F0 +:1027200008F012C1FC01EA5AFF4F0C948D2D20389D +:1027300081F0223809F008C18091F5018F708093F3 +:10274000E9008091EB0085FB882780F91092E90071 +:1027500006C08091ED019091EE01911182609091FF +:10276000E800977F9093E8008093F1001092F100C9 +:10277000C5C0822F8D7F09F0E7C0222319F02230D7 +:1027800061F0E2C08091F301813009F0DDC03330A7 +:1027900009F080E08093EE0128C08091F30181115F +:1027A00024C02091F5012F7009F4CEC02093E900D8 +:1027B0008091EB0080FF19C08091EB00333011F461 +:1027C000806211C080618093EB0081E090E0022E76 +:1027D00001C0880F0A94EAF78093EA001092EA0099 +:1027E0008091EB0088608093EB001092E90080916B +:1027F000E800877F86C02111A7C01091F3011F77E1 +:102800008091E3008078812B8093E3008091E80041 +:10281000877F8093E8000E9494118091E80080FFF8 +:10282000FCCF8091E30080688093E300112311F0D6 +:1028300083E001C082E08093F00186C020582230FE +:1028400008F082C08091F3019091F4018C3D23E067 +:10285000920779F583E08A838AE289834FB7F894F7 +:10286000DE01139620E03EE051E2E32FF0E05093CA +:102870005700E49120FF03C0E295EF703F5FEF70D7 +:102880008E2F90E0EA3010F0C79601C0C0968D936D +:102890009D932F5F243149F74FBF8091E800877FD8 +:1028A0008093E8006AE270E0CE0101960E949C10DD +:1028B00014C0AE014F5F5F4F6091F5010E94E40FBD +:1028C000009709F441C02091E800277F2093E80099 +:1028D000BC0189819A810E94FD108091E8008B776C +:1028E0008093E80031C0203879F58091E800877F37 +:1028F0008093E8008091EC018093F1008091E800E2 +:102900008E778093E8000E9494111EC021111CC094 +:102910009091F3019230C0F48091E800877F80931A +:10292000E8009093EC010E9494118091EC018111D8 +:1029300004C08091E30087FF02C084E001C081E011 +:102940008093F0010E94CF0E8091E80083FF0AC0BF +:102950008091E800877F8093E8008091EB0080629F +:102960008093EB00AA960FB6F894DEBF0FBECDBFE2 +:10297000DF91CF911F910895CF938091F00188232B +:10298000B1F08091E9008F709091EC0090FF02C04F +:1029900090E801C090E0C92FC82B1092E900809107 +:1029A000E80083FD0E946E13CF70C093E900CF91C1 +:1029B000089590937401809373010895E0917301D9 +:1029C000F0917401309721F00190F081E02D09948D +:1029D00080E00895FF920F931F93CF93DF938C01B4 +:1029E000E0917301F0917401309799F10280F381C5 +:1029F000E02D09958091D70182FF2BC080FF04C094 +:102A00008DE895E00E945507E80180E1F82E07E87F +:102A100015E08091D70180FF0BC088811F928F93B2 +:102A20001F930F930E94EE070F900F900F900F903F +:102A3000FA942196F110EDCF8091D70180FF09C063 +:102A400085E895E0DF91CF911F910F91FF900C9455 +:102A50005507DF91CF911F910F91FF900895E0915D +:102A60007301F0917401309721F00480F581E02D1D +:102A70000994089520917101309172018217930792 +:102A800071F09093720180937101E0917301F09164 +:102A90007401309721F00680F781E02D09940895A4 +:102AA00020916F01309170018217930771F090931C +:102AB000700180936F01E0917301F0917401309780 +:102AC00021F00084F185E02D0994089508950C9477 +:102AD00066150E94D5210E9467090C949B22CF9312 +:102AE000C82F8091D70182FF1EC080FF04C086EAF4 +:102AF00095E00E9455078091D70180FF0CC01F927E +:102B0000CF9321EA35E03F932F930E94EE070F9079 +:102B10000F900F900F908091D70180FF04C08FE934 +:102B200095E00E9455078C2FCF910C941C0DCF92ED +:102B3000DF92EF92FF920F931F93CF93DF93CDB766 +:102B4000DEB72B970FB6F894DEBF0FBECDBF0E9445 +:102B5000840936E7E32E31E0F32E00E010E0C02ECA +:102B6000802F0E94AF0AF701D1907F01D826B1F4DF +:102B70000F5F1F4F0E30110591F78FEF89838A8306 +:102B80001B820E94DE218160782F9D838C83498186 +:102B90005A816B818D810E943A1641C09091D70174 +:102BA00091FF04C08B870E94B50A8B8520E030E03E +:102BB0004D2D50E0922FBA01022E02C075956795F7 +:102BC0000A94E2F760FF25C02E83CF82EE24E394BF +:102BD000F12C02C0EE0CFF1C9A95E2F790E08E21DA +:102BE0009F2121E0892B09F420E028870E94DE2123 +:102BF0008160782F9A8789874E815F8168858A8571 +:102C00000E943A16F801EA58FE4F80818E25808393 +:102C100006C02F5F3F4F2630310561F6A9CF0E94D5 +:102C20000926109175010E94DE141817A1F00E9468 +:102C3000DE14809375012B960FB6F894DEBF0FBE9D +:102C4000CDBFDF91CF911F910F91FF90EF90DF905B +:102C5000CF900C946F152B960FB6F894DEBF0FBE75 +:102C6000CDBFDF91CF911F910F91FF90EF90DF903B +:102C7000CF900895CF93DF93CDB7DEB72B970FB6E4 +:102C8000F894DEBF0FBECDBF4F83588769877A8720 +:102C90008B87DE01119686E0FD0111928A95E9F796 +:102CA00085E0FE01379601900D928A95E1F7498102 +:102CB0005A816B817C818D819E810E946D1D2B9636 +:102CC0000FB6F894DEBF0FBECDBFDF91CF91089550 +:102CD000CF93C82F882309F4C1C0823859F40E94C9 +:102CE000DE1481FDBBC089E30E940C200E94E82015 +:102CF00089E30CC0833879F40E94DE1480FDAEC0F5 +:102D000083E50E940C200E94E82083E50E945D205C +:102D1000CF910C94E820843859F40E94DE1482FD8F +:102D20009DC087E40E940C200E94E82087E4EECF3B +:102D30008CEF8C0F813A48F48C2F0E94922A8111DB +:102D40008DC08C2F0E940C20E3CF80E28C0F883046 +:102D500048F4C77081E001C0880FCA95EAF70E9465 +:102D6000AF20D6CF8BE58C0F833078F4C53A29F0AD +:102D7000C63A31F482E890E005C081E890E002C0F4 +:102D800083E890E0CF910C943A1588E58C0F83315D +:102D900008F064C0C83A39F1C93A41F1CA3A49F178 +:102DA000CB3A51F1CC3A59F1CD3A61F1C03B69F1DE +:102DB000CE3A71F1CF3A79F1C13B81F1C23B89F151 +:102DC000C33B91F1C43B99F1C53BA1F1C63BA9F1CD +:102DD000C73BB1F1C83BB9F1C93BC1F1CA3BC9F529 +:102DE0008AE292E038C082EE90E035C089EE90E051 +:102DF00032C08AEE90E02FC085EB90E02CC086EBCD +:102E000090E029C087EB90E026C08CEC90E023C0D6 +:102E10008DEC90E020C083E891E01DC08AE891E04D +:102E20001AC082E991E017C084E991E014C081E200 +:102E300092E011C083E292E