From 25b4a98a75729738fed8ae034123c132445e70fa Mon Sep 17 00:00:00 2001 From: Aron Griffis Date: Sat, 9 Jan 2016 12:35:42 -0500 Subject: Refer to SYMB and MDIA in default ergodox_ez keymap. --- keyboard/ergodox_ez/keymaps/keymap_default.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.c b/keyboard/ergodox_ez/keymaps/keymap_default.c index 762e118b05..b2f0a051d5 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_default.c +++ b/keyboard/ergodox_ez/keymaps/keymap_default.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = KEYMAP( // layer 0 : default // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_SPC,KC_BSPC,KC_END, // right hand KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT, MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ // MEDIA AND MOUSE -KEYMAP( +[MDIA] = KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, -- cgit v1.2.3 From 8607859c77ed9219875cbd26d56fd7b5565290c1 Mon Sep 17 00:00:00 2001 From: Aron Griffis Date: Sat, 9 Jan 2016 13:17:25 -0500 Subject: Add ergodox_ez keymap to match Kinesis Contoured. This keymap attempts to match the Kinesis Contoured (aka Advantage) default layout as closely as possible. See http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf Apart from the obvious mappings, this keymap also: * removes the dual-purpose momentary layer/normal keys: Z, /, and Grv; because the author--coming from a Kinesis keyboard--finds the delays and accidental modifiers to be more disconcerting than helpful. * puts Esc in the bottom left since there's no place for it in the top left to match the Kinesis. * changes the bottom-right key into an L2 toggle since there's otherwise no way to get to L2. * adds PrScr, ScrLk and Pause to the L1 keymap, down the left side, since they're present on the Kinesis but not available in the default ergodox_ez keymap. --- keyboard/ergodox_ez/keymaps/keymap_kinesis.c | 184 +++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_kinesis.c (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/keymap_kinesis.c b/keyboard/ergodox_ez/keymaps/keymap_kinesis.c new file mode 100644 index 0000000000..20cb53241f --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_kinesis.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Esc | Grv |Insert| Left | Right| | Up | Down | [ | ] | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Ctrl | Alt | | LGui | Ctrl | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| Enter| Space| + * |ace | | 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + KC_ESC, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, + KC_LCTL,KC_LALT, + KC_HOME, + KC_BSPC,KC_DEL,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN2, + KC_LGUI, KC_RCTL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_PSCR,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_SLCK,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_PAUS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_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, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + 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_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +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) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; -- cgit v1.2.3 From 386ca6531bfc2a9ab4ddecfa105bcc10890fabc9 Mon Sep 17 00:00:00 2001 From: Aron Griffis Date: Sun, 10 Jan 2016 10:25:16 -0500 Subject: Rename to keymap_kines-ish.c and add README --- keyboard/ergodox_ez/keymaps/keymap_kines-ish.c | 184 +++++++++++++++++++++ .../ergodox_ez/keymaps/keymap_kines-ish_README.md | 19 +++ keyboard/ergodox_ez/keymaps/keymap_kinesis.c | 184 --------------------- 3 files changed, 203 insertions(+), 184 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_kines-ish.c create mode 100644 keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_kinesis.c (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/keymap_kines-ish.c b/keyboard/ergodox_ez/keymaps/keymap_kines-ish.c new file mode 100644 index 0000000000..20cb53241f --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_kines-ish.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Esc | Grv |Insert| Left | Right| | Up | Down | [ | ] | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Ctrl | Alt | | LGui | Ctrl | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| Enter| Space| + * |ace | | 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + KC_ESC, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, + KC_LCTL,KC_LALT, + KC_HOME, + KC_BSPC,KC_DEL,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN2, + KC_LGUI, KC_RCTL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_PSCR,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_SLCK,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_PAUS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_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, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + 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_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +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) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md b/keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md new file mode 100644 index 0000000000..5d39a0590d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md @@ -0,0 +1,19 @@ +This keymap attempts to match the Kinesis Contoured (aka Advantage) default +layout as closely as possible. See +http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf + +Apart from the obvious mappings, this keymap also: + +* removes the dual-purpose momentary layer/normal keys: Z, /, and Grv; + because the author--coming from a Kinesis keyboard--finds the delays and + accidental modifiers to be more disconcerting than helpful. + +* puts Esc in the bottom left since there's no place for it in the top + left to match the Kinesis. + +* changes the bottom-right key into an L2 toggle since there's otherwise no + way to get to L2. + +* adds PrScr, ScrLk and Pause to the L1 keymap, down the left side, since + they're present on the Kinesis but not available in the default + ergodox_ez keymap. diff --git a/keyboard/ergodox_ez/keymaps/keymap_kinesis.c b/keyboard/ergodox_ez/keymaps/keymap_kinesis.c deleted file mode 100644 index 20cb53241f..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_kinesis.c +++ /dev/null @@ -1,184 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | Esc | Grv |Insert| Left | Right| | Up | Down | [ | ] | L2 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Ctrl | Alt | | LGui | Ctrl | - * ,------|------|------| |------+------+------. - * | | | Home | | PgUp | | | - * |Backsp| Del |------| |------| Enter| Space| - * |ace | | 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), - KC_ESC, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, - KC_LCTL,KC_LALT, - KC_HOME, - KC_BSPC,KC_DEL,KC_END, - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN2, - KC_LGUI, KC_RCTL, - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | . | 0 | = | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_PSCR,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_SLCK,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_PAUS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, - KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_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, KC_ASTR, KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, - KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, - KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[MDIA] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - 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_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -}; - -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) { - // TODO: Make this relevant to the ErgoDox EZ. - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - default: - // none - break; - } - -}; -- cgit v1.2.3 From a085265aaa18cbaedfd7ff21364877b9c018083c Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 12 Jan 2016 22:32:29 +0200 Subject: Disables debug console by default for improved performance --- keyboard/ergodox_ez/Makefile | 4 +- keyboard/ergodox_ez/keymaps/keymap_default.hex | 2443 ++++++++++++------------ 2 files changed, 1226 insertions(+), 1221 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/Makefile b/keyboard/ergodox_ez/Makefile index 3b70258402..03c806131d 100644 --- a/keyboard/ergodox_ez/Makefile +++ b/keyboard/ergodox_ez/Makefile @@ -94,13 +94,13 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 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) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ 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 # MIDI_ENABLE = yes # MIDI controls -# uNICODE_ENABLE = yes # Unicode +# UNICODE_ENABLE = yes # Unicode # Optimize size but this may cause error "relocation truncated to fit" diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.hex b/keyboard/ergodox_ez/keymaps/keymap_default.hex index 72e7da00cc..eedabc2db5 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_default.hex +++ b/keyboard/ergodox_ez/keymaps/keymap_default.hex @@ -1,17 +1,17 @@ :100000000C9403070C9447070C9447070C9447077C :100010000C9447070C9447070C9447070C94470728 -:100020000C9447070C9447070C9432120C94041359 +:100020000C9447070C9447070C945E120C94301301 :100030000C9447070C9447070C9447070C94470708 -:100040000C9447070C94DC2B0C9447070C9447073F -:100050000C9447070C94E3210C9447070C94470732 +:100040000C9447070C94082C0C9447070C94470712 +:100050000C9447070C940F220C9447070C94470705 :100060000C9447070C9447070C9447070C944707D8 :100070000C9447070C9447070C9447070C944707C8 :100080000C9447070C9447070C9447070C944707B8 :100090000C9447070C9447070C9447070C944707A8 -:1000A0000C9447070C9447070C94470769138B136C -:1000B00076148B137614CD13F0137614451458145C -:1000C000A617A617D417D41717185318541A541A6A -:1000D0006B18541A621962192E1A541A541A421AB9 +:1000A0000C9447070C9447070C9447079513B71314 +:1000B000A214B713A214F9131C14A21471148414FB +:1000C000D217D2170018001843187F18801A801A08 +:1000D0009718801A8E198E195A1A801A801A6E1A59 :1000E0000000F0A12E004C002A00E1003581000044 :1000F0001E00140004001D7134004D001F001A0082 :1001000016001B00E1042A0020000800070006007A @@ -198,9 +198,9 @@ :100C50004F4F544D41474943204D4F5553454B4508 :100C6000592045585452414B455920434F4E534FFC :100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2034663435F5 -:100C90003533632D6469727479202830333A3430E7 -:100CA0003A353320446563203138203230313529DC +:100C80003531320A004255494C443A2035653337F4 +:100C90003663622D6469727479202832323A3239AF +:100CA0003A3538204A616E203132203230313629CF :100CB0000A005649443A2030784645454428457252 :100CC000676F446F7820455A29205049443A2030B4 :100CD0007831333037284572676F446F7820455A32 @@ -228,9 +228,9 @@ :100E3000B9F41092F9011092FA011092FB0110928C :100E4000FC0114BE84B7877F84BF88E10FB6F89495 :100E500080936000109260000FBEE0E0FFE3099510 -:100E600011E0A0E0B1E0E4E5FBE502C005900D92E1 +:100E600011E0A0E0B1E0ECEAFBE502C005900D92D4 :100E7000AA33B107D9F711E0AAE3B1E001C01D928E -:100E8000A93FB107E1F70E946C0F0C94A82D0C94B8 +:100E8000A93FB107E1F70E94980F0C94D42D0C9460 :100E90000000FF93EF93E0913A01F0913B0130970E :100EA00009F00995EF91FF910895FC01859180303B :100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC @@ -253,1215 +253,1220 @@ :100FC000FF91B7CFFF93EF93FC0181918030B9F38C :100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319 :100FE000CDB7DEB72596A3DFCF91DF9108956111CC -:100FF0000BC0FC018281882321F085EE0E943A1605 -:1010000003C085EE0E94021780E090E008950895E5 +:100FF0000BC0FC018281882321F085EE0E946616D9 +:1010000003C085EE0E942E1780E090E008950895B9 :101010006091BC017091BD018091BE019091BF01B2 -:101020000E94E72056985E9825982D9826982E982D +:101020000E94132156985E9825982D9826982E9800 :1010300027982F98813019F0823021F00895259A51 :101040002D9A0895269A2E9A089588E098E0892B83 -:1010500011F00C940808089556985E9825982D98DC -:1010600026982E9827982F988FEF90E090938900DC -:101070008093880090938B0080938A0090938D00DA -:1010800080938C00569A5E9A259A2D9A269A2E9ACB -:10109000279A2F9A2FE782E490E1215080409040D8 -:1010A000E1F700C0000056985E9825982D98269884 -:1010B0002E9827982F98089589EA8093800089E0D8 -:1010C0008093810024982C983F988AB18F748AB9B4 -:1010D0006E98479A8BB1806B8BB9769A0E942C08D8 -:1010E00087E098E0892B11F00C940708089580E2BE -:1010F0008093000180913C0181110EC00E94C608BE -:1011000081E080933C012FEF83ED90E321508040FC -:101110009040E1F700C0000080E40E94CC0880937A -:10112000000181112EC00E94F608809300018111F8 -:1011300028C00E94F60880930001811122C08FE32D -:101140000E94F6088093000181111BC00E94EE08E6 -:1011500080E40E94CC0880930001811112C08CE0D1 -:101160000E94F6088093000181110BC00E94F608CE -:1011700080930001811105C08FE30E94F6088093DF -:1011800000010E94EE088091000108951092B900BC -:101190008AE08093B800089594EA9093BC009091FF -:1011A000BC0097FFFCCF9091B900987F983021F058 -:1011B000903111F081E008958093BB0084E8809322 -:1011C000BC008091BC0087FFFCCF8091B900887F74 -:1011D000883111F0803471F780E0089584E98093BC -:1011E000BC008091BC0084FDFCCF08958093BB00BF -:1011F00084E88093BC008091BC0087FFFCCF909175 -:10120000B900987F81E0983209F480E0089584E87D -:101210008093BC008091BC0087FFFCCF8091BB0015 -:10122000089580910001811115C080E40E94CC08CE -:101230008093000181110CC082E10E94F608809326 -:101240000001811105C08FEF0E94F6088093000114 -:101250000E94EE0884B1807F84B985B1807F85B912 -:101260008AB1837F8AB98BB1837F8BB93E984698C8 -:1012700008950E947708809300010E94110980B3AD -:101280008C7080BB81B3836F81BBECE4F1E0AEE393 -:10129000B1E011921D9281E0EA35F807D1F78CE5B3 -:1012A00098E0892B11F00C945C0808959F92AF92FE -:1012B000BF92CF92DF92EF92FF920F931F93CF9343 -:1012C000DF93809100018823E1F080913D018F5FE1 -:1012D00080933D01811115C082E493E00E9455077F -:1012E0000E94770880930001882329F088E293E028 -:1012F0000E94550706C084E193E00E9455070E94B2 -:101300002C080EE311E0C0E0D0E0BB24B39482E0EF -:10131000A82ECC24C394D12C25E0E22E23E0F22E7B -:10132000C73000F580910001811162C080E40E9405 -:10133000CC0880930001811112C082E10E94F6085E -:101340008093000181110BC0C6010C2E01C0880FD3 -:101350000A94EAF780950E94F608809300010E94A3 -:10136000EE0846C0CA30A1F028F4C83059F0C930A0 -:1013700061F005C0CC3089F070F0CD3089F0209A52 -:10138000289810C0219A29980DC0229A2A980AC03C -:10139000239A2B9807C0529A01C0539A5B9802C0B7 -:1013A0003E9A4698E0EAEA95F1F78FB1799985C0BF -:1013B00092E081708B25892B7C9B02C090E001C05C -:1013C00094E0892B7D9B02C090E001C098E0892BBE -:1013D0007E9B02C090E001C090E1892B9FB1909567 -:1013E000991F9927991F9295990F907E892B10C06C -:1013F00080910001811176C080E40E94CC08809326 -:101400000001882309F45BC0912C0E94EE08892D0D -:10141000F8019081981739F1808380910101882328 -:1014200001F18091D70180FF04C08AE093E00E941F -:1014300055078091D70180FF0CC0809101011F9258 -:101440008F93FF92EF920E94EE070F900F900F90F4 -:101450000F908091D70180FF04C083E093E00E9449 -:101460005507A09201010E94110921960F5F1F4F9D -:10147000CE30D10509F054CF809101018823B1F01D -:10148000815080930101882339F08FE99FE0019713 -:10149000F1F700C000000AC0ACE4B1E0EEE3F1E017 -:1014A00081918D9391E0EC34F907D1F785E298E0D2 -:1014B000892BD1F00E94250817C090E07ACF83E1F4 -:1014C0000E94F6088093000181119ECF81E40E9462 -:1014D000CC0880930001811197CF0E940709982EB4 -:1014E000909493CF80E094CF81E0DF91CF911F91D2 -:1014F0000F91FF90EF90DF90CF90BF90AF909F90B3 -:101500000895E82FF0E0E45BFE4F80810895CF92CC -:10151000DF92EF92FF920F931F93CF93DF938CEEA6 -:1015200092E00E9455073CE4E32E31E0F32EC0E048 -:10153000D0E047EEC42E42E0D42E0EED12E0DF9351 -:10154000CF93DF92CF920E94EE0784EE92E00E944A -:101550005507F70181917F0190E00E944C219F93F4 -:101560008F931F930F930E94EE078CED92E00E94E1 -:10157000550721968DB79EB708960FB6F8949EBF73 -:101580000FBE8DBFCE30D105D1F6DF91CF911F9127 -:101590000F91FF90EF90DF90CF9008958B3B9105D6 -:1015A00078F4883A910540F5853A9105D0F4843075 -:1015B000910508F0B1C08130910509F4ADC06BC050 -:1015C000803E910508F467C0883E910508F4A4C0E8 -:1015D0009C01205F31092031310508F05CC0906525 -:1015E0000895853A910509F459C0863A910509F4A0 -:1015F00058C083E890E40895883A910509F454C0EE -:10160000893A910509F453C08A3A910509F452C008 -:101610008B3A910509F451C08C3A910509F450C0F8 -:101620008D3A910509F44FC0803B910509F44EC0F5 -:101630008E3A910509F44DC08F3A910509F44CC0DA -:10164000813B910509F44BC0823B910509F44AC0E6 -:10165000833B910509F449C0843B910509F448C0D6 -:10166000853B910509F447C0863B910509F446C0C6 -:10167000873B910509F445C0883B910509F444C0B6 -:10168000893B910509F443C08A3B910509F042C0AA -:101690008AE296E4089580E090E0089581E890E47D -:1016A000089582E890E4089582EE94E4089589EE26 -:1016B00094E408958AEE94E4089585EB94E4089503 -:1016C00086EB94E4089587EB94E408958CEC94E41D -:1016D00008958DEC94E4089583E895E408958AE8EC -:1016E00095E4089582E995E4089584E995E40895E0 -:1016F00081E296E4089583E296E4089584E296E414 -:10170000089585E296E4089586E296E4089587E2D6 -:1017100096E4089580E094E40895089596E0799F12 -:10172000F001112494E5899FE00DF11D1124E60FCD -:10173000F11DEE0FFF1FEC51FF4F8591949108951D -:10174000880F991F805A9040FC01859194910895CB -:10175000880F991F80529F4FFC01859194910895A5 -:1017600026E0729FF001112444E5849FE00DF11DF5 -:101770001124E60FF11DEE0FFF1FEC51FF4F2591D5 -:101780003491C9019A9581159F4110F4C9010895BA -:10179000C90190528115904128F4C9019F700E949F -:1017A000A80B0895C90190538115904120F4C901F7 -:1017B0009927906C0895211580E5380769F40E94F7 -:1017C000751A9FEF24E34CE0915020404040E1F730 -:1017D00000C000000C940822213080E5380751F445 -:1017E0008CE593E00E9455078091D701816080933A -:1017F000D7010895C90190558115904108F050C056 -:10180000832F99278F70992781309105D9F4A901E9 -:101810004370552702C0880F991F4A95E2F79C68CC -:10182000A90164E0440F551F6A95E1F744275370FE -:10183000842B952B73E0220F331F7A95E1F72076E6 -:1018400033271DC08230910529F4922F8827816F9C -:10185000906A089583309105A9F4A9014370552732 -:1018600081E090E002C0880F991F4A95E2F79C68DA -:1018700043E0220F331F4A95E1F7207E3770822B19 -:10188000932B08950497F1F4A9014370552781E043 -:1018900090E002C0880F991F4A95E2F79A68E8CF56 -:1018A000C90190578115904120F4C9019F70906241 -:1018B0000895C90190588115904120F4C9019F7085 -:1018C000906A0895203E3105E0F4203C310558F53A -:1018D0002133310509F470C048F42932310509F487 -:1018E00064C02A32310509F46EC074C02933310551 -:1018F000F1F022383105D9F02533310509F44EC015 -:1019000069C0233E310589F138F4203E3105C1F02C -:10191000223E3105E1F05EC0263E310569F1273EE9 -:101920003105A9F157C0C9010E94A00B089580910B -:10193000EA0180FD02C081FF4DC080EE90E04BC007 -:101940008091EA0180FFF9CF89E390E044C0809163 -:10195000EA0182FF0EC08091EA0184FF03C080E0AB -:1019600090E039C083EE90E036C08091EA0182FFBA -:10197000F2CF82EE90E02FC08091EA0183FF0BC08E -:101980008091EA0184FDEBCF87EE90E024C0809146 -:10199000EA0183FFF5CF86EE90E01DC08091EA0159 -:1019A00085FF07C089E290E016C08091EA0185FFBB -:1019B000F9CF85E390E00FC08091EA0186FF07C070 -:1019C0008AE290E008C08091EA0186FFF9CF81E3C6 -:1019D00090E001C0C9010E94CE0A08950895809147 -:1019E0006D0108959FB7F89410925C019FBF90918C -:1019F000F001943009F058C09091E9009F70209157 -:101A0000EC0020FF02C020E801C020E0292B94E078 -:101A10009093E9009091EB0090FF43C09091EE000D -:101A200097FF3FC090915A01992321F09091E800CF -:101A300095FF37C010925A0196E03091E80035FDCD -:101A400015C03091F001343061F53091EB0035FD77 -:101A500028C0915021F481E080935A0122C0EFE91F -:101A6000FFE03197F1F700C00000E7CF8093F1006D -:101A70008091E80085FD0AC08091E80080FFFCCFDE -:101A80008091E8008E778093E80006C08FB7F894C5 -:101A900091E090935C018FBF2F702093E90080E06C -:101AA00008952F702093E9008FEF0895CF93DF936F -:101AB00000D01F92CDB7DEB72091F001243019F588 -:101AC00023E029839B838A832093E9008FEF909101 -:101AD000E800815095FD06C095ED9A95F1F700005C -:101AE0008111F5CF8091E80085FF0DC040E050E006 -:101AF00063E070E0CE0101960E9425108091E8001D -:101B00008E778093E8000F900F900F90DF91CF9128 -:101B10000895CF93DF9300D01F92CDB7DEB7209109 -:101B2000F001243021F522E029839B838A8383E01E -:101B30008093E9008FEF9091E800815095FD06C0F9 -:101B400095ED9A95F1F700008111F5CF8091E800AD -:101B500085FF0DC040E050E063E070E0CE010196EB -:101B60000E9425108091E8008E778093E8000F9006 -:101B70000F900F90DF91CF9108952091F0012430C4 -:101B8000F1F422E02093E9002FEF3091E80021509A -:101B900035FD06C035ED3A95F1F700002111F5CF7E -:101BA0002091E80025FF0BC040E050E065E070E0C8 -:101BB0000E9425108091E8008E778093E8000895B8 -:101BC000CF93DF93EC018091F001843009F047C09E -:101BD00080910C018823E1F080910D018823C1F0F0 -:101BE00085E08093E9008FEF9091E800815095FDAA -:101BF00006C095E19A95F1F700008111F5CF80912B -:101C0000E80085FF2CC040E050E060E170E017C0C4 -:101C100081E08093E9008FEF9091E800815095FD7D -:101C200006C095ED9A95F1F700008111F5CF8091EE -:101C3000E80085FF14C040E050E068E070E0CE01AD -:101C40000E9425108091E8008E778093E80080E163 -:101C5000FE01ADE5B1E001900D928A95E1F7DF91CB -:101C6000CF91089583E993E00E9455078091EF0199 -:101C7000811109C00E94B7110E9414128091E200E4 -:101C800084608093E20008958FE893E00E945507F6 -:101C90001092EF0108958BE893E00C94550787E8C4 -:101CA00093E00E9455070C94C92B83E893E00E94AF -:101CB00055070E94A3210E94CF2B0E94B0140C94C0 -:101CC000EE0C80915B018F5F80935B0162E30E9469 -:101CD0003D2D911135C010925B0180915C018823EC -:101CE00079F18091F001843049F58091E9008F709D -:101CF0009091EC0090FF02C090E801C090E0982B1A -:101D000084E08093E9008091EB0080FF14C0809113 -:101D1000EE0087FF10C08091E80085FF03C010929D -:101D2000F100F9CF8091E80080FF05C08091E800C4 -:101D30008E778093E8009F709093E90010925C0189 -:101D4000089542E061EC81E00E94311142E061ECD3 -:101D500082E00E94311142E061EC83E00E94311187 -:101D600042E261EC84E00E94311142E161EC85E0E5 -:101D70000C9431118091F201833009F455C030F494 -:101D8000813071F0823009F48EC008958A3009F4F0 -:101D90007AC08B3009F460C0893009F09CC020C043 -:101DA0008091F101813A09F096C08091E800877F27 -:101DB0008093E8008091F5019091F601892B21F044 -:101DC00060E080E090E003C060E18DE591E070E0CC -:101DD0000E946E108091E8008B778093E800089550 -:101DE0008091F101813209F076C08091F5019091E6 -:101DF000F601009719F0049709F06DC08091E80092 -:101E0000877F8093E8008091E80082FD05C0809183 -:101E1000F0018111F8CF5FC08091F10080936D01D6 -:101E20008091E8008B7753C08091F101813A09F0ED -:101E300052C08091F5019091F601892B09F04BC0B9 -:101E40008091E800877F8093E8008091E80080FF20 -:101E5000FCCF80910C0136C08091F1018132D9F51F -:101E60008091F5019091F601892BA9F58091E80008 -:101E7000877F8093E8000E9466118091F301809330 -:101E80000C010C94751A8091F101813221F5809139 -:101E9000E800877F8093E8000E9466118091F4013A -:101EA00080936E0108958091F101813AA1F48091AF -:101EB000E800877F8093E8008091E80080FFFCCFF6 -:101EC00080916E018093F1008091E8008E7780937D -:101ED000E8000C946611089584B7877F84BF88E179 -:101EE0000FB6F89480936000109260000FBE90E0EF -:101EF00080E80FB6F89480936100909361000FBE64 -:101F00000E9439150E94B7110E9414128091E200BC -:101F100084608093E20082EF9CE00E94E22078944B -:101F20000E948E140E943B1582E091E00E94AB1447 -:101F30000E94B72B82E793E00E9455078091F00141 -:101F4000853089F48EE693E00E9455070E94662151 -:101F50008091EE01882391F30E948E21882371F3F2 -:101F60000E940F10EBCF0E946915E8CF292F33276D -:101F700023303105A9F06CF42130310509F442C059 -:101F80002230310509F043C08DE890E02BEC33E0BE -:101F900042C021323105C9F02232310519F137C072 -:101FA00099278130910541F08230910541F0892BCC -:101FB00071F5E7ECF3E005C0EFEAF3E002C0E7E912 -:101FC000F3E0849190E09F0126C0653000F5E62F94 -:101FD000F0E0EE0FFF1FEB5DFE4F2081318189E0C5 -:101FE00090E019C0653098F4E62FF0E0DF01AA0F09 -:101FF000BB1FA55EBE4F2D913C91EA5EFE4F8081D6 -:1020000090E009C082E190E028E534E004C080E07F -:1020100090E020E030E0FA0131832083089580E1F0 -:1020200089BD82E189BD09B400FEFDCF8091D80051 -:102030008F7D8093D8008091E00082608093E000E3 -:102040008091E00081FDFCCF0895CF92DF92EF9266 -:10205000FF920F931F93CF93DF937C018B01EA01D3 -:102060000E948711811131C0209731F088819981B8 -:10207000081B190BE80EF91EC12CD12C01151105F6 -:1020800019F18091E80085FD14C08091E8008E77F9 -:102090008093E800209741F0888199818C0D9D1DE7 -:1020A0009983888385E011C00E948711882331F3CA -:1020B0000CC0F70181917F018093F100015011095B -:1020C000FFEFCF1ADF0ADACF80E0DF91CF911F91C7 -:1020D0000F91FF90EF90DF90CF9008952091F7013E -:1020E0003091F8012617370748F06115710539F46A -:1020F0002091E8002E772093E80001C0B901FC018F -:1021000020E061157105B9F18091F001882309F48F -:1021100040C0853009F43FC08091E80083FD3DC098 -:102120008091E80082FF06C08091E80082FF26C00F -:1021300080E008958091E80080FFE3CF2091F300D4 -:102140008091F20090E0922B6115710551F088307A -:10215000910538F421912093F100615071090196A5 -:10216000F3CF21E0089709F020E08091E8008E7716 -:102170008093E800C6CF2111C7CFD6CF8091F00160 -:10218000882339F0853039F08091E80083FFCCCF87 -:1021900004C082E0089583E0089581E008952091CD -:1021A000F7013091F8012617370748F061157105DE -:1021B00039F42091E8002E772093E80001C0B9019E -:1021C000FC0120E061157105C1F18091F0018823C7 -:1021D00009F441C0853009F440C08091E80083FDD6 -:1021E0003EC08091E80082FF06C08091E80082FF37 -:1021F00027C080E008958091E80080FFE3CF209120 -:10220000F3008091F20090E0922B6115710559F076 -:102210008830910540F424912093F100319661506B -:1022200071090196F2CF21E0089709F020E0809132 -:10223000E8008E778093E800C5CF2111C6CFD5CFB7 -:102240008091F001882339F0853039F08091E800E1 -:1022500083FFCBCF04C082E0089583E0089581E03E -:102260000895982F973058F59093E900981739F012 -:102270007091EC002091ED005091F00003C0242FEC -:10228000762F50E021FF19C03091EB003E7F309354 -:10229000EB003091ED003D7F3093ED003091EB008D -:1022A00031603093EB007093EC002093ED0050937D -:1022B000F0002091EE0027FF07C09F5FD3CF8F7003 -:1022C0008093E90081E0089580E008958091F10114 -:1022D00087FD05C08091E80080FF0EC012C080918C -:1022E000E80082FD05C08091F0018111F8CF0895CA -:1022F0008091E8008B7708C08091F0018111EACFCE -:1023000008958091E8008E778093E8000895809189 -:10231000E4009091E50045E62091EC0020FF21C00B -:102320002091E80020FD21C02091F001222389F0B6 -:10233000253089F02091EB0025FD0FC02091E400AD -:102340003091E5002817390739F3415041F0C901B0 -:10235000E3CF82E0089583E0089581E0089584E06A -:1023600008952091E80022FFDFCF80E008950E94C9 -:1023700025120E942D12E0EEF0E0808181608083C2 -:10238000E8EDF0E080818F77808319BCA7EDB0E0A5 -:102390008C918E7F8C9380818F7E80831092EF0151 -:1023A00008950F931F93CF93DF930E9425120E94ED -:1023B0002D12C8EDD0E088818F778883888180686E -:1023C000888388818F7D888319BC1092F0011092D8 -:1023D000EC011092EE011092ED0100EE10E0F80118 -:1023E00080818B7F808388818160888342E060E088 -:1023F00080E00E943111E1EEF0E080818E7F8083E9 -:10240000E2EEF0E08081816080838081886080835B -:10241000F80180818E7F8083888180618883DF914D -:10242000CF911F910F910895E8EDF0E080818F7EAC -:102430008083E7EDF0E080818160808384E082BF6B -:1024400081E08093EF010C94D111E8EDF0E0808100 -:102450008E7F80831092E20008951092DA0010922D -:10246000E10008951F920F920FB60F9211242F933F -:102470003F934F935F936F937F938F939F93AF930C -:10248000BF93EF93FF938091E10082FF0BC0809197 -:10249000E20082FF07C08091E1008B7F8093E10022 -:1024A0000E94610E8091DA0080FF1FC08091D800E9 -:1024B00080FF1BC08091DA008E7F8093DA008091CC -:1024C000D90080FF0DC080E189BD82E189BD09B4DA -:1024D00000FEFDCF81E08093F0010E94320E05C026 -:1024E00019BC1092F0010E94440E8091E10080FF1F -:1024F00019C08091E20080FF15C08091E2008E7FBC -:102500008093E2008091E20080618093E2008091FC -:10251000D80080628093D80019BC85E08093F001D8 -:102520000E944F0E8091E10084FF30C08091E20054 -:1025300084FF2CC080E189BD82E189BD09B400FE21 -:10254000FDCF8091D8008F7D8093D8008091E100ED -:102550008F7E8093E1008091E2008F7E8093E20085 -:102560008091E20081608093E2008091EC018823F9 -:1025700011F084E007C08091E30087FF02C083E090 -:1025800001C081E08093F0010E94550E8091E1002E -:1025900083FF29C08091E20083FF25C08091E10084 -:1025A000877F8093E10082E08093F0011092EC013C -:1025B0008091E1008E7F8093E1008091E2008E7F28 -:1025C0008093E2008091E20080618093E20042E02B -:1025D00060E080E00E9431118091F000886080937B -:1025E000F0000E944B0EFF91EF91BF91AF919F9130 -:1025F0008F917F916F915F914F913F912F910F90AC -:102600000FBE0F901F9018951F920F920FB60F924A -:1026100011242F933F934F935F936F937F938F93E7 -:102620009F93AF93BF93CF93EF93FF93C091E90034 -:10263000CF708091EC001092E9008091F000877FCC -:102640008093F00078940E9440131092E9008091EA -:10265000F00088608093F000C093E900FF91EF9153 -:10266000CF91BF91AF919F918F917F916F915F912A -:102670004F913F912F910F900FBE0F901F90189583 -:102680001F93CF93DF93CDB7DEB7AA970FB6F89419 -:10269000DEBF0FBECDBFE1EFF1E08091F10081938D -:1026A00021E0E93FF207C9F70E94BA0E8091E800E5 -:1026B00083FF1CC12091F1013091F201832F90E042 -:1026C0008A30910508F012C1FC01EA5AFF4F0C94C0 -:1026D0005D2D203881F0223809F008C18091F50184 -:1026E0008F708093E9008091EB0085FB882780F94B -:1026F0001092E90006C08091ED019091EE019111D8 -:1027000082609091E800977F9093E8008093F100B9 -:102710001092F100C5C0822F8D7F09F0E7C02223FF -:1027200019F0223061F0E2C08091F301813009F0AC -:10273000DDC0333009F080E08093EE0128C0809145 -:10274000F301811124C02091F5012F7009F4CEC04E -:102750002093E9008091EB0080FF19C08091EB008D -:10276000333011F4806211C080618093EB0081E00E -:1027700090E0022E01C0880F0A94EAF78093EA00E5 -:102780001092EA008091EB0088608093EB00109239 -:10279000E9008091E800877F86C02111A7C01091D1 -:1027A000F3011F778091E3008078812B8093E30011 -:1027B0008091E800877F8093E8000E9466118091F5 -:1027C000E80080FFFCCF8091E30080688093E30005 -:1027D000112311F083E001C082E08093F00186C0F4 -:1027E0002058223008F082C08091F3019091F401CA -:1027F0008C3D23E0920779F583E08A838AE289831E -:102800004FB7F894DE01139620E03EE051E2E32F4B -:10281000F0E050935700E49120FF03C0E295EF7081 -:102820003F5FEF708E2F90E0EA3010F0C79601C046 -:10283000C0968D939D932F5F243149F74FBF8091B0 -:10284000E800877F8093E8006AE270E0CE0101969D -:102850000E946E1014C0AE014F5F5F4F6091F50192 -:102860000E94B60F009709F441C02091E800277F2D -:102870002093E800BC0189819A810E94CF10809149 -:10288000E8008B778093E80031C0203879F580919B -:10289000E800877F8093E8008091EC018093F1004D -:1028A0008091E8008E778093E8000E9466111EC038 -:1028B00021111CC09091F3019230C0F48091E80086 -:1028C000877F8093E8009093EC010E9466118091CD -:1028D000EC01811104C08091E30087FF02C084E015 -:1028E00001C081E08093F0010E94A10E8091E80078 -:1028F00083FF0AC08091E800877F8093E800809181 -:10290000EB0080628093EB00AA960FB6F894DEBFCE -:102910000FBECDBFDF91CF911F910895CF938091CE -:10292000F0018823B1F08091E9008F709091EC0064 -:1029300090FF02C090E801C090E0C92FC82B109210 -:10294000E9008091E80083FD0E944013CF70C0939E -:10295000E900CF91089590937401809373010895D5 -:10296000E0917301F0917401309721F00190F081B2 -:10297000E02D099480E00895FF920F931F93CF9369 -:10298000DF938C01E0917301F0917401309799F11C -:102990000280F381E02D09958091D70182FF2BC041 -:1029A00080FF04C08DE895E00E945507E80180E1B2 -:1029B000F82E07E815E08091D70180FF0BC08881D1 -:1029C0001F928F931F930F930E94EE070F900F900B -:1029D0000F900F90FA942196F110EDCF8091D701CE -:1029E00080FF09C085E895E0DF91CF911F910F919D -:1029F000FF900C945507DF91CF911F910F91FF909D -:102A00000895E0917301F0917401309721F00480F2 -:102A1000F581E02D099408952091710130917201A2 -:102A20008217930771F09093720180937101E09186 -:102A30007301F0917401309721F00680F781E02D49 -:102A40000994089520916F013091700182179307C6 -:102A500071F09093700180936F01E0917301F09198 -:102A60007401309721F00084F185E02D09940895D8 -:102A700008950C9438150E94A5210E9439090C94E0 -:102A80006B22CF93C82F8091D70182FF1EC080FF99 -:102A900004C086EA95E00E9455078091D70180FF27 -:102AA0000CC01F92CF9321EA35E03F932F930E94F1 -:102AB000EE070F900F900F900F908091D70180FF3D -:102AC00004C08FE995E00E9455078C2FCF910C949C -:102AD000EE0CCF92DF92EF92FF920F931F93CF9362 -:102AE000DF93CDB7DEB72B970FB6F894DEBF0FBEDE -:102AF000CDBF0E94560936E7E32E31E0F32E00E009 -:102B000010E0C02E802F0E94810AF701D1907F0132 -:102B1000D826B1F40F5F1F4F0E30110591F78FEFDC -:102B200089838A831B820E94AE218160782F9D83D6 -:102B30008C8349815A816B818D810E940C1641C022 -:102B40009091D70191FF04C08B870E94870A8B85E3 -:102B500020E030E04D2D50E0922FBA01022E02C04D -:102B6000759567950A94E2F760FF25C02E83CF82A2 -:102B7000EE24E394F12C02C0EE0CFF1C9A95E2F7D0 -:102B800090E08E219F2121E0892B09F420E0288705 -:102B90000E94AE218160782F9A8789874E815F815C -:102BA00068858A850E940C16F801EA58FE4F8081DC -:102BB0008E25808306C02F5F3F4F2630310561F69A -:102BC000A9CF0E94D925109175010E94B014181741 -:102BD000A1F00E94B014809375012B960FB6F89463 -:102BE000DEBF0FBECDBFDF91CF911F910F91FF9040 -:102BF000EF90DF90CF900C9441152B960FB6F89480 -:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F -:102C1000EF90DF90CF900895CF93DF93CDB7DEB7DD -:102C20002B970FB6F894DEBF0FBECDBF4F835887EA -:102C300069877A878B87DE01119686E0FD01119204 -:102C40008A95E9F785E0FE01379601900D928A9505 -:102C5000E1F749815A816B817C818D819E810E943F -:102C6000411D2B960FB6F894DEBF0FBECDBFDF918E -:102C7000CF910895CF93C82F882309F4C1C082381B -:102C800059F40E94B01481FDBBC089E30E94E01F8B -:102C90000E94BC2089E30CC0833879F40E94B014F0 -:102CA00080FDAEC083E50E94E01F0E94BC2083E54A -:102CB0000E943120CF910C94BC20843859F40E949A -:102CC000B01482FD9DC087E40E94E01F0E94BC20DA -:102CD00087E4EECF8CEF8C0F813A48F48C2F0E9462 -:102CE000622A81118DC08C2F0E94E01FE3CF80E209 -:102CF0008C0F883048F4C77081E001C0880FCA95F6 -:102D0000EAF70E948320D6CF8BE58C0F833078F4CE -:102D1000C53A29F0C63A31F482E890E005C081E86E -:102D200090E002C083E890E0CF910C940C1588E508 -:102D30008C0F833108F064C0C83A39F1C93A41F1C7 -:102D4000CA3A49F1CB3A51F1CC3A59F1CD3A61F155 -:102D5000C03B69F1CE3A71F1CF3A79F1C13B81F1D3 -:102D6000C23B89F1C33B91F1C43B99F1C53BA1F151 -:102D7000C63BA9F1C73BB1F1C83BB9F1C93BC1F1B1 -:102D8000CA3BC9F58AE292E038C082EE90E035C0D5 -:102D900089EE90E032C08AEE90E02FC085EB90E0A3 -:102DA0002CC086EB90E029C087EB90E026C08CEC2D -:102DB00090E023C08DEC90E020C083E891E01DC03E -:102DC0008AE891E01AC082E991E017C084E991E0B5 -:102DD00014C081E292E011C083E292E00EC084E26E -:102DE00092E00BC085E292E008C086E292E005C066 -:102DF00087E292E002C080E090E0CF910C9422152F -:102E0000CF910895882309F44BC0823859F40E9469 -:102E1000B01481FF45C089E30E94E01F0E94BC20DE -:102E200089E30CC0833871F40E94B01480FF38C06D -:102E300083E50E94E01F0E94BC2083E50E943120B0 -:102E40000C94BC20843859F40E94B01482FF28C02E -:102E500087E40E94E01F0E94BC2087E4EFCF9CEF34 -:102E6000980F913A58F390E2980F983050F4877089 -:102E700091E001C0990F8A95EAF7892F0E94892075 -:102E8000DFCF9BE5980F933020F480E090E00C9426 -:102E90000C15885A833120F480E090E00C942215C0 -:102EA0000895882321F00E9483200C94BC2008956B -:102EB000882321F00E9489200C94BC200895CF9291 -:102EC000DF92EF92FF920F931F93CF93DF93CDB7D3 -:102ED000DEB728970FB6F894DEBF0FBECDBF8C01CA -:102EE00085E0F801DE01119601900D928A95E1F7D7 -:102EF000F80140813181F280258122952F708381F4 -:102F00009481892B31F03F3F31F481E04F3F19F438 -:102F100003C081E001C080E080FDC6C249833A83DE -:102F200089819A812F830E949E1F9E8388870E9499 -:102F30009D1F0E94701E4E81E42FE295EF70F0E01D -:102F4000E05AFF4F2F8168850C945D2D842F807F80 -:102F5000142F1F70882311F01295107FFF2059F055 -:102F6000112309F456C2812F68870E9493200E9482 -:102F7000BC2068854EC2862F0E940217112309F4D7 -:102F800093C2812F0E94992028960FB6F894DEBF35 -:102F90000FBECDBFDF91CF911F910F91FF90EF90AA -:102FA000DF90CF900C94BC20342F307F842F8F7013 -:102FB000303211F08295807F662319F0613019F16B -:102FC0002CC0FF20B1F0222309F494C1213009F074