From 5adc810e8cecc3b56911183db66e4e19abb18818 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 20 Jan 2016 05:19:50 +0200 Subject: New per-folder format for ErgoDox EZ keymaps --- keyboard/ergodox_ez/Makefile | 4 +- keyboard/ergodox_ez/README.md | 19 +- .../ergodox_ez/keymaps/andrew/keymap_andrew_osx.c | 187 +++ .../keymaps/coderkun_neo2/keymap_coderkun_neo2.c | 137 ++ keyboard/ergodox_ez/keymaps/dave/keymap_dave.c | 195 +++ .../ergodox_ez/keymaps/default/keymap_default.c | 184 +++ .../ergodox_ez/keymaps/default/keymap_default.png | Bin 0 -> 184852 bytes .../keymaps/default/keymap_default_highres.png | Bin 0 -> 770673 bytes .../keymaps/default/keymap_default_osx_highres.png | Bin 0 -> 772418 bytes keyboard/ergodox_ez/keymaps/default/readme.md | 5 + .../keymaps/default_osx/keymap_default_osx.c | 187 +++ keyboard/ergodox_ez/keymaps/default_osx/readme.md | 6 + .../keymaps/dragon788/keymap_dragon788.c | 229 +++ keyboard/ergodox_ez/keymaps/dvorak/keymap_dvorak.c | 184 +++ .../ergodox_ez/keymaps/dvorak/keymap_dvorak.png | Bin 0 -> 87314 bytes .../erez_experimental/keymap_erez_experimental.c | 190 +++ keyboard/ergodox_ez/keymaps/german/keymap_german.c | 185 +++ keyboard/ergodox_ez/keymaps/j3rn/keymap_j3rn.c | 186 +++ keyboard/ergodox_ez/keymaps/jack/keymap_jack.c | 185 +++ keyboard/ergodox_ez/keymaps/jgarr/keymap_jgarr.c | 184 +++ .../ergodox_ez/keymaps/kastyle/keymap_kastyle.c | 184 +++ keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c | 187 --- keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex | 1471 ------------------- keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c | 137 -- keyboard/ergodox_ez/keymaps/keymap_dave.c | 195 --- keyboard/ergodox_ez/keymaps/keymap_dave.hex | 1483 ------------------- keyboard/ergodox_ez/keymaps/keymap_default.c | 184 --- keyboard/ergodox_ez/keymaps/keymap_default.hex | 1472 ------------------- keyboard/ergodox_ez/keymaps/keymap_default.png | Bin 184852 -> 0 bytes .../ergodox_ez/keymaps/keymap_default_highres.png | Bin 770673 -> 0 bytes keyboard/ergodox_ez/keymaps/keymap_default_osx.c | 187 --- keyboard/ergodox_ez/keymaps/keymap_default_osx.hex | 1467 ------------------- .../keymaps/keymap_default_osx_highres.png | Bin 772418 -> 0 bytes keyboard/ergodox_ez/keymaps/keymap_dragon788.c | 229 --- keyboard/ergodox_ez/keymaps/keymap_dvorak.c | 184 --- keyboard/ergodox_ez/keymaps/keymap_dvorak.png | Bin 87314 -> 0 bytes .../ergodox_ez/keymaps/keymap_erez_experimental.c | 190 --- keyboard/ergodox_ez/keymaps/keymap_german.c | 185 --- keyboard/ergodox_ez/keymaps/keymap_j3rn.c | 186 --- keyboard/ergodox_ez/keymaps/keymap_jack.c | 185 --- keyboard/ergodox_ez/keymaps/keymap_jgarr.c | 184 --- keyboard/ergodox_ez/keymaps/keymap_kastyle.c | 184 --- keyboard/ergodox_ez/keymaps/keymap_kines-ish.c | 184 --- .../ergodox_ez/keymaps/keymap_kines-ish_README.md | 19 - keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 277 ---- keyboard/ergodox_ez/keymaps/keymap_osx_de.hex | 1509 -------------------- .../ergodox_ez/keymaps/keymap_osx_de_README.md | 27 - .../ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c | 262 ---- .../ergodox_ez/keymaps/keymap_osx_de_highres.png | Bin 749565 -> 0 bytes keyboard/ergodox_ez/keymaps/keymap_osx_fr.c | 187 --- keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex | 1471 ------------------- .../ergodox_ez/keymaps/keymap_osx_kinesis_pnut.c | 191 --- keyboard/ergodox_ez/keymaps/keymap_plover.c | 228 --- keyboard/ergodox_ez/keymaps/keymap_software_neo2.c | 139 -- .../ergodox_ez/keymaps/keymap_workman_osx_mdw.c | 366 ----- .../keymaps/kines-ish/keymap_kines-ish.c | 184 +++ .../keymaps/kines-ish/keymap_kines-ish_README.md | 19 + keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de.c | 277 ++++ .../keymaps/osx_de/keymap_osx_de_README.md | 27 + .../keymaps/osx_de/keymap_osx_de_adnw_koy.c | 262 ++++ .../keymaps/osx_de/keymap_osx_de_highres.png | Bin 0 -> 749565 bytes keyboard/ergodox_ez/keymaps/osx_fr/keymap_osx_fr.c | 187 +++ .../osx_kinesis_pnut/keymap_osx_kinesis_pnut.c | 191 +++ keyboard/ergodox_ez/keymaps/plover/keymap_plover.c | 228 +++ .../keymaps/software_neo2/keymap_software_neo2.c | 139 ++ .../wormak_osx_mdw/keymap_workman_osx_mdw.c | 366 +++++ 66 files changed, 4326 insertions(+), 13175 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/andrew/keymap_andrew_osx.c create mode 100644 keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap_coderkun_neo2.c create mode 100644 keyboard/ergodox_ez/keymaps/dave/keymap_dave.c create mode 100644 keyboard/ergodox_ez/keymaps/default/keymap_default.c create mode 100644 keyboard/ergodox_ez/keymaps/default/keymap_default.png create mode 100644 keyboard/ergodox_ez/keymaps/default/keymap_default_highres.png create mode 100644 keyboard/ergodox_ez/keymaps/default/keymap_default_osx_highres.png create mode 100644 keyboard/ergodox_ez/keymaps/default/readme.md create mode 100644 keyboard/ergodox_ez/keymaps/default_osx/keymap_default_osx.c create mode 100644 keyboard/ergodox_ez/keymaps/default_osx/readme.md create mode 100644 keyboard/ergodox_ez/keymaps/dragon788/keymap_dragon788.c create mode 100644 keyboard/ergodox_ez/keymaps/dvorak/keymap_dvorak.c create mode 100644 keyboard/ergodox_ez/keymaps/dvorak/keymap_dvorak.png create mode 100644 keyboard/ergodox_ez/keymaps/erez_experimental/keymap_erez_experimental.c create mode 100644 keyboard/ergodox_ez/keymaps/german/keymap_german.c create mode 100644 keyboard/ergodox_ez/keymaps/j3rn/keymap_j3rn.c create mode 100644 keyboard/ergodox_ez/keymaps/jack/keymap_jack.c create mode 100644 keyboard/ergodox_ez/keymaps/jgarr/keymap_jgarr.c create mode 100644 keyboard/ergodox_ez/keymaps/kastyle/keymap_kastyle.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_dave.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_dave.hex delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_default.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_default.hex delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_default.png delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_default_highres.png delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_default_osx.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_default_osx.hex delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_default_osx_highres.png delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_dragon788.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_dvorak.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_dvorak.png delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_erez_experimental.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_german.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_j3rn.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_jack.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_jgarr.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_kastyle.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_kines-ish.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_de.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_de.hex delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_de_README.md delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_fr.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_kinesis_pnut.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_plover.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_software_neo2.c delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_workman_osx_mdw.c create mode 100644 keyboard/ergodox_ez/keymaps/kines-ish/keymap_kines-ish.c create mode 100644 keyboard/ergodox_ez/keymaps/kines-ish/keymap_kines-ish_README.md create mode 100644 keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de.c create mode 100644 keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_README.md create mode 100644 keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_adnw_koy.c create mode 100644 keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_highres.png create mode 100644 keyboard/ergodox_ez/keymaps/osx_fr/keymap_osx_fr.c create mode 100644 keyboard/ergodox_ez/keymaps/osx_kinesis_pnut/keymap_osx_kinesis_pnut.c create mode 100644 keyboard/ergodox_ez/keymaps/plover/keymap_plover.c create mode 100644 keyboard/ergodox_ez/keymaps/software_neo2/keymap_software_neo2.c create mode 100644 keyboard/ergodox_ez/keymaps/wormak_osx_mdw/keymap_workman_osx_mdw.c diff --git a/keyboard/ergodox_ez/Makefile b/keyboard/ergodox_ez/Makefile index 03c806131d..54cea1cec1 100644 --- a/keyboard/ergodox_ez/Makefile +++ b/keyboard/ergodox_ez/Makefile @@ -31,9 +31,9 @@ SRC = ergodox_ez.c \ matrix.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP)/keymap_$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default/keymap_default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/ergodox_ez/README.md b/keyboard/ergodox_ez/README.md index 51f1e2aa5a..7c41072a14 100644 --- a/keyboard/ergodox_ez/README.md +++ b/keyboard/ergodox_ez/README.md @@ -17,14 +17,27 @@ This requires a little bit of familiarity with coding. 2. Clone the repository (download it) 3. Set up a build environment as per [pjrc.com/teensy/gcc.html](https://www.pjrc.com/teensy/gcc.html) - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` -4. Copy `keymaps/keymap_default.c` into `keymaps/keymap_your_name.c` (for example, `keymaps/keymap_german.c`) -5. Edit this file, changing keycodes to your liking (see "Finding the keycodes you need" below). Try to edit the comments as well, so the "text graphics" represent your layout correctly. +4. Copy `keymaps/default/keymap_default.c` into `keymaps/your_name/keymap_your_name.c` (for example, `keymaps/german/keymap_german.c`) +5. Edit this file, changing keycodes to your liking (see "Finding the keycodes you need" below). Try to edit the comments as well, so the "text graphics" represent your layout correctly. See below for more tips on sharing your work. 6. Compile your firmware by running `make clean` followed by `make KEYMAP=your_name`. Note that you must omit the `keymap_` prefix for your filename in this command -- for example, `make KEYMAP=german`. This will result in a hex file, which will always be called `ergodox_ez.hex`, regardless of your keymap name. 6. Flash this hex file using the [Teensy loader](https://www.pjrc.com/teensy/loader.html) as described in step 4 in the "Easy Way" above. -7. Submit your work as a pull request to this repository, so others can also use it. :) +7. Submit your work as a pull request to this repository, so others can also use it. :) See below on specifics. Good luck! :) +## Contributing your keymap + +The ErgoDox EZ firmware is open-source, so it would be wonderful to have your contribution! Within a very short time after launching we already amassed almost 20 user-contributed keymaps, with all sorts of creative improvements and tweaks. This is very valuable for people who aren't comfortable coding, but do want to customize their ErgoDox EZ. To make it easy for these people to use your layout, I recommend submitting your PR in the following format. + +Assuming a keymap named `keymap_josh.c`: + +1. All work goes inside `keymaps/josh`. +2. `keymap_josh.c` - this is your actual keymap file; please update the ASCII comments in the file so they correspond with what you did. +3. `keymap_josh.hex` - a compiled version of your keymap. Commit it to the repo with `git add -f` as hex files are ignored by default. This allows people to just download your hex file and flash it without having to set up a build toolchain to make it. +3. `readme.md` - a Readme file, which GitHub would display by default when people go to your directory. Explain what's different about your keymap, what you tweaked or how it works. No specific format to follow, just communicate what you did. :) +4. Any graphics you wish to add. This is absolutely not a must. If you feel like it, you can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to make something and grab a screenshot, but it's really not a must. If you do have graphics, your Readme can just embed the graphic as a link, just like I did with the default layout. + + ## Finding the keycodes you need Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`. diff --git a/keyboard/ergodox_ez/keymaps/andrew/keymap_andrew_osx.c b/keyboard/ergodox_ez/keymaps/andrew/keymap_andrew_osx.c new file mode 100644 index 0000000000..48f8c5d2ff --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/andrew/keymap_andrew_osx.c @@ -0,0 +1,187 @@ +// Netable differences vs. the default firmware for the ErgoDox EZ: +// 1. The Cmd key is now on the right side, making Cmd+Space easier. +// 2. The media keys work on OSX (But not on Windows). +#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 | '" | | '" | 6 | 7 | 8 | 9 | 0 | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | - | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| / | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| Alt |AltShf| Left | Right| | Up | Down | [ | ] | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Esc |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | ( | | { | | | + * | Space| LGui |------| |------| RGui |Enter | + * | | | ) | | } | | | + * `--------------------' `----------------------' + */ +// 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_QUOT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_FN1, + CTL_T(KC_ESC), 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_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_LPRN, + KC_SPC,KC_LGUI,KC_RPRN, + // right hand + KC_QUOT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_FN1, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_BSLS, + 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, TG(1), + KC_ESC, CTL_T(KC_ESC), + KC_LCBR, + KC_RCBR,KC_RGUI, 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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 +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/coderkun_neo2/keymap_coderkun_neo2.c b/keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap_coderkun_neo2.c new file mode 100644 index 0000000000..bec67e7d4c --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap_coderkun_neo2.c @@ -0,0 +1,137 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_neo2.h" + +// Layer names +#define BASE 0 // default layer +#define FMU 1 // FMU layer + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Layer 0 (default) + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │ │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[BASE] = KEYMAP( + // left hand + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + NEO_Y, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_HOME, + NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, + KC_LSFT, NEO_UE, NEO_OE, NEO_AE, NEO_P, NEO_Z, KC_TRNS, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,NEO_L2_L, + KC_LEFT, KC_UP, + KC_MINS, + KC_SPC, KC_ENT, ALL_T(KC_NO), + // right hand + DE_ACUT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_END, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, + NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R, + KC_TRNS, NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT, + NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), +/* Layer 1 (F-keys, Mouse and Unicode) + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤ │ │ ├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ │ │(MO1)│ │ │ │ │ │(MO1)│ │ │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ Ms← │ Ms↑ │ │ Ms↓ │ Ms→ │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ MLC │ │ MRC │ │ │ + * │ │ ├─────┤ ├─────┤ │ │ + * │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[FMU] = KEYMAP( + // left hand + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),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_MS_L, KC_MS_U, + KC_BTN1, + 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_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS,KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, + KC_TRNS, KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_MS_D, KC_MS_R, + KC_BTN2, + KC_TRNS, KC_TRNS,KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(FMU) +}; + + +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 FMU: + ergodox_right_led_1_on(); + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/dave/keymap_dave.c b/keyboard/ergodox_ez/keymaps/dave/keymap_dave.c new file mode 100644 index 0000000000..a0c74ad805 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dave/keymap_dave.c @@ -0,0 +1,195 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define PROG 1 // symbols +#define NAVI 2 // navigation keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | BkSpce | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Y | | G | Y | U | I | O | P | Enter | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | + * |--------+------+------+------+------+------| H | | B |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |`/Ctrl| \ | | | LAlt | | RAlt | | [ | ] |'/Ctrl| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | PrtS | Apps | | Paus | CtAl | + * ,------+------+------| |------+------+------. + * | | | L1 | | L1 | | | + * | Spce | ~L2 +------| |------+ ~L1 | Spce | + * | | | LGui | | RGui | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H, + CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT, + KC_PSCREEN, KC_APP, + TO(PROG, ON_PRESS), + KC_SPC, MO(NAVI), KC_LGUI, + // right hand + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_G, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, + KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_RALT,KC_NO, KC_LBRC,KC_RBRC, CTL_T(KC_QUOT), + KC_PAUS, MT(0x5, KC_NO), + TO(PROG, ON_PRESS), + KC_RGUI, MO(PROG), KC_SPC + ), + +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | K/ | K* | K- | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | ( | ) | | | | | | | K7 | K8 | K9 | K+ | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | { | } | ` |------| |------| | K4 | K5 | K6 | K+ | ' | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | K1 | K2 | K3 | K= | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | K0 | K0 | K. | K= | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | L2 | | L2 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[PROG] = KEYMAP( + // left hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, 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, + TO(NAVI, ON_PRESS), + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_EQUAL, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NUHS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_QUOT, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS, + KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_TRNS, + KC_TRNS, KC_TRNS, + TO(NAVI, ON_PRESS), + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: Navigation and system keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Home | Up | End | Ins | PgUp | | | | | | Ins | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Left | Down | Rght | Del | PgDn |------| |------| | Back | Del | Fwrd | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Lclk | MsUp | Rclk | | | | | | | Prev | Play | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | MsLt | MsDn | MsRt | | |VolDn | Mute |VolUp | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Powr | Log | | | | + * ,------|------|------| |------+------+------. + * | | | L0 | | L0 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NAVI] = KEYMAP( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_INS, KC_PGUP, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DELT, KC_PGDN, + KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_PWR, LCTL(LALT(KC_DELT)), + TO(BASE, ON_PRESS), + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_WBAK, KC_DELT, KC_WFWD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + TO(BASE, ON_PRESS), + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + //[1] = ACTION_LAYER_TAP_TOGGLE(PROG), // FN1 - Momentary Layer 1 (Symbols) + //[2] = ACTION_LAYER_TAP_TOGGLE(NAVI) // FN2 - Momentary Layer 2 (Navigation) +}; + +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) { + return NULL; +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + /* leds is a static array holding the current brightness of each of the + * three keyboard LEDs. It's 4 long simply to avoid the ugliness of +1s and + * -1s in the code below, and because wasting a byte really doesn't matter + * that much (no, it *doesn't*, stop whinging!). Note that because it's + * static it'll maintain state across invocations of this routine. + */ + static uint8_t leds[4]; + uint8_t led; + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + + /* Loop over each LED/layer */ + for (led = 1; led <= 3; ++led) { + /* If the current layer matches the current LED, increment its + * brightness by 1 up to a maximum of 255. If the current layer doesn't + * match, decrement its brightness by 1 down to a minimum of zero. + */ + leds[led] += (layer == led) ? + (leds[led] < 255 ? 1 : 0): + (leds[led] > 0 ? -1 : 0); + /* Set LED state according to the new brightness */ + if (leds[led]) { + ergodox_right_led_on(led); + ergodox_right_led_set(led, leds[led]); + } + else { + ergodox_right_led_off(led); + } + } + + return NULL; +}; diff --git a/keyboard/ergodox_ez/keymaps/default/keymap_default.c b/keyboard/ergodox_ez/keymaps/default/keymap_default.c new file mode 100644 index 0000000000..b2f0a051d5 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/default/keymap_default.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 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |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_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, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,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, 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, + 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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/default/keymap_default.png b/keyboard/ergodox_ez/keymaps/default/keymap_default.png new file mode 100644 index 0000000000..f0c5840153 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/default/keymap_default.png differ diff --git a/keyboard/ergodox_ez/keymaps/default/keymap_default_highres.png b/keyboard/ergodox_ez/keymaps/default/keymap_default_highres.png new file mode 100644 index 0000000000..169d31367c Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/default/keymap_default_highres.png differ diff --git a/keyboard/ergodox_ez/keymaps/default/keymap_default_osx_highres.png b/keyboard/ergodox_ez/keymaps/default/keymap_default_osx_highres.png new file mode 100644 index 0000000000..04f46bbd54 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/default/keymap_default_osx_highres.png differ diff --git a/keyboard/ergodox_ez/keymaps/default/readme.md b/keyboard/ergodox_ez/keymaps/default/readme.md new file mode 100644 index 0000000000..5f79164699 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# ErgoDox EZ Default Configuration + +This is what we ship with out of the factory. :) The image says it all: + +![keymap_default.png] diff --git a/keyboard/ergodox_ez/keymaps/default_osx/keymap_default_osx.c b/keyboard/ergodox_ez/keymaps/default_osx/keymap_default_osx.c new file mode 100644 index 0000000000..9d7364d378 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/default_osx/keymap_default_osx.c @@ -0,0 +1,187 @@ +// Netable differences vs. the default firmware for the ErgoDox EZ: +// 1. The Cmd key is now on the right side, making Cmd+Space easier. +// 2. The media keys work on OSX (But not on Windows). +#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 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |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_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + 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, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + 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, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_LGUI, + 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, + 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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 +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/default_osx/readme.md b/keyboard/ergodox_ez/keymaps/default_osx/readme.md new file mode 100644 index 0000000000..809e8a5851 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/default_osx/readme.md @@ -0,0 +1,6 @@ +# The OSX Friendly Version of the Default Firmware + +So, I took the default firmware and just made a couple of tweaks that make it easier to use with OS X: + +1. The Cmd key is now on the right side, making Cmd+Space easier. +2. The media keys work on OSX (But not on Windows). diff --git a/keyboard/ergodox_ez/keymaps/dragon788/keymap_dragon788.c b/keyboard/ergodox_ez/keymaps/dragon788/keymap_dragon788.c new file mode 100644 index 0000000000..d18ce73bfe --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dragon788/keymap_dragon788.c @@ -0,0 +1,229 @@ +#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 +#define PLVR 3 // Plover layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LGui | |Plover| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | '"/Ctrl| + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | Grv | '" | Left |Rgt/L2| | Up/L2| Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | Home | | PgUp |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | End | | PgDn | | | + * |Backsp|Delete|------| |------| Enter |Space | + * | ace | | LAlt | |TabCtl| | | + * `--------------------' `----------------------' + */ +// 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_LGUI, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + CTL_T(KC_ESC), 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_FN1, KC_GRV, KC_QUOT,KC_LEFT, LT(MDIA, KC_RGHT), + KC_APP, KC_HOME, + KC_END, + KC_BSPC,KC_DELT,KC_LALT, + // right hand + TG(3), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + LT(MDIA, KC_UP), KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_PGUP, CTL_T(KC_ESC), + KC_PGDN, + CTL_T(KC_TAB),KC_ENT, KC_SPC + ), +/* 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 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | Calc | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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_CALC, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | Rclk | Lclk | | | | | | Lclk | Rclk | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft| MsUp |MsDown|MsRght|------| |------|MsLeft|MsDown| MsUp |MsRght| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | Prev | |VolUp | | + * ,------|------|------| |------+------+------. + * | | | Play | | Mute |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Fwd |Back | + * | | | Next | |VolDn | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_U, 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_TRNS, + KC_TRNS, KC_MPRV, + KC_MPLY, + KC_BTN1, KC_BTN2, KC_MNXT, + // right hand + 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_MS_L, KC_MS_D, KC_MS_U, 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_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_TRNS, + KC_MUTE, + KC_VOLD, KC_WBAK, KC_WFWD +), + +/* Keymap 4: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | a | s | d | f | g | | | | h | j | k | l | ; | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | c | v |------| |------| n | m | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( // layout: layer 4: Steno for Plover + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, + KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_FN4, KC_NO, + KC_NO, + KC_C, KC_V, KC_NO, + // right hand + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M +), + +}; + +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/dvorak/keymap_dvorak.c b/keyboard/ergodox_ez/keymaps/dvorak/keymap_dvorak.c new file mode 100644 index 0000000000..53934ea345 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak/keymap_dvorak.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 | \ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |------| D | H | T | N |S / L2| - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |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_DELT, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1), + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS, + MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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 +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/dvorak/keymap_dvorak.png b/keyboard/ergodox_ez/keymaps/dvorak/keymap_dvorak.png new file mode 100644 index 0000000000..cb83163095 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/dvorak/keymap_dvorak.png differ diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap_erez_experimental.c b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap_erez_experimental.c new file mode 100644 index 0000000000..667078517c --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap_erez_experimental.c @@ -0,0 +1,190 @@ +#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 + +/* About this file: This is just an experimental keymap for my own use, with some ideas I'm testing out. +* Changlog: +* Jan 19: * Made J into dual-action key (Alt when held down), to make Alt-tab more ergonomic. +* * Made ' into dual-action key (Win/Cmd when held down). +*/ + +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 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | Alt/J| K | L |; / L2| LGui/' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |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_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, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,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,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(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, + 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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/german/keymap_german.c b/keyboard/ergodox_ez/keymaps/german/keymap_german.c new file mode 100644 index 0000000000..d91f1e9373 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german/keymap_german.c @@ -0,0 +1,185 @@ +#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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | 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 | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | 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; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/j3rn/keymap_j3rn.c b/keyboard/ergodox_ez/keymaps/j3rn/keymap_j3rn.c new file mode 100644 index 0000000000..ddc64e55e7 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/j3rn/keymap_j3rn.c @@ -0,0 +1,186 @@ +#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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Grv | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | Home | | PgUp |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | End | | PgDn | | | + * |Space | LGui |------| |------| Tab |Enter | + * | | |Shift | | Alt | | | + * `--------------------' `----------------------' + */ +// 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, + CTL_T(KC_ESC), 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), + KC_FN1, KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + + ALT_T(KC_APP), KC_HOME, + KC_END, + KC_SPC, KC_LGUI, KC_LSHIFT, + // right hand + KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_EQL, 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, + + KC_PGUP, CTL_T(KC_ESC), + KC_PGDN, + KC_LALT, 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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 +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/jack/keymap_jack.c b/keyboard/ergodox_ez/keymaps/jack/keymap_jack.c new file mode 100644 index 0000000000..2677a3d8fa --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jack/keymap_jack.c @@ -0,0 +1,185 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +// TODO: Define layer names that make sense for the ErgoDox EZ. +#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 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |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_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, + KC_NO, KC_LCTL, KC_LALT,KC_LGUI, MO(2), + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_SPC,KC_END, + // right hand + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT, + MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, + KC_NO, KC_NO, + KC_PGUP, + KC_PGDN, KC_SPC,KC_SPC + ), +/* 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,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_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, + KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + 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 +KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, + KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +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/jgarr/keymap_jgarr.c b/keyboard/ergodox_ez/keymaps/jgarr/keymap_jgarr.c new file mode 100644 index 0000000000..fbdc25109e --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jgarr/keymap_jgarr.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 + * + * ,--------------------------------------------------. ,-----------------------------------------------------. + * | Grv | 1 | 2 | 3 | 4 | 5 | Del | |Backspace| 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+------+-------------| |---------+------+------+------+------+------+--------| + * | Tab | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I |------| |---------| D | H | T | N |S / L2| - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `----------------+------+------+------+------+--------' + * | Ctrl | LGui | Alt | Left | Right| | Up | Down | [ | ] | = | + * `----------------------------------' `----------------------------------' + * ,--------------. ,-------------. + * | AltShf| LGui | | Alt | ~L1 | + * ,------|-------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp |------| |------| 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1), + CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), + KC_LCTL, KC_LGUI, KC_LALT, KC_LEFT, KC_RGHT, + LALT(KC_LSFT), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS, + MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_EQL, + KC_LALT, KC_FN1, + KC_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +/* 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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 +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/kastyle/keymap_kastyle.c b/keyboard/ergodox_ez/keymaps/kastyle/keymap_kastyle.c new file mode 100644 index 0000000000..ecf1be8724 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/kastyle/keymap_kastyle.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 | LGUI | | App | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,---------------. ,---------------. + * |Ctrl/Esc| Alt | | Alt |Ctrl/Esc| + * ,------|--------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Backsp| 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + KC_LCTL, 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, + CTL_T(KC_ESC), ALT_T(KC_APP), + KC_HOME, + KC_BSPC,KC_DEL,KC_END, + // right hand + KC_APP, 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, + 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, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +/* 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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 +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_andrew_osx.c b/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c deleted file mode 100644 index 48f8c5d2ff..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c +++ /dev/null @@ -1,187 +0,0 @@ -// Netable differences vs. the default firmware for the ErgoDox EZ: -// 1. The Cmd key is now on the right side, making Cmd+Space easier. -// 2. The media keys work on OSX (But not on Windows). -#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 | '" | | '" | 6 | 7 | 8 | 9 | 0 | BkSp | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | - | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| / | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| Alt |AltShf| Left | Right| | Up | Down | [ | ] | L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Esc |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | ( | | { | | | - * | Space| LGui |------| |------| RGui |Enter | - * | | | ) | | } | | | - * `--------------------' `----------------------' - */ -// 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_QUOT, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_FN1, - CTL_T(KC_ESC), 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_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, - ALT_T(KC_APP), KC_LGUI, - KC_LPRN, - KC_SPC,KC_LGUI,KC_RPRN, - // right hand - KC_QUOT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_FN1, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_BSLS, - 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, TG(1), - KC_ESC, CTL_T(KC_ESC), - KC_LCBR, - KC_RCBR,KC_RGUI, 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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 -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_andrew_osx.hex b/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex deleted file mode 100644 index e3ee9afd3e..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex +++ /dev/null @@ -1,1471 +0,0 @@ -:100000000C9400070C9444070C9444070C94440788 -:100010000C9444070C9444070C9444070C94440734 -:100020000C9444070C9444070C9458120C942A1313 -:100030000C9444070C9444070C9444070C94440714 -:100040000C9444070C94022C0C9444070C94440721 -:100050000C9444070C94FA210C9444070C94440724 -:100060000C9444070C9444070C9444070C944407E4 -:100070000C9444070C9444070C9444070C944407D4 -:100080000C9444070C9444070C9444070C944407C4 -:100090000C9444070C9444070C9444070C944407B4 -:1000A0000C9444070C9444070C9444079713B91319 -:1000B000A714B913A714FE132114A71476148914D6 -:1000C000D017D017FF17FF17431881189B1A9B1AD8 -:1000D0009A189B1A9B199B196F1A9B1A9B1A861ABE -:1000E0000000F0A12E002B002971E10035810000F5 -:1000F0001E00140004001D71E20027021F001A00F8 -:1001000016001B00E104E3002000080007000600C1 -:1001100050002C0021001500090019004F00260294 -:10012000220017000A000500000065743400C100B9 -:100130000000007F0000E3003400C10000000077F1 -:100140000000290023001C000B0011000000297191 -:10015000240018000D00100052002F0225000C0092 -:100160000E00360051002800260012000F00370054 -:100170002F00E7002700130033823871300030026F -:100180002A002D003100E5000154000001000100AB -:1001900001000100010000003A001E0220022202BC -:1001A000010001003B001F022102230201000100A7 -:1001B0003C002F0226022F00010001003D0030020A -:1001C00027023000010001003E00310235003502F7 -:1001D000000001000100010000000100000001001A -:1001E0000100010000000100000001003F0052007A -:1001F00051002402000001004000240021001E00E4 -:10020000010001004100250022001F00370001000D -:1002100042002600230020002700010043002502A1 -:100220002E0231002E0001004400450001000100B3 -:1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 -:10025000F2000100010001000100F000F1000100C6 -:10026000F400010001000100F3000100F5000100AD -:100270000100010001000100000001000100010077 -:100280000000010000000100010001000000010069 -:100290000000010001000100010001000000010058 -:1002A0000100010001000100A9000100010001009E -:1002B0000100AC00AA00B600010001000100AB0083 -:1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -: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 -:100C10007573202D0A004743433A20342E392E3372 -:100C2000204156522D4C4942433A20312E382E3124 -:100C3000204156525F415243483A20617672350A4C -:100C4000004F5054494F4E533A204C554641204294 -:100C50004F4F544D41474943204D4F5553454B4508 -:100C6000592045585452414B455920434F4E534FFC -:100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2030663263CD -:100C9000373733202831313A30393A3531204A61FB -:100CA0006E2020352032303136290A005649443A28 -:100CB00020307846454544284572676F446F782058 -:100CC000455A29205049443A20307831333037286A -:100CD0004572676F446F7820455A29205645523A2D -:100CE000203078303030310A00444553433A207484 -:100CF0002E6D2E6B2E206B6579626F61726420669B -:100D000069726D7761726520666F72204572676FD8 -:100D1000646F780A000A092D2056657273696F6E38 -:100D2000202D0A000A6D6F7573653A206F66660A9A -:100D3000000A6D6F7573653A206F6E0A000A6B6565 -:100D400079626F6172643A206F66660A000A6B65A9 -:100D500079626F6172643A206F6E0A000A6D617485 -:100D60007269783A206F66660A000A6D617472696A -:100D7000783A206F6E0A000A64656275673A206FE0 -:100D80006E0A000A64656275673A206F66660A003B -:100D90000A0A626F6F746C6F616465722E2E2E206A -:100DA00000433E20006565636F6E6669673A0A001E -:100DB000536C656570204C454420746573740A005B -:100DC0000000000000000000000000010204060A0C -:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD -:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD -:100DF0000F0A0604020100000000000000000000CD -:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74 -:100E100024C08091F9019091FA01A091FB01B09159 -:100E2000FC018730904BA740B04BB9F41092F90108 -:100E30001092FA011092FB011092FC0114BE84B7CB -:100E4000877F84BF88E10FB6F8948093600010928A -:100E500060000FBEE0E0FFE3099511E0A0E0B1E023 -:100E6000E0EAFBE502C005900D92AA33B107D9F77D -:100E700011E0AAE3B1E001C01D92A93FB107E1F77B -:100E80000E94900F0C94CE2D0C940000FF93EF93D2 -:100E9000E0913A01F0913B01309709F00995EF910B -:100EA000FF910895FC018591803011F0EFDFFBCFB9 -:100EB0000895FF27E0E230E247FF0CC0419597FF1D -:100EC00009C0EDE26095709580959095611D711D4A -:100ED000811D911D27FF02C0219530E350E2AA2712 -:100EE000660F771F881F991FAA1FA41710F0A41B55 -:100EF00063955A95A9F7AA3008F0A95FA05DAF9352 -:100F0000F395611571058105910541F7ED3211F4F5 -:100F1000EF93F395F21718F43F93F395FBCF8F916E -:100F2000B5DFFA95E1F70895E991F991859180305F -:100F300021F0853219F0AADFF9CF089520E0E89476 -:100F400055915532C1F3503311F4689455915A3389 -:100F500048F4505390F3220F022E220F220F200D3F -:100F6000250FF4CF0EF4219589919991533619F3F9 -:100F7000533729F1533559F1BC0188279927E89453 -:100F80005C3621F48991999168945591543639F4DD -:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709 -:100FA0004AE039F0583540E121F0523642E009F08C -:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC -:100FC000EF93FC0181918030B9F360DFFBCFFF9399 -:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0 -:100FE000A3DFCF91DF91089561110BC0FC018281D5 -:100FF000882321F085EE0E946D1603C085EE0E94C5 -:10100000351780E090E0089508956091BC017091DB -:10101000BD018091BE019091BF010E94FD205698B4 -:101020005E9825982D9826982E9827982F9881308D -:1010300019F0823021F00895259A2D9A0895269A64 -:101040002E9A089585E098E0892B11F00E940508FA -:1010500080E090E0089556985E9825982D982698FF -:101060002E9827982F988FEF90E090938900809387 -:10107000880090938B0080938A0090938D008093DA -:101080008C00259A2D9A2FEF80E792E02150804026 -:101090009040E1F700C00000269A2E9A2FEF80E7DB -:1010A00092E0215080409040E1F700C00000279A74 -:1010B0002F9A2FEF80E792E0215080409040E1F797 -:1010C00000C0000025982D982FEF80E792E0215076 -:1010D00080409040E1F700C0000026982E982FEF46 -:1010E00080E792E0215080409040E1F700C000008E -:1010F00027982F9856985E9825982D9826982E9880 -:1011000027982F98089589EA8093800089E080933A -:10111000810024982C983F988AB18F748AB96E9870 -:10112000479A8BB1806B8BB9769A0E942B0884E02A -:1011300098E0892B11F00E94040880E090E0089567 -:1011400080E28093000180913C0181110EC00E94D9 -:10115000EF0881E080933C012FEF83ED90E3215075 -:1011600080409040E1F700C0000080E40E94F50854 -:101170008093000181112EC00E941F0980930001FD -:10118000811128C00E941F0980930001811122C093 -:101190008FE30E941F098093000181111BC00E94F0 -:1011A000170980E40E94F50880930001811112C0A4 -:1011B0008CE00E941F098093000181110BC00E94E6 -:1011C0001F0980930001811105C08FE30E941F0950 -:1011D000809300010E9417098091000108951092E8 -:1011E000B9008AE08093B800089594EA9093BC0017 -:1011F0009091BC0097FFFCCF9091B900987F9830F8 -:1012000021F0903111F081E008958093BB0084E8D3 -:101210008093BC008091BC0087FFFCCF8091B90017 -:10122000887F883111F0803471F780E0089584E977 -:101230008093BC008091BC0084FDFCCF0895809316 -:10124000BB0084E88093BC008091BC0087FFFCCF8A -:101250009091B900987F81E0983209F480E0089578 -:1012600084E88093BC008091BC0087FFFCCF809114 -:10127000BB00089580910001811115C080E40E9497 -:10128000F5088093000181110CC082E10E941F09C2 -:1012900080930001811105C08FEF0E941F09809388 -:1012A00000010E94170984B1807F84B985B1807FD5 -:1012B00085B98AB1837F8AB98BB1837F8BB93E9818 -:1012C000469808950E94A008809300010E943A0960 -:1012D00080B38C7080BB81B3836F81BBAEE3B1E020 -:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94 -:1012F00083E898E0892B11F00C94830808959F925D -:10130000AF92BF92CF92DF92EF92FF920F931F9313 -:10131000CF93DF93809100018823E1F080913D011C -:101320008F5F80933D01811115C082E493E00E949C -:1013300052070E94A00880930001882329F088E2C8 -:1013400093E00E94520706C084E193E00E94520796 -:101350000E942B080EE311E0C0E0D0E0BB24B39460 -:1013600082E0A82ECC24C394D12C25E0E22E23E0E9 -:10137000F22EC730D10500F580910001811164C0C3 -:1013800080E40E94F50880930001811112C082E17F -:101390000E941F098093000181110BC0C6010C2E11 -:1013A00001C0880F0A94EAF780950E941F09809374 -:1013B00000010E94170948C0CA30A1F028F4C830C3 -:1013C00059F0C93061F005C0CC3089F070F0CD30F3 -:1013D00089F0209A289810C0219A29980DC0229A45 -:1013E0002A980AC0239A2B9807C0529A01C0539A90 -:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1 -:10140000799902C082E001C080E091709B25982B01 -:101410007C9902C084E001C080E0892B7D9902C0E4 -:1014200038E001C030E0832B7E9902C020E101C08A -:1014300020E0822B9FB19095991F9927991F929533 -:10144000990F907E892B10C080910001811174C08A -:1014500080E40E94F50880930001882309F459C0B4 -:10146000912C0E941709892DF8019081981739F164 -:10147000808380910101882301F18091D70180FF51 -:1014800004C08AE093E00E9452078091D70180FF58 -:101490000CC0809101011F928F93FF92EF920E94E6 -:1014A000EB070F900F900F900F908091D70180FF66 -:1014B00004C083E093E00E945207A09201010E94C1 -:1014C0003A0921960F5F1F4FCE30D10509F051CF59 -:1014D000809101018823B1F081508093010188231C -:1014E00039F08FE99FE00197F1F700C000000AC0D2 -:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326 -:101500008E13FCCF82E298E0892BC1F00E94220862 -:1015100015C083E10E941F09809300018111A0CFB3 -:1015200081E40E94F50880930001811199CF0E9407 -:101530003009982E909495CF80E096CF81E0DF918E -:10154000CF911F910F91FF90EF90DF90CF90BF90C0 -:10155000AF909F900895E82FF0E0E45BFE4F80810C -:101560000895CF92DF92EF92FF920F931F93CF9344 -:10157000DF938CEE92E00E9452078CE4E82E81E02B -:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5 -:1015900012E0DF93CF93DF92CF920E94EB0784EEAD -:1015A00092E00E945207F70181917F0190E00E9432 -:1015B00063219F938F931F930F930E94EB078CEDF2 -:1015C00092E00E94520721968DB79EB708960FB6FB -:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE -:1015E000CF911F910F91FF90EF90DF90CF900895D2 -:1015F0008B3B910578F4883A910540F5853A910541 -:10160000D0F48430910508F0B1C08130910509F41F -:10161000ADC06BC0803E910508F467C0883E91055F -:1016200008F4A4C09C01205F31092031310508F085 -:101630005CC090650895853A910509F459C0863AD1 -:10164000910509F058C082E890E40895883A910520 -:1016500009F454C0893A910509F453C08A3A9105B6 -:1016600009F452C08B3A910509F451C08C3A9105A6 -:1016700009F450C08D3A910509F44FC0803B9105A3 -:1016800009F44EC08E3A910509F44DC08F3A910588 -:1016900009F44CC0813B910509F44BC0823B910594 -:1016A00009F44AC0833B910509F449C0843B910584 -:1016B00009F448C0853B910509F447C0863B910574 -:1016C00009F446C0873B910509F445C0883B910564 -:1016D00009F444C0893B910509F443C08A3B910554 -:1016E00009F442C080E094E4089580E090E0089519 -:1016F00081E890E4089583E890E4089582EE94E40C -:10170000089589EE94E408958AEE94E4089585EBB3 -:1017100094E4089586EB94E4089587EB94E40895A7 -:101720008CEC94E408958DEC94E4089583E895E4BA -:1017300008958AE895E4089582E995E4089584E996 -:1017400095E4089581E296E4089583E296E408958D -:1017500084E296E4089585E296E4089586E296E4AC -:10176000089587E296E408958AE296E4089508953C -:1017700096E0799FF001112494E5899FE00DF11D19 -:101780001124E60FF11DEE0FFF1FEC51FF4F859165 -:1017900094910895880F991FFC01E05AF0408591BB -:1017A00094910895880F991FFC01E052FF4F859195 -:1017B0009491089526E0729FF001112444E5849FDE -:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E -:1017D000FF4F859194919C013A9521154FE1340773 -:1017E00008F41EC13F512115304120F49F700E9422 -:1017F000D20B08959C0130532115304118F49927DC -:10180000906C0895811520E5920769F40E94BD1A35 -:101810004FEF84E39CE0415080409040E1F700C0EE -:1018200000000C941F22813020E5920751F48CE5D2 -:1018300093E00E9452078091D70181608093D70185 -:1018400008959C0130552115304108F051C0292FD1 -:1018500033272F70332721303105D9F4AC01437081 -:10186000552702C0220F331F4A95E2F73C68AC01AE -:1018700064E0440F551F6A95E1F744275370242B09 -:10188000352B73E0880F991F7A95E1F780769927B9 -:101890001DC02230310529F4982F8827816F906A66 -:1018A000089523303105A9F4AC014370552721E098 -:1018B00030E002C0220F331F4A95E2F73C6843E054 -:1018C000880F991F4A95E1F7807E9770822B932BA2 -:1018D000089524303105E1F4AC014370552721E02F -:1018E00030E002C0220F331F4A95E2F73A68E7CF93 -:1018F0009C0130572115304118F49F709062089573 -:101900009C0130582115304118F49F70906A089559 -:10191000803E9105E0F4803C910558F581339105B6 -:1019200009F46FC048F48932910509F463C08A3222 -:10193000910509F46DC072C089339105E9F08238D0 -:101940009105D1F08533910509F44DC067C0833E00 -:10195000910581F138F4803E9105B9F0823E910500 -:10196000D9F05CC0863E910561F1873E9105A1F1F9 -:1019700055C00E94CA0B08952091EA0120FD02C0C3 -:1019800021FF4CC080EE90E049C08091EA0180FFC9 -:10199000F9CF89E390E042C08091EA0182FF0EC056 -:1019A0008091EA0184FF03C080E090E037C083EEBD -:1019B00090E034C08091EA0182FFF2CF82EE90E0A5 -:1019C0002DC08091EA0183FF0BC08091EA0184FD64 -:1019D000EBCF87EE90E022C08091EA0183FFF5CF44 -:1019E00086EE90E01BC08091EA0185FF07C089E286 -:1019F00090E014C08091EA0185FFF9CF85E390E083 -:101A00000DC08091EA0186FF07C08AE290E006C01F -:101A10008091EA0186FFF9CF81E390E00E94F80A05 -:101A20000895089580916D0108959FB7F8941092DC -:101A30005C019FBF9091F001943009F057C09091E4 -:101A4000E9009F703091EC00232F217030FD20E8D9 -:101A5000922B24E02093E9002091EB0020FF43C06B -:101A60002091EE0027FF3FC020915A01222321F050 -:101A70002091E80025FF37C010925A0126E03091EE -:101A8000E80035FD15C03091F001343061F530913A -:101A9000EB0035FD28C0215021F481E080935A01EC -:101AA00022C0EFE9FFE03197F1F700C00000E7CF77 -:101AB0008093F1008091E80085FD0AC08091E800E4 -:101AC00080FFFCCF8091E8008E778093E80006C00D -:101AD0008FB7F89421E020935C018FBF9F709093A3 -:101AE000E90080E008959F709093E9008FEF0895DA -:101AF000CF93DF9300D01F92CDB7DEB79C018091CA -:101B0000F001843019F593E099833B832A83909305 -:101B1000E9008FEF9091E800815095FD06C095EDAA -:101B20009A95F1F700008111F5CF8091E80085FFCB -:101B30000DC040E050E063E070E0CE0101960E94ED -:101B400048108091E8008E778093E8000F900F9006 -:101B50000F90DF91CF910895CF93DF9300D01F9224 -:101B6000CDB7DEB72091F001243021F522E02983A2 -:101B70009B838A8383E08093E9008FEF9091E80054 -:101B8000815095FD06C095ED9A95F1F70000811101 -:101B9000F5CF8091E80085FF0DC040E050E063E0A4 -:101BA00070E0CE0101960E9448108091E8008E7787 -:101BB0008093E8000F900F900F90DF91CF910895E0 -:101BC0002091F0012430F1F422E02093E9002FEF7E -:101BD0003091E800215035FD06C035ED3A95F1F71A -:101BE00000002111F5CF2091E80025FF0BC040E057 -:101BF00050E065E070E00E9448108091E8008E7728 -:101C00008093E8000895CF93DF932091F001243072 -:101C100009F048C0EC0180910C018823E1F080912B -:101C20000D018823C1F085E08093E9008FEF90914A -:101C3000E800815095FD06C095E19A95F1F7000006 -:101C40008111F5CF8091E80085FF2CC040E050E085 -:101C500060E170E017C081E08093E9008FEF909120 -:101C6000E800815095FD06C095ED9A95F1F70000CA -:101C70008111F5CF8091E80085FF14C040E050E06D -:101C800068E070E0CE010E9448108091E8008E77F5 -:101C90008093E80080E1FE01ADE5B1E001900D9296 -:101CA0008A95E1F7DF91CF91089583E993E00E944F -:101CB00052078091EF01811109C00E94DD110E943D -:101CC0003A128091E20084608093E20008958FE8E8 -:101CD00093E00E9452071092EF0108958BE893E081 -:101CE0000C94520787E893E00E9452070C94EF2B64 -:101CF00083E893E00E9452070E94B9210E94F52BCD -:101D00000E94DF140C94110D20915B012F5F822F34 -:101D100062E30E94632D992319F020935B010895DB -:101D200010925B0180915C01882371F18091F00138 -:101D3000843041F58091E9008F702091EC00922F62 -:101D4000917020FD90E8892B94E09093E9009091A8 -:101D5000EB0090FF14C09091EE0097FF10C090919F -:101D6000E80095FF03C01092F100F9CF9091E800D0 -:101D700090FF05C09091E8009E779093E8008F70E7 -:101D80008093E90010925C01089542E061EC81E0EB -:101D90000E94571142E061EC82E00E94571142E03C -:101DA00061EC83E00E94571142E261EC84E00E9402 -:101DB000571142E161EC85E00C9457118091F201DA -:101DC000833009F455C030F4813071F0823009F469 -:101DD0008EC008958A3009F47AC08B3009F460C04F -:101DE000893009F09CC020C08091F101813A09F04E -:101DF00096C08091E800877F8093E8008091F5018C -:101E00009091F601892B21F460E18DE591E003C00A -:101E100060E080E090E070E00E9493108091E80024 -:101E20008B778093E80008958091F101813209F069 -:101E300076C08091F5019091F601009719F0049712 -:101E400009F06DC08091E800877F8093E800809161 -:101E5000E80082FD05C08091F0018111F8CF5FC0DC -:101E60008091F10080936D018091E8008B7753C0E1 -:101E70008091F101813A09F052C08091F501909171 -:101E8000F601892B09F04BC08091E800877F809391 -:101E9000E8008091E80080FFFCCF80910C0136C003 -:101EA0008091F1018132D9F58091F5019091F6018F -:101EB000892BA9F58091E800877F8093E8000E9434 -:101EC0008C118091F30180930C010C94BD1A8091C8 -:101ED000F101813221F58091E800877F8093E8004D -:101EE0000E948C118091F40180936E01089580917D -:101EF000F101813AA1F48091E800877F8093E800A6 -:101F00008091E80080FFFCCF80916E018093F1000A -:101F10008091E8008E778093E8000C948C110895EE -:101F200084B7877F84BF88E10FB6F8948093600000 -:101F3000109260000FBE90E080E80FB6F894809396 -:101F40006100909361000FBE0E946C150E94DD112C -:101F50000E943A128091E20084608093E20085E161 -:101F60009DE00E94F82078940E94BF140E946E1594 -:101F700082E091E00E94DA140E94DD2B82E793E078 -:101F80000E9452078091F001853089F48EE693E03B -:101F90000E9452070E947D218091EE01882391F3D7 -:101FA0000E94A521882371F30E943210EBCF0E947A -:101FB0009C15E8CF292F332723303105C9F064F46D -:101FC0002130310581F02230310509F043C08DE820 -:101FD00090E02BEC33E042C021323105F1F02232A7 -:101FE000310541F137C082E190E028E534E036C0A8 -:101FF00099278130910541F08230910541F0892B7C -:1020000049F5E7ECF3E005C0EFEAF3E002C0E7E9E9 -:10201000F3E0849190E09F0121C06530D8F4E62F71 -:10202000F0E0EE0FFF1FEB5DFE4F2081318189E074 -:1020300090E014C0653070F470E0FB01EE0FFF1FFC -:10204000E55EFE4F20813181FB01EA5EFE4F80811B -:1020500090E004C080E090E020E030E0FA013183BD -:102060002083089580E189BD82E189BD09B400FE25 -:10207000FDCF8091D8008F7D8093D8008091E000C3 -:1020800082608093E0008091E00081FDFCCF0895A4 -:10209000CF92DF92EF92FF920F931F93CF93DF9334 -:1020A000EC018B016A010E94AB11811133C0C11494 -:1020B000D10439F0F60180819181081B190BC80FFA -:1020C000D91FE12CF12C0115110519F18091E800BF -:1020D00085FD16C08091E8008E778093E800C114DA -:1020E000D10449F0F60180819181E80EF91EF18258 -:1020F000E08285E00FC00E94AB11882321F30AC063 -:1021000089918093F10001501109FFEFEF1AFF0A46 -:10211000DACF80E0DF91CF911F910F91FF90EF9088 -:10212000DF90CF9008952091F7013091F8012617A4 -:10213000370748F06115710539F42091E8002E77D2 -:102140002093E80001C0B90140E061157105A9F1D3 -:102150002091F001222309F443C0253009F442C044 -:102160002091E80023FD40C02091E80022FD32C00C -:102170002091E80020FFE9CF4091F3002091F20088 -:1021800030E0342BFC01CF016115710559F0283086 -:10219000310540F481918093F100615071092F5F06 -:1021A0003F4FF1CF41E02830310509F040E0209168 -:1021B000E8002E772093E800C8CF4111C9CF0AC0AC -:1021C0008091F001882361F0853061F08091E80012 -:1021D00083FD0AC08091E80082FFF2CF80E008957D -:1021E00082E0089583E0089581E008952091F70149 -:1021F0003091F8012617370748F06115710539F459 -:102200002091E8002E772093E80001C0B901FC017D -:1022100020E06115710591F18091F001882309F4A6 -:1022200040C0853009F43FC08091E80083FD3DC087 -:102230008091E80082FD2FC08091E80080FFE9CF07 -:102240002091F3008091F20090E0922B61157105CE -:1022500059F08830910540F424912093F100319693 -:10226000615071090196F2CF21E0089709F020E052 -:102270008091E8008E778093E800CBCF2111CCCFFE -:102280000AC08091F001882361F0853061F080916F -:10229000E80083FD0AC08091E80082FFF2CF80E071 -:1022A000089582E0089583E0089581E00895982FCD -:1022B000973058F59093E900981739F07091EC0039 -:1022C0002091ED005091F00003C0242F762F50E0B4 -:1022D00021FF19C03091EB003E7F3093EB0030912D -:1022E000ED003D7F3093ED003091EB003160309395 -:1022F000EB007093EC002093ED005093F0002091E0 -:10230000EE0027FF07C09F5FD3CF8F708093E90057 -:1023100081E0089580E008958091F10187FF11C068 -:102320008091E80082FD05C08091F0018111F8CF15 -:1023300011C08091E8008B770BC08091F001882359 -:1023400049F08091E80080FFF8CF8091E8008E7717 -:102350008093E80008952091E4003091E50095E62F -:102360004091EC00842F817040FF22C08091E800F2 -:1023700080FD1CC08091F001882391F0853091F0A0 -:102380008091EB0085FD10C04091E4005091E50084 -:102390004217530729F39A01915011F784E00895E9 -:1023A00082E0089583E0089581E0089580E0089533 -:1023B0004091E80042FFDECF08950E944B120E9438 -:1023C0005312E0EEF0E0808181608083E8EDF0E080 -:1023D00080818F77808319BCA7EDB0E08C918E7FD0 -:1023E0008C9380818F7E80831092EF0108950F93EC -:1023F0001F93CF93DF930E944B120E945312C8ED9C -:10240000D0E088818F7788838881806888838881FD -:102410008F7D888319BC1092F0011092EC0110920C -:10242000EE011092ED0100EE10E0F80180818B7F4B -:10243000808388818160888342E060E080E00E9440 -:102440005711E1EEF0E080818E7F8083E2EEF0E0D4 -:10245000808181608083808188608083F8018081B1 -:102460008E7F8083888180618883DF91CF911F91E7 -:102470000F910895E8EDF0E080818F7E8083E7ED95 -:10248000F0E080818160808384E082BF81E080937E -:10249000EF010C94F711E8EDF0E080818E7F8083EE -:1024A0001092E20008951092DA001092E10008956F -:1024B0001F920F920FB60F9211242F933F934F93B9 -:1024C0005F936F937F938F939F93AF93BF93EF939C -:1024D000FF938091E10082FF0BC08091E20082FFB8 -:1024E00007C08091E1008B7F8093E1000E94840E01 -:1024F0008091DA0080FF1FC08091D80080FF1BC050 -:102500008091DA008E7F8093DA008091D90080FF7D -:102510000DC080E189BD82E189BD09B400FEFDCF17 -:1025200081E08093F0010E94550E05C019BC109205 -:10253000F0010E94670E8091E10080FF19C0809138 -:10254000E20080FF15C08091E2008E7F8093E20060 -:102550008091E20080618093E2008091D8008062E7 -:102560008093D80019BC85E08093F0010E94720E20 -:102570008091E10084FF30C08091E20084FF2CC094 -:1025800080E189BD82E189BD09B400FEFDCF809163 -:10259000D8008F7D8093D8008091E1008F7E80935A -:1025A000E1008091E2008F7E8093E2008091E20062 -:1025B00081608093E2008091EC01882311F084E037 -:1025C00007C08091E30087FD02C081E001C083E085 -:1025D0008093F0010E94780E8091E10083FF29C072 -:1025E0008091E20083FF25C08091E100877F809386 -:1025F000E10082E08093F0011092EC018091E10013 -:102600008E7F8093E1008091E2008E7F8093E200D4 -:102610008091E20080618093E20042E060E080E02F -:102620000E9457118091F00088608093F0000E9412 -:102630006E0EFF91EF91BF91AF919F918F917F911E -:102640006F915F914F913F912F910F900FBE0F901F -:102650001F9018951F920F920FB60F9211242F936F -:102660003F934F935F936F937F938F939F93AF931A -:10267000BF93CF93DF93EF93FF93C091E900CF70A7 -:102680008091EC00D82FD17080FDD0E81092E90045 -:102690008091F000877F8093F00078940E946E1301 -:1026A0001092E9008091F00088608093F000CD2BBB -:1026B000CF70C093E900FF91EF91DF91CF91BF916F -:1026C000AF919F918F917F916F915F914F913F91CA -:1026D0002F910F900FBE0F901F9018951F93CF93BF -:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63 -:1026F000CDBFE1EFF1E088E08E0F9091F100919372 -:102700008E13FBCF0E94DE0E8091E80083FF1FC175 -:102710008091F1019091F201492F50E04A3051052A -:1027200008F015C1FA01EA5AFF4F0C94832D803846 -:1027300081F0823809F00BC18091F5018F70809390 -:10274000E9008091EB0085FB882780F91092E90071 -:1027500006C08091ED019091EE01911182609091FF -:10276000E800977F9093E8008093F1001092F100C9 -:10277000C8C0282F2D7F09F0EAC0882319F08230C5 -:1027800061F0E5C08091F301813009F0E0C0933041 -:1027900009F080E08093EE012BC08091F30181115C -:1027A00027C08091F5018F7009F4D1C08093E900B2 -:1027B0002091EB0020FF1CC0933021F48091EB00AE -:1027C000806214C09091EB0090619093EB0021E047 -:1027D00030E0A90102C0440F551F8A95E2F74093EB -:1027E000EA001092EA008091EB0088608093EB0091 -:1027F0001092E9008091E800877F86C08111A7C010 -:102800001091F3011F778091E3008078812B8093F2 -:10281000E3008091E800877F8093E8000E948C119C -:102820008091E80080FFFCCF8091E3008068809376 -:10283000E300111102C082E001C083E08093F00147 -:1028400086C08058823008F082C08091F301909158 -:10285000F4018C3D53E0950779F583E08A838AE2A1 -:1028600089834FB7F894DE01139620E03EE051E2F1 -:10287000E32FF0E050935700E49120FF03C0E2956E -:10288000EF703F5FEF708E2F90E0EA3010F0C79648 -:1028900001C0C0968D939D932F5F243149F74FBFA0 -:1028A0008091E800877F8093E8006AE270E0CE01C3 -:1028B00001960E94931014C0AE014F5F5F4F60916C -:1028C000F5010E94DA0FBC01892B09F440C09091F8 -:1028D000E800977F9093E80089819A810E94F61022 -:1028E0008091E8008B778093E80031C0803879F5DB -:1028F0008091E800877F8093E8008091EC018093CD -:10290000F1008091E8008E778093E8000E948C119E -:102910001EC081111CC09091F3019230C0F48091CF -:10292000E800877F8093E8009093EC010E948C116F -:102930008091EC01811106C08091E30087FD02C007 -:1029400081E001C084E08093F0010E94C50E809177 -:10295000E80083FF0AC08091E800877F8093E80049 -:102960008091EB0080628093EB00AA960FB6F894FA -:10297000DEBF0FBECDBFDF91CF911F910895CF93E2 -:102980008091F0018823A1F0C091E900CF7090916F -:10299000EC00892F817090FD80E8C82B1092E9002F -:1029A0008091E80083FD0E946E13CF70C093E90010 -:1029B000CF91089590937401809373010895E091ED -:1029C0007301F0917401309721F00190F081E02DB6 -:1029D000099480E00895EF92FF920F931F93CF9395 -:1029E000DF93E0917301F09174013097B1F18C01A4 -:1029F0000280F381E02D09958091D70182FF2DC0DF -:102A000080FF04C08DE895E00E945207E80110E1C4 -:102A100087E8E82E85E0F82E8091D70180FF0BC073 -:102A200088811F928F93FF92EF920E94EB070F9085 -:102A30000F900F900F90115021961111EDCF8091B2 -:102A4000D70180FF0AC085E895E0DF91CF911F9103 -:102A50000F91FF90EF900C945207DF91CF911F914F -:102A60000F91FF90EF900895E0917301F091740140 -:102A7000309721F00480F581E02D0994089520918C -:102A80007101309172018217930771F09093720176 -:102A900080937101E0917301F0917401309721F0FE -:102AA0000680F781E02D0994089520916F013091FF -:102AB00070018217930771F09093700180936F01FA -:102AC000E0917301F0917401309721F00084F18559 -:102AD000E02D0994089508950C946B150E94BB2174 -:102AE0000E9462090C948122CF93C82F8091D70154 -:102AF00082FF1EC080FF04C086EA95E00E94520754 -:102B00008091D70180FF0CC01F92CF9381EA95E09E -:102B10009F938F930E94EB070F900F900F900F9051 -:102B20008091D70180FF04C08FE995E00E94520791 -:102B30008C2FCF910C94110DCF92DF92EF92FF92D8 -:102B40000F931F93CF93DF93CDB7DEB72B970FB6BD -:102B5000F894DEBF0FBECDBF0E947F0986E7C82E66 -:102B600081E0D82E00E010E0E02E802F0E94AB0A1A -:102B7000F60141916F01F42EF826B1F40F5F1F4F5B -:102B80000E30110589F78FEF89838A831B820E949B -:102B9000C4218160782F9D838C8349815A816B8108 -:102BA0008D810E943F1640C09091D70191FF04C0D3 -:102BB0008B870E94B10A8B8520E030E04F2D50E0DA -:102BC000922FBA01022E02C0759567950A94E2F71A -:102BD00060FF24C02E83EF8221E030E0690102C053 -:102BE000CC0CDD1C9A95E2F790E08C219D21892B7D -:102BF00009F420E028870E94C4218160782F9A87F9 -:102C000089874E815F8168858A850E943F16F80119 -:102C1000EA58FE4F8081C826C08206C02F5F3F4F12 -:102C20002630310569F6AACF0E94F2251091750170 -:102C30000E94DF141817A1F00E94DF148093750121 -:102C40002B960FB6F894DEBF0FBECDBFDF91CF91AC -:102C50001F910F91FF90EF90DF90CF900C9474151F -:102C60002B960FB6F894DEBF0FBECDBFDF91CF918C -:102C70001F910F91FF90EF90DF90CF900895CF9329 -:102C8000DF93CDB7DEB72B970FB6F894DEBF0FBE3C -:102C9000CDBF4F83588769877A878B87DE0111966E -:102CA00086E0FD0111928A95E9F785E0FE013796ED -:102CB00001900D928A95E1F749815A816B817C815F -:102CC0008D819E810E94571D2B960FB6F894DEBF12 -:102CD0000FBECDBFDF91CF910895CF93882309F424 -:102CE000C2C0C82F823859F40E94DF1481FDBBC0D6 -:102CF00089E30E94F31F0E94D22089E30CC083382D -:102D000079F40E94DF1480FDAEC083E50E94F31FBA -:102D10000E94D22083E50E944620CF910C94D220BD -:102D2000843859F40E94DF1482FD9DC087E40E941C -:102D3000F31F0E94D22087E4EECF8CEF8C0F813AF4 -:102D400048F48C2F0E94852A81118DC08C2F0E94FF -:102D5000F31FE3CF80E28C0F883048F4C77081E026 -:102D600001C0880FCA95EAF70E949B20D6CF8BE559 -:102D70008C0F833078F4C53A29F0C63A31F083E8F5 -:102D800090E005C081E890E002C082E890E0CF9139 -:102D90000C943F1588E58C0F833108F064C0C83A65 -:102DA00039F1C93A41F1CA3A49F1CB3A51F1CC3A39 -:102DB00059F1CD3A61F1C03B69F1CE3A71F1CF3AA8 -:102DC00079F1C13B81F1C23B89F1C33B91F1C43B35 -:102DD00099F1C53BA1F1C63BA9F1C73BB1F1C83B95 -:102DE000B9F1C93BC1F1CA3BC9F180E090E038C0FC -:102DF00082EE90E035C089EE90E032C08AEE90E03D -:102E00002FC085EB90E02CC086EB90E029C087EBCB -:102E100090E026C08CEC90E023C08DEC90E020C0C8 -:102E200083E891E01DC08AE891E01AC082E991E050 -:102E300017C084E991E014C081E292E011C083E2FE -:102E400092E00EC084E292E00BC085E292E008C0FE -:102E500086E292E005C087E292E002C08AE292E058 -:102E6000CF910C945515CF910895882309F44BC048 -:102E7000823859F40E94DF1481FF45C089E30E9423 -:102E8000F31F0E94D22089E30CC0833871F40E94A2 -:102E9000DF1480FF38C083E50E94F31F0E94D22018 -:102EA00083E50E9446200C94D220843859F40E9475 -:102EB000DF1482FF28C087E40E94F31F0E94D22003 -:102EC00087E4EFCF9CEF980F913A58F390E2980F78 -:102ED000983050F4877091E001C0990F8A95EAF715 -:102EE000892F0E94A120DFCF9BE5980F933020F41B -:102EF00080E090E00C943F15885A833120F480E004 -:102F000090E00C9455150895882321F00E949B2091 -:102F10000C94D2200895882321F00E94A1200C94C3 -:102F2000D2200895BF92CF92DF92EF92FF920F933B -:102F30001F93CF93DF9300D000D000D0CDB7DEB782 -:102F400025E0FC01DE01119601900D922A95E1F732 -:102F5000FC01408131810281258122952F7063819E -:102F60007481672B09F4E7C23F3F19F44F3F09F41E -:102F7000E2C27C0149833A8389819A812E830E942F -:102F8000B21F182FB92E0E94B11F0E94781EEB2D80 -:102F9000E295EF70F0E0E05AFF4F2E810C94832D04 -:102FA0008B2D807F9B2D9F70F92E882319F0F29432 -:102FB00080EFF822002349F0FF2009F469C28F2D29 -:102FC0000E94AB200E94D22063C2812F0E9435173D -:102FD000FF2009F4B0C28F2D0E94B12026960FB6B3 -:102FE000F894DEBF0FBECDBFDF91CF911F910F913F -:102FF000FF90EF90DF90CF90BF900C94D2203B2DAC -:10300000307F8B2D8F70303211F08295807F1123AD -:1030100019F0113021F12DC00023B9F0222309F459 -:10302000A1C1213009F09EC126960FB6F894DEBFEB -:103030000FBECDBFDF91CF911F910F91FF90EF9009 -:10304000DF90CF90BF900C94BB20222319F0213049 -:1030500009F471C28E830E94BE208E8197C1002325 -:1030600021F0263008F067C27DC1253008F063C228 -:103070008DC1002321F0222309F474C109C2222347 -:1030800009F484C11AC22B2D26952695237030E0B1 -:103090002115310521F021303105D1F04CC200233A -:1030A00021F0812F9B2D937002C080E090E0269646 -:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1030C0000F91FF90EF90DF90CF90BF900C943F1541 -:1030D000002321F0812F9B2D937002C080E090E0AF -:1030E00026960FB6F894DEBF0FBECDBFDF91CF910D -:1030F0001F910F91FF90EF90DF90CF90BF900C94B5 -:103100005515812F002319F00E94782402C00E94D7 -:10311000E02426960FB6F894DEBF0FBECDBFDF9138 -:10312000CF911F910F91FF90EF90DF90CF90BF90C4 -:103130000C9465258B2D837009F07BC00111FBC1B8 -:10314000812F829586958770880F880F912F9F70A9 -:10315000C92ED12CE12CF12C082E04C0CC0CDD1C86 -:10316000EE1CFF1C0A94D2F714FF12C04FE050E08F -:1031700060E070E004C0440F551F661F771F8A95FA -:10318000D2F7CB01BA01609570958095909503C0F8 -:1031900060E070E0CB012B2D269526952370422F01 -:1031A00050E042305105D9F04330510569F16C29A6 -:1031B0007D298E299F294130510551F126960FB660 -:1031C000F894DEBF0FBECDBFDF91CF911F910F915D -:1031D000FF90EF90DF90CF90BF900C949F1E6C29D2 -:1031E0007D298E299F2926960FB6F894DEBF0FBE43 -:1031F000CDBFDF91CF911F910F91FF90EF90DF90A6 -:10320000CF90BF900C94BB1E0E949F1EC701B601B9 -:1032100026960FB6F894DEBF0FBECDBFDF91CF91DB -:103220001F910F91FF90EF90DF90CF90BF900C9483 -:10323000831E002319F08B2D817001C08695882391 -:1032400009F479C1812F829586958770880F880F40 -:10325000912F9F70C92ED12CE12CF12C082E04C087 -:10326000CC0CDD1CEE1CFF1C0A94D2F714FF12C01C -:103270004FE050E060E070E004C0440F551F661F4F -:10328000771F8A95D2F7CB01BA016095709580952A -:10329000909503C060E070E0CB012B2D269526951C -:1032A0002370422F50E042305105D9F04330510590 -:1032B00069F16C297D298E299F294130510551F1F1 -:1032C00026960FB6F894DEBF0FBECDBFDF91CF912B -:1032D0001F910F91FF90EF90DF90CF90BF900C94D3 -:1032E000791F6C297D298E299F2926960FB6F8947F -:1032F000DEBF0FBECDBFDF91CF911F910F91FF9029 -:10330000EF90DF90CF90BF900C94951F0E94791F93 -:10331000C701B60126960FB6F894DEBF0FBECDBF2B -:10332000DF91CF911F910F91FF90EF90DF90CF90A1 -:10333000BF900C945D1F103FD1F118F4103E50F473 -:10334000A2C0123F09F464C008F44DC0133F09F451 -:1033500074C099C01F708B2D8F710023A1F00E9443 -:10336000F61E812F26960FB6F894DEBF0FBECDBF96 -:10337000DF91CF911F910F91FF90EF90DF90CF9051 -:10338000BF900C9484170E94171F812F26960FB6AA -:10339000F894DEBF0FBECDBFDF91CF911F910F918B -:1033A000FF90EF90DF90CF90BF900C948B1700238D -:1033B000B1F0253008F0BFC08B2D8F7126960FB667 -:1033C000F894DEBF0FBECDBFDF91CF911F910F915B -:1033D000FF90EF90DF90CF90BF900C943C1F263071 -:1033E00008F0A9C0E9CF0023A9F08B2D8F71269694 -:1033F0000FB6F894DEBF0FBECDBFDF91CF911F9106 -:103400000F91FF90EF90DF90CF90BF900C94F61E3D -:10341000002359F38B2D8F7126960FB6F894DEBFDB -:103420000FBECDBFDF91CF911F910F91FF90EF9015 -:10343000DF90CF90BF900C94171F002399F08B2D35 -:103440008F7126960FB6F894DEBF0FBECDBFDF9109 -:10345000CF911F910F91FF90EF90DF90CF90BF9091 -:103460000C94E11E26960FB6F894DEBF0FBECDBFBA -:10347000DF91CF911F910F91FF90EF90DF90CF9050 -:10348000BF900C94D71E0023A9F0222309F4ADCFDE -:10349000812F26960FB6F894DEBF0FBECDBFDF9109 -:1034A000CF911F910F91FF90EF90DF90CF90BF9041 -:1034B0000C946D16222309F4ADCF812F26960FB6FA -:1034C000F894DEBF0FBECDBFDF91CF911F910F915A -:1034D000FF90EF90DF90CF90BF900C9435174B2D5D -:1034E0004F70612FC7010E94F40726960FB6F8941B -:1034F000DEBF0FBECDBFDF91CF911F910F91FF9027 -:10350000EF90DF90CF90BF900C94FB1D4B2D4F7030 -:10351000612FC70126960FB6F894DEBF0FBECDBF50 -:10352000DF91CF911F910F91FF90EF90DF90CF909F -:10353000BF900C94B70B26960FB6F894DEBF0FBE63 -:10354000CDBFDF91CF911F910F91FF90EF90DF9052 -:10355000CF90BF9008950E94B8200E948D200E94B5 -:10356000D2200E9498260E94652580E090E00E946B -:103570003F1580E090E00C9455150E94A8200C9413 -:10358000AB1A0E94B21F292F22952F7030E02C30E9 -:1035900031054CF42A3031056CF4225031092230C7 -:1035A000310588F407C02C30310549F02F30310542 -:1035B00031F009C0803E48F0803F29F406C093FBFB -:1035C000882780F9089580E0089581E00895CF93D9 -:1035D000DF9300D000D01F92CDB7DEB70F900F90D1 -:1035E0000F900F900F90DF91CF910895CF93DF93BD -:1035F00000D000D000D0CDB7DEB726960FB6F89435 -:10360000DEBF0FBECDBFDF91CF9108951F93CF9343 -:10361000DF93C091840116E080918501C81799F06D -:10362000D0E01C9FF0011D9FF00D1124EA57FE4FC2 -:103630004081518162817381848195810E94F61A53 -:103640002196C770E9CFDF91CF911F9108954091E6 -:10365000B6015091B7016091B8017091B9018091A4 -:10366000BA019091BB010C94F61A8091BB0182952E -:103670008F7009F054C08091B801882309F44FC0BD -:1036800080918401A09185016091B6017091B7018C -:103690004091B9015091BA01B6E08A1709F43FC0D0 -:1036A00090E041155105C1F17F3F11F46F3FA1F149 -:1036B000B89FF001B99FF00D1124EA57FE4F218108 -:1036C00072132AC02081621327C02281211124C0D5 -:1036D000238134812417350710F421503109241B2C -:1036E000350B283C3105C0F42091BB012F702061BF -:1036F0002093BB0126E0289FF001299FF00D1124A3 -:10370000E557FE4F80818F708061808386EB91E06A -:103710000E9492170C94061B01968770BECF0895E5 -:10372000CF92DF92EF92FF920F931F93CF93DF938D -:10373000CDB7DEB762970FB6F894DEBF0FBECDBF30 -:103740008C0185E0F801DE011D9601900D928A95AD -:10375000E1F7D8014C9111965C91119712966C91FA -:1037600012971396CD90DC9014973091B60170911A -:10377000B7018091B9019091BA01009709F46BC12A -:103780007F3F19F43F3F09F466C1E090B801EE2095 -:1037900009F4C0C02091BB01C816D90628F0F60173 -:1037A000E81BF90BCF0104C0809590958C0D9D1DF1 -:1037B000FF24F394883C910578F0F12C207F09F0E8 -:1037C000C6C07C2DD98AC88A89890E94E71A86EBEF -:1037D00091E00E949217B1C0822F807F09F046C00D -:1037E000751314C0341312C0611110C02F70206102 -:1037F0002093BB010E94271B86EB91E00E94921749 -:103800008091BB01D80115968C932EC0CD2819F15B -:103810005F3F11F44F3FF9F0F62E61111CC080910B -:1038200084012091850136E0821709F45AC090E0A6 -:10383000389FF001399FF00D1124EA57FE4F718136 -:10384000571306C07081471303C07281711103C002 -:1038500001968770E9CFF62E662309F418C180918E -:10386000BB0181608093BB01F12C11C1751308C0AD -:10387000341306C0611104C08091BB01D801C3C0DC -:103880004D875E878D859E856A8B0E94C11A6A89E5 -:103890008823E1F16623D1F12091BB01822F82952B -:1038A0008F7090E0029774F08091B6019091B7010B -:1038B00098878F831986DB86CA862C87CE01079668 -:1038C0000E94921786E0F801A6EBB1E001900D92FC -:1038D0008A95E1F70E94351B0E94271BFF24F39471 -:1038E000D6C04D875E878D859E850E94B21F292F89 -:1038F00022952F7030E0223031050CF0BCC09F7053 -:1039000009F0B6C0805E883008F4C1C0C8010E94CA -:103910009217E4CFC816D90608F453C0F601E81B85 -:10392000F90BCF01883C910508F450C0F12C7C2D97 -:10393000D98AC88A89890E94E71AE6EBF1E086E015 -:10394000DF011D928A95E9F70E94271BA0C075131D -:1039500014C0341312C0611110C08091BB01F80172 -:103960008583C8010E94921786E0E6EBF1E0DF0153 -:103970001D928A95E9F7FE2C8AC04D875E878D855A -:103980009E856A8B0E94C11A6A89882309F4BECF7A -:10399000662309F4BBCF2091BB01822F82958F70E3 -:1039A00090E002970CF48ECF8091B6019091B70110 -:1039B0009A8389831B82DD82CC822E83CE0101967D -:1039C0007FCF809590958C0D9D1DACCFF62E6623F4 -:1039D00009F49CCF75132EC034132CC02091BB0169 -:1039E00020FD1FC0822F82958F70D9F0D8011596C7 -:1039F0002C9315978F3049F08F5F982F9295907F79 -:103A0000822F8F70892B15968C93C8010E94921774 -:103A100086E0F801A6EBB1E001900D928A95E1F7FE -:103A200093CF86E0F801A6EBB1E001900D928A9564 -:103A3000E1F72DC04D875E878D859E850E94C11A56 -:103A4000811140CF8091BB0181608093BB01C8018F -:103A50000E9492171CC0662309F458CF4D875E87D9 -:103A60008D859E850E94C11A882309F44FCF2ACFE5 -:103A7000811148CF0CC0243031050CF047CF9F7026 -:103A800009F440CFF8019581907F09F03BCF8F2D4D -:103A900062960FB6F894DEBF0FBECDBFDF91CF9117 -:103AA0001F910F91FF90EF90DF90CF9008951F939B -:103AB000CF93DF93CDB7DEB72C970FB6F894DEBF68 -:103AC0000FBECDBF4F83588769877A878B879C87C6 -:103AD000CE0107960E94901B882369F08F819885FC -:103AE0002A853B85232BF1F19F3F09F063C08F3F6F -:103AF00009F060C037C086E0FE013796DE011196FE -:103B000001900D928A95E1F76F817885EA85FB85B2 -:103B1000309741F17F3F11F46F3F21F120918501F2 -:103B200030E0C9010196877099274091840150E0E7 -:103B30008417950709F447C069837A83FD83EC8372 -:103B400096E0929FD001939FB00D1124AA57BE4FCB -:103B5000FE01319601900D929A95E1F780938501CF -:103B60000E94061B16E080918401909185018917BF -:103B7000C1F1189FC00111248A579E4F0E94901BCB -:103B8000882379F1E09184011E9FF0011124EA5706 -:103B9000FE4F4081518162817381848195810E94B1 -:103BA000F61A8091840190E001968770992780939E -:103BB0008401D9CF4F81588569857A858B859C850D -:103BC0000E94F61ACFCF0E94BD1A10928501109262 -:103BD0008401E6EBF1E086E0DF011D928A95E9F7CA -:103BE000C1CF2C960FB6F894DEBF0FBECDBFDF91CC -:103BF000CF911F910895EF92FF920F931F93CF9350 -:103C0000DF938C01892B09F46CC0F12CEE24E39432 -:103C1000E8012196F8018491843740F4843008F05B -:103C200051C0813081F0823019F15BC0853709F4D1 -:103C300044C0A8F19CE7980F903708F052C08F77E6 -:103C40000E94351741C00E5F1F4FFE01C49180E2F4 -:103C50008C0F883048F4C7708E2D01C0880FCA952C -:103C6000EAF70E94AB2014C08C2F0E946D162DC065 -:103C70000E5F1F4FFE01C49180E28C0F883058F414 -:103C8000C7708E2D01C0880FCA95EAF70E94B12037 -:103C90000E94D2201AC08C2F0E94351716C00E5FCA -:103CA0001F4FFE01C491CC2381F08FE99FE0019763 -:103CB000F1F700C00000C150F6CF0E5F1F4FFE01AC -:103CC000F49003C00E946D168E018F2D882309F495 -:103CD0009FCFEFE9FFE03197F1F700C0000081507E -:103CE000F5CFDF91CF911F910F91FF90EF90089545 -:103CF00008956093C0017093C1018093C2019093B5 -:103D0000C3010C94AB1A0F931F930091C001109143 -:103D1000C1012091C2013091C301DC01CB01802B94 -:103D2000912BA22BB32B8093C0019093C101A09340 -:103D3000C201B093C3011F910F910C94AB1A0F9362 -:103D40001F930091C0011091C1012091C2013091D7 -:103D5000C301DC01CB0180239123A223B3238093F1 -:103D6000C0019093C101A093C201B093C3011F9100 -:103D70000F910C94AB1A0F931F930091C0011091F7 -:103D8000C1012091C2013091C301DC01CB01802728 -:103D90009127A227B3278093C0019093C101A093DC -:103DA000C201B093C3011F910F910C94AB1A1092F2 -:103DB000BC011092BD011092BE011092BF010C9483 -:103DC000AB1A41E050E060E070E004C0440F551FC2 -:103DD000661F771F8A95D2F74093BC015093BD01AF -:103DE0006093BE017093BF010C94AB1A41E050E0A8 -:103DF00060E070E004C0440F551F661F771F8A956E -:103E0000D2F78091BC019091BD01A091BE01B0910B -:103E1000BF01482B592B6A2B7B2B4093BC0150933D -:103E2000BD016093BE017093BF010C94AB1A41E0D9 -:103E300050E060E070E004C0440F551F661F771F1C -:103E40008A95D2F740955095609570958091BC0108 -:103E50009091BD01A091BE01B091BF0148235923AB -:103E60006A237B234093BC015093BD016093BE0144 -:103E70007093BF010C94AB1A41E050E060E070E039 -:103E800004C0440F551F661F771F8A95D2F7809193 -:103E9000BC019091BD01A091BE01B091BF01482726 -:103EA00059276A277B274093BC015093BD0160933B -:103EB000BE017093BF010C94AB1A0F931F93009136 -:103EC000BC011091BD012091BE013091BF01DC0108 -:103ED000CB01802B912BA22BB32B8093BC01909311 -:103EE000BD01A093BE01B093BF011F910F910C942F -:103EF000AB1A0F931F930091BC011091BD0120914B -:103F0000BE013091BF01DC01CB0180239123A223AC -:103F1000B3238093BC019093BD01A093BE01B093E5 -:103F2000BF011F910F910C94AB1A0F931F93009137 -:103F3000BC011091BD012091BE013091BF01DC0197 -:103F4000CB0180279127A227B3278093BC019093B0 -:103F5000BD01A093BE01B093BF011F910F910C94BE -:103F6000AB1A0895CF92DF92EF92FF920F931F93B7 -:103F7000CF93DF938C01C090C001D090C101E0903D -:103F8000C201F090C3014091BC015091BD0160910C -:103F9000BE017091BF01C42AD52AE62AF72ACFE1D3 -:103FA000D0E0D701C6010C2E04C0B695A795979511 -:103FB00087950A94D2F780FF07C0B8018C2F0E9422 -:103FC000DA0B8130910531F4219758F7B80180E080 -:103FD0000E94DA0BDF91CF911F910F91FF90EF902C -:103FE000DF90CF90089590910C01992321F090914A -:103FF0000D01911109C020910E0130910F01F901BD -:1040000032969FEF40E030C0982F96959695969502 -:104010009F30A0F4E0910E01F0910F01E90FF11D26 -:10402000877021E030E0A90102C0440F551F8A9536 -:10403000E2F7CA019181892B818308959091D7017C -:1040400090FF23C01F928F9387ED95E09F938F93EE -:104050000E94EB070F900F900F900F9008959F3FD5 -:1040600039F04F5F4E3041F051915813F8CF0DC0E9 -:104070005111F7CF942FF5CF9F3F39F0F901E90F98 -:10408000F11D97FDFA9582830895089590910C0192 -:10409000992321F090910D01911109C020910E01F9 -:1040A00030910F01F9013296205F3F4F30C0982FB9 -:1040B0009695969596959F30A8F4E0910E01F09113 -:1040C0000F01E90FF11D877021E030E0A90102C066 -:1040D000440F551F8A95E2F7CA0180959181892383 -:1040E000818308959091D70190FF16C01F928F93FE -:1040F00089EB95E09F938F930E94EB070F900F90B1 -:104100000F900F9008953196E217F30729F09081F0 -:104110009813F9CF1082F7CF089581E090E0E091F5 -:104120000E01F0910F01E80FF91F10820196803106 -:104130009105A9F708959091D601892B8093D60116 -:10414000089580959091D60189238093D601089592 -:104150001092D60108959091D501892B8093D501B5 -:10416000089580959091D50189238093D501089574 -:104170001092D50108958093C40108951092C4014E -:10418000089580910E0190910F01FC0131969C01E0 -:10419000205F3F4F80E0919191118F5FE217F3070D -:1041A000D1F70895E0910E01F0910F018091D601B1 -:1041B0008083E0910E01F0910F0190818091D501F3 -:1041C000892B80838091C401882361F0E0910E01E6 -:1041D000F0910F019081892B80830E94C120811171 -:1041E0001092C40180910E0190910F010C94EB1478 -:1041F00090933B0180933A010895CF92DF92EF9222 -:10420000FF926C01EE24FF24C114D104E104F104F7 -:1042100021F0C701B60120E101C020E0C72ED82E51 -:10422000E92EFF24C114D104E104F10419F0285F40 -:10423000C701B6016B017C0154E0F694E794D79472 -:10424000C7945A95D1F7C114D104E104F10419F0CF -:104250002C5FC701B6016B017C0142E0F694E79444 -:10426000D794C7944A95D1F7C114D104E104F1045D -:1042700019F02E5FC701B601DC01CB01B695A795F9 -:1042800097958795892B8A2B8B2B09F02F5F822F8F -:10429000FF90EF90DF90CF9008958295982F9C7CAF -:1042A000392F36953695282F237344E0249FC0017B -:1042B0001124932F982B292F2A7A2695892F8575DB -:1042C000880F822B08951F93CF93DF931F92CDB752 -:1042D000DEB799830E944D21182F9981892F0E9462 -:1042E0004D21212F30E0322F2227A901482BCA016E -:1042F0000F90DF91CF911F9108958091F00184304C -:1043000009F11092D80120E488E190E00FB6F8940A -:10431000A895809360000FBE2093600083B7817FD3 -:10432000846083BF83B7816083BF7894889583B7A7 -:104330008E7F83BF88E10FB6F8948093600010925F -:1043400060000FBE089508950895CF930E94A321A1 -:104350000E947F090E94A421C0E08C2F0E94AB0A1A -:10436000811104C0CF5FCE30C1F701C081E0CF9191 -:1043700008950C94BD1A82E084BD93E095BD9AEF38 -:1043800097BD80936E0008952FB7F8948091D9015E -:104390009091DA01A091DB01B091DC012FBF08956B -:1043A000CF92DF92EF92FF920F931F932FB7F89463 -:1043B0004091D9015091DA016091DB017091DC01EB -:1043C0002FBF6A017B01EE24FF248C0120E030E046 -:1043D000C016D106E206F30610F4415051099A01C5 -:1043E000281B390BC9011F910F91FF90EF90DF90AF -:1043F000CF9008951F920F920FB60F9211248F93B2 -:104400009F93AF93BF938091D9019091DA01A091CE -:10441000DB01B091DC010196A11DB11D8093D90192 -:104420009093DA01A093DB01B093DC01BF91AF91CF -:104430009F918F910F900FBE0F901F9018950E9423 -:10444000DD11F8942FEF87EA91E6215080409040EB -:10445000E1F700C0000087E090EBDC018093F901F8 -:104460009093FA01A093FB01B093FC019CE088E1DA -:104470000FB6F894A895809360000FBE90936000EB -:10448000FFCFEF92FF920F931F93CF93DF93D82F1D -:10449000C0E08C2F0E94AB0A00E010E0E82EF12C67 -:1044A000C701002E02C0959587950A94E2F780FD1A -:1044B00006C00F5F1F4F0630110591F709C0602F2E -:1044C0007C2F80E00E94B80BD813F3CF81E004C0AA -:1044D000CF5FCE30F1F680E0DF91CF911F910F9149 -:1044E000FF90EF900895CF93C82F8CE20E94412255 -:1044F000882321F08C2FCF910C94412280E0CF9122 -:104500000895CF930E94D023811102C00E94B62348 -:104510008CEF95E00E945207C5E6C15049F00E9419 -:104520007F098FE39CE90197F1F700C00000F5CF08 -:1045300085EF95E00E94520789E20E947322811163 -:1045400013C18AE20E94732281110E94B62385E082 -:104550000E94732281110E941F220E94DB238093FC -:10456000D70187E00E9473228823A9F18BE10E9482 -:104570007322882351F08091D70181FB222720F9F3 -:1045800091E0922790FB81F90EC08EE00E94732289 -:10459000882361F08091D70182FB222720F991E0E6 -:1045A000922790FB82F98093D70115C080E10E9489 -:1045B00073229091D701882341F093FB222720F9A1 -:1045C00081E0822780FB93F904C0892F809580FBCE -:1045D00090F99093D7018091D7010E94DF230E9428 -:1045E000ED238093EA0180EE0E947322882341F03C -:1045F0008091EA01982F909590FB80F98093EA01D1 -:1046000089E30E947322882359F08091EA0181FB9B -:10461000222720F991E0922790FB81F98093EA010B -:1046200082EE0E947322882359F08091EA0182FB76 -:10463000222720F991E0922790FB82F98093EA01EA -:1046400086EE0E947322882359F08091EA0183FB51 -:10465000222720F991E0922790FB83F98093EA01C9 -:1046600083EE0E947322882359F08091EA0184FB33 -:10467000222720F991E0922790FB84F98093EA01A8 -:1046800085E30E947322882359F08091EA0185FB1B -:10469000222720F991E0922790FB85F98093EA0187 -:1046A00081E30E947322882359F08091EA0186FBFE -:1046B000222720F991E0922790FB86F98093EA0166 -:1046C00081E10E947322882359F08091EA0187FBDF -:1046D000222720F991E0922790FB87F98093EA0145 -:1046E0008091EA010E94F1238091EA0187FB8827EB -:1046F00080F980930D0187E20E947322C82F8EE11A -:104700000E9473228111C2608FE10E947322811185 -:10471000C46080E20E9473228111C86081E20E941D -:1047200073228111C06182E20E9473228111C062F2 -:1047300083E20E9473228111C06484E20E9473228A -:10474000882311F0C06802C0CC2329F08C2F0E946E -:10475000E8236C2F03C00E94E423682F70E080E000 -:1047600090E0CF910C94791ECF9108956DEE7EEF7D -:1047700080E090E00E94B92D60E082E090E00E942D -:10478000AB2D60E083E090E00E94AB2D60E084E020 -:1047900090E00E94AB2D60E085E090E00C94AB2DA2 -:1047A00080E090E00E94A52D21E08D3E9E4F09F013 -:1047B00020E0822F089582E090E00C949D2D682FD8 -:1047C00082E090E00C94AB2D83E090E00C949D2D62 -:1047D000682F83E090E00C94AB2D84E090E00C9483 -:1047E0009D2D682F84E090E00C94AB2D8091DF012B -:1047F00080FF0BC06091130185E0689FB001112418 -:1048000075956795759567952BC081FF09C0609177 -:10481000130185E0689FB00111247595679520C04C -:1048200082FF07C06091130185E0689FB0011124E9 -:1048300017C09091E0019923D1F060911201961771 -:1048400088F72091130185E0289F90011124929F01 -:10485000A001939F500D112470E0CA010E946F2D9A -:104860006038710540F46115710539F002C065E0EA -:1048700070E0862F08958FE7089581E00895809174 -:10488000DF0180FF08C06091110170E075956795A8 -:104890007595679521C081FF06C06091110170E098 -:1048A0007595679519C082FF04C06091110170E091 -:1048B00010C09091E0019923C1F06091100196170A -:1048C000A0F780911101899FC001112470E00E941E -:1048D0006F2D6038710528F46115710521F0862F60 -:1048E00008958FE7089581E0089561E070E0F4CFC6 -:1048F000803F21F40E94F623819504C0813F29F472 -:104900000E94F6238093E3010895823F21F40E94E0 -:10491000F623819504C0833F29F40E94F6238093F7 -:10492000E2010895893F19F40E943F2405C08A3F9F -:1049300031F40E943F2481958093E40108958B3FD8 -:1049400021F40E943F24819504C08C3F29F40E94E9 -:104950003F248093E5010895843F21F48091E10193 -:10496000816017C0853F21F48091E101826011C010 -:10497000863F21F48091E10184600BC0873F21F4E0 -:104980008091E101886005C0883F31F48091E101A8 -:1049900080618093E10108958D3F21F48091DF01D2 -:1049A00081600BC08E3F21F48091DF01826005C0E1 -:1049B0008F3F29F48091DF0184608093DF010895A7 -:1049C000803F39F48091E30187FF6CC01092E301CE -:1049D00069C0813F29F48091E3011816BCF362C0DD -:1049E0009091E201823F29F497FF5CC01092E201AE -:1049F00059C0833F19F41916CCF354C0893F41F4D0 -:104A00008091E40118160CF04DC01092E4014AC0E8 -:104A10008A3F29F48091E40187FF44C0F6CF8B3FA1 -:104A200039F48091E50187FF3DC01092E5013AC05D -:104A30008C3F29F48091E5011816BCF333C0843F04 -:104A400021F48091E1018E7F17C0853F21F4809190 -:104A5000E1018D7F11C0863F21F48091E1018B7FC0 -:104A60000BC0873F21F48091E101877F05C0883F1B -:104A700031F48091E1018F7E8093E10113C08D3F7D -:104A800021F48091DF018E7F0BC08E3F21F4809155 -:104A9000DF018D7F05C08F3F29F48091DF018B7F7F -:104AA0008093DF018091E20181110EC08091E301CA -:104AB00081110AC08091E401811106C08091E50155 -:104AC000811102C01092E00108958091D70183FF07 -:104AD0007EC088E396E00E9452078091E1011F9218 -:104AE0008F9383E396E09F938F930E94EB0781E37C -:104AF00096E00E9452078091E201282F332727FD7C -:104B000030953F938F938EE296E09F938F930E9410 -:104B1000EB078CE296E00E9452078091E301282F78 -:104B2000332727FD30953F938F9389E296E09F933B -:104B30008F930E94EB0787E296E00E9452078091D4 -:104B4000E401282F332727FD30953F938F9384E28C -:104B500096E09F938F930E94EB0782E296E00E947B -:104B600052078091E501282F332727FD30953F9389 -:104B70008F938FE196E09F938F930E94EB078CE1D8 -:104B800096E00E9452078091E0011F928F9389E185 -:104B900096E09F938F930E94EB0787E196E00E9437 -:104BA00052078091DF011F928F9384E196E09F93DB -:104BB0008F930E94EB0781E196E00E9452078DB728 -:104BC0009EB74C960FB6F8949EBF0FBE8DBF81EE78 -:104BD00091E00E9434150E94C4219093DE018093DD -:104BE000DD0108951F93CF93DF938091DD019091B4 -:104BF000DE010E94D021AC019091E001992321F0C7 -:104C00002091140130E006C0209115018AE0289F10 -:104C1000900111244217530708F486C08091E201E5 -:104C2000C091E301D091E4011091E501811107C029 -:104C3000C11176C0D11174C0111172C075C09F3FEF -:104C400019F09F5F9093E001181624F40E94F62358 -:104C50008093E2018091E20187FF05C00E94F62364 -:104C600081958093E2011C1624F40E94F623809320 -:104C7000E3018091E30187FF05C00E94F62381953F -:104C80008093E3016091E201662339F1C091E30171 -:104C9000CC2319F1772767FD7095872F972F0E94F6 -:104CA000742C23E333E343E35FE30E94D82C0E9498 -:104CB000412C6093E2016C2F772767FD7095872F59 -:104CC000972F0E94742C23E333E343E35FE30E94B6 -:104CD000D82C0E94412C6093E3011D1624F40E94FD -:104CE0003F248093E4018091E40187FF05C00E9486 -:104CF0003F2481958093E401111624F40E943F24FF -:104D00008093E5018091E50187FF05C00E943F2463 -:104D100081958093E501DF91CF911F910C946525DA -:104D20009F3F09F08ECF96CFDF91CF911F910895CD -:104D3000E1EEF1E085E0DF011D928A95E9F710923E -:104D4000E0011092DF0108958BE598E00E94520780 -:104D50001F9281E08F931F9285E08F938DE098E002 -:104D60009F938F930E94EB070F900F900F900F90DF -:104D70000F900F9008958330E9F128F4813061F0AD -:104D8000823009F10895853009F462C008F449C001 -:104D9000863009F474C0089580911501262F30E003 -:104DA000280F311D2F3F310524F4680F6093150142 -:104DB00003C08FEF80931501809115011F928F938F -:104DC00086E497E072C080911401262F30E0280F0E -:104DD000311D2F3F310524F4680F6093140103C087 -:104DE0008FEF80931401809114011F928F9384E3BD -:104DF00097E05BC080911301262F30E0280F311D12 -:104E00002F3F310524F4680F6093130103C08FEF27 -:104E100080931301809113011F928F9381E297E099 -:104E200044C080911201262F30E0280F311D2F3F02 -:104E3000310524F4680F6093120103C08FEF809353 -:104E40001201809112011F928F938CE097E02DC088 -:104E500080911101262F30E0280F311D2F3F3105A1 -:104E600024F4680F6093110103C08FEF8093110148 -:104E7000809111011F928F9383EF96E016C080916D -:104E80001001262F30E0280F311D2F3F310524F46B -:104E9000680F6093100103C08FEF80931001809121 -:104EA00010011F928F9388ED96E09F938F930E943D -:104EB000EB070F900F900F900F900895833081F1C2 -:104EC00028F4813059F08230D1F00895853009F40A -:104ED00049C0B8F1863009F456C008958091150193 -:104EE000681720F4861B8093150102C010921501EB -:104EF000809115011F928F9389EC96E054C08091A8 -:104F00001401681720F4861B8093140102C01092CC -:104F10001401809114011F928F9387EB96E043C098 -:104F200080911301681720F4861B8093130102C03F -:104F300010921301809113011F928F9384EA96E0DF -:104F400032C080911201681720F4861B80931201F1 -:104F500002C010921201809112011F928F938FE86C -:104F600096E021C080911101681720F4861B809380 -:104F7000110102C010921101809111011F928F93B3 -:104F800086E796E010C080911001681720F4861B18 -:104F90008093100102C010921001809110011F92A5 -:104FA0008F938BE596E09F938F930E94EB070F9072 -:104FB0000F900F900F900895CF93C82F1F928F934B -:104FC00080E699E09F938F930E94EB0781E090E049 -:104FD000A0E0B0E0BC01CD0104C0660F771F881FC0 -:104FE000991FCA95D2F70E94791E0F900F900F90CB -:104FF0000F90CF910C94BD1ACF938D3109F465C0F9 -:10500000B0F58E3009F4CCC100F5873009F49BC1AE -:10501000A8F4863009F06DC28091D701817F8E7F20 -:105020008093D70185E699E00E94520781EA9DE0CE -:105030000E94520781E08093E70180C1883009F423 -:105040004FC08B3009F47CC154C2863109F4F0C1E1 -:1050500038F4803109F4B8C1813109F430C249C251 -:10506000893109F4CEC18B3109F486C142C285333E -:1050700009F437C248F4873209F433C208F433C262 -:10508000893209F42EC235C2833438F48A3308F0E9 -:105090002CC2883309F454C12CC2833409F421C2D0 -:1050A000883409F026C20E94BD1A80E99DE00E9462 -:1050B00052079FEF23ED80E3915020408040E1F7BD -:1050C00000C000000E941F2239C180EB9DE00E94B9 -:1050D00052070E94FB2B0E94DF140E94110D2EC16B -:1050E00085EA9DE00E94520786E79BE00E945207F6 -:1050F0000E94E4231F928F9383E79BE09F938F93FB -:105100000E94EB0781E79BE00E9452070E94DB238D -:10511000C82F8EE59BE00E9452071F92CF9389E52E -:105120009BE09F938F930E94EB0787E59BE00E9493 -:1051300052078DE49BE00E9452078C2F81701F92D2 -:105140008F938AE49BE09F938F930E94EB0788E400 -:105150009BE00E9452078EE39BE00E945207C1FB36 -:10516000882780F91F928F938BE39BE09F938F9307 -:105170000E94EB0789E39BE00E9452078DE29BE0CF -:105180000E945207C2FB882780F91F928F938AE200 -:105190009BE09F938F930E94EB0788E29BE00E9425 -:1051A00052078FE19BE00E945207C3FBCC27C0F956 -:1051B0001F92CF938CE19BE09F938F930E94EB070C -:1051C0008AE19BE00E9452070E94ED23C82F86E0EF -:1051D0009BE00E9452071F92CF9381E09BE09F9338 -:1051E0008F930E94EB078FEF9AE00E94520786EEA2 -:1051F0009AE00E9452078C2F81701F928F9383EE4A -:105200009AE09F938F930E94EB078DB79EB780968D -:105210000FB6F8949EBF0FBE8DBF81EE9AE00E943C -:1052200052078AEC9AE00E945207C1FB882780F956 -:105230001F928F9387EC9AE09F938F930E94EB07C6 -:1052400085EC9AE00E94520783EB9AE00E94520795 -:10525000C2FB882780F91F928F9380EB9AE09F937F -:105260008F930E94EB078EEA9AE00E9452078CE926 -:105270009AE00E945207C3FB882780F91F928F9300 -:1052800089E99AE09F938F930E94EB0787E99AE060 -:105290000E9452078DE89AE00E945207C4FB8827BB -:1052A00080F91F928F938AE89AE09F938F930E94D0 -:1052B000EB0788E89AE00E94520786E79AE00E948E -:1052C0005207C5FB882780F91F928F9383E79AE0E6 -:1052D0009F938F930E94EB0781E79AE00E94520709 -:1052E00085E59AE00E945207C6FB882780F91F9245 -:1052F0008F9382E59AE09F938F930E94EB0780E55E -:105300009AE00E94520788E49AE00E945207C7FB85 -:10531000CC27C0F91F92CF9385E49AE09F938F9397 -:105320000E94EB0783E49AE00E9452078DB79EB774 -:105330004C960FB6F8949EBF0FBE8DBFC1E0DEC085 -:105340008CE899E05BC08091D701C82FC17080FFC5 -:1053500009C083E89DE00E9452078091D701817FB8 -:105360008E7F47C087E79DE00E9452078091D7015A -:1053700081608093D701E2CF9091D70191FBCC2738 -:10538000C0F981E0C827892FC0FB81F98093D7013C -:10539000CC2319F08AE69DE027C08CE59DE02EC065 -:1053A0009091D70192FBCC27C0F981E0C827892FC3 -:1053B000C0FB82F98093D701CC2319F08DE49DE0E6 -:1053C00013C08DE39DE01AC09091D70193FBCC27C9 -:1053D000C0F981E0C827892FC0FB83F98093D701EA -:1053E000CC2351F081E39DE00E9452078091D701C8 -:1053F00081608093D70182C084E29DE00E945207C1 -:105400009DCF85E19DE00E94520789EE9CE00E94BD -:1054100052078CEA9CE00E94520785E89CE00E94BB -:10542000520781E49CE00E94520786E19CE0E6CFAF -:1054300088E09CE00E9452070E94DF141F928F9325 -:105440008EEE9BE09F938F930E94EB0780910C015F -:105450001F928F9387ED9BE09F938F930E94EB07A2 -:1054600080916E011F928F9384EC9BE09F938F93AA -:105470000E94EB0780910D011F928F9381EB9BE0BF -:105480009F938F930E94EB078091D9019091DA014D -:10549000A091DB01B091DC01BF93AF939F938F93F9 -:1054A0008DE99BE09F938F930E94EB078DB79EB78A -:1054B00046960FB6F8949EBF0FBE8DBF3FCF0E9499 -:1054C000BD1AC0910D0181E0C827C0930D01CC2306 -:1054D00029F083E99BE00E94520710C088E89BE016 -:1054E0008DCF80E003C08D5101C089530E94DC271D -:1054F00025CF86E89BE00E945207C0E08C2FCF9119 -:10550000089580E0089580E00895CF93C82F80919A -:10551000E701813081F020F0823009F44FC045C1AD -:10552000E0910E01F0910F018081813169F08232AA -:1055300009F03DC109C0E0910E01F0910F01808199 -:10554000813111F0823261F48C2F0E94812A811105 -:1055500004C08C2F0E94FC272FC081E090E02CC05B -:105560008C2F0E94832A811126C0C431E1F070F48F -:10557000CB3081F0C031D1F40E94A42688E599E0B7 -:105580000E94520782E08093E70115C0C93259F0AA -:10559000C83361F485E699E00E9452078CE599E0F2 -:1055A0000E94520708C01092E70103C186E599E006 -:1055B0000E945207FEC081E08170FDC0C43220F518 -:1055C000CE3108F0C0C0CB3099F1C8F4C73009F033 -:1055D000D2C08AE08093150194E19093140193E086 -:1055E000909313018093120188E08093110188E267 -:1055F000809310018CEF97E00E945207BFC0C33127 -:1056000049F1C431C1F0B7C0CB3409F4A9C028F4C2 -:10561000C93289F0C83361F0AEC0C13509F49EC00B -:10562000C23509F499C0CE3409F0A5C06AE09EC025 -:105630000E94A426A3C08091E601882319F010924D -:10564000E6019CC089E098E00E94520781E08093C7 -:10565000E701B1C083EE97E00E94520781ED97E029 -:105660000E945207809115011F928F938EEC97E054 -:105670009F938F930E94EB078CEC97E00E94520758 -:105680008AEB97E00E945207809114011F928F933A -:1056900087EB97E09F938F930E94EB0785EB97E052 -:1056A0000E94520786EA97E00E94520780911301F8 -:1056B0001F928F9383EA97E09F938F930E94EB074B -:1056C00081EA97E00E94520780E997E00E94520722 -:1056D000809112011F928F938DE897E09F938F9393 -:1056E0000E94EB078BE897E00E94520786E797E05D -:1056F0000E945207809111011F928F9383E797E0D8 -:105700009F938F930E94EB0781E797E00E945207D7 -:105710008AE597E00E945207809110011F928F93B3 -:1057200087E597E09F938F930E94EB0785E597E0CD -:105730000E9452078DB79EB748960FB6F8949EBF49 -:105740000FBE8DBF1BC0CE51EC2FF0E0E15DFE4FD0 -:1057500080818093E60112C061E003C061E006C071 -:105760006AE08091E6010E94BB2608C08091E601B4 -:105770000E945E2703C08AEF97E013C08091E60184 -:10578000882369F01F928F9384EF97E09F938F9304 -:105790000E94EB070F900F900F900F9004C081EFC5 -:1057A00097E00E94520781E006C01092E70180E076 -:1057B00002C080E001CFCF910895E1E8F0E0808160 -:1057C000886080838081816080838FB7F89493E0C4 -:1057D0009093890090ED909388008FBF0895EFE635 -:1057E000F0E08081826080830895EFE6F0E08081C0 -:1057F0008D7F80830895EFE6F0E0908182E0892735 -:10580000808308951F920F920FB60F9211242F9349 -:105810003F934F935F936F937F938F939F93AF9338 -:10582000BF93EF93FF938091E8019091E901019676 -:105830009093E9018093E801811103C082E00E9406 -:10584000110DE091E901E695E695F0E0E054F24FA4 -:10585000E4918091E8018E1303C080E00E94110D55 -:10586000FF91EF91BF91AF919F918F917F916F9138 -:105870005F914F913F912F910F900FBE0F901F900E -:10588000189504D06894B1118DC0089570D088F037 -:105890009F5790F0B92F9927B751A0F0D1F0660F1C -:1058A000771F881F991F1AF0BA95C9F712C0B13037 -:1058B00081F077D0B1E0089574C0672F782F8827E2 -:1058C000B85F39F0B93FCCF3869577956795B39576 -:1058D000D9F73EF490958095709561957F4F8F4FE5 -:1058E0009F4F0895E89409C097FB3EF490958095EA -:1058F000709561957F4F8F4F9F4F9923A9F0F92F96 -:1059000096E9BB279395F695879577956795B79513 -:10591000F111F8CFFAF4BB0F11F460FF1BC06F5FF9 -:105920007F4F8F4F9F4F16C0882311F096E911C00B -:10593000772321F09EE8872F762F05C0662371F02C -:1059400096E8862F70E060E02AF09A95660F771F40 -:10595000881FDAF7880F9695879597F9089557FD70 -:105960009058440F551F59F05F3F71F04795880FCD -:1059700097FB991F61F09F3F79F087950895121664 -:1059800013061406551FF2CF4695F1DF08C0161610 -:1059900017061806991FF1CF8695710561050894C1 -:1059A0000895E894BB2766277727CB0197F90895D8 -:1059B0000BD078C069D028F06ED018F0952309F08C -:1059C0005AC05FC01124EECFCADFA0F3959FD1F378 -:1059D000950F50E0551F629FF001729FBB27F00D9D -:1059E000B11D639FAA27F00DB11DAA1F649F6627F2 -:1059F000B00DA11D661F829F2227B00DA11D621F41 -:105A0000739FB00DA11D621F839FA00D611D221FFA -:105A1000749F3327A00D611D231F849F600D211DDE -:105A2000822F762F6A2F11249F5750408AF0E1F081 -:105A300088234AF0EE0FFF1FBB1F661F771F881FCA -:105A400091505040A9F79E3F510570F014C0AACF65 -:105A50005F3FECF3983EDCF3869577956795B795B5 -:105A6000F795E7959F5FC1F7FE2B880F911D9695DF -:105A7000879597F9089597F99F6780E870E060E04F -:105A800008959FEF80EC089500240A9416161706D7 -:105A900018060906089500240A941216130614061F -:105AA00005060895092E0394000C11F4882352F082 -:105AB000BB0F40F4BF2B11F460FF04C06F5F7F4F3A -:105AC0008F4F9F4F0895991B79E004C0991F961737 -:105AD00008F0961B881F7A95C9F78095089597FB63 -:105AE000072E16F4009407D077FD09D00E94892D67 -:105AF00007FC05D03EF4909581959F4F08957095D1 -:105B000061957F4F0895EE0FFF1F0590F491E02DF2 -:105B10000994AA1BBB1B51E107C0AA1FBB1FA617F4 -:105B2000B70710F0A61BB70B881F991F5A95A9F746 -:105B300080959095BC01CD010895F999FECF92BD55 -:105B400081BDF89A992780B50895A8E1B0E042E0B8 -:105B500050E00C94C02D262FF999FECF1FBA92BDAC -:105B600081BD20BD0FB6F894FA9AF99A0FBE01963E -:105B700008950E94AB2D272F0C94AC2DDC01CB0196 -:105B8000FC01F999FECF06C0F2BDE1BDF89A31964D -:105B900000B40D9241505040B8F70895F894FFCFEB -:105BA0002002120D030EE00DAC0D780D0101C501B0 -:105BB00028080A03140A3F4D3620394605F904C364 -:105BC00004A3046A04DD03F6030F04280448040157 -:0A5BD000020304050607080900009F -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c b/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c deleted file mode 100644 index bec67e7d4c..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c +++ /dev/null @@ -1,137 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_extras/keymap_neo2.h" - -// Layer names -#define BASE 0 // default layer -#define FMU 1 // FMU layer - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Layer 0 (default) - * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ - * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ - * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ - * │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │ - * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ - * │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │ - * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │ │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ - * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ - * │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ Alt │ CTL │ - * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ - * │ ← │ ↑ │ │ ↓ │ → │ - * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ - * │ │ │ ─ │ │ ─ │ │ │ - * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ - * │ │ │ HYP │ │ MEH │ │ │ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ - */ -[BASE] = KEYMAP( - // left hand - KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, - NEO_Y, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_HOME, - NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, - KC_LSFT, NEO_UE, NEO_OE, NEO_AE, NEO_P, NEO_Z, KC_TRNS, - KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,NEO_L2_L, - KC_LEFT, KC_UP, - KC_MINS, - KC_SPC, KC_ENT, ALL_T(KC_NO), - // right hand - DE_ACUT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_END, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, - NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R, - KC_TRNS, NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT, - NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, - KC_DOWN, KC_RGHT, - KC_MINS, - MEH_T(KC_NO),KC_ENT,KC_SPC - ), -/* Layer 1 (F-keys, Mouse and Unicode) - * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ - * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ - * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ - * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ - * ├───────┼─────┼─────┼─────╄─────╃─────┤ │ │ ├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ - * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ - * │ │ │(MO1)│ │ │ │ │ │(MO1)│ │ │ - * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ - * │ Ms← │ Ms↑ │ │ Ms↓ │ Ms→ │ - * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ - * │ │ │ MLC │ │ MRC │ │ │ - * │ │ ├─────┤ ├─────┤ │ │ - * │ │ │ │ │ │ │ │ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ - */ -[FMU] = KEYMAP( - // left hand - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),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_MS_L, KC_MS_U, - KC_BTN1, - 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_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS,KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, - KC_TRNS, KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_MS_D, KC_MS_R, - KC_BTN2, - KC_TRNS, KC_TRNS,KC_TRNS - ), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(FMU) -}; - - -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 FMU: - ergodox_right_led_1_on(); - default: - ergodox_board_led_off(); - break; - } - -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_dave.c b/keyboard/ergodox_ez/keymaps/keymap_dave.c deleted file mode 100644 index a0c74ad805..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_dave.c +++ /dev/null @@ -1,195 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 // default layer -#define PROG 1 // symbols -#define NAVI 2 // navigation keys - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | BkSpce | - * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | Y | | G | Y | U | I | O | P | Enter | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | - * |--------+------+------+------+------+------| H | | B |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |`/Ctrl| \ | | | LAlt | | RAlt | | [ | ] |'/Ctrl| - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | PrtS | Apps | | Paus | CtAl | - * ,------+------+------| |------+------+------. - * | | | L1 | | L1 | | | - * | Spce | ~L2 +------| |------+ ~L1 | Spce | - * | | | LGui | | RGui | | | - * `--------------------' `--------------------' - */ -[BASE] = KEYMAP( // layer 0 : default - // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, - KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H, - CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT, - KC_PSCREEN, KC_APP, - TO(PROG, ON_PRESS), - KC_SPC, MO(NAVI), KC_LGUI, - // right hand - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, - KC_G, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, - KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_RALT,KC_NO, KC_LBRC,KC_RBRC, CTL_T(KC_QUOT), - KC_PAUS, MT(0x5, KC_NO), - TO(PROG, ON_PRESS), - KC_RGUI, MO(PROG), KC_SPC - ), - -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | K/ | K* | K- | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | ( | ) | | | | | | | K7 | K8 | K9 | K+ | # | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | { | } | ` |------| |------| | K4 | K5 | K6 | K+ | ' | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | | K1 | K2 | K3 | K= | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | K0 | K0 | K. | K= | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | L2 | | L2 | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[PROG] = KEYMAP( - // left hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, - KC_TRNS, 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, - TO(NAVI, ON_PRESS), - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_EQUAL, - KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NUHS, - KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_QUOT, - KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS, - KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_TRNS, - KC_TRNS, KC_TRNS, - TO(NAVI, ON_PRESS), - KC_TRNS, KC_TRNS, KC_TRNS -), - -/* Keymap 2: Navigation and system keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | Home | Up | End | Ins | PgUp | | | | | | Ins | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | Left | Down | Rght | Del | PgDn |------| |------| | Back | Del | Fwrd | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | Lclk | MsUp | Rclk | | | | | | | Prev | Play | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | MsLt | MsDn | MsRt | | |VolDn | Mute |VolUp | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Powr | Log | | | | - * ,------|------|------| |------+------+------. - * | | | L0 | | L0 | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[NAVI] = KEYMAP( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - KC_TRNS, KC_HOME, KC_UP, KC_END, KC_INS, KC_PGUP, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DELT, KC_PGDN, - KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_PWR, LCTL(LALT(KC_DELT)), - TO(BASE, ON_PRESS), - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_WBAK, KC_DELT, KC_WFWD, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, - KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - TO(BASE, ON_PRESS), - KC_TRNS, KC_TRNS, KC_TRNS -), -}; - -const uint16_t PROGMEM fn_actions[] = { - //[1] = ACTION_LAYER_TAP_TOGGLE(PROG), // FN1 - Momentary Layer 1 (Symbols) - //[2] = ACTION_LAYER_TAP_TOGGLE(NAVI) // FN2 - Momentary Layer 2 (Navigation) -}; - -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) { - return NULL; -}; - -// Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { - /* leds is a static array holding the current brightness of each of the - * three keyboard LEDs. It's 4 long simply to avoid the ugliness of +1s and - * -1s in the code below, and because wasting a byte really doesn't matter - * that much (no, it *doesn't*, stop whinging!). Note that because it's - * static it'll maintain state across invocations of this routine. - */ - static uint8_t leds[4]; - uint8_t led; - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - - /* Loop over each LED/layer */ - for (led = 1; led <= 3; ++led) { - /* If the current layer matches the current LED, increment its - * brightness by 1 up to a maximum of 255. If the current layer doesn't - * match, decrement its brightness by 1 down to a minimum of zero. - */ - leds[led] += (layer == led) ? - (leds[led] < 255 ? 1 : 0): - (leds[led] > 0 ? -1 : 0); - /* Set LED state according to the new brightness */ - if (leds[led]) { - ergodox_right_led_on(led); - ergodox_right_led_set(led, leds[led]); - } - else { - ergodox_right_led_off(led); - } - } - - return NULL; -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_dave.hex b/keyboard/ergodox_ez/keymaps/keymap_dave.hex deleted file mode 100644 index 767a9ca117..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_dave.hex +++ /dev/null @@ -1,1483 +0,0 @@ -:100000000C94FE060C9442070C9442070C94420791 -:100010000C9442070C9442070C9442070C9442073C -:100020000C9442070C9442070C94B2120C94841363 -:100030000C9442070C9442070C9442070C9442071C -:100040000C9442070C945C2C0C9442070C944207CD -:100050000C9442070C9463220C9442070C944207C0 -:100060000C9442070C9442070C9442070C944207EC -:100070000C9442070C9442070C9442070C944207DC -:100080000C9442070C9442070C9442070C944207CC -:100090000C9442070C9442070C9442070C944207BC -:1000A0000C9442070C9442070C944207E9130B147A -:1000B000F6140B14F6144D147014F614C514D81459 -:1000C00026182618541854189718D318D41AD41A66 -:1000D000EB18D41AE219E219AE1AD41AD41AC21AB9 -:1000E00029002B00E000E100357100001E00140023 -:1000F00004001D006400E3001F001A0016001B002E -:1001000000000252200008000700060000002C003A -:100110002100150009001900E2001151220017000A -:100120000A0005000000460023001C0000000B0030 -:100130000000650023000A000000050000004800E0 -:1001400024001C000B0011000000007525001800A1 -:100150000D001000E600115126000C000E003600C4 -:1001600000002C00270012000F0037002F00015262 -:100170002D001300330038003000E7002A0028006B -:100180002800E500347100000100010001000100B9 -:100190000100000001001E022002220201000100F5 -:1001A00001001F02210223020100010001002F02B1 -:1001B00026022F000100010001003002270230005A -:1001C000010012510100310235003502000001002A -:1001D0000100010000000100000001000100010019 -:1001E0000000010000000100010001000100010009 -:1001F0000000010000005F005C0059006200125125 -:10020000540060005D005A0062000100550061006A -:100210005E005B0063000100560057005700580065 -:10022000580001002E0032003400010001000000DF -:100230000100010001000100010000003A004A0035 -:100240005000F400F20001003B0052005100F000A9 -:10025000F10001003C004D004F00F500F3000100EB -:100260003D0049004C000100010010513E004B00D0 -:100270004E0001000000A5003F0001000000010049 -:1002800000004C05400001000000010000000100DA -:1002900041000100010001000000010042000100D6 -:1002A000B600AC00AA001051430049004C00AE005B -:1002B000A800010044000100B700AB00A900010044 -:1002C00045000100010001000100010001000100E2 -:1002D00001000100010000000A00253031366200F3 -:1002E0003A200025303258000A722F632030313214 -:1002F000333435363738394142434445460A000ADB -:10030000002530325800626F756E6365213A200017 -:100310006C656674207369646520617474616368D8 -:1003200065640A006C6566742073696465206E6F8D -:100330007420726573706F6E64696E670A00747200 -:1003400079696E6720746F207265736574206D63C0 -:100350007032333031380A000A44454255473A205A -:10036000656E61626C65642E0A005B735D004B65AF -:1003700079626F6172642073746172742E0A005B1B -:10038000575D005B535D005B525D005B445D005B4D -:10039000435D0016034500720067006F0044006F64 -:1003A000007800200045005A000000160345007246 -:1003B0000067006F0044006F007800200045005A7D -:1003C0000000000403090409028D00050100A0FAE1 -:1003D00009040000010301010009211101000122AB -:1003E0003F000705810308000A0904010001030119 -:1003F0000200092111010001224D000705820308B6 -:10040000000A090402000103000000092111010093 -:10041000012236000705830308000A0904030002CD -:1004200003000000092111010001222000070584BA -:100430000320000107050403200001090404000152 -:100440000300000009211101000122390007058580 -:10045000031000011201100100000008EDFE071357 -:1004600001000102000105010906A101050719E0CB -:1004700029E7150025019508750181020508190174 -:1004800029059505750191029501750391010507EF -:100490001900297715002501957875018102C0069C -:1004A00031FF0974A1010975150025FF9520750814 -:1004B00081020976150025FF952075089102C00577 -:1004C000010980A101850216010026B7001A01006A -:1004D0002AB700751095018100C0050C0901A10122 -:1004E0008503160100269C021A01002A9C02751041 -:1004F00095018100C005010902A1010901A10005C2 -:100500000919012905150025019505750181029537 -:1005100001750381010501093009311581257F9598 -:10052000027508810609381581257F9501750881B6 -:1005300006050C0A38021581257F9501750881068C -:10054000C0C005010906A101050719E029E715004A -:10055000250195087501810295017508810105083D -:100560001901290595057501910295017503910100 -:100570000507190029FF150025FF9506750881005C -:10058000C00A002530325820006B6579626F6172B5 -:10059000645F7265706F72743A20000A0025303211 -:1005A00058006B6579626F6172645F7365745F6C2C -:1005B00065643A200064656C5F6B65795F6269749D -:1005C0003A2063616E27742064656C3A20253032CE -:1005D000580A006164645F6B65795F6269743A20F0 -:1005E00063616E2774206164643A20253032580AB2 -:1005F00000646F6E652E0A00626F6F676D616769D8 -:1006000063207363616E3A202E2E2E2000290A008B -:100610002575002F002575005D2800256400200049 -:10062000256400200025640020002564007C00254E -:10063000303258006D6F7573656B6579205B62743D -:100640006E7C782079207620685D287265702F6135 -:10065000636C293A205B006D6B5F776865656C5F42 -:1006600074696D655F746F5F6D6178203D202564EE -:100670000A006D6B5F776865656C5F6D61785F73AD -:1006800070656564203D2025640A006D6B5F7469A8 -:100690006D655F746F5F6D6178203D2025640A0091 -:1006A0006D6B5F6D61785F7370656564203D2025BB -:1006B000640A006D6B5F696E74657276616C203DD3 -:1006C0002025640A006D6B5F64656C6179203D20B4 -:1006D00025640A006D6B5F776865656C5F74696D92 -:1006E000655F746F5F6D6178203D2025640A006D41 -:1006F0006B5F776865656C5F6D61785F737065656A -:1007000064203D2025640A006D6B5F74696D655F30 -:10071000746F5F6D6178203D2025640A006D6B5F0A -:100720006D61785F7370656564203D2025640A0003 -:100730006D6B5F696E74657276616C203D20256417 -:100740000A006D6B5F64656C6179203D2025640A49 -:10075000000A00257500363A20776865656C5F747D -:10076000696D655F746F5F6D61783A20000A0025DE -:100770007500353A20776865656C5F6D61785F73E9 -:10078000706565643A20000A00257500343A2074CB -:10079000696D655F746F5F6D61783A20000A0025AE -:1007A0007500333A206D61785F73706565643A2037 -:1007B000000A00257500323A20696E746572766110 -:1007C0006C286D73293A20000A00257500313A2003 -:1007D00064656C6179282A31306D73293A20000AEA -:1007E000092D2056616C756573202D0A004D3E0061 -:1007F0004D25643E20003F0073657420646566618A -:10080000756C740A00433E20007768657265206449 -:10081000656C74613A20637572736F723D25642C48 -:1008200020776865656C3D25640A536565206874AA -:1008300074703A2F2F656E2E77696B6970656469E5 -:10084000612E6F72672F77696B692F4D6F757365B6 -:100850005F6B6579730A000A092D204D6F7573650A -:100860006B6579202D0A4553432F713A09717569DB -:10087000740A313A0964656C6179282A31306D73E4 -:10088000290A323A09696E74657276616C286D7353 -:10089000290A333A096D61785F73706565640A34BB -:1008A0003A0974696D655F746F5F6D61780A353AF6 -:1008B00009776865656C5F6D61785F737065656405 -:1008C0000A363A09776865656C5F74696D655F74AF -:1008D0006F5F6D61780A0A703A097072696E7420F0 -:1008E00076616C7565730A643A0973657420646592 -:1008F0006661756C74730A75703A092B310A646FFE -:10090000776E3A092D310A706775703A092B3130CC -:100910000A7067646F776E3A092D31300A0A737076 -:10092000656564203D2064656C7461202A206D61DA -:10093000785F7370656564202A2028726570656130 -:1009400074202F2074696D655F746F5F6D61782905 -:100950000A003F004D3E2000433E20004C25640A23 -:10096000000A092D20436F6E736F6C65202D0A45B8 -:1009700053432F713A09717569740A6D3A096D6FA5 -:100980007573656B65790A000A092D204D616769E9 -:1009900063202D0A643A0964656275670A783A092A -:1009A0006465627567206D61747269780A6B3A09D3 -:1009B0006465627567206B6579626F6172640A6D48 -:1009C0003A096465627567206D6F7573650A763ADA -:1009D0000976657273696F6E0A733A09737461748C -:1009E00075730A633A09636F6E736F6C65206D6F80 -:1009F00064650A302D343A096C61796572302D34A2 -:100A0000284631302D4634290A506175733A0962FF -:100A10006F6F746C6F616465720A653A0965657021 -:100A2000726F6D0A6E3A094E4B524F0A7A3A097349 -:100A30006C656570204C454420746573740A000A27 -:100A4000002575002E6E6B726F3A20000A00257526 -:100A5000002E737761705F6261636B736C617368A2 -:100A60005F6261636B73706163653A20000A002501 -:100A700075002E737761705F67726176655F65736D -:100A8000633A20000A002575002E6E6F5F67756956 -:100A90003A20000A002575002E737761705F72613D -:100AA0006C745F726775693A20000A002575002E24 -:100AB000737761705F6C616C745F6C6775693A2005 -:100AC000000A002575002E636170736C6F636B5FA5 -:100AD000746F5F636F6E74726F6C3A20000A00254A -:100AE00075002E737761705F636F6E74726F6C5FE9 -:100AF000636170736C6F636B3A20000A00253032BB -:100B000058006B65796D61705F636F6E6669672E03 -:100B10007261773A20000A002575002E6D6F75739B -:100B2000653A20000A002575002E6B6579626F61B9 -:100B300072643A20000A002575002E6D6174726996 -:100B4000783A20000A002575002E656E61626C659A -:100B50003A20000A00253032580064656275675FEC -:100B6000636F6E6669672E7261773A20000A00250E -:100B7000750064656661756C745F6C617965723A65 -:100B800020003F004E4B524F3A206F66660A004EDF -:100B90004B524F3A206F6E0A0074696D65725F6345 -:100BA0006F756E743A202530346C580A006B657985 -:100BB000626F6172645F6E6B726F3A2025580A0033 -:100BC0006B6579626F6172645F69646C653A202558 -:100BD000580A006B6579626F6172645F70726F743E -:100BE0006F636F6C3A2025580A00686F73745F6BEF -:100BF0006579626F6172645F6C65647328293A205D -:100C000025580A000A092D20537461747573202D2C -:100C10000A004743433A20342E382E3220415652A0 -:100C20002D4C4942433A20312E382E302041565225 -:100C30005F415243483A20617672350A004F505462 -:100C4000494F4E533A204C55464120424F4F544D48 -:100C500041474943204D4F5553454B455920455831 -:100C60005452414B455920434F4E534F4C4520431E -:100C70004F4D4D414E44204E4B524F203531320A9C -:100C8000004255494C443A203135316565303420B5 -:100C90002832303A35393A343720446563203230CF -:100CA0002032303135290A005649443A20307846FE -:100CB000454544284572676F446F7820455A29207E -:100CC0005049443A20307831333037284572676FC5 -:100CD000446F7820455A29205645523A20307830C2 -:100CE0003030310A00444553433A20742E6D2E6B48 -:100CF0002E206B6579626F617264206669726D7710 -:100D000061726520666F72204572676F646F780A42 -:100D1000000A092D2056657273696F6E202D0A0036 -:100D20000A6D6F7573653A206F66660A000A6D6F0B -:100D30007573653A206F6E0A000A6B6579626F61A0 -:100D400072643A206F66660A000A6B6579626F61A9 -:100D500072643A206F6E0A000A6D61747269783AA3 -:100D6000206F66660A000A6D61747269783A206FB6 -:100D70006E0A000A64656275673A206F6E0A000A9F -:100D800064656275673A206F66660A000A0A626FD8 -:100D90006F746C6F616465722E2E2E2000433E20AE -:100DA000006565636F6E6669673A0A00536C656536 -:100DB00070204C454420746573740A0000000000E4 -:100DC00000000000000000010204060A0F17202C9A -:100DD0003A4A5D71879DB3C7DAE9F5FCFFFCF5E996 -:100DE000DAC7B39D87715D4A3A2C20170F0A0604B3 -:100DF00002010000000000000000000011241FBEDE -:100E0000CFEFDAE0DEBFCDBF04B603FE24C0809191 -:100E1000FD019091FE01A091FF01B0910002873089 -:100E2000904BA740B04BB9F41092FD011092FE0117 -:100E30001092FF011092000214BE84B7877F84BF16 -:100E400088E10FB6F89480936000109260000FBEA6 -:100E5000E0E0FFE3099511E0A0E0B1E0E4E5FCE5A6 -:100E600002C005900D92AA33B107D9F711E0AAE3A9 -:100E7000B1E001C01D92AD3FB107E1F70E94EC0F58 -:100E80000C94282E0C940000FF93EF93E0913A010C -:100E9000F0913B01309709F00995EF91FF9108958A -:100EA000FC018591803011F0EFDFFBCF0895FF2723 -:100EB000E0E230E247FF0CC0419597FF09C0EDE248 -:100EC0006095709580959095611D711D811D911D96 -:100ED00027FF02C0219530E350E2AA27660F771F53 -:100EE000881F991FAA1FA41710F0A41B63955A9579 -:100EF000A9F7AA3008F0A95FA05DAF93F39561153B -:100F000071058105910541F7ED3211F4EF93F395E9 -:100F1000F21718F43F93F395FBCF8F91B5DFFA9555 -:100F2000E1F70895E991F9918591803021F08532BA -:100F300019F0AADFF9CF089520E0E89455915532D1 -:100F4000C1F3503311F4689455915A3348F4505317 -:100F500090F3220F022E220F220F200D250FF4CF27 -:100F60000EF4219589919991533619F3533729F14C -:100F7000533559F1BC0188279927E8945C3621F450 -:100F80008991999168945591543639F446EF7EF0E1 -:100F900077FF0DC08FEF9FEF0AC055374AE039F059 -:100FA000583540E121F0523642E009F00895FF93B0 -:100FB000EF937DDFEF91FF91B7CFFF93EF93FC01AC -:100FC00081918030B9F360DFFBCFFF93EF9368DF4F -:100FD000F1CFDF93CF93CDB7DEB72596A3DFCF91C7 -:100FE000DF91089561110BC0FC018281882321F0FB -:100FF00085EE0E94BA1603C085EE0E94821780E03B -:1010000090E0089580E090E00895EF92FF921F93A2 -:10101000CF93DF936091C0017091C1018091C201B3 -:101020009091C3010E94672156985E9821E030E0BC -:10103000682F70E0EB01C45CDE4FE1E0F0E0122FBE -:10104000821307C0AB019881A1E09F3F61F4A0E04B -:101050000AC0A901D901A45CBE4F9C91A1E09111E5 -:1010600001C0A0E0A1959A0FDA01A45CBE4F9C9349 -:101070004C5F5F4F992309F194B17F0102C0EE0CE0 -:10108000FF1C4A95E2F79E2994B995B19E2995B91E -:101090004C9150E0113029F450938900409388001E -:1010A0001AC0123029F450938B0040938A0013C069 -:1010B00050938D0040938C000EC094B1DF0102C0AC -:1010C000AA0FBB1F4A95E2F7AD014095942394B94E -:1010D00095B1942395B92F5F3F4F2430310509F026 -:1010E000AECF80E090E0DF91CF911F91FF90EF9025 -:1010F000089585E098E0892B11F00E94050880E0B2 -:1011000090E0089556985E9825982D9826982E98E8 -:1011100027982F988FEF90E0909389008093880014 -:1011200090938B0080938A0090938D0080938C0025 -:10113000259A2D9A2FEF80E792E021508040904031 -:10114000E1F700C00000269A2E9A2FEF80E792E088 -:10115000215080409040E1F700C00000279A2F9A6C -:101160002FEF80E792E0215080409040E1F700C0EF -:10117000000025982D982FEF80E792E021508040C5 -:101180009040E1F700C0000026982E982FEF80E7EE -:1011900092E0215080409040E1F700C00000279885 -:1011A0002F9856985E9825982D9826982E982798CF -:1011B0002F98089589EA8093800089E080938100C8 -:1011C00024982C983F988AB18F748AB96E98479A60 -:1011D0008BB1806B8BB9769A0E94820882E098E08E -:1011E000892B11F00E94020880E090E0089580E2CF -:1011F000809300018091400181110EC00E94460938 -:1012000081E0809340012FEF83ED90E321508040F7 -:101210009040E1F700C0000080E40E944C098093F8 -:10122000000181112EC00E94760980930001811176 -:1012300028C00E94760980930001811122C08FE3AB -:101240000E9476098093000181111BC00E946E09E3 -:1012500080E40E944C0980930001811112C08CE04F -:101260000E9476098093000181110BC00E947609CB -:1012700080930001811105C08FE30E94760980935D -:1012800000010E946E098091000108951092B9003A -:101290008AE08093B800089594EA9093BC009091FE -:1012A000BC0097FFFCCF9091B900987F983021F057 -:1012B000903111F081E008958093BB0084E8809321 -:1012C000BC008091BC0087FFFCCF8091B900887F73 -:1012D000883111F0803471F780E0089584E98093BB -:1012E000BC008091BC0084FDFCCF08958093BB00BE -:1012F00084E88093BC008091BC0087FFFCCF909174 -:10130000B900987F81E0983209F480E0089584E87C -:101310008093BC008091BC0087FFFCCF8091BB0014 -:10132000089580910001811115C080E40E944C094C -:101330008093000181110CC082E10E9476098093A4 -:101340000001811105C08FEF0E9476098093000192 -:101350000E946E0984B1807F84B985B1807F85B990 -:101360008AB1837F8AB98BB1837F8BB93E984698C7 -:1013700008950E94F708809300010E94910980B3AC -:101380008C7080BB81B3836F81BBE0E5F1E0A2E4A8 -:10139000B1E011921D9281E0EE35F807D1F78AEDA8 -:1013A00098E0892B11F00C94DA0808959F92AF927F -:1013B000BF92CF92DF92EF92FF920F931F93CF9342 -:1013C000DF93809100018823E1F0809141018F5FDC -:1013D00080934101811115C08EE393E00E94500774 -:1013E0000E94F70880930001882329F084E293E0AB -:1013F0000E94500706C080E193E00E9450070E94BF -:10140000820802E411E0C0E0D0E0BB24B39482E0A3 -:10141000A82ECC24C394D12C21E0E22E23E0F22E7E -:10142000C73000F580910001811162C080E40E9404 -:101430004C0980930001811112C082E10E9476095B -:101440008093000181110BC0C6010C2E01C0880FD2 -:101450000A94EAF780950E947609809300010E9421 -:101460006E0946C0CA30A1F028F4C83059F0C9301E -:1014700061F005C0CC3089F070F0CD3089F0209A51 -:10148000289810C0219A29980DC0229A2A980AC03B -:10149000239A2B9807C0529A01C0539A5B9802C0B6 -:1014A0003E9A4698E0EAEA95F1F78FB1799985C0BE -:1014B00092E081708B25892B7C9B02C090E001C05B -:1014C00094E0892B7D9B02C090E001C098E0892BBD -:1014D0007E9B02C090E001C090E1892B9FB1909566 -:1014E000991F9927991F9295990F907E892B10C06B -:1014F00080910001811176C080E40E944C098093A4 -:101500000001882309F45BC0912C0E946E09892D8B -:10151000F8019081981739F1808380910101882327 -:1015200001F18091DB0180FF04C086E093E00E941E -:1015300050078091DB0180FF0CC0809101011F9258 -:101540008F93FF92EF920E94E9070F900F900F90F8 -:101550000F908091DB0180FF04C08FEF92E00E942A -:101560005007A09201010E94910921960F5F1F4F21 -:10157000CE30D10509F054CF809101018823B1F01C -:10158000815080930101882339F08FE99FE0019712 -:10159000F1F700C000000AC0A0E5B1E0E2E4F1E02C -:1015A00081918D9391E0E035F907D1F789E798E0D3 -:1015B000892BD1F00E94790817C090E07ACF83E19F -:1015C0000E9476098093000181119ECF81E40E94E0 -:1015D0004C0980930001811197CF0E948709982EB2 -:1015E000909493CF80E094CF81E0DF91CF911F91D1 -:1015F0000F91FF90EF90DF90CF90BF90AF909F90B2 -:101600000895E82FF0E0E05BFE4F80810895CF92CF -:10161000DF92EF92FF920F931F93CF93DF9388EEA9 -:1016200092E00E94500730E5E32E31E0F32EC0E057 -:10163000D0E043EEC42E42E0D42E0AED12E0DF9358 -:10164000CF93DF92CF920E94E90780EE92E00E9452 -:101650005007F70181917F0190E00E94CC219F9378 -:101660008F931F930F930E94E90788ED92E00E94E9 -:10167000500721968DB79EB708960FB6F8949EBF77 -:101680000FBE8DBFCE30D105D1F6DF91CF911F9126 -:101690000F91FF90EF90DF90CF9008958B3B9105D5 -:1016A00078F4883A910540F5853A9105D0F4843074 -:1016B000910508F0B1C08130910509F4ADC06BC04F -:1016C000803E910508F467C0883E910508F4A4C0E7 -:1016D0009C01205F31092031310508F05CC0906524 -:1016E0000895853A910509F459C0863A910509F49F -:1016F00058C083E890E40895883A910509F454C0ED -:10170000893A910509F453C08A3A910509F452C007 -:101710008B3A910509F451C08C3A910509F450C0F7 -:101720008D3A910509F44FC0803B910509F44EC0F4 -:101730008E3A910509F44DC08F3A910509F44CC0D9 -:10174000813B910509F44BC0823B910509F44AC0E5 -:10175000833B910509F449C0843B910509F448C0D5 -:10176000853B910509F447C0863B910509F446C0C5 -:10177000873B910509F445C0883B910509F444C0B5 -:10178000893B910509F443C08A3B910509F042C0A9 -:101790008AE296E4089580E090E0089581E890E47C -:1017A000089582E890E4089582EE94E4089589EE25 -:1017B00094E408958AEE94E4089585EB94E4089502 -:1017C00086EB94E4089587EB94E408958CEC94E41C -:1017D00008958DEC94E4089583E895E408958AE8EB -:1017E00095E4089582E995E4089584E995E40895DF -:1017F00081E296E4089583E296E4089584E296E413 -:10180000089585E296E4089586E296E4089587E2D5 -:1018100096E4089580E094E40895089596E0799F11 -:10182000F001112494E5899FE00DF11D1124E60FCC -:10183000F11DEE0FFF1FE052FF4F85919491089527 -:10184000880F991F805A9040FC01859194910895CA -:10185000880F991F80529F4FFC01859194910895A4 -:1018600026E0729FF001112444E5849FE00DF11DF4 -:101870001124E60FF11DEE0FFF1FE052FF4F2591DF -:101880003491C9019A9581159F4110F4C9010895B9 -:10189000C90190528115904128F4C9019F700E949E -:1018A000280C0895C90190538115904120F4C90175 -:1018B0009927906C0895211580E5380769F40E94F6 -:1018C000F51A9FEF24E34CE0915020404040E1F7AF -:1018D00000C000000C948822213080E5380751F4C4 -:1018E00088E593E00E9450078091DB01816080933E -:1018F000DB010895C90190558115904108F050C051 -:10190000832F99278F70992781309105D9F4A901E8 -:101910004370552702C0880F991F4A95E2F79C68CB -:10192000A90164E0440F551F6A95E1F744275370FD -:10193000842B952B73E0220F331F7A95E1F72076E5 -:1019400033271DC08230910529F4922F8827816F9B -:10195000906A089583309105A9F4A9014370552731 -:1019600081E090E002C0880F991F4A95E2F79C68D9 -:1019700043E0220F331F4A95E1F7207E3770822B18 -:10198000932B08950497F1F4A9014370552781E042 -:1019900090E002C0880F991F4A95E2F79A68E8CF55 -:1019A000C90190578115904120F4C9019F70906240 -:1019B0000895C90190588115904120F4C9019F7084 -:1019C000906A0895203E3105E0F4203C310558F539 -:1019D0002133310509F470C048F42932310509F486 -:1019E00064C02A32310509F46EC074C02933310550 -:1019F000F1F022383105D9F02533310509F44EC014 -:101A000069C0233E310589F138F4203E3105C1F02B -:101A1000223E3105E1F05EC0263E310569F1273EE8 -:101A20003105A9F157C0C9010E94200C0895809189 -:101A3000EE0180FD02C081FF4DC080EE90E04BC002 -:101A40008091EE0180FFF9CF89E390E044C080915E -:101A5000EE0182FF0EC08091EE0184FF03C080E0A2 -:101A600090E039C083EE90E036C08091EE0182FFB5 -:101A7000F2CF82EE90E02FC08091EE0183FF0BC089 -:101A80008091EE0184FDEBCF87EE90E024C0809141 -:101A9000EE0183FFF5CF86EE90E01DC08091EE0150 -:101AA00085FF07C089E290E016C08091EE0185FFB6 -:101AB000F9CF85E390E00FC08091EE0186FF07C06B -:101AC0008AE290E008C08091EE0186FFF9CF81E3C1 -:101AD00090E001C0C9010E944E0B089508958091C5 -:101AE000710108959FB7F894109260019FBF909183 -:101AF000F401943009F058C09091E9009F70209152 -:101B0000EC0020FF02C020E801C020E0292B94E077 -:101B10009093E9009091EB0090FF43C09091EE000C -:101B200097FF3FC090915E01992321F09091E800CA -:101B300095FF37C010925E0196E03091E80035FDC8 -:101B400015C03091F401343061F53091EB0035FD72 -:101B500028C0915021F481E080935E0122C0EFE91A -:101B6000FFE03197F1F700C00000E7CF8093F1006C -:101B70008091E80085FD0AC08091E80080FFFCCFDD -:101B80008091E8008E778093E80006C08FB7F894C4 -:101B900091E0909360018FBF2F702093E90080E067 -:101BA00008952F702093E9008FEF0895CF93DF936E -:101BB00000D01F92CDB7DEB72091F401243019F583 -:101BC00023E029839B838A832093E9008FEF909100 -:101BD000E800815095FD06C095ED9A95F1F700005B -:101BE0008111F5CF8091E80085FF0DC040E050E005 -:101BF00063E070E0CE0101960E94A5108091E8009C -:101C00008E778093E8000F900F900F90DF91CF9127 -:101C10000895CF93DF9300D01F92CDB7DEB7209108 -:101C2000F401243021F522E029839B838A8383E019 -:101C30008093E9008FEF9091E800815095FD06C0F8 -:101C400095ED9A95F1F700008111F5CF8091E800AC -:101C500085FF0DC040E050E063E070E0CE010196EA -:101C60000E94A5108091E8008E778093E8000F9085 -:101C70000F900F90DF91CF9108952091F4012430BF -:101C8000F1F422E02093E9002FEF3091E800215099 -:101C900035FD06C035ED3A95F1F700002111F5CF7D -:101CA0002091E80025FF0BC040E050E065E070E0C7 -:101CB0000E94A5108091E8008E778093E800089537 -:101CC000CF93DF93EC018091F401843009F047C099 -:101CD00080910C018823E1F080910D018823C1F0EF -:101CE00085E08093E9008FEF9091E800815095FDA9 -:101CF00006C095E19A95F1F700008111F5CF80912A -:101D0000E80085FF2CC040E050E060E170E017C0C3 -:101D100081E08093E9008FEF9091E800815095FD7C -:101D200006C095ED9A95F1F700008111F5CF8091ED -:101D3000E80085FF14C040E050E068E070E0CE01AC -:101D40000E94A5108091E8008E778093E80080E1E2 -:101D5000FE01A1E6B1E001900D928A95E1F7DF91D5 -:101D6000CF9108958FE893E00E9450078091F3018E -:101D7000811109C00E9437120E9494128091E200E2 -:101D800084608093E20008958BE893E00E945007FE -:101D90001092F301089587E893E00C94500783E8CC -:101DA00093E00E9450070C94492C8FE793E00E9427 -:101DB00050070E9423220E944F2C0E9430150C9441 -:101DC0006E0D80915F018F5F80935F0162E30E94DF -:101DD000BD2D911135C010925F0180916001882363 -:101DE00079F18091F401843049F58091E9008F7098 -:101DF0009091EC0090FF02C090E801C090E0982B19 -:101E000084E08093E9008091EB0080FF14C0809112 -:101E1000EE0087FF10C08091E80085FF03C010929C -:101E2000F100F9CF8091E80080FF05C08091E800C3 -:101E30008E778093E8009F709093E9001092600184 -:101E4000089542E061EC81E00E94B11142E061EC52 -:101E500082E00E94B11142E061EC83E00E94B11186 -:101E600042E261EC84E00E94B11142E161EC85E064 -:101E70000C94B1118091F601833009F455C030F40F -:101E8000813071F0823009F48EC008958A3009F4EF -:101E90007AC08B3009F460C0893009F09CC020C042 -:101EA0008091F501813A09F096C08091E800877F22 -:101EB0008093E8008091F9019091FA01892B21F03B -:101EC00060E080E090E003C060E181E691E070E0D6 -:101ED0000E94EE108091E8008B778093E8000895CF -:101EE0008091F501813209F076C08091F9019091DD -:101EF000FA01009719F0049709F06DC08091E8008D -:101F0000877F8093E8008091E80082FD05C0809182 -:101F1000F4018111F8CF5FC08091F10080937101CD -:101F20008091E8008B7753C08091F501813A09F0E8 -:101F300052C08091F9019091FA01892B09F04BC0B0 -:101F40008091E800877F8093E8008091E80080FF1F -:101F5000FCCF80910C0136C08091F5018132D9F51A -:101F60008091F9019091FA01892BA9F58091E800FF -:101F7000877F8093E8000E94E6118091F7018093AB -:101F80000C010C94F51A8091F501813221F58091B4 -:101F9000E800877F8093E8000E94E6118091F801B5 -:101FA0008093720108958091F501813AA1F48091A6 -:101FB000E800877F8093E8008091E80080FFFCCFF5 -:101FC000809172018093F1008091E8008E77809378 -:101FD000E8000C94E611089584B7877F84BF88E1F8 -:101FE0000FB6F89480936000109260000FBE90E0EE -:101FF00080E80FB6F89480936100909361000FBE63 -:102000000E94B9150E9437120E9494128091E2003A -:1020100084608093E20082E79DE00E9462217894D0 -:102020000E940E150E94BB1582E091E00E942B15C4 -:102030000E94372C8EE693E00E9450078091F401B5 -:10204000853089F48AE693E00E9450070E94E621D9 -:102050008091F201882391F30E940E22882371F36C -:102060000E948F10EBCF0E94E915E8CF292F33276C -:1020700023303105A9F06CF42130310509F442C058 -:102080002230310509F043C08DE890E027EC33E0C1 -:1020900042C021323105C9F02232310519F137C071 -:1020A00099278130910541F08230910541F0892BCB -:1020B00071F5E3ECF3E005C0EBEAF3E002C0E3E91D -:1020C000F3E0849190E09F0126C0653000F5E62F93 -:1020D000F0E0EE0FFF1FEB5DFE4F2081318189E0C4 -:1020E00090E019C0653098F4E62FF0E0DF01AA0F08 -:1020F000BB1FA55EBE4F2D913C91EA5EFE4F8081D5 -:1021000090E009C082E190E024E534E004C080E082 -:1021100090E020E030E0FA0131832083089580E1EF -:1021200089BD82E189BD09B400FEFDCF8091D80050 -:102130008F7D8093D8008091E00082608093E000E2 -:102140008091E00081FDFCCF0895CF92DF92EF9265 -:10215000FF920F931F93CF93DF937C018B01EA01D2 -:102160000E940712811131C0209731F08881998136 -:10217000081B190BE80EF91EC12CD12C01151105F5 -:1021800019F18091E80085FD14C08091E8008E77F8 -:102190008093E800209741F0888199818C0D9D1DE6 -:1021A0009983888385E011C00E940712882331F348 -:1021B0000CC0F70181917F018093F100015011095A -:1021C000FFEFCF1ADF0ADACF80E0DF91CF911F91C6 -:1021D0000F91FF90EF90DF90CF9008952091FB0139 -:1021E0003091FC012617370748F06115710539F465 -:1021F0002091E8002E772093E80001C0B901FC018E -:1022000020E061157105B9F18091F401882309F48A -:1022100040C0853009F43FC08091E80083FD3DC097 -:102220008091E80082FF06C08091E80082FF26C00E -:1022300080E008958091E80080FFE3CF2091F300D3 -:102240008091F20090E0922B6115710551F0883079 -:10225000910538F421912093F100615071090196A4 -:10226000F3CF21E0089709F020E08091E8008E7715 -:102270008093E800C6CF2111C7CFD6CF8091F4015B -:10228000882339F0853039F08091E80083FFCCCF86 -:1022900004C082E0089583E0089581E008952091CC -:1022A000FB013091FC012617370748F061157105D5 -:1022B00039F42091E8002E772093E80001C0B9019D -:1022C000FC0120E061157105C1F18091F4018823C2 -:1022D00009F441C0853009F440C08091E80083FDD5 -:1022E0003EC08091E80082FF06C08091E80082FF36 -:1022F00027C080E008958091E80080FFE3CF20911F -:10230000F3008091F20090E0922B6115710559F075 -:102310008830910540F424912093F100319661506A -:1023200071090196F2CF21E0089709F020E0809131 -:10233000E8008E778093E800C5CF2111C6CFD5CFB6 -:102340008091F401882339F0853039F08091E800DC -:1023500083FFCBCF04C082E0089583E0089581E03D -:102360000895982F973058F59093E900981739F011 -:102370007091EC002091ED005091F00003C0242FEB -:10238000762F50E021FF19C03091EB003E7F309353 -:10239000EB003091ED003D7F3093ED003091EB008C -:1023A00031603093EB007093EC002093ED0050937C -:1023B000F0002091EE0027FF07C09F5FD3CF8F7002 -:1023C0008093E90081E0089580E008958091F5010F -:1023D00087FD05C08091E80080FF0EC012C080918B -:1023E000E80082FD05C08091F4018111F8CF0895C5 -:1023F0008091E8008B7708C08091F4018111EACFC9 -:1024000008958091E8008E778093E8000895809188 -:10241000E4009091E50045E62091EC0020FF21C00A -:102420002091E80020FD21C02091F401222389F0B1 -:10243000253089F02091EB0025FD0FC02091E400AC -:102440003091E5002817390739F3415041F0C901AF -:10245000E3CF82E0089583E0089581E0089584E069 -:1024600008952091E80022FFDFCF80E008950E94C8 -:10247000A5120E94AD12E0EEF0E0808181608083C1 -:10248000E8EDF0E080818F77808319BCA7EDB0E0A4 -:102490008C918E7F8C9380818F7E80831092F3014C -:1024A00008950F931F93CF93DF930E94A5120E946C -:1024B000AD12C8EDD0E088818F77888388818068ED -:1024C000888388818F7D888319BC1092F4011092D3 -:1024D000F0011092F2011092F10100EE10E0F8010B -:1024E00080818B7F808388818160888342E060E087 -:1024F00080E00E94B111E1EEF0E080818E7F808368 -:10250000E2EEF0E08081816080838081886080835A -:10251000F80180818E7F8083888180618883DF914C -:10252000CF911F910F910895E8EDF0E080818F7EAB -:102530008083E7EDF0E080818160808384E082BF6A -:1025400081E08093F3010C945112E8EDF0E080817A -:102550008E7F80831092E20008951092DA0010922C -:10256000E10008951F920F920FB60F9211242F933E -:102570003F934F935F936F937F938F939F93AF930B -:10258000BF93EF93FF938091E10082FF0BC0809196 -:10259000E20082FF07C08091E1008B7F8093E10021 -:1025A0000E94E10E8091DA0080FF1FC08091D80068 -:1025B00080FF1BC08091DA008E7F8093DA008091CB -:1025C000D90080FF0DC080E189BD82E189BD09B4D9 -:1025D00000FEFDCF81E08093F4010E94B20E05C0A1 -:1025E00019BC1092F4010E94C40E8091E10080FF9A -:1025F00019C08091E20080FF15C08091E2008E7FBB -:102600008093E2008091E20080618093E2008091FB -:10261000D80080628093D80019BC85E08093F401D3 -:102620000E94CF0E8091E10084FF30C08091E200D3 -:1026300084FF2CC080E189BD82E189BD09B400FE20 -:10264000FDCF8091D8008F7D8093D8008091E100EC -:102650008F7E8093E1008091E2008F7E8093E20084 -:102660008091E20081608093E2008091F0018823F4 -:1026700011F084E007C08091E30087FF02C083E08F -:1026800001C081E08093F4010E94D50E8091E100A9 -:1026900083FF29C08091E20083FF25C08091E10083 -:1026A000877F8093E10082E08093F4011092F00133 -:1026B0008091E1008E7F8093E1008091E2008E7F27 -:1026C0008093E2008091E20080618093E20042E02A -:1026D00060E080E00E94B1118091F00088608093FA -:1026E000F0000E94CB0EFF91EF91BF91AF919F91AF -:1026F0008F917F916F915F914F913F912F910F90AB -:102700000FBE0F901F9018951F920F920FB60F9249 -:1027100011242F933F934F935F936F937F938F93E6 -:102720009F93AF93BF93CF93EF93FF93C091E90033 -:10273000CF708091EC001092E9008091F000877FCB -:102740008093F00078940E94C0131092E900809169 -:10275000F00088608093F000C093E900FF91EF9152 -:10276000CF91BF91AF919F918F917F916F915F9129 -:102770004F913F912F910F900FBE0F901F90189582 -:102780001F93CF93DF93CDB7DEB7AA970FB6F89418 -:10279000DEBF0FBECDBFE5EFF1E08091F100819388 -:1027A00021E0ED3FF207C9F70E943A0F8091E8005F -:1027B00083FF1CC12091F5013091F601832F90E039 -:1027C0008A30910508F012C1FC01EA5AFF4F0C94BF -:1027D000DD2D203881F0223809F008C18091F901FF -:1027E0008F708093E9008091EB0085FB882780F94A -:1027F0001092E90006C08091F1019091F2019111CF -:1028000082609091E800977F9093E8008093F100B8 -:102810001092F100C5C0822F8D7F09F0E7C02223FE -:1028200019F0223061F0E2C08091F701813009F0A7 -:10283000DDC0333009F080E08093F20128C0809140 -:10284000F701811124C02091F9012F7009F4CEC045 -:102850002093E9008091EB0080FF19C08091EB008C -:10286000333011F4806211C080618093EB0081E00D -:1028700090E0022E01C0880F0A94EAF78093EA00E4 -:102880001092EA008091EB0088608093EB00109238 -:10289000E9008091E800877F86C02111A7C01091D0 -:1028A000F7011F778091E3008078812B8093E3000C -:1028B0008091E800877F8093E8000E94E611809174 -:1028C000E80080FFFCCF8091E30080688093E30004 -:1028D000112311F083E001C082E08093F40186C0EF -:1028E0002058223008F082C08091F7019091F801C1 -:1028F0008C3D23E0920779F583E08A838AE289831D -:102900004FB7F894DE01139620E03EE051E2E32F4A -:10291000F0E050935700E49120FF03C0E295EF7080 -:102920003F5FEF708E2F90E0EA3010F0C79601C045 -:10293000C0968D939D932F5F243149F74FBF8091AF -:10294000E800877F8093E8006AE270E0CE0101969C -:102950000E94EE1014C0AE014F5F5F4F6091F9010D -:102960000E943610009709F441C02091E800277FAB -:102970002093E800BC0189819A810E944F118091C7 -:10298000E8008B778093E80031C0203879F580919A -:10299000E800877F8093E8008091F0018093F10048 -:1029A0008091E8008E778093E8000E94E6111EC0B7 -:1029B00021111CC09091F7019230C0F48091E80081 -:1029C000877F8093E8009093F0010E94E611809148 -:1029D000F001811104C08091E30087FF02C084E010 -:1029E00001C081E08093F4010E94210F8091E800F2 -:1029F00083FF0AC08091E800877F8093E800809180 -:102A0000EB0080628093EB00AA960FB6F894DEBFCD -:102A10000FBECDBFDF91CF911F910895CF938091CD -:102A2000F4018823B1F08091E9008F709091EC005F -:102A300090FF02C090E801C090E0C92FC82B10920F -:102A4000E9008091E80083FD0E94C013CF70C0931D -:102A5000E900CF91089590937801809377010895CC -:102A6000E0917701F0917801309721F00190F081A9 -:102A7000E02D099480E00895FF920F931F93CF9368 -:102A8000DF938C01E0917701F0917801309799F113 -:102A90000280F381E02D09958091DB0182FF2BC03C -:102AA00080FF04C089E895E00E945007E80180E1BA -:102AB000F82E03E815E08091DB0180FF0BC08881D0 -:102AC0001F928F931F930F930E94E9070F900F900F -:102AD0000F900F90FA942196F110EDCF8091DB01C9 -:102AE00080FF09C081E895E0DF91CF911F910F91A0 -:102AF000FF900C945007DF91CF911F910F91FF90A1 -:102B00000895E0917701F0917801309721F00480E9 -:102B1000F581E02D09940895209175013091760199 -:102B20008217930771F09093760180937501E0917D -:102B30007701F0917801309721F00680F781E02D40 -:102B400009940895209173013091740182179307BD -:102B500071F09093740180937301E0917701F0918B -:102B60007801309721F00084F185E02D09940895D3 -:102B700008950C94B8150E9425220E94B9090C945E -:102B8000EB22CF93C82F8091DB0182FF1EC080FF14 -:102B900004C082EA95E00E9450078091DB0180FF2B -:102BA0000CC01F92CF932DE935E03F932F930E94E5 -:102BB000E9070F900F900F900F908091DB0180FF3D -:102BC00004C08BE995E00E9450078C2FCF910C94A4 -:102BD0006E0DCF92DF92EF92FF920F931F93CF93E0 -:102BE000DF93CDB7DEB72B970FB6F894DEBF0FBEDD -:102BF000CDBF0E94D6093AE7E32E31E0F32E00E084 -:102C000010E0C02E802F0E94010BF701D1907F01B0 -:102C1000D826B1F40F5F1F4F0E30110591F78FEFDB -:102C200089838A831B820E942E228160782F9D8354 -:102C30008C8349815A816B818D810E948C1641C0A1 -:102C40009091DB0191FF04C08B870E94070B8B855D -:102C500020E030E04D2D50E0922FBA01022E02C04C -:102C6000759567950A94E2F760FF25C02E83CF82A1 -:102C7000EE24E394F12C02C0EE0CFF1C9A95E2F7CF -:102C800090E08E219F2121E0892B09F420E0288704 -:102C90000E942E228160782F9A8789874E815F81DA -:102CA00068858A850E948C16F801E658FE4F80815F -:102CB0008E25808306C02F5F3F4F2630310561F699 -:102CC000A9CF0E945926109179010E94301518173A -:102CD000A1F00E943015809379012B960FB6F894DD -:102CE000DEBF0FBECDBFDF91CF911F910F91FF903F -:102CF000EF90DF90CF900C94C1152B960FB6F894FF -:102D0000DEBF0FBECDBFDF91CF911F910F91FF901E -:102D1000EF90DF90CF900895CF93DF93CDB7DEB7DC -:102D20002B970FB6F894DEBF0FBECDBF4F835887E9 -:102D300069877A878B87DE01119686E0FD01119203 -:102D40008A95E9F785E0FE01379601900D928A9504 -:102D5000E1F749815A816B817C818D819E810E943E -:102D6000C11D2B960FB6F894DEBF0FBECDBFDF910D -:102D7000CF910895CF93C82F882309F4C1C082381A -:102D800059F40E94301581FDBBC089E30E94602088 -:102D90000E943C2189E30CC0833879F40E943015ED -:102DA00080FDAEC083E50E9460200E943C2183E547 -:102DB0000E94B120CF910C943C21843859F40E9498 -:102DC000301582FD9DC087E40E9460200E943C2156 -:102DD00087E4EECF8CEF8C0F813A48F48C2F0E9461 -:102DE000E22A81118DC08C2F0E946020E3CF80E207 -:102DF0008C0F883048F4C77081E001C0880FCA95F5 -:102E0000EAF70E940321D6CF8BE58C0F833078F44C -:102E1000C53A29F0C63A31F482E890E005C081E86D -:102E200090E002C083E890E0CF910C948C1588E587 -:102E30008C0F833108F064C0C83A39F1C93A41F1C6 -:102E4000CA3A49F1CB3A51F1CC3A59F1CD3A61F154 -:102E5000C03B69F1CE3A71F1CF3A79F1C13B81F1D2 -:102E6000C23B89F1C33B91F1C43B99F1C53BA1F150 -:102E7000C63BA9F1C73BB1F1C83BB9F1C93BC1F1B0 -:102E8000CA3BC9F58AE292E038C082EE90E035C0D4 -:102E900089EE90E032C08AEE90E02FC085EB90E0A2 -:102EA0002CC086EB90E029C087EB90E026C08CEC2C -:102EB00090E023C08DEC90E020C083E891E01DC03D -:102EC0008AE891E01AC082E991E017C084E991E0B4 -:102ED00014C081E292E011C083E292E00EC084E26D -:102EE00092E00BC085E292E008C086E292E005C065 -:102EF00087E292E002C080E090E0CF910C94A215AE -:102F0000CF910895882309F44BC0823859F40E9468 -:102F1000301581FF45C089E30E9460200E943C215A -:102F200089E30CC0833871F40E94301580FF38C0EB -:102F300083E50E9460200E943C2183E50E94B1202D -:102F40000C943C21843859F40E94301582FF28C02B -:102F500087E40E9460200E943C2187E4EFCF9CEF31 -:102F6000980F913A58F390E2980F983050F4877088 -:102F700091E001C0990F8A95EAF7892F0E940921F3 -:102F8000DFCF9BE5980F933020F480E090E00C9425 -:102F90008C15885A833120F480E090E00C94A215BF -:102FA0000895882321F00E9403210C943C21089568 -:102FB000882321F00E9409210C943C210895CF928E -:102FC000DF92EF92FF920F931F93CF93DF93CDB7D2 -:102FD000DEB728970FB6F894DEBF0FBECDBF8C01C9 -:102FE00085E0F801DE01119601900D928A95E1F7D6 -:102FF000F80140813181F280258122952F708381F3 -:103000009481892B31F03F3F31F481E04F3F19F437 -:1030100003C081E001C080E080FDC6C249833A83DD -:1030200089819A812F830E941E209E8388870E9417 -:103030001D200E94F01E4E81E42FE295EF70F0E01B -:10304000E05AFF4F2F8168850C94DD2D842F807FFF -:10305000142F1F70882311F01295107FFF2059F054 -:10306000112309F456C2812F68870E9413210E9400 -:103070003C2168854EC2862F0E948217112309F4D5 -:1030800093C2812F0E94192128960FB6F894DEBFB3 -:103090000FBECDBFDF91CF911F910F91FF90EF90A9 -:1030A000DF90CF900C943C21342F307F842F8F7091 -:1030B000303211F08295807F662319F0613019F16A -:1030C0002CC0FF20B1F0222309F494C1213009F073 -:1030D00091C128960FB6F894DEBF0FBECDBFDF9129 -:1030E000CF911F910F91FF90EF90DF90CF900C94B4 -:1030F0002321222319F0213009F456C28E830E9425 -:1031000026218E818AC1FF2021F0263008F04CC292 -:1031100071C1253008F048C280C1FF2021F0222370 -:1031200009F468C1F6C1222309F477C106C2242F2D -:1031300026952695237030E02115310521F02130A8 -:103140003105C9F031C2FF2021F0862F942F9370F2 -:1031500002C080E090E028960FB6F894DEBF0FBE64 -:10316000CDBFDF91CF911F910F91FF90EF90DF9036 -:10317000CF900C948C15FF2021F0862F942F937004 -:1031800002C080E090E028960FB6F894DEBF0FBE34 -:10319000CDBFDF91CF911F910F91FF90EF90DF9006 -:1031A000CF900C94A215862FFF2019F00E94DF24E7 -:1031B00002C00E94472528960FB6F894DEBF0FBEC6 -:1031C000CDBFDF91CF911F910F91FF90EF90DF90D6 -:1031D000CF900C94CC25842F837009F076C0F11029 -:1031E000E3C1262F229526952770220F220F862FC6 -:1031F0008F70C82ED12CE12CF12C022E04C0CC0CE7 -:10320000DD1CEE1CFF1C0A94D2F764FF10C06FE0B7 -:1032100070E080E090E004C0660F771F881F991F60 -:103220002A95D2F7609570958095909503C060E0DF -:1032300070E0CB01242F269526952370422F50E075 -:1032400042305105D1F04330510559F16C297D29A7 -:103250008E299F294130510541F128960FB6F894E7 -:10326000DEBF0FBECDBFDF91CF911F910F91FF90B9 -:10327000EF90DF90CF900C94151F6C297D298E293B -:103280009F2928960FB6F894DEBF0FBECDBFDF9101 -:10329000CF911F910F91FF90EF90DF90CF900C9402 -:1032A0002F1F0E94151FC701B60128960FB6F8946C -:1032B000DEBF0FBECDBFDF91CF911F910F91FF9069 -:1032C000EF90DF90CF900C94FB1EFF2019F0842F1D -:1032D000817001C08695882309F466C1262F229546 -:1032E00026952770220F220F862F8F70C82ED12C83 -:1032F000E12CF12C022E04C0CC0CDD1CEE1CFF1CBA -:103300000A94D2F764FF10C06FE070E080E090E0B4 -:1033100004C0660F771F881F991F2A95D2F7609502 -:1033200070958095909503C060E070E0CB01242FEC -:10333000269526952370422F50E042305105D1F05A -:103340004330510559F16C297D298E299F2941303F -:10335000510541F128960FB6F894DEBF0FBECDBFE0 -:10336000DF91CF911F910F91FF90EF90DF90CF9061 -:103370000C94E91F6C297D298E299F2928960FB668 -:10338000F894DEBF0FBECDBFDF91CF911F910F919B -:10339000FF90EF90DF90CF900C9403200E94E91FE4 -:1033A000C701B60128960FB6F894DEBF0FBECDBF99 -:1033B000DF91CF911F910F91FF90EF90DF90CF9011 -:1033C0000C94CF1F603FC9F118F4603E50F49CC0CC -:1033D000623F09F461C008F44BC0633F09F470C058 -:1033E00093C0162F1F70842F8F71FF2099F00E94B9 -:1033F000681F812F28960FB6F894DEBF0FBECDBF91 -:10340000DF91CF911F910F91FF90EF90DF90CF90C0 -:103410000C94D1170E94891F812F28960FB6F8941B -:10342000DEBF0FBECDBFDF91CF911F910F91FF90F7 -:10343000EF90DF90CF900C94D817FF20A9F02530A3 -:1034400008F0B2C0842F8F7128960FB6F894DEBFB3 -:103450000FBECDBFDF91CF911F910F91FF90EF90E5 -:10346000DF90CF900C94AE1F263008F09DC0EACFBD -:10347000FF20A1F0842F8F7128960FB6F894DEBF3D -:103480000FBECDBFDF91CF911F910F91FF90EF90B5 -:10349000DF90CF900C94681FFF2061F3842F8F7111 -:1034A00028960FB6F894DEBF0FBECDBFDF91CF9147 -:1034B0001F910F91FF90EF90DF90CF900C94891F98 -:1034C000FF2091F0842F8F7128960FB6F894DEBFFD -:1034D0000FBECDBFDF91CF911F910F91FF90EF9065 -:1034E000DF90CF900C94531F28960FB6F894DEBF50 -:1034F0000FBECDBFDF91CF911F910F91FF90EF9045 -:10350000DF90CF900C94491FFF20A1F0222309F4F3 -:10351000B1CF862F28960FB6F894DEBF0FBECDBF71 -:10352000DF91CF911F910F91FF90EF90DF90CF909F -:103530000C94BA16222309F4B1CF862F28960FB621 -:10354000F894DEBF0FBECDBFDF91CF911F910F91D9 -:10355000FF90EF90DF90CF900C9482174F70C801CE -:103560000E94F20728960FB6F894DEBF0FBECDBFBB -:10357000DF91CF911F910F91FF90EF90DF90CF904F -:103580000C946E1E4F70C80128960FB6F894DEBFDB -:103590000FBECDBFDF91CF911F910F91FF90EF90A4 -:1035A000DF90CF900C940D0C28960FB6F894DEBFE8 -:1035B0000FBECDBFDF91CF911F910F91FF90EF9084 -:1035C000DF90CF9008950E9420210E94F5200E9454 -:1035D0003C210E94FA260E94CC2580E090E00E94C7 -:1035E0008C1580E090E00C94A2150E9410210C94A0 -:1035F000E31A0E941E20292F22952F7030E02C30D4 -:1036000031054CF42A3031056CF422503109223056 -:10361000310590F407C02C30310551F02F303105C1 -:1036200039F00AC0803E10F0803F31F481E0089507 -:1036300093FB882780F9089580E00895CF93DF9366 -:1036400000D000D01F92CDB7DEB70F900F900F9033 -:103650000F900F90DF91CF910895CF93DF9300D01B -:1036600000D000D0CDB7DEB726960FB6F894DEBFF7 -:103670000FBECDBFDF91CF9108951F93CF93DF93FE -:10368000C091880116E080918901C81799F0D0E0B7 -:103690001C9FF0011D9FF00D1124E657FE4F408145 -:1036A000518162817381848195810E942D1B2196B5 -:1036B000C770E9CFDF91CF911F9108954091BA0172 -:1036C0005091BB016091BC017091BD018091BE0120 -:1036D0009091BF010C942D1BCF938091BF018295D7 -:1036E0008F7009F05FC08091BC01882309F45AC033 -:1036F00020918801A09189016091BA017091BB016C -:103700008091BD019091BE0131E06F3F09F030E042 -:10371000B32FC6E02A1709F445C0009721F07F3F78 -:1037200021F44B2F03C041E001C040E030E040FDF8 -:1037300035C0C29FF001C39FF00D1124E657FE4F24 -:10374000418174132BC04081641328C04281411110 -:1037500025C0438154814817590710F4415051093D -:10376000481B590B483C5105C8F48091BF018F702C -:1037700080618093BF0186E0829FF001839FF00DFE -:103780001124E157FE4F80818F70806180838AEB26 -:1037900091E00E94DF17CF910C943D1B2F5F3F4FAC -:1037A0002770B8CFCF910895CF92DF92EF92FF921A -:1037B0000F931F93CF93DF93CDB7DEB762970FB60A -:1037C000F894DEBF0FBECDBF8C0185E0F801DE01AD -:1037D0001D9601900D928A95E1F7D8014C911196B2 -:1037E0005C91119712966C9112971396ED90FC9044 -:1037F00014977091BA01E091BB012091BD01309105 -:10380000BE012115310531F0EF3F31F481E07F3FFA -:1038100019F403C081E001C080E0B82FB170CB2E55 -:1038200080FD6CC1D090BC01DD2009F4F5C0F091A1 -:10383000BF01E216F30638F0C701821B930B883CE8 -:10384000910548F09BC0209530952E0D3F1D283CDA -:10385000310508F093C08F2F807F09F052C0E51327 -:1038600014C0741312C0D62E61110FC0FF70F06126 -:10387000F093BF010E945E1B8AEB91E00E94DF176C -:103880008091BF01F80185836CC1EF2831F05F3F63 -:1038900031F481E04F3F19F403C081E001C080E0C2 -:1038A00080FD03C081E0862701C080E0F82FF17021 -:1038B000FF2E80FF1CC0809188012091890136E095 -:1038C000821709F428C190E0389FF001399FF00D6C -:1038D0001124E657FE4F7181571306C070814713BC -:1038E00003C07281671303C001968770E9CFD62E9B -:1038F000662309F436C18091BF0181608093BF01C6 -:1039000053C0E51308C0741306C0611104C0D80188 -:103910001596FC93AEC04D875E878D859E856A8B1C -:103920000E94F91A6A89882329F1D62E662311F19B -:103930002091BF01822F82958F7090E002970CF446 -:1039400060C08091BA019091BB0198878F831986DE -:10395000FB86EA862C87CE01079651C0E51731F128 -:103960004D875E878D859E856A8B0E94F91A6A89CC -:1039700081112EC0C8010E94DF17A4C08F2F807F45 -:1039800069F77E2DF98AE88A89890E941E1B8AEBD5 -:1039900091E00E94DF17EAEBF1E086E0DF011D9283 -:1039A0008A95E9F70E945E1BD12CDBC07413D8CF37 -:1039B0006111D6CFD8011596FC93C8010E94DF177C -:1039C000EAEBF1E086E0DF011D928A95E9F7C9C0D4 -:1039D000D62E662379F22091BF01822F82958F70B7 -:1039E00090E0029774F08091BA019091BB019A83A4 -:1039F00089831B82FD82EC822E83CE0101960E9478 -:103A0000DF1786E0F801AAEBB1E001900D928A95EC -:103A1000E1F70E946C1B6FC0E216F30628F0C701A5 -:103A2000821B930B9C0104C0209530952E0D3F1DE9 -:103A3000283C310508F052C0D62E662309F49ACFEF -:103A4000E5132CC074132AC08091BF0180FD1DC0F6 -:103A5000982F92959F70C9F0D80115968C93159761 -:103A60009F3039F09F5F9295907F8F70892B1596CC -:103A70008C93C8010E94DF1786E0F801AAEBB1E041 -:103A800001900D928A95E1F736C086E0F801AAEB25 -:103A9000B1E001900D928A95E1F763C04D875E8792 -:103AA0008D859E850E94F91A882379F086E0F801B9 -:103AB000AAEBB1E001900D928A95E1F70E946C1B90 -:103AC0000E945E1BDD24D3944CC08091BF018160B5 -:103AD0008093BF01C8010E94DF1743C07E2DF98A81 -:103AE000E88A89890E941E1BEAEBF1E086E0DF018B -:103AF0001D928A95E9F70E945E1B33C0662309F484 -:103B000039CF4D875E878D859E850E94F91A88235F -:103B100009F430CFCBCF4D875E878D859E850E947F -:103B20001E20292F22952F7030E0223031052CF4F1 -:103B30009F7041F0811106C00CC0243031052CF477 -:103B40009F7049F4805E883020F0C8010E94DF1722 -:103B5000CF2CDC2C06C0D80115969C91907F91F754 -:103B6000F8CF8D2D62960FB6F894DEBF0FBECDBF95 -:103B7000DF91CF911F910F91FF90EF90DF90CF9049 -:103B800008951F93CF93DF93CDB7DEB72C970FB671 -:103B9000F894DEBF0FBECDBF4F83588769877A8701 -:103BA0008B879C87CE0107960E94D41B8823C1F087 -:103BB0002F8138858A859B85892B31F03F3F11F015 -:103BC00080E003C02F3FE1F781E0811147C04F81C2 -:103BD000588569857A858B859C850E942D1B3EC002 -:103BE00086E0FE013796DE01119601900D928A95CE -:103BF000E1F7FF81E8854A855B854115510531F084 -:103C0000EF3F31F481E0FF3F19F403C081E001C0D0 -:103C100080E080FD23C02091890130E0C901019638 -:103C2000877099276091880170E086179707F1F1F6 -:103C3000F983EA835D834C8396E0929FD001939F42 -:103C4000B00D1124A657BE4FFE01319601900D9282 -:103C50009A95E1F7809389010E943D1B16E08091BF -:103C6000880190918901891779F1189FC001112469 -:103C700086579E4F0E94D41B882331F1E091880122 -:103C80001E9FF0011124E657FE4F40815181628151 -:103C90007381848195810E942D1B8091880190E021 -:103CA00001968770992780938801D9CF0E94F51AD1 -:103CB0001092890110928801EAEBF1E086E0DF01C1 -:103CC0001D928A95E9F7CACF2C960FB6F894DEBFFD -:103CD0000FBECDBFDF91CF911F910895EF92FF925C -:103CE0000F931F93CF93DF939C01009709F471C04A -:103CF000F12CEE24E394E9012196F90184918437B3 -:103D000040F4843008F056C0813081F0823021F1D7 -:103D100060C0853709F449C0C0F19CE7980F90371F -:103D200008F057C08F770E94821746C089010E5F46 -:103D30001F4FFE01849190E2980F983050F48770E5 -:103D4000FE2D01C0FF0F8A95EAF78F2F0E941321E5 -:103D500015C00E94BA1614C089010E5F1F4FFE01E4 -:103D6000849190E2980F983068F48770FE2D01C01E -:103D7000FF0F8A95EAF78F2F0E9419210E943C219C -:103D8000E8011AC00E948217FBCF2E5F3F4FFE0151 -:103D9000C491CC2341F08FE99FE00197F1F700C077 -:103DA0000000C150F6CFE90107C0FE01F490E9011F -:103DB000229602C00E94BA168F2D882341F0EFE9A7 -:103DC000FFE03197F1F700C000008150F6CF9E016F -:103DD00092CFDF91CF911F910F91FF90EF900895B7 -:103DE00008956093C4017093C5018093C6019093B8 -:103DF000C7010C94E31A0F931F930091C401109113 -:103E0000C5012091C6013091C701062B172B282B25 -:103E1000392B0093C4011093C5012093C601309340 -:103E2000C7011F910F910C94E31A0F931F930091F8 -:103E3000C4011091C5012091C6013091C70106232C -:103E40001723282339230093C4011093C50120931D -:103E5000C6013093C7011F910F910C94E31A0F9381 -:103E60001F930091C4011091C5012091C6013091AA -:103E7000C70106271727282739270093C401109365 -:103E8000C5012093C6013093C7011F910F910C9477 -:103E9000E31A1092C0011092C1011092C201109257 -:103EA000C3010C94E31A41E050E060E070E004C00C -:103EB000440F551F661F771F8A95D2F74093C001A4 -:103EC0005093C1016093C2017093C3010C94E31A33 -:103ED00041E050E060E070E004C0440F551F661FF1 -:103EE000771F8A95D2F78091C0019091C101A0916E -:103EF000C201B091C301842B952BA62BB72B8093C5 -:103F0000C0019093C101A093C201B093C3010C946E -:103F1000E31A41E050E060E070E004C0440F551F38 -:103F2000661F771F8A95D2F74095509560957095DA -:103F30008091C0019091C101A091C201B091C301D3 -:103F400084239523A623B7238093C0019093C101B6 -:103F5000A093C201B093C3010C94E31A41E050E076 -:103F600060E070E004C0440F551F661F771F8A95FC -:103F7000D2F78091C0019091C101A091C201B0918E -:103F8000C30184279527A627B7278093C001909364 -:103F9000C101A093C201B093C3010C94E31A0F9323 -:103FA0001F930091C0011091C1012091C201309175 -:103FB000C301062B172B282B392B0093C00110931C -:103FC000C1012093C2013093C3011F910F910C9442 -:103FD000E31A0F931F930091C0011091C10120912A -:103FE000C2013091C30106231723282339230093EC -:103FF000C0011093C1012093C2013093C3011F91EE -:104000000F910C94E31A0F931F930091C00110912C -:10401000C1012091C2013091C3010627172728272B -:1040200039270093C0011093C1012093C20130933E -:10403000C3011F910F910C94E31A0895CF92DF9260 -:10404000EF92FF920F931F93CF93DF93EC01C090F9 -:10405000C401D090C501E090C601F090C7018091E5 -:10406000C0019091C101A091C201B091C301C82AC1 -:10407000D92AEA2AFB2A0FE110E0B701A601002E97 -:1040800004C076956795579547950A94D2F740FFF7 -:1040900007C0BE01802F0E94300C8130910539F499 -:1040A0000150110950F7BE0180E00E94300CDF91F1 -:1040B000CF911F910F91FF90EF90DF90CF900895D7 -:1040C00090910C01992361F190910D01992341F197 -:1040D000982F9695969596959F3088F4E0910E01CD -:1040E000F0910F01E90FF11D877021E030E001C070 -:1040F000220F8A95EAF78181822B8183089590911E -:10410000DB0190FF2DC01F928F9383ED95E09F936D -:104110008F930E94E9070F900F900F900F900895D2 -:1041200040910E0150910F0120E030E09FEFFA0125 -:10413000E20FF31F6281681799F09F3F19F4611134 -:1041400001C0922F2F5F3F4F2E30310581F79F3FE7 -:1041500039F0FA01E90FF11D97FDFA958283089570 -:10416000089590910C01992369F190910D01992383 -:1041700049F1982F9695969596959F3090F4E091F9 -:104180000E01F0910F01E90FF11D877021E030E081 -:1041900001C0220F8A95EAF7209581812823218387 -:1041A00008959091DB0190FF1FC01F928F9385EBC4 -:1041B00095E09F938F930E94E9070F900F900F90C7 -:1041C0000F90089540910E0150910F0120E030E0D2 -:1041D000FA01E20FF31F9281981301C012822F5F40 -:1041E0003F4F2E303105A1F7089581E090E0E09136 -:1041F0000E01F0910F01E80FF91F10820196803136 -:104200009105A9F708959091DA01982B9093DA011E -:10421000089580959091DA0198239093DA0108959A -:104220001092DA0108959091D901982B9093D901B9 -:10423000089580959091D90198239093D90108957C -:104240001092D90108958093C80108951092C80171 -:10425000089540910E0150910F0120E030E080E080 -:10426000FA01E20FF31F918191118F5F2F5F3F4F92 -:104270002F303105A9F70895E0910E01F0910F015B -:104280008091DA018083E0910E01F0910F0180812D -:104290009091D901892B80839091C801992361F075 -:1042A000E0910E01F0910F018081892B80830E94A3 -:1042B000292181111092C80180910E0190910F0166 -:1042C0000C943C1590933B0180933A010895CF9252 -:1042D000DF92EF92FF920F931F936C01EE24FF2465 -:1042E000C114D104E104F10421F46B017C0180E0EC -:1042F00001C080E133272F2D1E2D0D2D0115110535 -:104300002105310519F0885F68017901970186015F -:10431000A4E03695279517950795AA95D1F701152D -:1043200011052105310519F08C5F680179019701AC -:104330008601F2E03695279517950795FA95D1F7FE -:10434000011511052105310519F08E5F680179010C -:10435000B701A6017695679557954795452B462B4E -:10436000472B09F08F5F1F910F91FF90EF90DF9027 -:10437000CF9008958295982F9C7C969596958373FF -:1043800044E0849F90011124922B892F8A7A86958C -:104390009575990F892B08951F93CF93DF931F92E3 -:1043A000CDB7DEB799830E94BA21182F9981892F42 -:1043B0000E94BA21212F30E0322F2227A901482B59 -:1043C000CA010F90DF91CF911F9108958091F40160 -:1043D000843009F11092DC0120E488E190E00FB60E -:1043E000F894A895809360000FBE2093600083B777 -:1043F000817F846083BF83B7816083BF7894889511 -:1044000083B78E7F83BF88E10FB6F89480936000F6 -:10441000109260000FBE089508950895CF930E94F2 -:104420000C220E94D6090E940D22C0E08C2F0E940F -:10443000010B811105C0CF5FCE30C1F780E001C014 -:1044400081E0CF9108950C94F51A82E084BD93E049 -:1044500095BD9AEF97BD80936E0008952FB7F8949D -:104460008091DD019091DE01A091DF01B091E0012A -:104470002FBF0895CF92DF92EF92FF920F931F9379 -:104480002FB7F8944091DD015091DE016091DF017A -:104490007091E0012FBF6A017B01EE24FF248C01A3 -:1044A00020E030E0C016D106E206F30610F44150D9 -:1044B0005109481B590BCA011F910F91FF90EF90B2 -:1044C000DF90CF9008951F920F920FB60F92112494 -:1044D0008F939F93AF93BF938091DD019091DE0105 -:1044E000A091DF01B091E0010196A11DB11D809363 -:1044F000DD019093DE01A093DF01B093E001BF9155 -:10450000AF919F918F910F900FBE0F901F901895B4 -:104510000E943712F8942FEF87EA91E621508040ED -:104520009040E1F700C0000087E090EBDC01809351 -:10453000FD019093FE01A093FF01B09300022CE0D7 -:1045400088E190E00FB6F894A895809360000FBEC4 -:1045500020936000FFCFEF92FF920F931F93CF93B2 -:10456000DF93E82EF12C8F2D0E94010BC0E0D0E0EC -:10457000082F10E098010C2E02C0359527950A945B -:10458000E2F720FD05C02196C630D10599F709C094 -:104590006C2F7F2D80E00E940E0CE812F4CF81E09A -:1045A00005C0F3948EE0F812DECF80E0DF91CF916A -:1045B0001F910F91FF90EF900895CF93C82F8CE239 -:1045C0000E94AB22882321F08C2FCF910C94AB2238 -:1045D00080E0CF910895CF930E943824811102C0CA -:1045E0000E941E2488EF95E00E945007C5E6C15046 -:1045F00049F00E94D6098FE39CE90197F1F700C0CA -:104600000000F5CF81EF95E00E94500789E20E94FB -:10461000DD22811111C18AE20E94DD2281110E94F6 -:104620001E2485E00E94DD2281110E9488220E94C2 -:1046300043248093DB0187E00E94DD22882399F1E7 -:104640008BE10E94DD22882351F09091DB0191FBE8 -:10465000882780F921E0822780FB91F922C08EE033 -:104660000E94DD22882351F09091DB0192FB882784 -:1046700080F921E0822780FB92F913C080E10E943B -:10468000DD229091DB01882341F093FB882780F99C -:1046900021E0822780FB93F904C0892F809580FB5D -:1046A00090F99093DB018091DB010E9447240E94E6 -:1046B00055248093EE0180EE0E94DD22882341F094 -:1046C0008091EE01982F909590FB80F98093EE01F8 -:1046D00089E30E94DD22882359F09091EE0191FB3D -:1046E000882780F921E0822780FB91F99093EE01E1 -:1046F00082EE0E94DD22882359F09091EE0192FB18 -:10470000882780F921E0822780FB92F99093EE01BF -:1047100086EE0E94DD22882359F09091EE0193FBF2 -:10472000882780F921E0822780FB93F99093EE019E -:1047300083EE0E94DD22882359F09091EE0194FBD4 -:10474000882780F921E0822780FB94F99093EE017D -:1047500085E30E94DD22882359F09091EE0195FBBC -:10476000882780F921E0822780FB95F99093EE015C -:1047700081E30E94DD22882359F09091EE0196FB9F -:10478000882780F921E0822780FB96F99093EE013B -:1047900081E10E94DD22882359F09091EE0197FB80 -:1047A000882780F921E0822780FB97F99093EE011A -:1047B0008091EE010E9459248091EE0187FB8827A9 -:1047C00080F980930D0187E20E94DD22C82F8EE1DF -:1047D0000E94DD228111C2608FE10E94DD228111E1 -:1047E000C46080E20E94DD228111C86081E20E94E3 -:1047F000DD228111C06182E20E94DD228111C0624E -:1048000083E20E94DD228111C06484E20E94DD22E5 -:10481000882311F0C06802C0CC2329F08C2F0E949D -:1048200050246C2F03C00E944C24682F70E080E05D -:1048300090E0CF910C94F11ECF9108956DEE7EEF34 -:1048400080E090E00E94132E60E082E090E00E9401 -:10485000052E60E083E090E00E94052E60E084E099 -:1048600090E00E94052E60E085E090E00C94052E1B -:1048700080E090E00E94FF2D21E08D3E9E4F09F0E8 -:1048800020E0822F089582E090E00C94F72D682FAD -:1048900082E090E00C94052E83E090E00C94F72DDC -:1048A000682F83E090E00C94052E84E090E00C9457 -:1048B000F72D682F84E090E00C94052E8091E301A1 -:1048C00080FF0BC06091130185E0689FB001112447 -:1048D00075956795759567952AC081FF09C06091A8 -:1048E000130185E0689FB0011124759567951FC07D -:1048F00082FF07C06091130185E0689FB001112419 -:1049000016C04091E4014423C9F06091120146179A -:1049100088F72091130185E0289F90011124429F80 -:10492000C001439F900D112470E00E94C92D603892 -:10493000710540F46115710539F002C065E070E061 -:10494000862F08958FE7089581E008958091E3010F -:1049500080FF08C06091110170E0759567957595AD -:10496000679521C081FF06C06091110170E07595C7 -:10497000679519C082FF04C06091110170E010C0FA -:104980008091E4018823C1F0609110018617A0F79F -:1049900090911101989FC001112470E00E94C92DCF -:1049A0006038710528F46115710521F0862F08958E -:1049B0008FE7089581E0089561E070E0F4CF803FD3 -:1049C00021F40E945E24819504C0813F29F40E9455 -:1049D0005E248093E7010895823F21F40E945E24C3 -:1049E000819504C0833F29F40E945E248093E601F0 -:1049F0000895893F19F40E94A62405C08A3F31F426 -:104A00000E94A62481958093E80108958B3F21F4AC -:104A10000E94A624819504C08C3F29F40E94A624FC -:104A20008093E9010895843F21F48091E50181603C -:104A300017C0853F21F48091E501826011C0863F57 -:104A400021F48091E50184600BC0873F21F48091BF -:104A5000E501886005C0883F31F48091E5018061FF -:104A60008093E50108958D3F21F48091E3018160F9 -:104A70000BC08E3F21F48091E301826005C08F3F1F -:104A800029F48091E30184608093E3010895803FDD -:104A900039F48091E70187FF6CC01092E70169C08B -:104AA000813F29F48091E7011816BCF362C0909110 -:104AB000E601823F29F497FF5CC01092E60159C0DD -:104AC000833F19F41916CCF354C0893F41F4809107 -:104AD000E80118160CF04DC01092E8014AC08A3F58 -:104AE00029F48091E80187FF44C0F6CF8B3F39F469 -:104AF0008091E90187FF3DC01092E9013AC08C3FE7 -:104B000029F48091E9011816BCF333C0843F21F4E5 -:104B10008091E5018E7F17C0853F21F48091E501EA -:104B20008D7F11C0863F21F48091E5018B7F0BC002 -:104B3000873F21F48091E501877F05C0883F31F4EC -:104B40008091E5018F7E8093E50113C08D3F21F4B4 -:104B50008091E3018E7F0BC08E3F21F48091E301B1 -:104B60008D7F05C08F3F29F48091E3018B7F809377 -:104B7000E3018091E60181110EC08091E70181116E -:104B80000AC08091E801811106C08091E90181117C -:104B900002C01092E40108958091DB0183FF7EC082 -:104BA00084E396E00E9450078091E5011F928F9365 -:104BB0008FE296E09F938F930E94E9078DE296E043 -:104BC0000E9450072091E601822F992787FD90953A -:104BD0009F932F938AE296E09F938F930E94E90719 -:104BE00088E296E00E9450072091E701822F9927E2 -:104BF00087FD90959F932F9385E296E09F938F93E7 -:104C00000E94E90783E296E00E9450072091E801A4 -:104C1000822F992787FD90959F932F9380E296E0AE -:104C20009F938F930E94E9078EE196E00E945007C0 -:104C30002091E901822F992787FD90959F932F93CB -:104C40008BE196E09F938F930E94E90788E196E0BD -:104C50000E9450078091E4011F928F9385E196E0B6 -:104C60009F938F930E94E90783E196E00E9450078B -:104C70008091E3011F928F9380E196E09F938F9341 -:104C80000E94E9078DE096E00E9450078DB79EB71D -:104C90004C960FB6F8949EBF0FBE8DBF85EE91E087 -:104CA0000E9481150E942E229093E2018093E101DF -:104CB00008951F93CF93DF938091E1019091E201DA -:104CC0000E943A224091E401442321F020911401F2 -:104CD00030E006C0209115015AE0259F9001112473 -:104CE0008217930708F482C08091E6011091E701D2 -:104CF000D091E801C091E901811107C0111105C0EF -:104D0000D11103C0CC2309F471C04F3F19F04F5F9C -:104D10004093E401181624F40E945E248093E60177 -:104D20008091E60187FF05C00E945E2481958093F3 -:104D3000E601111624F40E945E248093E70180911D -:104D4000E70187FF05C00E945E2481958093E701FB -:104D50006091E601662339F11091E701112319F101 -:104D6000772767FD7095872F972F0E94CE2C23E31E -:104D700033E343E35FE30E94322D0E949B2C609358 -:104D8000E601612F772767FD7095872F972F0E9487 -:104D9000CE2C23E333E343E35FE30E94322D0E94F2 -:104DA0009B2C6093E7011D1624F40E94A624809397 -:104DB000E8018091E80187FF05C00E94A624819543 -:104DC0008093E8011C1624F40E94A6248093E90134 -:104DD0008091E90187FF05C00E94A62481958093F8 -:104DE000E901DF91CF911F910C94CC25DF91CF91F8 -:104DF0001F910895E5EEF1E085E0DF011D928A95AF -:104E0000E9F71092E4011092E301089587E598E034 -:104E10000E9450071F9281E08F931F9285E08F932D -:104E200089E098E09F938F930E94E9070F900F907D -:104E30000F900F900F900F9008958330E9F128F4B0 -:104E4000813061F0823009F10895853009F462C043 -:104E500008F449C0863009F474C008952091150102 -:104E6000862F90E0820F911D8F3F910520F4620FF5 -:104E70006093150103C08FEF809315018091150198 -:104E80001F928F9382E497E072C020911401862FC5 -:104E900090E0820F911D8F3F910520F4620F609387 -:104EA000140103C08FEF80931401809114011F92AD -:104EB0008F9380E397E05BC020911301862F90E0F1 -:104EC000820F911D8F3F910520F4620F60931301B3 -:104ED00003C08FEF80931301809113011F928F9372 -:104EE0008DE197E044C020911201862F90E0820F5F -:104EF000911D8F3F910520F4620F6093120103C052 -:104F00008FEF80931201809112011F928F9388E09E -:104F100097E02DC020911101862F90E0820F911D06 -:104F20008F3F910520F4620F6093110103C08FEF52 -:104F300080931101809111011F928F938FEE96E063 -:104F400016C020911001862F90E0820F911D8F3F97 -:104F5000910520F4620F6093100103C08FEF8093DE -:104F60001001809110011F928F9384ED96E09F9322 -:104F70008F930E94E9070F900F900F900F90089564 -:104F8000833081F128F4813059F08230D1F00895D6 -:104F9000853009F449C0B8F1863009F456C0089547 -:104FA00080911501681720F4861B8093150102C0BB -:104FB00010921501809115011F928F9385EC96E058 -:104FC00054C080911401681720F4861B809314014B -:104FD00002C010921401809114011F928F9383EBF1 -:104FE00096E043C080911301681720F4861B8093DC -:104FF000130102C010921301809113011F928F932D -:1050000080EA96E032C080911201681720F4861B76 -:105010008093120102C010921201809112011F921E -:105020008F938BE896E021C080911101681720F4DE -:10503000861B8093110102C0109211018091110111 -:105040001F928F9382E796E010C08091100168173D -:1050500020F4861B8093100102C0109210018091F1 -:1050600010011F928F9387E596E09F938F930E9484 -:10507000E9070F900F900F900F900895CF93C82FCE -:105080001F928F932CE539E03F932F930E94E907FD -:1050900061E070E080E090E004C0660F771F881F39 -:1050A000991FCA95D2F70E94F11E0F900F900F9092 -:1050B0000F90CF910C94F51ACF938D3109F465C000 -:1050C000B0F58E3009F4CBC100F5873009F49BC1EF -:1050D000A8F4863009F06AC28091DB01817F8E7F5F -:1050E0008093DB0181E699E00E9450078DE99DE005 -:1050F0000E94500781E08093EB0180C1883009F461 -:105100004FC08B3009F47CC151C2863109F4EDC126 -:1051100038F4803109F4B6C1813109F42DC246C298 -:10512000893109F4CBC18B3109F486C13FC2853383 -:1051300009F434C248F4873209F430C208F430C2AA -:10514000893209F42BC232C2833438F48A3308F02E -:1051500029C2883309F454C129C2833409F41EC218 -:10516000883409F023C20E94F51A8CE89DE00E9461 -:1051700050079FEF23ED80E3915020408040E1F7FE -:1051800000C000000E94882239C18CEA9DE00E9484 -:1051900050070E94552C0E9430150E946E0D2EC1A2 -:1051A00081EA9DE00E94500782E79BE00E94500741 -:1051B0000E944C241F928F938FE69BE09F938F93C6 -:1051C0000E94E9078DE69BE00E9450070E9443245D -:1051D000C82F8AE59BE00E9450071F92CF9325E5D8 -:1051E0003BE03F932F930E94E90783E59BE00E94F9 -:1051F000500789E49BE00E9450078C2F81701F921A -:105200008F9326E43BE03F932F930E94E90784E4C9 -:105210009BE00E9450078AE39BE00E945007C1FB7D -:10522000882780F91F928F9327E33BE03F932F93CA -:105230000E94E90785E39BE00E94500789E29BE01A -:105240000E945007C2FB882780F91F928F9326E2A5 -:105250003BE03F932F930E94E90784E29BE00E948A -:1052600050078BE19BE00E945007C3FBCC27C0F99D -:105270001F92CF9388E19BE09F938F930E94E90751 -:1052800086E19BE00E9450070E945524C82F82E0CF -:105290009BE00E9450071F92CF932DEF3AE03F937F -:1052A0002F930E94E9078BEF9AE00E94500782EE4D -:1052B0009AE00E9450078C2F81701F928F932FEDE0 -:1052C0003AE03F932F930E94E9078DB79EB78096EF -:1052D0000FB6F8949EBF0FBE8DBF8DED9AE00E9471 -:1052E000500786EC9AE00E945007C1FB882780F99E -:1052F0001F928F9323EC3AE03F932F930E94E9078C -:1053000081EC9AE00E9450078FEA9AE00E945007D1 -:10531000C2FB882780F91F928F932CEA3AE03F93D3 -:105320002F930E94E9078AEA9AE00E94500788E9D1 -:105330009AE00E945007C3FB882780F91F928F9341 -:1053400025E93AE03F932F930E94E90783E99AE029 -:105350000E94500789E89AE00E945007C4FB882702 -:1053600080F91F928F9326E83AE03F932F930E9493 -:10537000E90784E89AE00E94500782E79AE00E94D9 -:105380005007C5FB882780F91F928F932FE63AE0DC -:105390003F932F930E94E9078DE69AE00E94500701 -:1053A00081E59AE00E945007C6FB882780F91F928A -:1053B0008F932EE43AE03F932F930E94E9078CE409 -:1053C0009AE00E94500784E49AE00E945007C7FBCD -:1053D000CC27C0F91F92CF9381E49AE09F938F93DB -:1053E0000E94E9078FE39AE00E9450078DB79EB7AD -:1053F0004C960FB6F8949EBF0FBE8DBFC1E0DBC0C8 -:1054000088E899E058C08091DB01C82FC17080FF07 -:1054100009C08FE79DE00E9450078091DB01817FEA -:105420008E7F44C083E79DE00E9450078091DB019E -:1054300081608093DB01E2CF8091DB0181FBCC278F -:10544000C0F991E0C927C0FB81F98093DB01CC232F -:1054500019F086E69DE025C088E59DE02CC080918E -:10546000DB0182FBCC27C0F991E0C927C0FB82F9A0 -:105470008093DB01CC2319F089E49DE012C089E31D -:105480009DE019C08091DB0183FBCC27C0F991E03E -:10549000C927C0FB83F98093DB01CC2351F08DE257 -:1054A0009DE00E9450078091DB0181608093DB01C9 -:1054B00082C080E29DE00E945007A0CF81E19DE084 -:1054C0000E94500785EE9CE00E94500788EA9CE00D -:1054D0000E94500781E89CE00E9450078DE39CE009 -:1054E0000E94500782E19CE0E6CF84E09CE00E94AD -:1054F00050070E9430151F928F938AEE9BE09F9376 -:105500008F930E94E90780910C011F928F9383ED86 -:105510009BE09F938F930E94E907809172011F92F5 -:105520008F9380EC9BE09F938F930E94E90780917B -:105530000D011F928F938DEA9BE09F938F930E94A2 -:10554000E9078091DD019091DE01A091DF01B0912A -:10555000E001BF93AF939F938F9389E99BE09F9363 -:105560008F930E94E9078DB79EB746960FB6F894C1 -:105570009EBF0FBE8DBF42CF0E94F51AC0910D0194 -:1055800081E0C827C0930D01CC2329F08FE89BE070 -:105590000E94500710C084E89BE08DCF80E003C0DC -:1055A0008D5101C089530E943E2828CF82E89BE09C -:1055B0000E945007C0E08C2FCF91089580E008959D -:1055C00080E00895CF93C82F8091EB01813081F066 -:1055D00020F0823009F44CC042C1A0910E01B0917C -:1055E0000F018C91813169F0823209F03AC109C012 -:1055F000A0910E01B0910F018C91813111F0823296 -:1056000049F48C2F0E94DE2A81112FC08C2F0E941A -:105610005C282CC08C2F0E94E02A811126C0C43146 -:10562000E1F070F4CB3081F0C031D1F40E94062754 -:1056300084E599E00E94500782E08093EB0115C059 -:10564000C93259F0C83361F481E699E00E945007ED -:1056500088E599E00E94500708C01092EB0103C151 -:1056600082E599E00E945007FEC081E08170FDC094 -:10567000C43220F5CE3108F0C0C0CB3099F1C8F467 -:10568000C73009F0D2C08AE08093150194E190936D -:10569000140193E0909313018093120188E08093AA -:1056A000110188E28093100188EF97E00E94500773 -:1056B000BFC0C33149F1C431C1F0B7C0CB3409F424 -:1056C000A9C028F4C93289F0C83361F0AEC0C13531 -:1056D00009F49EC0C23509F499C0CE3409F0A5C0C2 -:1056E0006AE09EC00E940627A3C08091EA01882339 -:1056F00019F01092EA019CC085E098E00E945007E2 -:1057000081E08093EB01B1C08FED97E00E945007DC -:105710008DEC97E00E945007809115011F928F93A6 -:105720008AEC97E09F938F930E94E90788EC97E0BB -:105730000E94500786EB97E00E9450078091140169 -:105740001F928F9383EB97E09F938F930E94E907BB -:1057500081EB97E00E94500782EA97E00E94500791 -:10576000809113011F928F938FE997E09F938F93FE -:105770000E94E9078DE997E00E9450078CE897E0C6 -:105780000E945007809112011F928F9389E897E041 -:105790009F938F930E94E90787E897E00E94500744 -:1057A00082E797E00E945007809111011F928F932A -:1057B0008FE697E09F938F930E94E9078DE697E02D -:1057C0000E94500786E597E00E94500780911001E3 -:1057D0001F928F9383E597E09F938F930E94E90731 -:1057E00081E597E00E9450078DB79EB748960FB6A7 -:1057F000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0C2 -:10580000E15DFE4F80818093EA0112C061E003C038 -:1058100061E006C06AE08091EA010E941D2708C08D -:105820008091EA010E94C02703C086EF97E013C071 -:105830008091EA01882369F01F928F9380EF97E0AF -:105840009F938F930E94E9070F900F900F900F90F6 -:1058500004C08DEE97E00E94500781E006C01092D0 -:10586000EB0180E002C080E001CFCF910895E1E834 -:10587000F0E08081886080838081816080838FB741 -:10588000F89493E09093890090ED909388008FBFF7 -:105890000895EFE6F0E08081826080830895EFE66E -:1058A000F0E080818D7F80830895EFE6F0E08081D5 -:1058B00092E08927808308951F920F920FB60F926E -:1058C00011242F933F934F935F936F937F938F9305 -:1058D0009F93AF93BF93EF93FF938091EC019091CF -:1058E000ED0101969093ED018093EC01811103C0CD -:1058F00082E00E946E0DE091ED01E695E695F0E004 -:10590000E454F24FE4918091EC018E1303C080E0E7 -:105910000E946E0DFF91EF91BF91AF919F918F917A -:105920007F916F915F914F913F912F910F900FBE9B -:105930000F901F90189504D06894B1118DC00895F0 -:1059400070D088F09F5790F0B92F9927B751A0F0E9 -:10595000D1F0660F771F881F991F1AF0BA95C9F703 -:1059600012C0B13081F077D0B1E0089574C0672FD4 -:10597000782F8827B85F39F0B93FCCF386957795B3 -:105980006795B395D9F73EF490958095709561959C -:105990007F4F8F4F9F4F0895E89409C097FB3EF4C7 -:1059A00090958095709561957F4F8F4F9F4F99236C -:1059B000A9F0F92F96E9BB279395F69587957795EA -:1059C0006795B795F111F8CFFAF4BB0F11F460FFAA -:1059D0001BC06F5F7F4F8F4F9F4F16C0882311F002 -:1059E00096E911C0772321F09EE8872F762F05C016 -:1059F000662371F096E8862F70E060E02AF09A95B1 -:105A0000660F771F881FDAF7880F9695879597F9A5 -:105A1000089557FD9058440F551F59F05F3F71F09E -:105A20004795880F97FB991F61F09F3F79F0879505 -:105A30000895121613061406551FF2CF4695F1DF8E -:105A400008C0161617061806991FF1CF869571051E -:105A5000610508940895E894BB2766277727CB0152 -:105A600097F908950BD078C069D028F06ED018F05F -:105A7000952309F05AC05FC01124EECFCADFA0F30E -:105A8000959FD1F3950F50E0551F629FF001729FD3 -:105A9000BB27F00DB11D639FAA27F00DB11DAA1FF2 -:105AA000649F6627B00DA11D661F829F2227B00D3F -:105AB000A11D621F739FB00DA11D621F839FA00DCA -:105AC000611D221F749F3327A00D611D231F849F1A -:105AD000600D211D822F762F6A2F11249F57504071 -:105AE0008AF0E1F088234AF0EE0FFF1FBB1F661F0C -:105AF000771F881F91505040A9F79E3F510570F0C5 -:105B000014C0AACF5F3FECF3983EDCF386957795FF -:105B10006795B795F795E7959F5FC1F7FE2B880FBF -:105B2000911D9695879597F9089597F99F6780E855 -:105B300070E060E008959FEF80EC089500240A94DF -:105B40001616170618060906089500240A94121658 -:105B50001306140605060895092E0394000C11F48B -:105B6000882352F0BB0F40F4BF2B11F460FF04C038 -:105B70006F5F7F4F8F4F9F4F0895991B79E004C04F -:105B8000991F961708F0961B881F7A95C9F780957C -:105B9000089597FB072E16F4009407D077FD09D0DF -:105BA0000E94E32D07FC05D03EF4909581959F4F10 -:105BB0000895709561957F4F0895EE0FFF1F059032 -:105BC000F491E02D0994AA1BBB1B51E107C0AA1F49 -:105BD000BB1FA617B70710F0A61BB70B881F991F8E -:105BE0005A95A9F780959095BC01CD010895F99932 -:105BF000FECF92BD81BDF89A992780B50895A8E19E -:105C0000B0E042E050E00C941A2E262FF999FECF16 -:105C10001FBA92BD81BD20BD0FB6F894FA9AF99AC9 -:105C20000FBE019608950E94052E272F0C94062E74 -:105C3000DC01CB01FC01F999FECF06C0F2BDE1BD4C -:105C4000F89A319600B40D9241505040B8F708953B -:045C5000F894FFCFF6 -:105C540020026F0D600E3D0E090ED60D0101C90123 -:105C640028080A03140A3F4D3620394205F504BFBB -:105C7400049F046604D903F2030B042404440401BE -:0A5C840002030405060708090000EA -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.c b/keyboard/ergodox_ez/keymaps/keymap_default.c deleted file mode 100644 index b2f0a051d5..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_default.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 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |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_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, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPC,KC_BSPC,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, 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, - 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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_default.hex b/keyboard/ergodox_ez/keymaps/keymap_default.hex deleted file mode 100644 index eedabc2db5..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_default.hex +++ /dev/null @@ -1,1472 +0,0 @@ -:100000000C9403070C9447070C9447070C9447077C -:100010000C9447070C9447070C9447070C94470728 -:100020000C9447070C9447070C945E120C94301301 -:100030000C9447070C9447070C9447070C94470708 -:100040000C9447070C94082C0C9447070C94470712 -:100050000C9447070C940F220C9447070C94470705 -:100060000C9447070C9447070C9447070C944707D8 -:100070000C9447070C9447070C9447070C944707C8 -:100080000C9447070C9447070C9447070C944707B8 -:100090000C9447070C9447070C9447070C944707A8 -:1000A0000C9447070C9447070C9447079513B71314 -:1000B000A214B713A214F9131C14A21471148414FB -:1000C000D217D2170018001843187F18801A801A08 -:1000D0009718801A8E198E195A1A801A801A6E1A59 -:1000E0000000F0A12E004C002A00E1003581000044 -:1000F0001E00140004001D7134004D001F001A0082 -:1001000016001B00E1042A0020000800070006007A -:1001100050002C0021001500090019004F004A0072 -:10012000220017000A000500000065745000015409 -:100130000000007F0000E3004F0001540000007742 -:100140000000E20023001C000B00110000002971D8 -:10015000240018000D00100052004B0025000C0078 -:100160000E00360051002800260012000F00370054 -:100170002F002B00270013003382387130004E000F -:100180002D0031003400E500C10000000100010035 -:1001900001000100010000003A001E0220022202BC -:1001A000010001003B001F022102230201000100A7 -:1001B0003C002F0226022F00010001003D0030020A -:1001C00027023000010001003E00310235003502F7 -:1001D000000001000100010000000100000001001A -:1001E0000100010000000100000001003F0052007A -:1001F00051002402000001004000240021001E00E4 -:10020000010001004100250022001F00370001000D -:1002100042002600230020002700010043002502A1 -:100220002E0231002E0001004400450001000100B3 -:1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 -:10025000F2000100010001000100F000F1000100C6 -:10026000F400010001000100F3000100F5000100AD -:100270000100010001000100000001000100010077 -:100280000000010000000100010001000000010069 -:100290000000010001000100010001000000010058 -:1002A0000100010001000100A9000100010001009E -:1002B0000100AC00AA00B600010001000100AB0083 -:1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -: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 -:100C80003531320A004255494C443A2035653337F4 -:100C90003663622D6469727479202832323A3239AF -:100CA0003A3538204A616E203132203230313629CF -: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 -:100E600011E0A0E0B1E0ECEAFBE502C005900D92D4 -:100E7000AA33B107D9F711E0AAE3B1E001C01D928E -:100E8000A93FB107E1F70E94980F0C94D42D0C9460 -:100E90000000FF93EF93E0913A01F0913B0130970E -:100EA00009F00995EF91FF910895FC01859180303B -:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC -:100EC0000CC0419597FF09C0EDE260957095809543 -:100ED0009095611D711D811D911D27FF02C02195F7 -:100EE00030E350E2AA27660F771F881F991FAA1FB9 -:100EF000A41710F0A41B63955A95A9F7AA3008F01F -:100F0000A95FA05DAF93F39561157105810591050A -:100F100041F7ED3211F4EF93F395F21718F43F9384 -:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D -:100F3000F9918591803021F0853219F0AADFF9CF3F -:100F4000089520E0E89455915532C1F3503311F4DF -:100F5000689455915A3348F4505390F3220F022E5F -:100F6000220F220F200D250FF4CF0EF42195899129 -:100F70009991533619F3533729F1533559F1BC017F -:100F800088279927E8945C3621F48991999168948F -:100F90005591543639F446EF7EF077FF0DC08FEF50 -:100FA0009FEF0AC055374AE039F0583540E121F04B -:100FB000523642E009F00895FF93EF937DDFEF9101 -:100FC000FF91B7CFFF93EF93FC0181918030B9F38C -:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319 -:100FE000CDB7DEB72596A3DFCF91DF9108956111CC -:100FF0000BC0FC018281882321F085EE0E946616D9 -:1010000003C085EE0E942E1780E090E008950895B9 -:101010006091BC017091BD018091BE019091BF01B2 -:101020000E94132156985E9825982D9826982E9800 -:1010300027982F98813019F0823021F00895259A51 -:101040002D9A0895269A2E9A089588E098E0892B83 -:1010500011F00E94080880E090E0089556985E988C -:1010600025982D9826982E9827982F988FEF90E006 -:10107000909389008093880090938B0080938A00DE -:1010800090938D0080938C00259A2D9A2FEF80E706 -:1010900092E0215080409040E1F700C00000269A85 -:1010A0002E9A2FEF80E792E0215080409040E1F7A8 -:1010B00000C00000279A2F9A2FEF80E792E021507E -:1010C00080409040E1F700C0000025982D982FEF58 -:1010D00080E792E0215080409040E1F700C000009E -:1010E00026982E982FEF80E792E021508040904084 -:1010F000E1F700C0000027982F9856985E98259831 -:101100002D9826982E9827982F98089589EA8093ED -:10111000800089E08093810024982C983F988AB1C0 -:101120008F748AB96E98479A8BB1806B8BB9769A17 -:101130000E942E0887E098E0892B11F00E94070892 -:1011400080E090E0089580E28093000180913C016E -:1011500081110EC00E94F20881E080933C012FEFC4 -:1011600083ED90E3215080409040E1F700C0000003 -:1011700080E40E94F8088093000181112EC00E9433 -:10118000220980930001811128C00E9422098093C6 -:101190000001811122C08FE30E9422098093000187 -:1011A00081111BC00E941A0980E40E94F8088093F4 -:1011B0000001811112C08CE00E942209809300017D -:1011C00081110BC00E94220980930001811105C08A -:1011D0008FE30E942209809300010E941A098091E6 -:1011E000000108951092B9008AE08093B800089534 -:1011F00094EA9093BC009091BC0097FFFCCF909133 -:10120000B900987F983021F0903111F081E0089575 -:101210008093BB0084E88093BC008091BC0087FF72 -:10122000FCCF8091B900887F883111F0803471F74C -:1012300080E0089584E98093BC008091BC0084FD27 -:10124000FCCF08958093BB0084E88093BC0080911C -:10125000BC0087FFFCCF9091B900987F81E0983265 -:1012600009F480E0089584E88093BC008091BC007C -:1012700087FFFCCF8091BB00089580910001811110 -:1012800015C080E40E94F8088093000181110CC011 -:1012900082E10E94220980930001811105C08FEF35 -:1012A0000E942209809300010E941A0984B1807F64 -:1012B00084B985B1807F85B98AB1837F8AB98BB1C2 -:1012C000837F8BB93E98469808950E94A308809327 -:1012D00000010E943D0980B38C7080BB81B3836F95 -:1012E00081BBECE4F1E0AEE3B1E011921D9281E04C -:1012F000EA35F807D1F786E898E0892B11F00C94CD -:10130000860808959F92AF92BF92CF92DF92EF929C -:10131000FF920F931F93CF93DF9380910001882357 -:10132000E1F080913D018F5F80933D01811115C0F7 -:1013300082E493E00E9455070E94A3088093000175 -:10134000882329F088E293E00E94550706C084E1D3 -:1013500093E00E9455070E942E080EE311E0C0E0C2 -:10136000D0E0BB24B39482E0A82ECC24C394D12C2B -:1013700025E0E22E23E0F22EC73000F58091000137 -:10138000811162C080E40E94F808809300018111FD -:1013900012C082E10E9422098093000181110BC0DA -:1013A000C6010C2E01C0880F0A94EAF780950E94AE -:1013B0002209809300010E941A0946C0CA30A1F098 -:1013C00028F4C83059F0C93061F005C0CC3089F03C -:1013D00070F0CD3089F0209A289810C0219A299871 -:1013E0000DC0229A2A980AC0239A2B9807C0529AB5 -:1013F00001C0539A5B9802C03E9A4698E0EAEA958B -:10140000F1F78FB1799985C092E081708B25892B96 -:101410007C9B02C090E001C094E0892B7D9B02C0C0 -:1014200090E001C098E0892B7E9B02C090E001C053 -:1014300090E1892B9FB19095991F9927991F9295BB -:10144000990F907E892B10C080910001811176C088 -:1014500080E40E94F80880930001882309F45BC0AF -:10146000912C0E941A09892DF8019081981739F161 -:10147000808380910101882301F18091D70180FF51 -:1014800004C08AE093E00E9455078091D70180FF55 -:101490000CC0809101011F928F93FF92EF920E94E6 -:1014A000EE070F900F900F900F908091D70180FF63 -:1014B00004C083E093E00E945507A09201010E94BE -:1014C0003D0921960F5F1F4FCE30D10509F054CF53 -:1014D000809101018823B1F081508093010188231C -:1014E00039F08FE99FE00197F1F700C000000AC0D2 -:1014F000ACE4B1E0EEE3F1E081918D9391E0EC3466 -:10150000F907D1F785E298E0892BD1F00E942508F0 -:1015100017C090E07ACF83E10E94220980930001F6 -:1015200081119ECF81E40E94F8088093000181110F -:1015300097CF0E943309982E909493CF80E094CF58 -:1015400081E0DF91CF911F910F91FF90EF90DF909D -:10155000CF90BF90AF909F900895E82FF0E0E45BAC -:10156000FE4F80810895CF92DF92EF92FF920F930A -:101570001F93CF93DF938CEE92E00E9455073CE4DB -:10158000E32E31E0F32EC0E0D0E047EEC42E42E07F -:10159000D42E0EED12E0DF93CF93DF92CF920E9414 -:1015A000EE0784EE92E00E945507F70181917F01DA -:1015B00090E00E9478219F938F931F930F930E9436 -:1015C000EE078CED92E00E94550721968DB79EB7ED -:1015D00008960FB6F8949EBF0FBE8DBFCE30D105D2 -:1015E000D1F6DF91CF911F910F91FF90EF90DF9097 -:1015F000CF9008958B3B910578F4883A910540F59A -:10160000853A9105D0F48430910508F0B1C081305D -:10161000910509F4ADC06BC0803E910508F467C028 -:10162000883E910508F4A4C09C01205F3109203157 -:10163000310508F05CC090650895853A910509F47C -:1016400059C0863A910509F458C083E890E408959A -:10165000883A910509F454C0893A910509F453C0B8 -:101660008A3A910509F452C08B3A910509F451C0A8 -:101670008C3A910509F450C08D3A910509F44FC098 -:10168000803B910509F44EC08E3A910509F44DC096 -:101690008F3A910509F44CC0813B910509F44BC088 -:1016A000823B910509F44AC0833B910509F449C086 -:1016B000843B910509F448C0853B910509F447C076 -:1016C000863B910509F446C0873B910509F445C066 -:1016D000883B910509F444C0893B910509F443C056 -:1016E0008A3B910509F042C08AE296E4089580E0C1 -:1016F00090E0089581E890E4089582E890E40895E8 -:1017000082EE94E4089589EE94E408958AEE94E4D8 -:10171000089585EB94E4089586EB94E4089587EBAF -:1017200094E408958CEC94E408958DEC94E4089589 -:1017300083E895E408958AE895E4089582E995E4BC -:10174000089584E995E4089581E296E4089583E29A -:1017500096E4089584E296E4089585E296E4089577 -:1017600086E296E4089587E296E4089580E094E4A2 -:101770000895089596E0799FF001112494E5899FDA -:10178000E00DF11D1124E60FF11DEE0FFF1FEC51CE -:10179000FF4F859194910895880F991F805A90402A -:1017A000FC01859194910895880F991F80529F4F55 -:1017B000FC0185919491089526E0729FF001112417 -:1017C00044E5849FE00DF11D1124E60FF11DEE0F9D -:1017D000FF1FEC51FF4F25913491C9019A95811556 -:1017E0009F4110F4C9010895C9019052811590419B -:1017F00028F4C9019F700E94D40B0895C901905329 -:101800008115904120F4C9019927906C0895211504 -:1018100080E5380769F40E94A11A9FEF24E34CE0A9 -:10182000915020404040E1F700C000000C94342269 -:10183000213080E5380751F48CE593E00E9455078C -:101840008091D70181608093D7010895C901905597 -:101850008115904108F050C0832F99278F709927E8 -:1018600081309105D9F4A9014370552702C0880F32 -:10187000991F4A95E2F79C68A90164E0440F551F3F -:101880006A95E1F744275370842B952B73E0220F60 -:10189000331F7A95E1F7207633271DC082309105FA -:1018A00029F4922F8827816F906A089583309105DB -:1018B000A9F4A9014370552781E090E002C0880F88 -:1018C000991F4A95E2F79C6843E0220F331F4A951F -:1018D000E1F7207E3770822B932B08950497F1F463 -:1018E000A9014370552781E090E002C0880F991F3D -:1018F0004A95E2F79A68E8CFC9019057811590415F -:1019000020F4C9019F7090620895C9019058811513 -:10191000904120F4C9019F70906A0895203E3105DE -:10192000E0F4203C310558F52133310509F470C04D -:1019300048F42932310509F464C02A32310509F42A -:101940006EC074C029333105F1F022383105D9F069 -:101950002533310509F44EC069C0233E310589F1B4 -:1019600038F4203E3105C1F0223E3105E1F05EC081 -:10197000263E310569F1273E3105A9F157C0C9015D -:101980000E94CC0B08958091EA0180FD02C081FF86 -:101990004DC080EE90E04BC08091EA0180FFF9CF0E -:1019A00089E390E044C08091EA0182FF0EC08091FB -:1019B000EA0184FF03C080E090E039C083EE90E04C -:1019C00036C08091EA0182FFF2CF82EE90E02FC014 -:1019D0008091EA0183FF0BC08091EA0184FDEBCF87 -:1019E00087EE90E024C08091EA0183FFF5CF86EE78 -:1019F00090E01DC08091EA0185FF07C089E290E078 -:101A000016C08091EA0185FFF9CF85E390E00FC011 -:101A10008091EA0186FF07C08AE290E008C08091C9 -:101A2000EA0186FFF9CF81E390E001C0C9010E947D -:101A3000FA0A0895089580916D0108959FB7F8946A -:101A400010925C019FBF9091F001943009F058C052 -:101A50009091E9009F702091EC0020FF02C020E8E7 -:101A600001C020E0292B94E09093E9009091EB00D5 -:101A700090FF43C09091EE0097FF3FC090915A01B4 -:101A8000992321F09091E80095FF37C010925A01F8 -:101A900096E03091E80035FD15C03091F00134300A -:101AA00061F53091EB0035FD28C0915021F481E0C3 -:101AB00080935A0122C0EFE9FFE03197F1F700C0AF -:101AC0000000E7CF8093F1008091E80085FD0AC017 -:101AD0008091E80080FFFCCF8091E8008E778093B2 -:101AE000E80006C08FB7F89491E090935C018FBF37 -:101AF0002F702093E90080E008952F702093E90073 -:101B00008FEF0895CF93DF9300D01F92CDB7DEB74C -:101B10002091F001243019F523E029839B838A83E7 -:101B20002093E9008FEF9091E800815095FD06C069 -:101B300095ED9A95F1F700008111F5CF8091E800BD -:101B400085FF0DC040E050E063E070E0CE010196FB -:101B50000E9451108091E8008E778093E8000F90EA -:101B60000F900F90DF91CF910895CF93DF9300D026 -:101B70001F92CDB7DEB72091F001243021F522E08D -:101B800029839B838A8383E08093E9008FEF909180 -:101B9000E800815095FD06C095ED9A95F1F700009B -:101BA0008111F5CF8091E80085FF0DC040E050E045 -:101BB00063E070E0CE0101960E9451108091E80030 -:101BC0008E778093E8000F900F900F90DF91CF9168 -:101BD00008952091F0012430F1F422E02093E900EF -:101BE0002FEF3091E800215035FD06C035ED3A95D4 -:101BF000F1F700002111F5CF2091E80025FF0BC07F -:101C000040E050E065E070E00E9451108091E800F3 -:101C10008E778093E8000895CF93DF93EC01809155 -:101C2000F001843009F047C080910C018823E1F075 -:101C300080910D018823C1F085E08093E9008FEF4A -:101C40009091E800815095FD06C095E19A95F1F7D5 -:101C500000008111F5CF8091E80085FF2CC040E0A5 -:101C600050E060E170E017C081E08093E9008FEF01 -:101C70009091E800815095FD06C095ED9A95F1F799 -:101C800000008111F5CF8091E80085FF14C040E08D -:101C900050E068E070E0CE010E9451108091E800B1 -:101CA0008E778093E80080E1FE01ADE5B1E0019020 -:101CB0000D928A95E1F7DF91CF91089583E993E042 -:101CC0000E9455078091EF01811109C00E94E31124 -:101CD0000E9440128091E20084608093E2000895A7 -:101CE0008FE893E00E9455071092EF0108958BE86A -:101CF00093E00C94550787E893E00E9455070C94F5 -:101D0000F52B83E893E00E9455070E94CF210E94A3 -:101D1000FB2B0E94DC140C941A0D80915B018F5FE9 -:101D200080935B0162E30E94692D911135C010928E -:101D30005B0180915C01882379F18091F00184300E -:101D400049F58091E9008F709091EC0090FF02C0FE -:101D500090E801C090E0982B84E08093E9008091A6 -:101D6000EB0080FF14C08091EE0087FF10C08091CF -:101D7000E80085FF03C01092F100F9CF8091E800E0 -:101D800080FF05C08091E8008E778093E8009F7007 -:101D90009093E90010925C01089542E061EC81E0CB -:101DA0000E945D1142E061EC82E00E945D1142E020 -:101DB00061EC83E00E945D1142E261EC84E00E94EC -:101DC0005D1142E161EC85E00C945D118091F201BE -:101DD000833009F455C030F4813071F0823009F459 -:101DE0008EC008958A3009F47AC08B3009F460C03F -:101DF000893009F09CC020C08091F101813A09F03E -:101E000096C08091E800877F8093E8008091F5017B -:101E10009091F601892B21F060E080E090E003C012 -:101E200060E18DE591E070E00E949A108091E800F9 -:101E30008B778093E80008958091F101813209F059 -:101E400076C08091F5019091F601009719F0049702 -:101E500009F06DC08091E800877F8093E800809151 -:101E6000E80082FD05C08091F0018111F8CF5FC0CC -:101E70008091F10080936D018091E8008B7753C0D1 -:101E80008091F101813A09F052C08091F501909161 -:101E9000F601892B09F04BC08091E800877F809381 -:101EA000E8008091E80080FFFCCF80910C0136C0F3 -:101EB0008091F1018132D9F58091F5019091F6017F -:101EC000892BA9F58091E800877F8093E8000E9424 -:101ED00092118091F30180930C010C94A11A8091CE -:101EE000F101813221F58091E800877F8093E8003D -:101EF0000E9492118091F40180936E010895809167 -:101F0000F101813AA1F48091E800877F8093E80095 -:101F10008091E80080FFFCCF80916E018093F100FA -:101F20008091E8008E778093E8000C9492110895D8 -:101F300084B7877F84BF88E10FB6F89480936000F0 -:101F4000109260000FBE90E080E80FB6F894809386 -:101F50006100909361000FBE0E9465150E94E3111D -:101F60000E9440128091E20084608093E2008EE142 -:101F70009DE00E940E2178940E94BA140E94671579 -:101F800082E091E00E94D7140E94E32B82E793E065 -:101F90000E9455078091F001853089F48EE693E028 -:101FA0000E9455070E9492218091EE01882391F3AF -:101FB0000E94BA21882371F30E943B10EBCF0E944C -:101FC0009515E8CF292F332723303105A9F06CF47C -:101FD0002130310509F442C02230310509F043C0F7 -:101FE0008DE890E02BEC33E042C021323105C9F09E -:101FF0002232310519F137C099278130910541F01E -:102000008230910541F0892B71F5E7ECF3E005C0D2 -:10201000EFEAF3E002C0E7E9F3E0849190E09F018A -:1020200026C0653000F5E62FF0E0EE0FFF1FEB5DF8 -:10203000FE4F2081318189E090E019C0653098F42D -:10204000E62FF0E0DF01AA0FBB1FA55EBE4F2D916A -:102050003C91EA5EFE4F808190E009C082E190E011 -:1020600028E534E004C080E090E020E030E0FA01B0 -:1020700031832083089580E189BD82E189BD09B45F -:1020800000FEFDCF8091D8008F7D8093D800809195 -:10209000E00082608093E0008091E00081FDFCCF51 -:1020A0000895CF92DF92EF92FF920F931F93CF93F9 -:1020B000DF937C018B01EA010E94B311811131C0D1 -:1020C000209731F088819981081B190BE80EF91EC1 -:1020D000C12CD12C0115110519F18091E80085FD65 -:1020E00014C08091E8008E778093E800209741F03B -:1020F000888199818C0D9D1D9983888385E011C00D -:102100000E94B311882331F30CC0F70181917F0144 -:102110008093F10001501109FFEFCF1ADF0ADACFE7 -:1021200080E0DF91CF911F910F91FF90EF90DF90B2 -:10213000CF9008952091F7013091F80126173707C5 -:1021400048F06115710539F42091E8002E7720934D -:10215000E80001C0B901FC0120E061157105B9F189 -:102160008091F001882309F440C0853009F43FC014 -:102170008091E80083FD3DC08091E80082FF06C0A9 -:102180008091E80082FF26C080E008958091E800F9 -:1021900080FFE3CF2091F3008091F20090E0922B3A -:1021A0006115710551F08830910538F42191209323 -:1021B000F100615071090196F3CF21E0089709F011 -:1021C00020E08091E8008E778093E800C6CF21114F -:1021D000C7CFD6CF8091F001882339F0853039F010 -:1021E0008091E80083FFCCCF04C082E0089583E0B3 -:1021F000089581E008952091F7013091F8012617A4 -:10220000370748F06115710539F42091E8002E7701 -:102210002093E80001C0B901FC0120E061157105BF -:10222000C1F18091F001882309F441C0853009F49F -:1022300040C08091E80083FD3EC08091E80082FFAD -:1022400006C08091E80082FF27C080E00895809159 -:10225000E80080FFE3CF2091F3008091F20090E04E -:10226000922B6115710559F08830910540F4249145 -:102270002093F1003196615071090196F2CF21E06F -:10228000089709F020E08091E8008E778093E800BD -:10229000C5CF2111C6CFD5CF8091F001882339F069 -:1022A000853039F08091E80083FFCBCF04C082E015 -:1022B000089583E0089581E00895982F973058F5A8 -:1022C0009093E900981739F07091EC002091ED009F -:1022D0005091F00003C0242F762F50E021FF19C049 -:1022E0003091EB003E7F3093EB003091ED003D7F6D -:1022F0003093ED003091EB0031603093EB00709340 -:10230000EC002093ED005093F0002091EE0027FFA9 -:1023100007C09F5FD3CF8F708093E90081E008955D -:1023200080E008958091F10187FD05C08091E8006B -:1023300080FF0EC012C08091E80082FD05C0809130 -:10234000F0018111F8CF08958091E8008B7708C0E3 -:102350008091F0018111EACF08958091E8008E7795 -:102360008093E80008958091E4009091E50045E6AF -:102370002091EC0020FF21C02091E80020FD21C029 -:102380002091F001222389F0253089F02091EB0083 -:1023900025FD0FC02091E4003091E5002817390792 -:1023A00039F3415041F0C901E3CF82E0089583E061 -:1023B000089581E0089584E008952091E80022FFC7 -:1023C000DFCF80E008950E9451120E945912E0EE82 -:1023D000F0E0808181608083E8EDF0E080818F779C -:1023E000808319BCA7EDB0E08C918E7F8C938081A7 -:1023F0008F7E80831092EF0108950F931F93CF93E8 -:10240000DF930E9451120E945912C8EDD0E08881DA -:102410008F77888388818068888388818F7D88838F -:1024200019BC1092F0011092EC011092EE01109282 -:10243000ED0100EE10E0F80180818B7F80838881C0 -:102440008160888342E060E080E00E945D11E1EEFF -:10245000F0E080818E7F8083E2EEF0E08081816019 -:102460008083808188608083F80180818E7F808373 -:10247000888180618883DF91CF911F910F910895AA -:10248000E8EDF0E080818F7E8083E7EDF0E08081F1 -:102490008160808384E082BF81E08093EF010C94AF -:1024A000FD11E8EDF0E080818E7F80831092E200E4 -:1024B00008951092DA001092E10008951F920F9291 -:1024C0000FB60F9211242F933F934F935F936F9307 -:1024D0007F938F939F93AF93BF93EF93FF938091DD -:1024E000E10082FF0BC08091E20082FF07C0809173 -:1024F000E1008B7F8093E1000E948D0E8091DA00D5 -:1025000080FF1FC08091D80080FF1BC08091DA003F -:102510008E7F8093DA008091D90080FF0DC080E12A -:1025200089BD82E189BD09B400FEFDCF81E08093C1 -:10253000F0010E945E0E05C019BC1092F0010E94CD -:10254000700E8091E10080FF19C08091E20080FF51 -:1025500015C08091E2008E7F8093E2008091E200BE -:1025600080618093E2008091D80080628093D800DF -:1025700019BC85E08093F0010E947B0E8091E10000 -:1025800084FF30C08091E20084FF2CC080E189BDCF -:1025900082E189BD09B400FEFDCF8091D8008F7D16 -:1025A0008093D8008091E1008F7E8093E10080913C -:1025B000E2008F7E8093E2008091E2008160809350 -:1025C000E2008091EC01882311F084E007C0809143 -:1025D000E30087FF02C083E001C081E08093F00147 -:1025E0000E94810E8091E10083FF29C08091E2006A -:1025F00083FF25C08091E100877F8093E10082E026 -:102600008093F0011092EC018091E1008E7F809325 -:10261000E1008091E2008E7F8093E2008091E200F1 -:1026200080618093E20042E060E080E00E945D1102 -:102630008091F00088608093F0000E94770EFF91F7 -:10264000EF91BF91AF919F918F917F916F915F912A -:102650004F913F912F910F900FBE0F901F901895A3 -:102660001F920F920FB60F9211242F933F934F9307 -:102670005F936F937F938F939F93AF93BF93CF930A -:10268000EF93FF93C091E900CF708091EC0010921E -:10269000E9008091F000877F8093F00078940E9499 -:1026A0006C131092E9008091F00088608093F00034 -:1026B000C093E900FF91EF91CF91BF91AF919F91AE -:1026C0008F917F916F915F914F913F912F910F90DB -:1026D0000FBE0F901F9018951F93CF93DF93CDB728 -:1026E000DEB7AA970FB6F894DEBF0FBECDBFE1EFFD -:1026F000F1E08091F100819321E0E93FF207C9F711 -:102700000E94E60E8091E80083FF1CC12091F10138 -:102710003091F201832F90E08A30910508F012C1C8 -:10272000FC01EA5AFF4F0C94892D203881F02238A1 -:1027300009F008C18091F5018F708093E9008091C4 -:10274000EB0085FB882780F91092E90006C0809194 -:10275000ED019091EE01911182609091E800977FD8 -:102760009093E8008093F1001092F100C5C0822F91 -:102770008D7F09F0E7C0222319F0223061F0E2C01A -:102780008091F301813009F0DDC0333009F080E041 -:102790008093EE0128C08091F301811124C0209123 -:1027A000F5012F7009F4CEC02093E9008091EB0071 -:1027B00080FF19C08091EB00333011F4806211C0AA -:1027C00080618093EB0081E090E0022E01C0880FD1 -:1027D0000A94EAF78093EA001092EA008091EB00F5 -:1027E00088608093EB001092E9008091E800877F79 -:1027F00086C02111A7C01091F3011F778091E300DB -:102800008078812B8093E3008091E800877F80931C -:10281000E8000E9492118091E80080FFFCCF809137 -:10282000E30080688093E300112311F083E001C08E -:1028300082E08093F00186C02058223008F082C0E8 -:102840008091F3019091F4018C3D23E0920779F59A -:1028500083E08A838AE289834FB7F894DE01139676 -:1028600020E03EE051E2E32FF0E050935700E49186 -:1028700020FF03C0E295EF703F5FEF708E2F90E076 -:10288000EA3010F0C79601C0C0968D939D932F5FDC -:10289000243149F74FBF8091E800877F8093E8009B -:1028A0006AE270E0CE0101960E949A1014C0AE0157 -:1028B0004F5F5F4F6091F5010E94E20F009709F4AE -:1028C00041C02091E800277F2093E800BC01898166 -:1028D0009A810E94FB108091E8008B778093E8003A -:1028E00031C0203879F58091E800877F8093E80037 -:1028F0008091EC018093F1008091E8008E778093C5 -:10290000E8000E9492111EC021111CC09091F30199 -:102910009230C0F48091E800877F8093E800909324 -:10292000EC010E9492118091EC01811104C0809110 -:10293000E30087FF02C084E001C081E08093F001E2 -:102940000E94CD0E8091E80083FF0AC08091E800CC -:10295000877F8093E8008091EB0080628093EB009A -:10296000AA960FB6F894DEBF0FBECDBFDF91CF9110 -:102970001F910895CF938091F0018823B1F0809149 -:10298000E9008F709091EC0090FF02C090E801C0C8 -:1029900090E0C92FC82B1092E9008091E80083FDD8 -:1029A0000E946C13CF70C093E900CF91089590936B -:1029B0007401809373010895E0917301F0917401A3 -:1029C000309721F00190F081E02D099480E0089586 -:1029D000FF920F931F93CF93DF938C01E0917301CC -:1029E000F0917401309799F10280F381E02D0995FF -:1029F0008091D70182FF2BC080FF04C08DE895E055 -:102A00000E945507E80180E1F82E07E815E0809163 -:102A1000D70180FF0BC088811F928F931F930F9364 -:102A20000E94EE070F900F900F900F90FA9421964E -:102A3000F110EDCF8091D70180FF09C085E895E0C6 -:102A4000DF91CF911F910F91FF900C945507DF916B -:102A5000CF911F910F91FF900895E0917301F09134 -:102A60007401309721F00480F581E02D09940895D8 -:102A700020917101309172018217930771F0909348 -:102A8000720180937101E0917301F09174013097AC -:102A900021F00680F781E02D0994089520916F01BF -:102AA000309170018217930771F0909370018093B9 -:102AB0006F01E0917301F0917401309721F000846F -:102AC000F185E02D0994089508950C9464150E94F1 -:102AD000D1210E9465090C949722CF93C82F809131 -:102AE000D70182FF1EC080FF04C086EA95E00E94E5 -:102AF00055078091D70180FF0CC01F92CF9321EA28 -:102B000035E03F932F930E94EE070F900F900F90A8 -:102B10000F908091D70180FF04C08FE995E00E945B -:102B200055078C2FCF910C941A0DCF92DF92EF9214 -:102B3000FF920F931F93CF93DF93CDB7DEB72B9701 -:102B40000FB6F894DEBF0FBECDBF0E94820936E7F4 -:102B5000E32E31E0F32E00E010E0C02E802F0E9423 -:102B6000AD0AF701D1907F01D826B1F40F5F1F4F56 -:102B70000E30110591F78FEF89838A831B820E94A3 -:102B8000DA218160782F9D838C8349815A816B8102 -:102B90008D810E94381641C09091D70191FF04C0E9 -:102BA0008B870E94B30A8B8520E030E04D2D50E0EA -:102BB000922FBA01022E02C0759567950A94E2F72A -:102BC00060FF25C02E83CF82EE24E394F12C02C057 -:102BD000EE0CFF1C9A95E2F790E08E219F2121E0F8 -:102BE000892B09F420E028870E94DA218160782F60 -:102BF0009A8789874E815F8168858A850E94381609 -:102C0000F801EA58FE4F80818E25808306C02F5F31 -:102C10003F4F2630310561F6A9CF0E94052610915D -:102C200075010E94DC141817A1F00E94DC14809337 -:102C300075012B960FB6F894DEBF0FBECDBFDF91A6 -:102C4000CF911F910F91FF90EF90DF90CF900C9458 -:102C50006D152B960FB6F894DEBF0FBECDBFDF917A -:102C6000CF911F910F91FF90EF90DF90CF9008953B -:102C7000CF93DF93CDB7DEB72B970FB6F894DEBFB7 -:102C80000FBECDBF4F83588769877A878B87DE0158 -:102C9000119686E0FD0111928A95E9F785E0FE0123 -:102CA000379601900D928A95E1F749815A816B819F -:102CB0007C818D819E810E946D1D2B960FB6F894AC -:102CC000DEBF0FBECDBFDF91CF910895CF93C82F48 -:102CD000882309F4C1C0823859F40E94DC1481FDB4 -:102CE000BBC089E30E940C200E94E82089E30CC04D -:102CF000833879F40E94DC1480FDAEC083E50E9425 -:102D00000C200E94E82083E50E945D20CF910C9466 -:102D1000E820843859F40E94DC1482FD9DC087E4C9 -:102D20000E940C200E94E82087E4EECF8CEF8C0FED -:102D3000813A48F48C2F0E948E2A81118DC08C2FED -:102D40000E940C20E3CF80E28C0F883048F4C770DB -:102D500081E001C0880FCA95EAF70E94AF20D6CF64 -:102D60008BE58C0F833078F4C53A29F0C63A31F4FC -:102D700082E890E005C081E890E002C083E890E03E -:102D8000CF910C94381588E58C0F833108F064C01E -:102D9000C83A39F1C93A41F1CA3A49F1CB3A51F14D -:102DA000CC3A59F1CD3A61F1C03B69F1CE3A71F1BB -:102DB000CF3A79F1C13B81F1C23B89F1C33B91F13B -:102DC000C43B99F1C53BA1F1C63BA9F1C73BB1F1A9 -:102DD000C83BB9F1C93BC1F1CA3BC9F58AE292E0EF -:102DE00038C082EE90E035C089EE90E032C08AEEC5 -:102DF00090E02FC085EB90E02CC086EB90E029C0DE -:102E000087EB90E026C08CEC90E023C08DEC90E046 -:102E100020C083E891E01DC08AE891E01AC082E9F1 -:102E200091E017C084E991E014C081E292E011C002 -:102E300083E292E00EC084E292E00BC085E292E071 -:102E400008C086E292E005C087E292E002C080E01E -:102E500090E0CF910C944E15CF910895882309F4FA -:102E60004BC0823859F40E94DC1481FF45C089E3CD -:102E70000E940C200E94E82089E30CC0833871F482 -:102E80000E94DC1480FF38C083E50E940C200E9461 -:102E9000E82083E50E945D200C94E820843859F4F2 -:102EA0000E94DC1482FF28C087E40E940C200E944C -:102EB000E82087E4EFCF9CEF980F913A58F390E227 -:102EC000980F983050F4877091E001C0990F8A955F -:102ED000EAF7892F0E94B520DFCF9BE5980F93304A -:102EE00020F480E090E00C943815885A833120F467 -:102EF00080E090E00C944E150895882321F00E9404 -:102F0000AF200C94E8200895882321F00E94B5207A -:102F10000C94E8200895CF92DF92EF92FF920F93E6 -:102F20001F93CF93DF93CDB7DEB728970FB6F894F2 -:102F3000DEBF0FBECDBF8C0185E0F801DE0111962A -:102F400001900D928A95E1F7F80140813181F2807C -:102F5000258122952F7083819481892B31F03F3F09 -:102F600031F481E04F3F19F403C081E001C080E0FB -:102F700080FDC6C249833A8389819A812F830E944A -:102F8000CA1F9E8388870E94C91F0E949C1E4E8173 -:102F9000E42FE295EF70F0E0E05AFF4F2F81688553 -:102FA0000C94892D842F807F142F1F70882311F09B -:102FB0001295107FFF2059F0112309F456C2812F7A -:102FC00068870E94BF200E94E82068854EC2862F35 -:102FD0000E942E17112309F493C2812F0E94C5204D -:102FE00028960FB6F894DEBF0FBECDBFDF91CF910C -:102FF0001F910F91FF90EF90DF90CF900C94E820FD -:10300000342F307F842F8F70303211F08295807F83 -:10301000662319F0613019F12CC0FF20B1F0222392 -:1030200009F494C1213009F091C128960FB6F894A3 -:10303000DEBF0FBECDBFDF91CF911F910F91FF90EB -:10304000EF90DF90CF900C94CF20222319F0213005 -:1030500009F456C28E830E94D2208E818AC1FF203D -:1030600021F0263008F04CC271C1253008F048C26A -:1030700080C1FF2021F0222309F468C1F6C1222378 -:1030800009F477C106C2242F26952695237030E0D7 -:103090002115310521F021303105C9F031C2FF2061 -:1030A00021F0862F942F937002C080E090E0289644 -:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1030C0000F91FF90EF90DF90CF900C943815FF2078 -:1030D00021F0862F942F937002C080E090E0289614 -:1030E0000FB6F894DEBF0FBECDBFDF91CF911F9119 -:1030F0000F91FF90EF90DF90CF900C944E15862F9C -:10310000FF2019F00E948B2402C00E94F32428960D -:103110000FB6F894DEBF0FBECDBFDF91CF911F91E8 -:103120000F91FF90EF90DF90CF900C947825842F33 -:10313000837009F076C0F110E3C1262F2295269501 -:103140002770220F220F862F8F70C82ED12CE12CD2 -:10315000F12C022E04C0CC0CDD1CEE1CFF1C0A94CA -:10316000D2F764FF10C06FE070E080E090E004C030 -:10317000660F771F881F991F2A95D2F76095709563 -:103180008095909503C060E070E0CB01242F2695D8 -:1031900026952370422F50E042305105D1F0433044 -:1031A000510559F16C297D298E299F2941305105FE -:1031B00041F128960FB6F894DEBF0FBECDBFDF9168 -:1031C000CF911F910F91FF90EF90DF90CF900C94D3 -:1031D000C11E6C297D298E299F2928960FB6F89447 -:1031E000DEBF0FBECDBFDF91CF911F910F91FF903A -:1031F000EF90DF90CF900C94DB1E0E94C11EC701A0 -:10320000B60128960FB6F894DEBF0FBECDBFDF9192 -:10321000CF911F910F91FF90EF90DF90CF900C9482 -:10322000A71EFF2019F0842F817001C08695882386 -:1032300009F466C1262F229526952770220F220FAA -:10324000862F8F70C82ED12CE12CF12C022E04C0B9 -:10325000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DE -:103260006FE070E080E090E004C0660F771F881F79 -:10327000991F2A95D2F7609570958095909503C017 -:1032800060E070E0CB01242F269526952370422F15 -:1032900050E042305105D1F04330510559F16C29CD -:1032A0007D298E299F294130510541F128960FB67D -:1032B000F894DEBF0FBECDBFDF91CF911F910F916C -:1032C000FF90EF90DF90CF900C94951F6C297D2993 -:1032D0008E299F2928960FB6F894DEBF0FBECDBF6A -:1032E000DF91CF911F910F91FF90EF90DF90CF90E2 -:1032F0000C94AF1F0E94951FC701B60128960FB608 -:10330000F894DEBF0FBECDBFDF91CF911F910F911B -:10331000FF90EF90DF90CF900C947B1F603FC9F13E -:1033200018F4603E50F49CC0623F09F461C008F498 -:103330004BC0633F09F470C093C0162F1F70842FD9 -:103340008F71FF2099F00E94141F812F28960FB6CD -:10335000F894DEBF0FBECDBFDF91CF911F910F91CB -:10336000FF90EF90DF90CF900C947D170E94351F57 -:10337000812F28960FB6F894DEBF0FBECDBFDF9128 -:10338000CF911F910F91FF90EF90DF90CF900C9411 -:103390008417FF20A9F0253008F0B2C0842F8F7168 -:1033A00028960FB6F894DEBF0FBECDBFDF91CF9148 -:1033B0001F910F91FF90EF90DF90CF900C945A1FC8 -:1033C000263008F09DC0EACFFF20A1F0842F8F7136 -:1033D00028960FB6F894DEBF0FBECDBFDF91CF9118 -:1033E0001F910F91FF90EF90DF90CF900C94141FDE -:1033F000FF2061F3842F8F7128960FB6F894DEBFFB -:103400000FBECDBFDF91CF911F910F91FF90EF9035 -:10341000DF90CF900C94351FFF2091F0842F8F7197 -:1034200028960FB6F894DEBF0FBECDBFDF91CF91C7 -:103430001F910F91FF90EF90DF90CF900C94FF1EA3 -:1034400028960FB6F894DEBF0FBECDBFDF91CF91A7 -:103450001F910F91FF90EF90DF90CF900C94F51E8D -:10346000FF20A1F0222309F4B1CF862F28960FB6B2 -:10347000F894DEBF0FBECDBFDF91CF911F910F91AA -:10348000FF90EF90DF90CF900C946616222309F402 -:10349000B1CF862F28960FB6F894DEBF0FBECDBFF2 -:1034A000DF91CF911F910F91FF90EF90DF90CF9020 -:1034B0000C942E174F70C8010E94F70728960FB67C -:1034C000F894DEBF0FBECDBFDF91CF911F910F915A -:1034D000FF90EF90DF90CF900C941A1E4F70C801B0 -:1034E00028960FB6F894DEBF0FBECDBFDF91CF9107 -:1034F0001F910F91FF90EF90DF90CF900C94B90B3C -:1035000028960FB6F894DEBF0FBECDBFDF91CF91E6 -:103510001F910F91FF90EF90DF90CF9008950E9440 -:10352000CC200E94A1200E94E8200E94A6260E9492 -:10353000782580E090E00E94381580E090E00C94BF -:103540004E150E94BC200C948F1A0E94CA1F292F6E -:1035500022952F7030E02C3031054CF42A303105A3 -:103560006CF4225031092230310590F407C02C3020 -:10357000310551F02F30310539F00AC0803E10F08E -:10358000803F31F481E0089593FB882780F9089506 -:1035900080E00895CF93DF9300D000D01F92CDB785 -:1035A000DEB70F900F900F900F900F90DF91CF919B -:1035B0000895CF93DF9300D000D000D0CDB7DEB711 -:1035C00026960FB6F894DEBF0FBECDBFDF91CF9128 -:1035D00008951F93CF93DF93C091840116E08091EB -:1035E0008501C81799F0D0E01C9FF0011D9FF00DD8 -:1035F0001124EA57FE4F4081518162817381848199 -:1036000095810E94D91A2196C770E9CFDF91CF9199 -:103610001F9108954091B6015091B7016091B80192 -:103620007091B9018091BA019091BB010C94D91AA3 -:10363000CF938091BB0182958F7009F05FC080911C -:10364000B801882309F45AC020918401A091850112 -:103650006091B6017091B7018091B9019091BA0162 -:1036600031E06F3F09F030E0B32FC6E02A1709F4CC -:1036700045C0009721F07F3F21F44B2F03C041E06C -:1036800001C040E030E040FD35C0C29FF001C39F63 -:10369000F00D1124EA57FE4F418174132BC0408175 -:1036A000641328C04281411125C0438154814817C9 -:1036B000590710F441505109481B590B483C51051A -:1036C000C8F48091BB018F7080618093BB0186E05C -:1036D000829FF001839FF00D1124E557FE4F8081FA -:1036E0008F708061808386EB91E00E948B17CF9171 -:1036F0000C94E91A2F5F3F4F2770B8CFCF910895F0 -:10370000CF92DF92EF92FF920F931F93CF93DF93AD -:10371000CDB7DEB762970FB6F894DEBF0FBECDBF50 -:103720008C0185E0F801DE011D9601900D928A95CD -:10373000E1F7D8014C9111965C91119712966C911A -:1037400012971396ED90FC9014977091B601E0914A -:10375000B7012091B9013091BA012115310531F03D -:10376000EF3F31F481E07F3F19F403C081E001C0F5 -:1037700080E0B82FB170CB2E80FD6CC1D090B80125 -:10378000DD2009F4F5C0F091BB01E216F30638F034 -:10379000C701821B930B883C910548F09BC0209584 -:1037A00030952E0D3F1D283C310508F093C08F2F1A -:1037B000807F09F052C0E51314C0741312C0D62ED6 -:1037C00061110FC0FF70F061F093BB010E940A1BF2 -:1037D00086EB91E00E948B178091BB01F8018583F5 -:1037E0006CC1EF2831F05F3F31F481E04F3F19F4B5 -:1037F00003C081E001C080E080FD03C081E0862736 -:1038000001C080E0F82FF170FF2E80FF1CC0809176 -:1038100084012091850136E0821709F428C190E0E7 -:10382000389FF001399FF00D1124EA57FE4F718146 -:10383000571306C07081471303C07281671303C01A -:1038400001968770E9CFD62E662309F436C18091A0 -:10385000BB0181608093BB0153C0E51308C07413A2 -:1038600006C0611104C0D8011596FC93AEC04D8707 -:103870005E878D859E856A8B0E94A51A6A8988233A -:1038800029F1D62E662311F12091BB01822F82955A -:103890008F7090E002970CF460C08091B601909117 -:1038A000B70198878F831986FB86EA862C87CE011D -:1038B000079651C0E51731F14D875E878D859E854E -:1038C0006A8B0E94A51A6A8981112EC0C8010E94C4 -:1038D0008B17A4C08F2F807F69F77E2DF98AE88A25 -:1038E00089890E94CA1A86EB91E00E948B17E6EB49 -:1038F000F1E086E0DF011D928A95E9F70E940A1B3C -:10390000D12CDBC07413D8CF6111D6CFD801159656 -:10391000FC93C8010E948B17E6EBF1E086E0DF0123 -:103920001D928A95E9F7C9C0D62E662379F22091B7 -:10393000BB01822F82958F7090E0029774F0809186 -:10394000B6019091B7019A8389831B82FD82EC8234 -:103950002E83CE0101960E948B1786E0F801A6EB1C -:10396000B1E001900D928A95E1F70E94181B6FC09B -:10397000E216F30628F0C701821B930B9C0104C0DA -:10398000209530952E0D3F1D283C310508F052C082 -:10399000D62E662309F49ACFE5132CC074132AC0DF -:1039A0008091BB0180FD1DC0982F92959F70C9F03A -:1039B000D80115968C9315979F3039F09F5F92959B -:1039C000907F8F70892B15968C93C8010E948B175E -:1039D00086E0F801A6EBB1E001900D928A95E1F73F -:1039E00036C086E0F801A6EBB1E001900D928A9511 -:1039F000E1F763C04D875E878D859E850E94A51A7D -:103A0000882379F086E0F801A6EBB1E001900D92F1 -:103A10008A95E1F70E94181B0E940A1BDD24D394AB -:103A20004CC08091BB0181608093BB01C8010E94A2 -:103A30008B1743C07E2DF98AE88A89890E94CA1AA9 -:103A4000E6EBF1E086E0DF011D928A95E9F70E943E -:103A50000A1B33C0662309F439CF4D875E878D85F5 -:103A60009E850E94A51A882309F430CFCBCF4D87BD -:103A70005E878D859E850E94CA1F292F22952F70F3 -:103A800030E0223031052CF49F7041F0811106C0E6 -:103A90000CC0243031052CF49F7049F4805E8830CE -:103AA00020F0C8010E948B17CF2CDC2C06C0D80157 -:103AB00015969C91907F91F7F8CF8D2D62960FB659 -:103AC000F894DEBF0FBECDBFDF91CF911F910F9154 -:103AD000FF90EF90DF90CF9008951F93CF93DF93E7 -:103AE000CDB7DEB72C970FB6F894DEBF0FBECDBFB3 -:103AF0004F83588769877A878B879C87CE01079683 -:103B00000E94801B8823C1F02F8138858A859B8580 -:103B1000892B31F03F3F11F080E003C02F3FE1F7E8 -:103B200081E0811147C04F81588569857A858B85F1 -:103B30009C850E94D91A3EC086E0FE013796DE01C0 -:103B4000119601900D928A95E1F7FF81E8854A85EB -:103B50005B854115510531F0EF3F31F481E0FF3FC6 -:103B600019F403C081E001C080E080FD23C02091F2 -:103B7000850130E0C9010196877099276091840121 -:103B800070E086179707F1F1F983EA835D834C8330 -:103B900096E0929FD001939FB00D1124AA57BE4F7B -:103BA000FE01319601900D929A95E1F7809385017F -:103BB0000E94E91A16E0809184019091850189178D -:103BC00079F1189FC00111248A579E4F0E94801BD3 -:103BD000882331F1E09184011E9FF0011124EA57FE -:103BE000FE4F4081518162817381848195810E9461 -:103BF000D91A8091840190E001968770992780936B -:103C00008401D9CF0E94A11A1092850110928401DB -:103C1000E6EBF1E086E0DF011D928A95E9F7CACF75 -:103C20002C960FB6F894DEBF0FBECDBFDF91CF91BB -:103C30001F910895EF92FF920F931F93CF93DF93FD -:103C40009C01009709F471C0F12CEE24E394E90182 -:103C50002196F9018491843740F4843008F056C0ED -:103C6000813081F0823021F160C0853709F449C08C -:103C7000C0F19CE7980F903708F057C08F770E94EB -:103C80002E1746C089010E5F1F4FFE01849190E2FE -:103C9000980F983050F48770FE2D01C0FF0F8A9561 -:103CA000EAF78F2F0E94BF2015C00E94661614C02D -:103CB00089010E5F1F4FFE01849190E2980F9830AA -:103CC00068F48770FE2D01C0FF0F8A95EAF78F2FE9 -:103CD0000E94C5200E94E820E8011AC00E942E1709 -:103CE000FBCF2E5F3F4FFE01C491CC2341F08FE903 -:103CF0009FE00197F1F700C00000C150F6CFE90145 -:103D000007C0FE01F490E901229602C00E946616E7 -:103D10008F2D882341F0EFE9FFE03197F1F700C0E4 -:103D200000008150F6CF9E0192CFDF91CF911F917D -:103D30000F91FF90EF90089508956093C0017093E4 -:103D4000C1018093C2019093C3010C948F1A0F9309 -:103D50001F930091C0011091C1012091C2013091C7 -:103D6000C301062B172B282B392B0093C00110936E -:103D7000C1012093C2013093C3011F910F910C9494 -:103D80008F1A0F931F930091C0011091C1012091D0 -:103D9000C2013091C301062317232823392300933E -:103DA000C0011093C1012093C2013093C3011F9140 -:103DB0000F910C948F1A0F931F930091C0011091D3 -:103DC000C1012091C2013091C3010627172728277E -:103DD00039270093C0011093C1012093C201309391 -:103DE000C3011F910F910C948F1A1092BC01109275 -:103DF000BD011092BE011092BF010C948F1A41E0D8 -:103E000050E060E070E004C0440F551F661F771F4C -:103E10008A95D2F74093BC015093BD016093BE01D7 -:103E20007093BF010C948F1A41E050E060E070E0A5 -:103E300004C0440F551F661F771F8A95D2F78091E3 -:103E4000BC019091BD01A091BE01B091BF01842B36 -:103E5000952BA62BB72B8093BC019093BD01A0930B -:103E6000BE01B093BF010C948F1A41E050E060E0B6 -:103E700070E004C0440F551F661F771F8A95D2F764 -:103E800040955095609570958091BC019091BD01D1 -:103E9000A091BE01B091BF0184239523A623B7232F -:103EA0008093BC019093BD01A093BE01B093BF016C -:103EB0000C948F1A41E050E060E070E004C0440FC1 -:103EC000551F661F771F8A95D2F78091BC0190918C -:103ED000BD01A091BE01B091BF0184279527A627FF -:103EE000B7278093BC019093BD01A093BE01B0930E -:103EF000BF010C948F1A0F931F930091BC01109176 -:103F0000BD012091BE013091BF01062B172B282B3C -:103F1000392B0093BC011093BD012093BE01309357 -:103F2000BF011F910F910C948F1A0F931F93009153 -:103F3000BC011091BD012091BE013091BF0106234B -:103F40001723282339230093BC011093BD0120932C -:103F5000BE013093BF011F910F910C948F1A0F93E4 -:103F60001F930091BC011091BD012091BE013091C1 -:103F7000BF0106271727282739270093BC01109374 -:103F8000BD012093BE013093BF011F910F910C948E -:103F90008F1A0895CF92DF92EF92FF920F931F93A3 -:103FA000CF93DF93EC01C090C001D090C101E090AD -:103FB000C201F090C3018091BC019091BD01A0911C -:103FC000BE01B091BF01C82AD92AEA2AFB2A0FE113 -:103FD00010E0B701A601002E04C0769567955795AD -:103FE00047950A94D2F740FF07C0BE01802F0E9478 -:103FF000DC0B8130910539F40150110950F7BE01F5 -:1040000080E00E94DC0BDF91CF911F910F91FF9018 -:10401000EF90DF90CF90089590910C01992361F17A -:1040200090910D01992341F1982F9695969596952B -:104030009F3088F4E0910E01F0910F01E90FF11D1E -:10404000877021E030E001C0220F8A95EAF7818174 -:10405000822B818308959091D70190FF2DC01F92EC -:104060008F9387ED95E09F938F930E94EE070F90BB -:104070000F900F900F90089540910E0150910F01F5 -:1040800020E030E09FEFFA01E20FF31F6281681732 -:1040900099F09F3F19F4611101C0922F2F5F3F4F9C -:1040A0002E30310581F79F3F39F0FA01E90FF11DFC -:1040B00097FDFA9582830895089590910C019923B4 -:1040C00069F190910D01992349F1982F9695969554 -:1040D00096959F3090F4E0910E01F0910F01E90F59 -:1040E000F11D877021E030E001C0220F8A95EAF7C8 -:1040F000209581812823218308959091D70190FFF5 -:104100001FC01F928F9389EB95E09F938F930E941E -:10411000EE070F900F900F900F90089540910E01B1 -:1041200050910F0120E030E0FA01E20FF31F92817D -:10413000981301C012822F5F3F4F2E303105A1F737 -:10414000089581E090E0E0910E01F0910F01E80FF9 -:10415000F91F1082019680319105A9F70895909179 -:10416000D601982B9093D601089580959091D60111 -:1041700098239093D60108951092D60108959091B6 -:10418000D501982B9093D501089580959091D501F4 -:1041900098239093D50108951092D50108958093A6 -:1041A000C40108951092C401089540910E015091E8 -:1041B0000F0120E030E080E0FA01E20FF31F91816F -:1041C00091118F5F2F5F3F4F2F303105A9F7089571 -:1041D000E0910E01F0910F018091D6018083E09172 -:1041E0000E01F0910F0180819091D501892B808380 -:1041F0009091C401992361F0E0910E01F0910F01BB -:104200008081892B80830E94D52081111092C40166 -:1042100080910E0190910F010C94E81490933B0152 -:1042200080933A010895CF92DF92EF92FF920F931D -:104230001F936C01EE24FF24C114D104E104F104A6 -:1042400021F46B017C0180E001C080E133272F2D38 -:104250001E2D0D2D011511052105310519F0885F61 -:104260006801790197018601A4E036952795179595 -:104270000795AA95D1F7011511052105310519F00A -:104280008C5F6801790197018601F2E036952795E8 -:1042900017950795FA95D1F70115110521053105F7 -:1042A00019F08E5F68017901B701A60176956795CF -:1042B00057954795452B462B472B09F08F5F1F914C -:1042C0000F91FF90EF90DF90CF9008958295982FF7 -:1042D0009C7C96959695837344E0849F900111246D -:1042E000922B892F8A7A86959575990F892B089537 -:1042F0001F93CF93DF931F92CDB7DEB799830E94B0 -:104300006621182F9981892F0E946621212F30E084 -:10431000322F2227A901482BCA010F90DF91CF919C -:104320001F9108958091F001843009F11092D80115 -:1043300020E488E190E00FB6F894A895809360009F -:104340000FBE2093600083B7817F846083BF83B7F3 -:10435000816083BF7894889583B78E7F83BF88E11F -:104360000FB6F89480936000109260000FBE08951D -:1043700008950895CF930E94B8210E9482090E9457 -:10438000B921C0E08C2F0E94AD0A811105C0CF5F1A -:10439000CE30C1F780E001C081E0CF9108950C9448 -:1043A000A11A82E084BD93E095BD9AEF97BD8093FA -:1043B0006E0008952FB7F8948091D9019091DA0199 -:1043C000A091DB01B091DC012FBF0895CF92DF9265 -:1043D000EF92FF920F931F932FB7F8944091D9015A -:1043E0005091DA016091DB017091DC012FBF6A010D -:1043F0007B01EE24FF248C0120E030E0C016D106C2 -:10440000E206F30610F441505109481B590BCA014A -:104410001F910F91FF90EF90DF90CF9008951F9222 -:104420000F920FB60F9211248F939F93AF93BF9368 -:104430008091D9019091DA01A091DB01B091DC016A -:104440000196A11DB11D8093D9019093DA01A0932B -:10445000DB01B093DC01BF91AF919F918F910F90E1 -:104460000FBE0F901F9018950E94E311F8942FEF44 -:1044700087EA91E6215080409040E1F700C00000BB -:1044800087E090EBDC018093F9019093FA01A0930F -:10449000FB01B093FC012CE088E190E00FB6F894AA -:1044A000A895809360000FBE20936000FFCFEF922D -:1044B000FF920F931F93CF93DF93E82EF12C8F2D54 -:1044C0000E94AD0AC0E0D0E0082F10E098010C2E49 -:1044D00002C0359527950A94E2F720FD05C0219684 -:1044E000C630D10599F709C06C2F7F2D80E00E945E -:1044F000BA0BE812F4CF81E005C0F3948EE0F81215 -:10450000DECF80E0DF91CF911F910F91FF90EF9070 -:104510000895CF93C82F8CE20E945722882321F060 -:104520008C2FCF910C94572280E0CF910895CF9398 -:104530000E94E423811102C00E94CA238CEF95E0FF -:104540000E945507C5E6C15049F00E9482098FE3D9 -:104550009CE90197F1F700C00000F5CF85EF95E0E9 -:104560000E94550789E20E948922811111C18AE2C5 -:104570000E94892281110E94CA2385E00E9489221B -:1045800081110E9434220E94EF238093D70187E09B -:104590000E948922882399F18BE10E948922882335 -:1045A00051F09091D70191FB882780F921E0822773 -:1045B00080FB91F922C08EE00E948922882351F06D -:1045C0009091D70192FB882780F921E0822780FB18 -:1045D00092F913C080E10E9489229091D70188232B -:1045E00041F093FB882780F921E0822780FB93F933 -:1045F00004C0892F809580FB90F99093D70180911A -:10460000D7010E94F3230E9401248093EA0180EEE7 -:104610000E948922882341F08091EA01982F909589 -:1046200090FB80F98093EA0189E30E948922882324 -:1046300059F09091EA0191FB882780F921E08227C7 -:1046400080FB91F99093EA0182EE0E9489228823EF -:1046500059F09091EA0192FB882780F921E08227A6 -:1046600080FB92F99093EA0186EE0E9489228823CA -:1046700059F09091EA0193FB882780F921E0822785 -:1046800080FB93F99093EA0183EE0E9489228823AC -:1046900059F09091EA0194FB882780F921E0822764 -:1046A00080FB94F99093EA0185E30E948922882394 -:1046B00059F09091EA0195FB882780F921E0822743 -:1046C00080FB95F99093EA0181E30E948922882377 -:1046D00059F09091EA0196FB882780F921E0822722 -:1046E00080FB96F99093EA0181E10E948922882358 -:1046F00059F09091EA0197FB882780F921E0822701 -:1047000080FB97F99093EA018091EA010E940524C9 -:104710008091EA0187FB882780F980930D0187E269 -:104720000E948922C82F8EE10E9489228111C260D5 -:104730008FE10E9489228111C46080E20E94892257 -:104740008111C86081E20E9489228111C06182E2E8 -:104750000E9489228111C06283E20E948922811114 -:10476000C06484E20E948922882311F0C06802C0DC -:10477000CC2329F08C2F0E94FC236C2F03C00E94B5 -:10478000F823682F70E080E090E0CF910C949D1E9C -:10479000CF9108956DEE7EEF80E090E00E94BF2DF6 -:1047A00060E082E090E00E94B12D60E083E090E064 -:1047B0000E94B12D60E084E090E00E94B12D60E0A5 -:1047C00085E090E00C94B12D80E090E00E94AB2D4C -:1047D00021E08D3E9E4F09F020E0822F089582E077 -:1047E00090E00C94A32D682F82E090E00C94B12D02 -:1047F00083E090E00C94A32D682F83E090E00C946C -:10480000B12D84E090E00C94A32D682F84E090E01B -:104810000C94B12D8091DF0180FF0BC060911301DA -:1048200085E0689FB001112475956795759567952A -:104830002AC081FF09C06091130185E0689FB00123 -:104840001124759567951FC082FF07C06091130101 -:1048500085E0689FB001112416C04091E001442317 -:10486000C9F060911201461788F72091130185E085 -:10487000289F90011124429FC001439F900D112455 -:1048800070E00E94752D6038710540F46115710566 -:1048900039F002C065E070E0862F08958FE7089533 -:1048A00081E008958091DF0180FF08C060911101CF -:1048B00070E0759567957595679521C081FF06C075 -:1048C0006091110170E07595679519C082FF04C071 -:1048D0006091110170E010C08091E0018823C1F067 -:1048E000609110018617A0F790911101989FC00167 -:1048F000112470E00E94752D6038710528F461154F -:10490000710521F0862F08958FE7089581E00895BD -:1049100061E070E0F4CF803F21F40E940A24819589 -:1049200004C0813F29F40E940A248093E301089582 -:10493000823F21F40E940A24819504C0833F29F418 -:104940000E940A248093E2010895893F19F40E948D -:10495000522405C08A3F31F40E94522481958093ED -:10496000E40108958B3F21F40E945224819504C0F4 -:104970008C3F29F40E9452248093E5010895843FDE -:1049800021F48091E101816017C0853F21F480917D -:10499000E101826011C0863F21F48091E1018460D1 -:1049A0000BC0873F21F48091E101886005C0883FFA -:1049B00031F48091E10180618093E10108958D3FA0 -:1049C00021F48091DF0181600BC08E3F21F4809142 -:1049D000DF01826005C08F3F29F48091DF01846090 -:1049E0008093DF010895803F39F48091E30187FFD0 -:1049F0006CC01092E30169C0813F29F48091E3010A -:104A00001816BCF362C09091E201823F29F497FF2F -:104A10005CC01092E20159C0833F19F41916CCF31F -:104A200054C0893F41F48091E40118160CF04DC048 -:104A30001092E4014AC08A3F29F48091E40187FF83 -:104A400044C0F6CF8B3F39F48091E50187FF3DC02C -:104A50001092E5013AC08C3F29F48091E5011816C7 -:104A6000BCF333C0843F21F48091E1018E7F17C0F5 -:104A7000853F21F48091E1018D7F11C0863F21F4B3 -:104A80008091E1018B7F0BC0873F21F48091E10190 -:104A9000877F05C0883F31F48091E1018F7E80934C -:104AA000E10113C08D3F21F48091DF018E7F0BC0A7 -:104AB0008E3F21F48091DF018D7F05C08F3F29F467 -:104AC0008091DF018B7F8093DF018091E201811172 -:104AD0000EC08091E30181110AC08091E40181112F -:104AE00006C08091E501811102C01092E001089595 -:104AF0008091D70183FF7EC088E396E00E9455072E -:104B00008091E1011F928F9383E396E09F938F93AF -:104B10000E94EE0781E396E00E9455072091E20192 -:104B2000822F992787FD90959F932F938EE296E091 -:104B30009F938F930E94EE078CE296E00E945507A8 -:104B40002091E301822F992787FD90959F932F93C2 -:104B500089E296E09F938F930E94EE0787E296E0AA -:104B60000E9455072091E401822F992787FD909597 -:104B70009F932F9384E296E09F938F930E94EE077A -:104B800082E296E00E9455072091E501822F992745 -:104B900087FD90959F932F938FE196E09F938F933E -:104BA0000E94EE078CE196E00E9455078091E0019B -:104BB0001F928F9389E196E09F938F930E94EE0757 -:104BC00087E196E00E9455078091DF011F928F9345 -:104BD00084E196E09F938F930E94EE0781E196E037 -:104BE0000E9455078DB79EB74C960FB6F8949EBF9E -:104BF0000FBE8DBF81EE91E00E942D150E94DA213B -:104C00009093DE018093DD0108951F93CF93DF938E -:104C10008091DD019091DE010E94E6214091E0014A -:104C2000442321F02091140130E006C020911501A9 -:104C30005AE0259F900111248217930708F482C03F -:104C40008091E2011091E301D091E401C091E5016E -:104C5000811107C0111105C0D11103C0CC2309F483 -:104C600071C04F3F19F04F5F4093E001181624F4D4 -:104C70000E940A248093E2018091E20187FF05C02F -:104C80000E940A2481958093E201111624F40E9467 -:104C90000A248093E3018091E30187FF05C00E940D -:104CA0000A2481958093E3016091E201662339F142 -:104CB0001091E301112319F1772767FD7095872F74 -:104CC000972F0E947A2C23E333E343E35FE30E94B0 -:104CD000DE2C0E94472C6093E201612F772767FD4D -:104CE0007095872F972F0E947A2C23E333E343E3B9 -:104CF0005FE30E94DE2C0E94472C6093E3011D16A7 -:104D000024F40E9452248093E4018091E40187FFFF -:104D100005C00E94522481958093E4011C1624F45E -:104D20000E9452248093E5018091E50187FF05C030 -:104D30000E94522481958093E501DF91CF911F91CC -:104D40000C947825DF91CF911F910895E1EEF1E069 -:104D500085E0DF011D928A95E9F71092E00110923B -:104D6000DF0108958BE598E00E9455071F9281E0CE -:104D70008F931F9285E08F938DE098E09F938F93A0 -:104D80000E94EE070F900F900F900F900F900F90D2 -:104D900008958330E9F128F4813061F0823009F11F -:104DA0000895853009F462C008F449C0863009F4DA -:104DB00074C0089520911501862F90E0820F911DF7 -:104DC0008F3F910520F4620F6093150103C08FEFB0 -:104DD00080931501809115011F928F9386E497E0CF -:104DE00072C020911401862F90E0820F911D8F3F99 -:104DF000910520F4620F6093140103C08FEF80933C -:104E00001401809114011F928F9384E397E05BC09B -:104E100020911301862F90E0820F911D8F3F910505 -:104E200020F4620F6093130103C08FEF809313018E -:104E3000809113011F928F9381E297E044C02091EB -:104E40001201862F90E0820F911D8F3F910520F473 -:104E5000620F6093120103C08FEF80931201809163 -:104E600012011F928F938CE097E02DC020911101C9 -:104E7000862F90E0820F911D8F3F910520F4620FE5 -:104E80006093110103C08FEF809311018091110194 -:104E90001F928F9383EF96E016C020911001862F0A -:104EA00090E0820F911D8F3F910520F4620F609377 -:104EB000100103C08FEF80931001809110011F92A9 -:104EC0008F9388ED96E09F938F930E94EE070F904B -:104ED0000F900F900F900895833081F128F4813066 -:104EE00059F08230D1F00895853009F449C0B8F105 -:104EF000863009F456C0089580911501681720F492 -:104F0000861B8093150102C0109215018091150136 -:104F10001F928F9389EC96E054C08091140168171A -:104F200020F4861B8093140102C01092140180911A -:104F300014011F928F9387EB96E043C08091130179 -:104F4000681720F4861B8093130102C0109213018E -:104F5000809113011F928F9384EA96E032C0809172 -:104F60001201681720F4861B8093120102C0109270 -:104F70001201809112011F928F938FE896E021C059 -:104F800080911101681720F4861B8093110102C0E3 -:104F900010921101809111011F928F9386E796E084 -:104FA00010C080911001681720F4861B80931001B7 -:104FB00002C010921001809110011F928F938BE517 -:104FC00096E09F938F930E94EE070F900F900F90A3 -:104FD0000F900895CF93C82F1F928F9320E639E04A -:104FE0003F932F930E94EE0761E070E080E090E035 -:104FF00004C0660F771F881F991FCA95D2F70E94B9 -:105000009D1E0F900F900F900F90CF910C94A11AAE -:10501000CF938D3109F465C0B0F58E3009F4CBC162 -:1050200000F5873009F49BC1A8F4863009F06AC204 -:105030008091D701817F8E7F8093D70185E699E0AB -:105040000E94550787EA9DE00E94550781E0809302 -:10505000E70180C1883009F44FC08B3009F47CC16E -:1050600051C2863109F4EDC138F4803109F4B6C17A -:10507000813109F42DC246C2893109F4CBC18B318B -:1050800009F486C13FC2853309F434C248F487323B -:1050900009F430C208F430C2893209F42BC232C29A -:1050A000833438F48A3308F029C2883309F454C1B0 -:1050B00029C2833409F41EC2883409F023C20E9435 -:1050C000A11A86E99DE00E9455079FEF23ED80E33A -:1050D000915020408040E1F700C000000E9434223F -:1050E00039C186EB9DE00E9455070E94012C0E9469 -:1050F000DC140E941A0D2EC18BEA9DE00E94550718 -:1051000086E79BE00E9455070E94F8231F928F9329 -:1051100083E79BE09F938F930E94EE0781E79BE0DC -:105120000E9455070E94EF23C82F8EE59BE00E9446 -:1051300055071F92CF9329E53BE03F932F930E94A1 -:10514000EE0787E59BE00E9455078DE49BE00E94F7 -:1051500055078C2F81701F928F932AE43BE03F9379 -:105160002F930E94EE0788E49BE00E9455078EE390 -:105170009BE00E945507C1FB882780F91F928F93FF -:105180002BE33BE03F932F930E94EE0789E39BE0E4 -:105190000E9455078DE29BE00E945507C2FB8827BD -:1051A00080F91F928F932AE23BE03F932F930E9456 -:1051B000EE0788E29BE00E9455078FE19BE00E948A -:1051C0005507C3FBCC27C0F91F92CF938CE19BE01E -:1051D0009F938F930E94EE078AE19BE00E94550700 -:1051E0000E940124C82F86E09BE00E9455071F9271 -:1051F000CF9321E03BE03F932F930E94EE078FEF88 -:105200009AE00E94550786EE9AE00E9455078C2F7F -:1052100081701F928F9323EE3AE03F932F930E9469 -:10522000EE078DB79EB780960FB6F8949EBF0FBE5F -:105230008DBF81EE9AE00E9455078AEC9AE00E94A9 -:105240005507C1FB882780F91F928F9327EC3AE01E -:105250003F932F930E94EE0785EC9AE00E9455073A -:1052600083EB9AE00E945507C2FB882780F91F92C2 -:105270008F9320EB3AE03F932F930E94EE078EEA44 -:105280009AE00E9455078CE99AE00E945507C3FBFB -:10529000882780F91F928F9329E93AE03F932F9353 -:1052A0000E94EE0787E99AE00E9455078DE89AE090 -:1052B0000E945507C4FB882780F91F928F932AE824 -:1052C0003AE03F932F930E94EE0788E89AE00E940D -:1052D000550786E79AE00E945507C5FB882780F9A5 -:1052E0001F928F9323E73AE03F932F930E94EE079C -:1052F00081E79AE00E94550785E59AE00E945507EC -:10530000C6FB882780F91F928F9322E53AE03F93EE -:105310002F930E94EE0780E59AE00E94550788E4EB -:105320009AE00E945507C7FBCC27C0F91F92CF9384 -:1053300085E49AE09F938F930E94EE0783E49AE0BE -:105340000E9455078DB79EB74C960FB6F8949EBF36 -:105350000FBE8DBFC1E0DBC08CE899E058C08091E2 -:10536000D701C82FC17080FF09C089E89DE00E9465 -:1053700055078091D701817F8E7F44C08DE79DE0E6 -:105380000E9455078091D70181608093D701E2CFB9 -:105390008091D70181FBCC27C0F991E0C927C0FBE0 -:1053A00081F98093D701CC2319F080E79DE025C0D7 -:1053B00082E69DE02CC08091D70182FBCC27C0F90A -:1053C00091E0C927C0FB82F98093D701CC2319F063 -:1053D00083E59DE012C083E49DE019C08091D70170 -:1053E00083FBCC27C0F991E0C927C0FB83F98093E8 -:1053F000D701CC2351F087E39DE00E9455078091AF -:10540000D70181608093D70182C08AE29DE00E942B -:105410005507A0CF8BE19DE00E9455078FEE9CE0E1 -:105420000E94550782EB9CE00E94550785E89CE0AE -:105430000E94550781E49CE00E94550786E19CE0AC -:10544000E6CF88E09CE00E9455070E94DC141F9282 -:105450008F938EEE9BE09F938F930E94EE07809137 -:105460000C011F928F9387ED9BE09F938F930E9477 -:10547000EE0780916E011F928F9384EC9BE09F93C7 -:105480008F930E94EE0780910D011F928F9381EB05 -:105490009BE09F938F930E94EE078091D90190919A -:1054A000DA01A091DB01B091DC01BF93AF939F9330 -:1054B0008F938DE99BE09F938F930E94EE078DB7AA -:1054C0009EB746960FB6F8949EBF0FBE8DBF42CFD3 -:1054D0000E94A11AC0910D0181E0C827C0930D015F -:1054E000CC2329F083E99BE00E94550710C088E88F -:1054F0009BE08DCF80E003C08D5101C089530E9495 -:10550000EA2728CF86E89BE00E945507C0E08C2F51 -:10551000CF91089580E0089580E00895CF93C82F3B -:105520008091E701813081F020F0823009F44CC095 -:1055300042C1A0910E01B0910F018C91813169F0AF -:10554000823209F03AC109C0A0910E01B0910F0159 -:105550008C91813111F0823249F48C2F0E948A2A79 -:1055600081112FC08C2F0E9408282CC08C2F0E94E4 -:105570008C2A811126C0C431E1F070F4CB3081F067 -:10558000C031D1F40E94B22688E599E00E94550707 -:1055900082E08093E70115C0C93259F0C83361F445 -:1055A00085E699E00E9455078CE599E00E94550731 -:1055B00008C01092E70103C186E599E00E945507F3 -:1055C000FEC081E08170FDC0C43220F5CE3108F00C -:1055D000C0C0CB3099F1C8F4C73009F0D2C08AE01E -:1055E0008093150194E19093140193E0909313013B -:1055F0008093120188E08093110188E2809310016A -:105600008CEF97E00E945507BFC0C33149F1C43108 -:10561000C1F0B7C0CB3409F4A9C028F4C93289F06D -:10562000C83361F0AEC0C13509F49EC0C23509F47B -:1056300099C0CE3409F0A5C06AE09EC00E94B2268F -:10564000A3C08091E601882319F01092E6019CC066 -:1056500089E098E00E94550781E08093E701B1C09E -:1056600083EE97E00E94550781ED97E00E94550771 -:10567000809115011F928F938EEC97E09F938F93EB -:105680000E94EE078CEC97E00E9455078AEB97E0AA -:105690000E945507809114011F928F9387EB97E02A -:1056A0009F938F930E94EE0785EB97E00E9455072A -:1056B00086EA97E00E945507809113011F928F930D -:1056C00083EA97E09F938F930E94EE0781EA97E029 -:1056D0000E94550780E997E00E94550780911201CA -:1056E0001F928F938DE897E09F938F930E94EE0710 -:1056F0008BE897E00E94550786E797E00E945507E0 -:10570000809111011F928F9383E797E09F938F936E -:105710000E94EE0781E797E00E9455078AE597E02F -:105720000E945507809110011F928F9387E597E0A3 -:105730009F938F930E94EE0785E597E00E9455079F -:105740008DB79EB748960FB6F8949EBF0FBE8DBF1B -:105750001BC0CE51EC2FF0E0E15DFE4F80818093C5 -:10576000E60112C061E003C061E006C06AE080911A -:10577000E6010E94C92608C08091E6010E946C27BC -:1057800003C08AEF97E013C08091E601882369F097 -:105790001F928F9384EF97E09F938F930E94EE0761 -:1057A0000F900F900F900F9004C081EF97E00E9430 -:1057B000550781E006C01092E70180E002C080E05A -:1057C00001CFCF910895E1E8F0E080818860808387 -:1057D0008081816080838FB7F89493E090938900F3 -:1057E00090ED909388008FBF0895EFE6F0E0808100 -:1057F000826080830895EFE6F0E080818D7F808372 -:105800000895EFE6F0E0808192E089278083089593 -:105810001F920F920FB60F9211242F933F934F9325 -:105820005F936F937F938F939F93AF93BF93EF9308 -:10583000FF938091E8019091E90101969093E9012D -:105840008093E801811103C082E00E941A0DE0916B -:10585000E901E695E695F0E0EA53F24FE491809194 -:10586000E8018E1303C080E00E941A0DFF91EF91B2 -:10587000BF91AF919F918F917F916F915F914F9168 -:105880003F912F910F900FBE0F901F90189504D04D -:105890006894B1118DC0089570D088F09F5790F032 -:1058A000B92F9927B751A0F0D1F0660F771F881F45 -:1058B000991F1AF0BA95C9F712C0B13081F077D0AC -:1058C000B1E0089574C0672F782F8827B85F39F04A -:1058D000B93FCCF3869577956795B395D9F73EF4A4 -:1058E00090958095709561957F4F8F4F9F4F08954C -:1058F000E89409C097FB3EF490958095709561956A -:105900007F4F8F4F9F4F9923A9F0F92F96E9BB271F -:105910009395F695879577956795B795F111F8CF9B -:10592000FAF4BB0F11F460FF1BC06F5F7F4F8F4F06 -:105930009F4F16C0882311F096E911C0772321F0FC -:105940009EE8872F762F05C0662371F096E8862F94 -:1059500070E060E02AF09A95660F771F881FDAF7EB -:10596000880F9695879597F9089557FD9058440F9D -:10597000551F59F05F3F71F04795880F97FB991FAE -:1059800061F09F3F79F0879508951216130614066B -:10599000551FF2CF4695F1DF08C0161617061806F8 -:1059A000991FF1CF86957105610508940895E894D3 -:1059B000BB2766277727CB0197F908950BD078C0CE -:1059C00069D028F06ED018F0952309F05AC05FC056 -:1059D0001124EECFCADFA0F3959FD1F3950F50E0CD -:1059E000551F629FF001729FBB27F00DB11D639F91 -:1059F000AA27F00DB11DAA1F649F6627B00DA11D37 -:105A0000661F829F2227B00DA11D621F739FB00DDC -:105A1000A11D621F839FA00D611D221F749F33274C -:105A2000A00D611D231F849F600D211D822F762FE5 -:105A30006A2F11249F5750408AF0E1F088234AF0E2 -:105A4000EE0FFF1FBB1F661F771F881F915050402E -:105A5000A9F79E3F510570F014C0AACF5F3FECF349 -:105A6000983EDCF3869577956795B795F795E7951A -:105A70009F5FC1F7FE2B880F911D9695879597F92B -:105A8000089597F99F6780E870E060E008959FEFC0 -:105A900080EC089500240A941616170618060906C5 -:105AA000089500240A941216130614060506089594 -:105AB000092E0394000C11F4882352F0BB0F40F41C -:105AC000BF2B11F460FF04C06F5F7F4F8F4F9F4F5C -:105AD0000895991B79E004C0991F961708F0961B4A -:105AE000881F7A95C9F78095089597FB072E16F4BD -:105AF000009407D077FD09D00E948F2D07FC05D0B8 -:105B00003EF4909581959F4F0895709561957F4FD4 -:105B10000895EE0FFF1F0590F491E02D0994AA1B44 -:105B2000BB1B51E107C0AA1FBB1FA617B70710F088 -:105B3000A61BB70B881F991F5A95A9F780959095BA -:105B4000BC01CD010895F999FECF92BD81BDF89AAF -:105B5000992780B50895A8E1B0E042E050E00C94A8 -:105B6000C62D262FF999FECF1FBA92BD81BD20BD4B -:105B70000FB6F894FA9AF99A0FBE019608950E940A -:105B8000B12D272F0C94B22DDC01CB01FC01F9992A -:105B9000FECF06C0F2BDE1BDF89A319600B40D9279 -:0C5BA00041505040B8F70895F894FFCF32 -:105BAC0020021B0D0C0EE90DB50D820D0101C50176 -:105BBC0028080A03140A3F4D3620394605F904C358 -:105BCC0004A3046A04DD03F6030F0428044804014B -:0A5BDC000203040506070809000093 -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.png b/keyboard/ergodox_ez/keymaps/keymap_default.png deleted file mode 100644 index f0c5840153..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_default.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_default_highres.png b/keyboard/ergodox_ez/keymaps/keymap_default_highres.png deleted file mode 100644 index 169d31367c..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_default_highres.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_default_osx.c b/keyboard/ergodox_ez/keymaps/keymap_default_osx.c deleted file mode 100644 index 9d7364d378..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_default_osx.c +++ /dev/null @@ -1,187 +0,0 @@ -// Netable differences vs. the default firmware for the ErgoDox EZ: -// 1. The Cmd key is now on the right side, making Cmd+Space easier. -// 2. The media keys work on OSX (But not on Windows). -#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 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |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_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), - 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, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - 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, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_LGUI, - 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, - 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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 -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_default_osx.hex b/keyboard/ergodox_ez/keymaps/keymap_default_osx.hex deleted file mode 100644 index 3a1cc4f79e..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_default_osx.hex +++ /dev/null @@ -1,1467 +0,0 @@ -:100000000C9403070C9447070C9447070C9447077C -:100010000C9447070C9447070C9447070C94470728 -:100020000C9447070C9447070C9432120C94041359 -:100030000C9447070C9447070C9447070C94470708 -:100040000C9447070C94DC2B0C9447070C9447073F -:100050000C9447070C94E3210C9447070C94470732 -:100060000C9447070C9447070C9447070C944707D8 -:100070000C9447070C9447070C9447070C944707C8 -:100080000C9447070C9447070C9447070C944707B8 -:100090000C9447070C9447070C9447070C944707A8 -:1000A0000C9447070C9447070C94470769138B136C -:1000B00076148B137614CD13F0137614451458145C -:1000C000A617A617D417D41717185318541A541A6A -:1000D0006B18541A621962192E1A541A541A421AB9 -:1000E0000000F0A12E004C002A00E1003581000044 -:1000F0001E00140004001D7134004D001F001A0082 -:1001000016001B00E1042A0020000800070006007A -:1001100050002C0021001500090019004F004A0072 -:10012000220017000A000500000065745000015409 -:100130000000007F0000E3004F0001540000007742 -:100140000000E20023001C000B00110000002971D8 -:10015000240018000D00100052004B0025000C0078 -:100160000E00360051002800260012000F00370054 -:100170002F002B00270013003382387130004E000F -:100180002D003100E300E500C10000000100010086 -:1001900001000100010000003A001E0220022202BC -:1001A000010001003B001F022102230201000100A7 -:1001B0003C002F0226022F00010001003D0030020A -:1001C00027023000010001003E00310235003502F7 -:1001D000000001000100010000000100000001001A -:1001E0000100010000000100000001003F0052007A -:1001F00051002402000001004000240021001E00E4 -:10020000010001004100250022001F00370001000D -:1002100042002600230020002700010043002502A1 -:100220002E0231002E0001004400450001000100B3 -:1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 -:10025000F2000100010001000100F000F1000100C6 -:10026000F400010001000100F3000100F5000100AD -:100270000100010001000100000001000100010077 -:100280000000010000000100010001000000010069 -:100290000000010001000100010001000000010058 -:1002A0000100010001000100A9000100010001009E -:1002B0000100AC00AA00B600010001000100AB0083 -:1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -: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 -:100C80003531320A004255494C443A2063376334C7 -:100C90003134622D6469727479202830343A3038E6 -:100CA0003A303820446563203138203230313529DC -: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 -:100E600011E0A0E0B1E0E4E5FBE502C005900D92E1 -:100E7000AA33B107D9F711E0AAE3B1E001C01D928E -:100E8000A93FB107E1F70E946C0F0C94A82D0C94B8 -:100E90000000FF93EF93E0913A01F0913B0130970E -:100EA00009F00995EF91FF910895FC01859180303B -:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC -:100EC0000CC0419597FF09C0EDE260957095809543 -:100ED0009095611D711D811D911D27FF02C02195F7 -:100EE00030E350E2AA27660F771F881F991FAA1FB9 -:100EF000A41710F0A41B63955A95A9F7AA3008F01F -:100F0000A95FA05DAF93F39561157105810591050A -:100F100041F7ED3211F4EF93F395F21718F43F9384 -:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D -:100F3000F9918591803021F0853219F0AADFF9CF3F -:100F4000089520E0E89455915532C1F3503311F4DF -:100F5000689455915A3348F4505390F3220F022E5F -:100F6000220F220F200D250FF4CF0EF42195899129 -:100F70009991533619F3533729F1533559F1BC017F -:100F800088279927E8945C3621F48991999168948F -:100F90005591543639F446EF7EF077FF0DC08FEF50 -:100FA0009FEF0AC055374AE039F0583540E121F04B -:100FB000523642E009F00895FF93EF937DDFEF9101 -:100FC000FF91B7CFFF93EF93FC0181918030B9F38C -:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319 -:100FE000CDB7DEB72596A3DFCF91DF9108956111CC -:100FF0000BC0FC018281882321F085EE0E943A1605 -:1010000003C085EE0E94021780E090E008950895E5 -:101010006091BC017091BD018091BE019091BF01B2 -:101020000E94E72056985E9825982D9826982E982D -: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 -:102FD00091C128960FB6F894DEBF0FBECDBFDF912A -:102FE000CF911F910F91FF90EF90DF90CF900C94B5 -:102FF000A320222319F0213009F456C28E830E94A7 -:10300000A6208E818AC1FF2021F0263008F04CC214 -:1030100071C1253008F048C280C1FF2021F0222371 -:1030200009F468C1F6C1222309F477C106C2242F2E -:1030300026952695237030E02115310521F02130A9 -:103040003105C9F031C2FF2021F0862F942F9370F3 -:1030500002C080E090E028960FB6F894DEBF0FBE65 -:10306000CDBFDF91CF911F910F91FF90EF90DF9037 -:10307000CF900C940C15FF2021F0862F942F937085 -:1030800002C080E090E028960FB6F894DEBF0FBE35 -:10309000CDBFDF91CF911F910F91FF90EF90DF9007 -:1030A000CF900C942215862FFF2019F00E945F24E8 -:1030B00002C00E94C72428960FB6F894DEBF0FBE48 -:1030C000CDBFDF91CF911F910F91FF90EF90DF90D7 -:1030D000CF900C944C25842F837009F076C0F110AA -:1030E000E3C1262F229526952770220F220F862FC7 -:1030F0008F70C82ED12CE12CF12C022E04C0CC0CE8 -:10310000DD1CEE1CFF1C0A94D2F764FF10C06FE0B8 -:1031100070E080E090E004C0660F771F881F991F61 -:103120002A95D2F7609570958095909503C060E0E0 -:1031300070E0CB01242F269526952370422F50E076 -:1031400042305105D1F04330510559F16C297D29A8 -:103150008E299F294130510541F128960FB6F894E8 -:10316000DEBF0FBECDBFDF91CF911F910F91FF90BA -:10317000EF90DF90CF900C94951E6C297D298E29BD -:103180009F2928960FB6F894DEBF0FBECDBFDF9102 -:10319000CF911F910F91FF90EF90DF90CF900C9403 -:1031A000AF1E0E94951EC701B60128960FB6F8946F -:1031B000DEBF0FBECDBFDF91CF911F910F91FF906A -:1031C000EF90DF90CF900C947B1EFF2019F0842F9E -:1031D000817001C08695882309F466C1262F229547 -:1031E00026952770220F220F862F8F70C82ED12C84 -:1031F000E12CF12C022E04C0CC0CDD1CEE1CFF1CBB -:103200000A94D2F764FF10C06FE070E080E090E0B5 -:1032100004C0660F771F881F991F2A95D2F7609503 -:1032200070958095909503C060E070E0CB01242FED -:10323000269526952370422F50E042305105D1F05B -:103240004330510559F16C297D298E299F29413040 -:10325000510541F128960FB6F894DEBF0FBECDBFE1 -:10326000DF91CF911F910F91FF90EF90DF90CF9062 -:103270000C94691F6C297D298E299F2928960FB6E9 -:10328000F894DEBF0FBECDBFDF91CF911F910F919C -:10329000FF90EF90DF90CF900C94831F0E94691FE6 -:1032A000C701B60128960FB6F894DEBF0FBECDBF9A -:1032B000DF91CF911F910F91FF90EF90DF90CF9012 -:1032C0000C944F1F603FC9F118F4603E50F49CC04D -:1032D000623F09F461C008F44BC0633F09F470C059 -:1032E00093C0162F1F70842F8F71FF2099F00E94BA -:1032F000E81E812F28960FB6F894DEBF0FBECDBF13 -:10330000DF91CF911F910F91FF90EF90DF90CF90C1 -:103310000C9451170E94091F812F28960FB6F8941C -:10332000DEBF0FBECDBFDF91CF911F910F91FF90F8 -:10333000EF90DF90CF900C945817FF20A9F0253024 -:1033400008F0B2C0842F8F7128960FB6F894DEBFB4 -:103350000FBECDBFDF91CF911F910F91FF90EF90E6 -:10336000DF90CF900C942E1F263008F09DC0EACF3E -:10337000FF20A1F0842F8F7128960FB6F894DEBF3E -:103380000FBECDBFDF91CF911F910F91FF90EF90B6 -:10339000DF90CF900C94E81EFF2061F3842F8F7193 -:1033A00028960FB6F894DEBF0FBECDBFDF91CF9148 -:1033B0001F910F91FF90EF90DF90CF900C94091F19 -:1033C000FF2091F0842F8F7128960FB6F894DEBFFE -:1033D0000FBECDBFDF91CF911F910F91FF90EF9066 -:1033E000DF90CF900C94D31E28960FB6F894DEBFD2 -:1033F0000FBECDBFDF91CF911F910F91FF90EF9046 -:10340000DF90CF900C94C91EFF20A1F0222309F475 -:10341000B1CF862F28960FB6F894DEBF0FBECDBF72 -:10342000DF91CF911F910F91FF90EF90DF90CF90A0 -:103430000C943A16222309F4B1CF862F28960FB6A2 -:10344000F894DEBF0FBECDBFDF91CF911F910F91DA -:10345000FF90EF90DF90CF900C9402174F70C8014F -:103460000E94F70728960FB6F894DEBF0FBECDBFB7 -:10347000DF91CF911F910F91FF90EF90DF90CF9050 -:103480000C94EE1D4F70C80128960FB6F894DEBF5D -:103490000FBECDBFDF91CF911F910F91FF90EF90A5 -:1034A000DF90CF900C948D0B28960FB6F894DEBF6A -:1034B0000FBECDBFDF91CF911F910F91FF90EF9085 -:1034C000DF90CF9008950E94A0200E9475200E9456 -:1034D000BC200E947A260E944C2580E090E00E9449 -:1034E0000C1580E090E00C9422150E9490200C9422 -:1034F000631A0E949E1F292F22952F7030E02C30D6 -:1035000031054CF42A3031056CF422503109223057 -:10351000310590F407C02C30310551F02F303105C2 -:1035200039F00AC0803E10F0803F31F481E0089508 -:1035300093FB882780F9089580E00895CF93DF9367 -:1035400000D000D01F92CDB7DEB70F900F900F9034 -:103550000F900F90DF91CF910895CF93DF9300D01C -:1035600000D000D0CDB7DEB726960FB6F894DEBFF8 -:103570000FBECDBFDF91CF9108951F93CF93DF93FF -:10358000C091840116E080918501C81799F0D0E0C0 -:103590001C9FF0011D9FF00D1124EA57FE4F408142 -:1035A000518162817381848195810E94AD1A219637 -:1035B000C770E9CFDF91CF911F9108954091B60177 -:1035C0005091B7016091B8017091B9018091BA0131 -:1035D0009091BB010C94AD1ACF938091BB01829561 -:1035E0008F7009F05FC08091B801882309F45AC038 -:1035F00020918401A09185016091B6017091B7017D -:103600008091B9019091BA0131E06F3F09F030E04B -:10361000B32FC6E02A1709F445C0009721F07F3F79 -:1036200021F44B2F03C041E001C040E030E040FDF9 -:1036300035C0C29FF001C39FF00D1124EA57FE4F21 -:10364000418174132BC04081641328C04281411111 -:1036500025C0438154814817590710F4415051093E -:10366000481B590B483C5105C8F48091BB018F7031 -:1036700080618093BB0186E0829FF001839FF00D03 -:103680001124E557FE4F80818F708061808386EB27 -:1036900091E00E945F17CF910C94BD1A2F5F3F4FAE -:1036A0002770B8CFCF910895CF92DF92EF92FF921B -:1036B0000F931F93CF93DF93CDB7DEB762970FB60B -:1036C000F894DEBF0FBECDBF8C0185E0F801DE01AE -:1036D0001D9601900D928A95E1F7D8014C911196B3 -:1036E0005C91119712966C9112971396ED90FC9045 -:1036F00014977091B601E091B7012091B901309112 -:10370000BA012115310531F0EF3F31F481E07F3FFF -:1037100019F403C081E001C080E0B82FB170CB2E56 -:1037200080FD6CC1D090B801DD2009F4F5C0F091A6 -:10373000BB01E216F30638F0C701821B930B883CED -:10374000910548F09BC0209530952E0D3F1D283CDB -:10375000310508F093C08F2F807F09F052C0E51328 -:1037600014C0741312C0D62E61110FC0FF70F06127 -:10377000F093BB010E94DE1A86EB91E00E945F1776 -:103780008091BB01F80185836CC1EF2831F05F3F68 -:1037900031F481E04F3F19F403C081E001C080E0C3 -:1037A00080FD03C081E0862701C080E0F82FF17022 -:1037B000FF2E80FF1CC0809184012091850136E09E -:1037C000821709F428C190E0389FF001399FF00D6D -:1037D0001124EA57FE4F7181571306C070814713B9 -:1037E00003C07281671303C001968770E9CFD62E9C -:1037F000662309F436C18091BB0181608093BB01CF -:1038000053C0E51308C0741306C0611104C0D80189 -:103810001596FC93AEC04D875E878D859E856A8B1D -:103820000E94791A6A89882329F1D62E662311F11C -:103830002091BB01822F82958F7090E002970CF44B -:1038400060C08091B6019091B70198878F831986E7 -:10385000FB86EA862C87CE01079651C0E51731F129 -:103860004D875E878D859E856A8B0E94791A6A894D -:1038700081112EC0C8010E945F17A4C08F2F807FC6 -:1038800069F77E2DF98AE88A89890E949E1A86EB5B -:1038900091E00E945F17E6EBF1E086E0DF011D9208 -:1038A0008A95E9F70E94DE1AD12CDBC07413D8CFB9 -:1038B0006111D6CFD8011596FC93C8010E945F17FD -:1038C000E6EBF1E086E0DF011D928A95E9F7C9C0D9 -:1038D000D62E662379F22091BB01822F82958F70BC -:1038E00090E0029774F08091B6019091B7019A83AD -:1038F00089831B82FD82EC822E83CE0101960E9479 -:103900005F1786E0F801A6EBB1E001900D928A9571 -:10391000E1F70E94EC1A6FC0E216F30628F0C70127 -:10392000821B930B9C0104C0209530952E0D3F1DEA -:10393000283C310508F052C0D62E662309F49ACFF0 -:10394000E5132CC074132AC08091BB0180FD1DC0FB -:10395000982F92959F70C9F0D80115968C93159762 -:103960009F3039F09F5F9295907F8F70892B1596CD -:103970008C93C8010E945F1786E0F801A6EBB1E0C6 -:1039800001900D928A95E1F736C086E0F801A6EB2A -:10399000B1E001900D928A95E1F763C04D875E8793 -:1039A0008D859E850E94791A882379F086E0F8013A -:1039B000A6EBB1E001900D928A95E1F70E94EC1A16 -:1039C0000E94DE1ADD24D3944CC08091BB0181603B -:1039D0008093BB01C8010E945F1743C07E2DF98A06 -:1039E000E88A89890E949E1AE6EBF1E086E0DF0111 -:1039F0001D928A95E9F70E94DE1A33C0662309F406 -:103A000039CF4D875E878D859E850E94791A8823E0 -:103A100009F430CFCBCF4D875E878D859E850E9480 -:103A20009E1F292F22952F7030E0223031052CF473 -:103A30009F7041F0811106C00CC0243031052CF478 -:103A40009F7049F4805E883020F0C8010E945F17A3 -:103A5000CF2CDC2C06C0D80115969C91907F91F755 -:103A6000F8CF8D2D62960FB6F894DEBF0FBECDBF96 -:103A7000DF91CF911F910F91FF90EF90DF90CF904A -:103A800008951F93CF93DF93CDB7DEB72C970FB672 -:103A9000F894DEBF0FBECDBF4F83588769877A8702 -:103AA0008B879C87CE0107960E94541B8823C1F008 -:103AB0002F8138858A859B85892B31F03F3F11F016 -:103AC00080E003C02F3FE1F781E0811147C04F81C3 -:103AD000588569857A858B859C850E94AD1A3EC084 -:103AE00086E0FE013796DE01119601900D928A95CF -:103AF000E1F7FF81E8854A855B854115510531F085 -:103B0000EF3F31F481E0FF3F19F403C081E001C0D1 -:103B100080E080FD23C02091850130E0C90101963D -:103B2000877099276091840170E086179707F1F1FB -:103B3000F983EA835D834C8396E0929FD001939F43 -:103B4000B00D1124AA57BE4FFE01319601900D927F -:103B50009A95E1F7809385010E94BD1A16E0809145 -:103B6000840190918501891779F1189FC001112472 -:103B70008A579E4F0E94541B882331F1E0918401A3 -:103B80001E9FF0011124EA57FE4F4081518162814E -:103B90007381848195810E94AD1A8091840190E0A7 -:103BA00001968770992780938401D9CF0E94751A56 -:103BB0001092850110928401E6EBF1E086E0DF01CE -:103BC0001D928A95E9F7CACF2C960FB6F894DEBFFE -:103BD0000FBECDBFDF91CF911F910895EF92FF925D -:103BE0000F931F93CF93DF939C01009709F471C04B -:103BF000F12CEE24E394E9012196F90184918437B4 -:103C000040F4843008F056C0813081F0823021F1D8 -:103C100060C0853709F449C0C0F19CE7980F903720 -:103C200008F057C08F770E94021746C089010E5FC7 -:103C30001F4FFE01849190E2980F983050F48770E6 -:103C4000FE2D01C0FF0F8A95EAF78F2F0E94932067 -:103C500015C00E943A1614C089010E5F1F4FFE0165 -:103C6000849190E2980F983068F48770FE2D01C01F -:103C7000FF0F8A95EAF78F2F0E9499200E94BC209F -:103C8000E8011AC00E940217FBCF2E5F3F4FFE01D2 -:103C9000C491CC2341F08FE99FE00197F1F700C078 -:103CA0000000C150F6CFE90107C0FE01F490E90120 -:103CB000229602C00E943A168F2D882341F0EFE928 -:103CC000FFE03197F1F700C000008150F6CF9E0170 -:103CD00092CFDF91CF911F910F91FF90EF900895B8 -:103CE00008956093C0017093C1018093C2019093C5 -:103CF000C3010C94631A0F931F930091C00110919C -:103D0000C1012091C2013091C301062B172B282B32 -:103D1000392B0093C0011093C1012093C20130934D -:103D2000C3011F910F910C94631A0F931F9300917D -:103D3000C0011091C1012091C2013091C30106233D -:103D40001723282339230093C0011093C101209326 -:103D5000C2013093C3011F910F910C94631A0F930A -:103D60001F930091C0011091C1012091C2013091B7 -:103D7000C30106271727282739270093C00110936E -:103D8000C1012093C2013093C3011F910F910C9484 -:103D9000631A1092BC011092BD011092BE011092E4 -:103DA000BF010C94631A41E050E060E070E004C091 -:103DB000440F551F661F771F8A95D2F74093BC01A9 -:103DC0005093BD016093BE017093BF010C94631AC0 -:103DD00041E050E060E070E004C0440F551F661FF2 -:103DE000771F8A95D2F78091BC019091BD01A09177 -:103DF000BE01B091BF01842B952BA62BB72B8093CE -:103E0000BC019093BD01A093BE01B093BF010C947F -:103E1000631A41E050E060E070E004C0440F551FB9 -:103E2000661F771F8A95D2F74095509560957095DB -:103E30008091BC019091BD01A091BE01B091BF01E4 -:103E400084239523A623B7238093BC019093BD01BF -:103E5000A093BE01B093BF010C94631A41E050E0FF -:103E600060E070E004C0440F551F661F771F8A95FD -:103E7000D2F78091BC019091BD01A091BE01B0919B -:103E8000BF0184279527A627B7278093BC0190936D -:103E9000BD01A093BE01B093BF010C94631A0F93B0 -:103EA0001F930091BC011091BD012091BE01309182 -:103EB000BF01062B172B282B392B0093BC01109325 -:103EC000BD012093BE013093BF011F910F910C944F -:103ED000631A0F931F930091BC011091BD012091B3 -:103EE000BE013091BF0106231723282339230093F5 -:103EF000BC011093BD012093BE013093BF011F91FF -:103F00000F910C94631A0F931F930091BC011091B1 -:103F1000BD012091BE013091BF0106271727282738 -:103F200039270093BC011093BD012093BE0130934B -:103F3000BF011F910F910C94631A0895CF92DF92E5 -:103F4000EF92FF920F931F93CF93DF93EC01C090FA -:103F5000C001D090C101E090C201F090C3018091F6 -:103F6000BC019091BD01A091BE01B091BF01C82AD2 -:103F7000D92AEA2AFB2A0FE110E0B701A601002E98 -:103F800004C076956795579547950A94D2F740FFF8 -:103F900007C0BE01802F0E94B00B8130910539F41B -:103FA0000150110950F7BE0180E00E94B00BDF9173 -:103FB000CF911F910F91FF90EF90DF90CF900895D8 -:103FC00090910C01992361F190910D01992341F198 -:103FD000982F9695969596959F3088F4E0910E01CE -:103FE000F0910F01E90FF11D877021E030E001C071 -:103FF000220F8A95EAF78181822B8183089590911F -:10400000D70190FF2DC01F928F9387ED95E09F936E -:104010008F930E94EE070F900F900F900F900895CE -:1040200040910E0150910F0120E030E09FEFFA0126 -:10403000E20FF31F6281681799F09F3F19F4611135 -:1040400001C0922F2F5F3F4F2E30310581F79F3FE8 -:1040500039F0FA01E90FF11D97FDFA958283089571 -:10406000089590910C01992369F190910D01992384 -:1040700049F1982F9695969596959F3090F4E091FA -:104080000E01F0910F01E90FF11D877021E030E082 -:1040900001C0220F8A95EAF7209581812823218388 -:1040A00008959091D70190FF1FC01F928F9389EBC5 -:1040B00095E09F938F930E94EE070F900F900F90C3 -:1040C0000F90089540910E0150910F0120E030E0D3 -:1040D000FA01E20FF31F9281981301C012822F5F41 -:1040E0003F4F2E303105A1F7089581E090E0E09137 -:1040F0000E01F0910F01E80FF91F10820196803137 -:104100009105A9F708959091D601982B9093D60127 -:10411000089580959091D60198239093D6010895A3 -:104120001092D60108959091D501982B9093D501C6 -:10413000089580959091D50198239093D501089585 -:104140001092D50108958093C40108951092C4017E -:10415000089540910E0150910F0120E030E080E081 -:10416000FA01E20FF31F918191118F5F2F5F3F4F93 -:104170002F303105A9F70895E0910E01F0910F015C -:104180008091D6018083E0910E01F0910F01808132 -:104190009091D501892B80839091C401992361F07E -:1041A000E0910E01F0910F018081892B80830E94A4 -:1041B000A92081111092C40180910E0190910F01EC -:1041C0000C94BC1490933B0180933A010895CF92D4 -:1041D000DF92EF92FF920F931F936C01EE24FF2466 -:1041E000C114D104E104F10421F46B017C0180E0ED -:1041F00001C080E133272F2D1E2D0D2D0115110536 -:104200002105310519F0885F680179019701860160 -:10421000A4E03695279517950795AA95D1F701152E -:1042200011052105310519F08C5F680179019701AD -:104230008601F2E03695279517950795FA95D1F7FF -:10424000011511052105310519F08E5F680179010D -:10425000B701A6017695679557954795452B462B4F -:10426000472B09F08F5F1F910F91FF90EF90DF9028 -:10427000CF9008958295982F9C7C96959695837300 -:1042800044E0849F90011124922B892F8A7A86958D -:104290009575990F892B08951F93CF93DF931F92E4 -:1042A000CDB7DEB799830E943A21182F9981892FC3 -:1042B0000E943A21212F30E0322F2227A901482BDA -:1042C000CA010F90DF91CF911F9108958091F00165 -:1042D000843009F11092D80120E488E190E00FB613 -:1042E000F894A895809360000FBE2093600083B778 -:1042F000817F846083BF83B7816083BF7894889512 -:1043000083B78E7F83BF88E10FB6F89480936000F7 -:10431000109260000FBE089508950895CF930E94F3 -:104320008C210E9456090E948D21C0E08C2F0E9492 -:10433000810A811105C0CF5FCE30C1F780E001C096 -:1043400081E0CF9108950C94751A82E084BD93E0CA -:1043500095BD9AEF97BD80936E0008952FB7F8949E -:104360008091D9019091DA01A091DB01B091DC013B -:104370002FBF0895CF92DF92EF92FF920F931F937A -:104380002FB7F8944091D9015091DA016091DB0187 -:104390007091DC012FBF6A017B01EE24FF248C01A8 -:1043A00020E030E0C016D106E206F30610F44150DA -:1043B0005109481B590BCA011F910F91FF90EF90B3 -:1043C000DF90CF9008951F920F920FB60F92112495 -:1043D0008F939F93AF93BF938091D9019091DA010E -:1043E000A091DB01B091DC010196A11DB11D80936C -:1043F000D9019093DA01A093DB01B093DC01BF9166 -:10440000AF919F918F910F900FBE0F901F901895B5 -:104410000E94B711F8942FEF87EA91E6215080406F -:104420009040E1F700C0000087E090EBDC01809352 -:10443000F9019093FA01A093FB01B093FC012CE0E9 -:1044400088E190E00FB6F894A895809360000FBEC5 -:1044500020936000FFCFEF92FF920F931F93CF93B3 -:10446000DF93E82EF12C8F2D0E94810AC0E0D0E06E -:10447000082F10E098010C2E02C0359527950A945C -:10448000E2F720FD05C02196C630D10599F709C095 -:104490006C2F7F2D80E00E948E0BE812F4CF81E01C -:1044A00005C0F3948EE0F812DECF80E0DF91CF916B -:1044B0001F910F91FF90EF900895CF93C82F8CE23A -:1044C0000E942B22882321F08C2FCF910C942B2239 -:1044D00080E0CF910895CF930E94B823811102C04C -:1044E0000E949E238CEF95E00E945507C5E6C150BF -:1044F00049F00E9456098FE39CE90197F1F700C04B -:104500000000F5CF85EF95E00E94550789E20E94F3 -:104510005D22811111C18AE20E945D2281110E94F7 -:104520009E2385E00E945D2281110E9408220E9444 -:10453000C3238093D70187E00E945D22882399F1ED -:104540008BE10E945D22882351F09091D70191FB6D -:10455000882780F921E0822780FB91F922C08EE034 -:104560000E945D22882351F09091D70192FB882709 -:1045700080F921E0822780FB92F913C080E10E943C -:104580005D229091D701882341F093FB882780F921 -:1045900021E0822780FB93F904C0892F809580FB5E -:1045A00090F99093D7018091D7010E94C7230E9470 -:1045B000D5238093EA0180EE0E945D22882341F09A -:1045C0008091EA01982F909590FB80F98093EA0101 -:1045D00089E30E945D22882359F09091EA0191FBC2 -:1045E000882780F921E0822780FB91F99093EA01E6 -:1045F00082EE0E945D22882359F09091EA0192FB9D -:10460000882780F921E0822780FB92F99093EA01C4 -:1046100086EE0E945D22882359F09091EA0193FB77 -:10462000882780F921E0822780FB93F99093EA01A3 -:1046300083EE0E945D22882359F09091EA0194FB59 -:10464000882780F921E0822780FB94F99093EA0182 -:1046500085E30E945D22882359F09091EA0195FB41 -:10466000882780F921E0822780FB95F99093EA0161 -:1046700081E30E945D22882359F09091EA0196FB24 -:10468000882780F921E0822780FB96F99093EA0140 -:1046900081E10E945D22882359F09091EA0197FB05 -:1046A000882780F921E0822780FB97F99093EA011F -:1046B0008091EA010E94D9238091EA0187FB882733 -:1046C00080F980930D0187E20E945D22C82F8EE160 -:1046D0000E945D228111C2608FE10E945D228111E2 -:1046E000C46080E20E945D228111C86081E20E9464 -:1046F0005D228111C06182E20E945D228111C0624F -:1047000083E20E945D228111C06484E20E945D22E6 -:10471000882311F0C06802C0CC2329F08C2F0E949E -:10472000D0236C2F03C00E94CC23682F70E080E060 -:1047300090E0CF910C94711ECF9108956DEE7EEFB5 -:1047400080E090E00E94932D60E082E090E00E9483 -:10475000852D60E083E090E00E94852D60E084E09C -:1047600090E00E94852D60E085E090E00C94852D1E -:1047700080E090E00E947F2D21E08D3E9E4F09F069 -:1047800020E0822F089582E090E00C94772D682F2E -:1047900082E090E00C94852D83E090E00C94772DDE -:1047A000682F83E090E00C94852D84E090E00C94D9 -:1047B000772D682F84E090E00C94852D8091DF01A7 -:1047C00080FF0BC06091130185E0689FB001112448 -:1047D00075956795759567952AC081FF09C06091A9 -:1047E000130185E0689FB0011124759567951FC07E -:1047F00082FF07C06091130185E0689FB00111241A -:1048000016C04091E0014423C9F06091120146179F -:1048100088F72091130185E0289F90011124429F81 -:10482000C001439F900D112470E00E94492D603813 -:10483000710540F46115710539F002C065E070E062 -:10484000862F08958FE7089581E008958091DF0114 -:1048500080FF08C06091110170E0759567957595AE -:10486000679521C081FF06C06091110170E07595C8 -:10487000679519C082FF04C06091110170E010C0FB -:104880008091E0018823C1F0609110018617A0F7A4 -:1048900090911101989FC001112470E00E94492D50 -:1048A0006038710528F46115710521F0862F08958F -:1048B0008FE7089581E0089561E070E0F4CF803FD4 -:1048C00021F40E94DE23819504C0813F29F40E94D7 -:1048D000DE238093E3010895823F21F40E94DE23CA -:1048E000819504C0833F29F40E94DE238093E20176 -:1048F0000895893F19F40E94262405C08A3F31F4A7 -:104900000E94262481958093E40108958B3F21F431 -:104910000E942624819504C08C3F29F40E942624FD -:104920008093E5010895843F21F48091E101816045 -:1049300017C0853F21F48091E101826011C0863F5C -:1049400021F48091E10184600BC0873F21F48091C4 -:10495000E101886005C0883F31F48091E101806108 -:104960008093E10108958D3F21F48091DF01816002 -:104970000BC08E3F21F48091DF01826005C08F3F24 -:1049800029F48091DF0184608093DF010895803FE6 -:1049900039F48091E30187FF6CC01092E30169C094 -:1049A000813F29F48091E3011816BCF362C0909115 -:1049B000E201823F29F497FF5CC01092E20159C0E6 -:1049C000833F19F41916CCF354C0893F41F4809108 -:1049D000E40118160CF04DC01092E4014AC08A3F61 -:1049E00029F48091E40187FF44C0F6CF8B3F39F46E -:1049F0008091E50187FF3DC01092E5013AC08C3FF0 -:104A000029F48091E5011816BCF333C0843F21F4EA -:104A10008091E1018E7F17C0853F21F48091E101F3 -:104A20008D7F11C0863F21F48091E1018B7F0BC007 -:104A3000873F21F48091E101877F05C0883F31F4F1 -:104A40008091E1018F7E8093E10113C08D3F21F4BD -:104A50008091DF018E7F0BC08E3F21F48091DF01BA -:104A60008D7F05C08F3F29F48091DF018B7F80937C -:104A7000DF018091E20181110EC08091E30181117B -:104A80000AC08091E401811106C08091E501811185 -:104A900002C01092E00108958091D70183FF7EC08B -:104AA00088E396E00E9455078091E1011F928F9361 -:104AB00083E396E09F938F930E94EE0781E396E055 -:104AC0000E9455072091E201822F992787FD90953A -:104AD0009F932F938EE296E09F938F930E94EE0711 -:104AE0008CE296E00E9455072091E301822F9927DE -:104AF00087FD90959F932F9389E296E09F938F93E4 -:104B00000E94EE0787E296E00E9455072091E4019B -:104B1000822F992787FD90959F932F9384E296E0AB -:104B20009F938F930E94EE0782E296E00E945507C2 -:104B30002091E501822F992787FD90959F932F93D0 -:104B40008FE196E09F938F930E94EE078CE196E0B1 -:104B50000E9455078091E0011F928F9389E196E0B2 -:104B60009F938F930E94EE0787E196E00E9455077E -:104B70008091DF011F928F9384E196E09F938F9342 -:104B80000E94EE0781E196E00E9455078DB79EB71F -:104B90004C960FB6F8949EBF0FBE8DBF81EE91E08C -:104BA0000E9401150E94AE219093DE018093DD01E9 -:104BB00008951F93CF93DF938091DD019091DE01E3 -:104BC0000E94BA214091E001442321F02091140178 -:104BD00030E006C0209115015AE0259F9001112474 -:104BE0008217930708F482C08091E2011091E301DB -:104BF000D091E401C091E501811107C0111105C0F8 -:104C0000D11103C0CC2309F471C04F3F19F04F5F9D -:104C10004093E001181624F40E94DE238093E20101 -:104C20008091E20187FF05C00E94DE238195809379 -:104C3000E201111624F40E94DE238093E3018091A7 -:104C4000E30187FF05C00E94DE2381958093E30185 -:104C50006091E201662339F11091E301112319F10A -:104C6000772767FD7095872F972F0E944E2C23E39F -:104C700033E343E35FE30E94B22C0E941B2C60935A -:104C8000E201612F772767FD7095872F972F0E948C -:104C90004E2C23E333E343E35FE30E94B22C0E94F4 -:104CA0001B2C6093E3011D1624F40E94262480939C -:104CB000E4018091E40187FF05C00E9426248195CC -:104CC0008093E4011C1624F40E9426248093E501BD -:104CD0008091E50187FF05C00E942624819580937D -:104CE000E501DF91CF911F910C944C25DF91CF917D -:104CF0001F910895E1EEF1E085E0DF011D928A95B4 -:104D0000E9F71092E0011092DF0108958BE598E039 -:104D10000E9455071F9281E08F931F9285E08F9329 -:104D20008DE098E09F938F930E94EE070F900F9075 -:104D30000F900F900F900F9008958330E9F128F4B1 -:104D4000813061F0823009F10895853009F462C044 -:104D500008F449C0863009F474C008952091150103 -:104D6000862F90E0820F911D8F3F910520F4620FF6 -:104D70006093150103C08FEF809315018091150199 -:104D80001F928F9386E497E072C020911401862FC2 -:104D900090E0820F911D8F3F910520F4620F609388 -:104DA000140103C08FEF80931401809114011F92AE -:104DB0008F9384E397E05BC020911301862F90E0EE -:104DC000820F911D8F3F910520F4620F60931301B4 -:104DD00003C08FEF80931301809113011F928F9373 -:104DE00081E297E044C020911201862F90E0820F6B -:104DF000911D8F3F910520F4620F6093120103C053 -:104E00008FEF80931201809112011F928F938CE09B -:104E100097E02DC020911101862F90E0820F911D07 -:104E20008F3F910520F4620F6093110103C08FEF53 -:104E300080931101809111011F928F9383EF96E06F -:104E400016C020911001862F90E0820F911D8F3F98 -:104E5000910520F4620F6093100103C08FEF8093DF -:104E60001001809110011F928F9388ED96E09F931F -:104E70008F930E94EE070F900F900F900F90089560 -:104E8000833081F128F4813059F08230D1F00895D7 -:104E9000853009F449C0B8F1863009F456C0089548 -:104EA00080911501681720F4861B8093150102C0BC -:104EB00010921501809115011F928F9389EC96E055 -:104EC00054C080911401681720F4861B809314014C -:104ED00002C010921401809114011F928F9387EBEE -:104EE00096E043C080911301681720F4861B8093DD -:104EF000130102C010921301809113011F928F932E -:104F000084EA96E032C080911201681720F4861B73 -:104F10008093120102C010921201809112011F921F -:104F20008F938FE896E021C080911101681720F4DB -:104F3000861B8093110102C0109211018091110112 -:104F40001F928F9386E796E010C08091100168173A -:104F500020F4861B8093100102C0109210018091F2 -:104F600010011F928F938BE596E09F938F930E9481 -:104F7000EE070F900F900F900F900895CF93C82FCA -:104F80001F928F9320E639E03F932F930E94EE0704 -:104F900061E070E080E090E004C0660F771F881F3A -:104FA000991FCA95D2F70E94711E0F900F900F9013 -:104FB0000F90CF910C94751ACF938D3109F465C081 -:104FC000B0F58E3009F4CBC100F5873009F49BC1F0 -:104FD000A8F4863009F06AC28091D701817F8E7F64 -:104FE0008093D70185E699E00E94550787EA9DE006 -:104FF0000E94550781E08093E70180C1883009F461 -:105000004FC08B3009F47CC151C2863109F4EDC127 -:1050100038F4803109F4B6C1813109F42DC246C299 -:10502000893109F4CBC18B3109F486C13FC2853384 -:1050300009F434C248F4873209F430C208F430C2AB -:10504000893209F42BC232C2833438F48A3308F02F -:1050500029C2883309F454C129C2833409F41EC219 -:10506000883409F023C20E94751A86E99DE00E94E7 -:1050700055079FEF23ED80E3915020408040E1F7FA -:1050800000C000000E94082239C186EB9DE00E940A -:1050900055070E94D52B0E94B0140E94EE0C2EC121 -:1050A0008BEA9DE00E94550786E79BE00E9455072A -:1050B0000E94CC231F928F9383E79BE09F938F9353 -:1050C0000E94EE0781E79BE00E9455070E94C323E0 -:1050D000C82F8EE59BE00E9455071F92CF9329E5CC -:1050E0003BE03F932F930E94EE0787E59BE00E94F1 -:1050F00055078DE49BE00E9455078C2F81701F920D -:105100008F932AE43BE03F932F930E94EE0788E4BD -:105110009BE00E9455078EE39BE00E945507C1FB70 -:10512000882780F91F928F932BE33BE03F932F93C7 -:105130000E94EE0789E39BE00E9455078DE29BE009 -:105140000E945507C2FB882780F91F928F932AE29D -:105150003BE03F932F930E94EE0788E29BE00E9482 -:1051600055078FE19BE00E945507C3FBCC27C0F990 -:105170001F92CF938CE19BE09F938F930E94EE0749 -:105180008AE19BE00E9455070E94D523C82F86E044 -:105190009BE00E9455071F92CF9321E03BE03F9395 -:1051A0002F930E94EE078FEF9AE00E94550786EE3C -:1051B0009AE00E9455078C2F81701F928F9323EEE7 -:1051C0003AE03F932F930E94EE078DB79EB78096EB -:1051D0000FB6F8949EBF0FBE8DBF81EE9AE00E947D -:1051E00055078AEC9AE00E945507C1FB882780F991 -:1051F0001F928F9327EC3AE03F932F930E94EE0784 -:1052000085EC9AE00E94550783EB9AE00E945507CF -:10521000C2FB882780F91F928F9320EB3AE03F93DF -:105220002F930E94EE078EEA9AE00E9455078CE9C0 -:105230009AE00E945507C3FB882780F91F928F933D -:1052400029E93AE03F932F930E94EE0787E99AE01D -:105250000E9455078DE89AE00E945507C4FB8827F5 -:1052600080F91F928F932AE83AE03F932F930E9490 -:10527000EE0788E89AE00E94550786E79AE00E94C8 -:105280005507C5FB882780F91F928F9323E73AE0E3 -:105290003F932F930E94EE0781E79AE00E94550703 -:1052A00085E59AE00E945507C6FB882780F91F9282 -:1052B0008F9322E53AE03F932F930E94EE0780E51B -:1052C0009AE00E94550788E49AE00E945507C7FBC0 -:1052D000CC27C0F91F92CF9385E49AE09F938F93D8 -:1052E0000E94EE0783E49AE00E9455078DB79EB7AF -:1052F0004C960FB6F8949EBF0FBE8DBFC1E0DBC0C9 -:105300008CE899E058C08091D701C82FC17080FF08 -:1053100009C089E89DE00E9455078091D701817FEF -:105320008E7F44C08DE79DE00E9455078091D70194 -:1053300081608093D701E2CF8091D70181FBCC2798 -:10534000C0F991E0C927C0FB81F98093D701CC2334 -:1053500019F080E79DE025C082E69DE02CC0809199 -:10536000D70182FBCC27C0F991E0C927C0FB82F9A5 -:105370008093D701CC2319F083E59DE012C083E42C -:105380009DE019C08091D70183FBCC27C0F991E043 -:10539000C927C0FB83F98093D701CC2351F087E361 -:1053A0009DE00E9455078091D70181608093D701CD -:1053B00082C08AE29DE00E945507A0CF8BE19DE06C -:1053C0000E9455078FEE9CE00E94550782EB9CE0FF -:1053D0000E94550785E89CE00E94550781E49CE007 -:1053E0000E94550786E19CE0E6CF88E09CE00E94A1 -:1053F00055070E94B0141F928F938EEE9BE09F93EF -:105400008F930E94EE0780910C011F928F9387ED7E -:105410009BE09F938F930E94EE0780916E011F92F5 -:105420008F9384EC9BE09F938F930E94EE07809173 -:105430000D011F928F9381EB9BE09F938F930E94AE -:10544000EE078091D9019091DA01A091DB01B09132 -:10545000DC01BF93AF939F938F938DE99BE09F9364 -:105460008F930E94EE078DB79EB746960FB6F894BD -:105470009EBF0FBE8DBF42CF0E94751AC0910D0115 -:1054800081E0C827C0930D01CC2329F083E99BE07C -:105490000E94550710C088E89BE08DCF80E003C0D4 -:1054A0008D5101C089530E94BE2728CF86E89BE01A -:1054B0000E945507C0E08C2FCF91089580E0089599 -:1054C00080E00895CF93C82F8091E701813081F06B -:1054D00020F0823009F44CC042C1A0910E01B0917D -:1054E0000F018C91813169F0823209F03AC109C013 -:1054F000A0910E01B0910F018C91813111F0823297 -:1055000049F48C2F0E945E2A81112FC08C2F0E949B -:10551000DC272CC08C2F0E94602A811126C0C43148 -:10552000E1F070F4CB3081F0C031D1F40E948626D6 -:1055300088E599E00E94550782E08093E70115C055 -:10554000C93259F0C83361F485E699E00E945507E5 -:105550008CE599E00E94550708C01092E70103C14D -:1055600086E599E00E945507FEC081E08170FDC08C -:10557000C43220F5CE3108F0C0C0CB3099F1C8F468 -:10558000C73009F0D2C08AE08093150194E190936E -:10559000140193E0909313018093120188E08093AB -:1055A000110188E2809310018CEF97E00E9455076B -:1055B000BFC0C33149F1C431C1F0B7C0CB3409F425 -:1055C000A9C028F4C93289F0C83361F0AEC0C13532 -:1055D00009F49EC0C23509F499C0CE3409F0A5C0C3 -:1055E0006AE09EC00E948626A3C08091E6018823BF -:1055F00019F01092E6019CC089E098E00E945507DE -:1056000081E08093E701B1C083EE97E00E945507E7 -:1056100081ED97E00E945507809115011F928F93AD -:105620008EEC97E09F938F930E94EE078CEC97E0AF -:105630000E9455078AEB97E00E945507809114015C -:105640001F928F9387EB97E09F938F930E94EE07B3 -:1056500085EB97E00E94550786EA97E00E94550780 -:10566000809113011F928F9383EA97E09F938F930A -:105670000E94EE0781EA97E00E94550780E997E0D3 -:105680000E945507809112011F928F938DE897E039 -:105690009F938F930E94EE078BE897E00E94550737 -:1056A00086E797E00E945507809111011F928F9322 -:1056B00083E797E09F938F930E94EE0781E797E03F -:1056C0000E9455078AE597E00E94550780911001D6 -:1056D0001F928F9387E597E09F938F930E94EE0729 -:1056E00085E597E00E9455078DB79EB748960FB69F -:1056F000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0C3 -:10570000E15DFE4F80818093E60112C061E003C03D -:1057100061E006C06AE08091E6010E949D2608C013 -:105720008091E6010E94402703C08AEF97E013C0F2 -:105730008091E601882369F01F928F9384EF97E0B0 -:105740009F938F930E94EE070F900F900F900F90F2 -:1057500004C081EF97E00E94550781E006C01092D7 -:10576000E70180E002C080E001CFCF910895E1E839 -:10577000F0E08081886080838081816080838FB742 -:10578000F89493E09093890090ED909388008FBFF8 -:105790000895EFE6F0E08081826080830895EFE66F -:1057A000F0E080818D7F80830895EFE6F0E08081D6 -:1057B00092E08927808308951F920F920FB60F926F -:1057C00011242F933F934F935F936F937F938F9306 -:1057D0009F93AF93BF93EF93FF938091E8019091D4 -:1057E000E90101969093E9018093E801811103C0DA -:1057F00082E00E94EE0CE091E901E695E695F0E08A -:10580000EA53F24FE4918091E8018E1303C080E0E7 -:105810000E94EE0CFF91EF91BF91AF919F918F91FC -:105820007F916F915F914F913F912F910F900FBE9C -:105830000F901F90189504D06894B1118DC00895F1 -:1058400070D088F09F5790F0B92F9927B751A0F0EA -:10585000D1F0660F771F881F991F1AF0BA95C9F704 -:1058600012C0B13081F077D0B1E0089574C0672FD5 -:10587000782F8827B85F39F0B93FCCF386957795B4 -:105880006795B395D9F73EF490958095709561959D -:105890007F4F8F4F9F4F0895E89409C097FB3EF4C8 -:1058A00090958095709561957F4F8F4F9F4F99236D -:1058B000A9F0F92F96E9BB279395F69587957795EB -:1058C0006795B795F111F8CFFAF4BB0F11F460FFAB -:1058D0001BC06F5F7F4F8F4F9F4F16C0882311F003 -:1058E00096E911C0772321F09EE8872F762F05C017 -:1058F000662371F096E8862F70E060E02AF09A95B2 -:10590000660F771F881FDAF7880F9695879597F9A6 -:10591000089557FD9058440F551F59F05F3F71F09F -:105920004795880F97FB991F61F09F3F79F0879506 -:105930000895121613061406551FF2CF4695F1DF8F -:1059400008C0161617061806991FF1CF869571051F -:10595000610508940895E894BB2766277727CB0153 -:1059600097F908950BD078C069D028F06ED018F060 -:10597000952309F05AC05FC01124EECFCADFA0F30F -:10598000959FD1F3950F50E0551F629FF001729FD4 -:10599000BB27F00DB11D639FAA27F00DB11DAA1FF3 -:1059A000649F6627B00DA11D661F829F2227B00D40 -:1059B000A11D621F739FB00DA11D621F839FA00DCB -:1059C000611D221F749F3327A00D611D231F849F1B -:1059D000600D211D822F762F6A2F11249F57504072 -:1059E0008AF0E1F088234AF0EE0FFF1FBB1F661F0D -:1059F000771F881F91505040A9F79E3F510570F0C6 -:105A000014C0AACF5F3FECF3983EDCF38695779500 -:105A10006795B795F795E7959F5FC1F7FE2B880FC0 -:105A2000911D9695879597F9089597F99F6780E856 -:105A300070E060E008959FEF80EC089500240A94E0 -:105A40001616170618060906089500240A94121659 -:105A50001306140605060895092E0394000C11F48C -:105A6000882352F0BB0F40F4BF2B11F460FF04C039 -:105A70006F5F7F4F8F4F9F4F0895991B79E004C050 -:105A8000991F961708F0961B881F7A95C9F780957D -:105A9000089597FB072E16F4009407D077FD09D0E0 -:105AA0000E94632D07FC05D03EF4909581959F4F91 -:105AB0000895709561957F4F0895EE0FFF1F059033 -:105AC000F491E02D0994AA1BBB1B51E107C0AA1F4A -:105AD000BB1FA617B70710F0A61BB70B881F991F8F -:105AE0005A95A9F780959095BC01CD010895F99933 -:105AF000FECF92BD81BDF89A992780B50895A8E19F -:105B0000B0E042E050E00C949A2D262FF999FECF98 -:105B10001FBA92BD81BD20BD0FB6F894FA9AF99ACA -:105B20000FBE019608950E94852D272F0C94862D77 -:105B3000DC01CB01FC01F999FECF06C0F2BDE1BD4D -:105B4000F89A319600B40D9241505040B8F708953C -:045B5000F894FFCFF7 -:105B54002002EF0CE00DBD0D890D560D0101C501AC -:105B640028080A03140A3F4D3620394605F904C3B0 -:105B740004A3046A04DD03F6030F042804480401A3 -:0A5B840002030405060708090000EB -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_default_osx_highres.png b/keyboard/ergodox_ez/keymaps/keymap_default_osx_highres.png deleted file mode 100644 index 04f46bbd54..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_default_osx_highres.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_dragon788.c b/keyboard/ergodox_ez/keymaps/keymap_dragon788.c deleted file mode 100644 index d18ce73bfe..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_dragon788.c +++ /dev/null @@ -1,229 +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 -#define PLVR 3 // Plover layer - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | LGui | |Plover| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | '"/Ctrl| - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | ~L1 | Grv | '" | Left |Rgt/L2| | Up/L2| Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | Home | | PgUp |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | End | | PgDn | | | - * |Backsp|Delete|------| |------| Enter |Space | - * | ace | | LAlt | |TabCtl| | | - * `--------------------' `----------------------' - */ -// 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_LGUI, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), - CTL_T(KC_ESC), 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_FN1, KC_GRV, KC_QUOT,KC_LEFT, LT(MDIA, KC_RGHT), - KC_APP, KC_HOME, - KC_END, - KC_BSPC,KC_DELT,KC_LALT, - // right hand - TG(3), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), - MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - LT(MDIA, KC_UP), KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, - KC_PGUP, CTL_T(KC_ESC), - KC_PGDN, - CTL_T(KC_TAB),KC_ENT, KC_SPC - ), -/* 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 | = | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | Calc | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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_CALC, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | Rclk | Lclk | | | | | | Lclk | Rclk | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft| MsUp |MsDown|MsRght|------| |------|MsLeft|MsDown| MsUp |MsRght| | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | Prev | |VolUp | | - * ,------|------|------| |------+------+------. - * | | | Play | | Mute |Brwser|Brwser| - * | Lclk | Rclk |------| |------|Fwd |Back | - * | | | Next | |VolDn | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -KEYMAP( - RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_U, 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_TRNS, - KC_TRNS, KC_MPRV, - KC_MPLY, - KC_BTN1, KC_BTN2, KC_MNXT, - // right hand - 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_MS_L, KC_MS_D, KC_MS_U, 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_TRNS, KC_TRNS, KC_TRNS, - KC_VOLU, KC_TRNS, - KC_MUTE, - KC_VOLD, KC_WBAK, KC_WFWD -), - -/* Keymap 4: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | a | s | d | f | g | | | | h | j | k | l | ; | ' | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | c | v |------| |------| n | m | - * | | | | | | | | - * `--------------------' `--------------------' - */ - -[PLVR] = KEYMAP( // layout: layer 4: Steno for Plover - // left hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, - KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_FN4, KC_NO, - KC_NO, - KC_C, KC_V, KC_NO, - // right hand - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_NO, KC_N, KC_M -), - -}; - -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_dvorak.c b/keyboard/ergodox_ez/keymaps/keymap_dvorak.c deleted file mode 100644 index 53934ea345..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_dvorak.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 | \ | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | O | E | U | I |------| |------| D | H | T | N |S / L2| - | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |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_DELT, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1), - KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, - KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), - LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPC,KC_BSPC,KC_END, - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, - KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS, - MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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 -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_dvorak.png b/keyboard/ergodox_ez/keymaps/keymap_dvorak.png deleted file mode 100644 index cb83163095..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_dvorak.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_erez_experimental.c b/keyboard/ergodox_ez/keymaps/keymap_erez_experimental.c deleted file mode 100644 index 667078517c..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_erez_experimental.c +++ /dev/null @@ -1,190 +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 - -/* About this file: This is just an experimental keymap for my own use, with some ideas I'm testing out. -* Changlog: -* Jan 19: * Made J into dual-action key (Alt when held down), to make Alt-tab more ergonomic. -* * Made ' into dual-action key (Win/Cmd when held down). -*/ - -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 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | Alt/J| K | L |; / L2| LGui/' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |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_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, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPC,KC_BSPC,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,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(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, - 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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_german.c b/keyboard/ergodox_ez/keymaps/keymap_german.c deleted file mode 100644 index d91f1e9373..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_german.c +++ /dev/null @@ -1,185 +0,0 @@ -#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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | 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 | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | 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; - } - -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_j3rn.c b/keyboard/ergodox_ez/keymaps/keymap_j3rn.c deleted file mode 100644 index ddc64e55e7..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_j3rn.c +++ /dev/null @@ -1,186 +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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | Grv | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | BkSp | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | ~L1 | '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | Home | | PgUp |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | End | | PgDn | | | - * |Space | LGui |------| |------| Tab |Enter | - * | | |Shift | | Alt | | | - * `--------------------' `----------------------' - */ -// 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, - CTL_T(KC_ESC), 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), - KC_FN1, KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, - - ALT_T(KC_APP), KC_HOME, - KC_END, - KC_SPC, KC_LGUI, KC_LSHIFT, - // right hand - KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_EQL, 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, - - KC_PGUP, CTL_T(KC_ESC), - KC_PGDN, - KC_LALT, 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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 -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_jack.c b/keyboard/ergodox_ez/keymaps/keymap_jack.c deleted file mode 100644 index 2677a3d8fa..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_jack.c +++ /dev/null @@ -1,185 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -// TODO: Define layer names that make sense for the ErgoDox EZ. -#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 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |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_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, - KC_NO, KC_LCTL, KC_LALT,KC_LGUI, MO(2), - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPC,KC_SPC,KC_END, - // right hand - KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, - KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT, - MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, - KC_NO, KC_NO, - KC_PGUP, - KC_PGDN, KC_SPC,KC_SPC - ), -/* 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,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_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, - KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, - 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 -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, - KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -}; - -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_jgarr.c b/keyboard/ergodox_ez/keymaps/keymap_jgarr.c deleted file mode 100644 index fbdc25109e..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_jgarr.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 - * - * ,--------------------------------------------------. ,-----------------------------------------------------. - * | Grv | 1 | 2 | 3 | 4 | 5 | Del | |Backspace| 6 | 7 | 8 | 9 | 0 | \ | - * |--------+------+------+------+------+-------------| |---------+------+------+------+------+------+--------| - * | Tab | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Ctrl/Esc| A | O | E | U | I |------| |---------| D | H | T | N |S / L2| - | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `----------------+------+------+------+------+--------' - * | Ctrl | LGui | Alt | Left | Right| | Up | Down | [ | ] | = | - * `----------------------------------' `----------------------------------' - * ,--------------. ,-------------. - * | AltShf| LGui | | Alt | ~L1 | - * ,------|-------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp |------| |------| 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1), - CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, - KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), - KC_LCTL, KC_LGUI, KC_LALT, KC_LEFT, KC_RGHT, - LALT(KC_LSFT), KC_LGUI, - KC_HOME, - KC_SPC,KC_BSPC,KC_END, - // right hand - KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, - KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS, - MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_EQL, - KC_LALT, KC_FN1, - KC_PGUP, - KC_PGDN,KC_ENT, KC_SPC - ), -/* 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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 -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_kastyle.c b/keyboard/ergodox_ez/keymaps/keymap_kastyle.c deleted file mode 100644 index ecf1be8724..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_kastyle.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 | LGUI | | App | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,---------------. ,---------------. - * |Ctrl/Esc| Alt | | Alt |Ctrl/Esc| - * ,------|--------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * |Backsp| 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), - KC_LCTL, 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, - CTL_T(KC_ESC), ALT_T(KC_APP), - KC_HOME, - KC_BSPC,KC_DEL,KC_END, - // right hand - KC_APP, 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, - 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, - KC_LALT, CTL_T(KC_ESC), - KC_PGUP, - KC_PGDN,KC_ENT, KC_SPC - ), -/* 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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 -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.c b/keyboard/ergodox_ez/keymaps/keymap_kines-ish.c deleted file mode 100644 index 20cb53241f..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_kines-ish.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; - } - -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md b/keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md deleted file mode 100644 index 5d39a0590d..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md +++ /dev/null @@ -1,19 +0,0 @@ -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_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c deleted file mode 100644 index cc9076eec8..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ /dev/null @@ -1,277 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_extras/keymap_german_osx.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#define CRSR 3 // media keys -#define NUMB 4 // number keys - -#define M_CTRL_CMDV 1 -#define M_CTRL_CMDC 2 -#define M_MEH_SH_ACUT 3 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | L3 | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | ! | ? | | | | | \ | [ | ] | | | # | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | . | ! | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, - KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, - KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_DEL,KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | Play | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -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_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, 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_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -// Cursor layer -KEYMAP( - 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_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, - // 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_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -//number pad -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, 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, - // 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, LSFT(KC_RBRC), KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS, - KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, - KC_0,KC_DOT, KC_0, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) - [2] = ACTION_LAYER_TAP_TOGGLE(CRSR) // FN2 - Momentary Layer 2 (Cursors) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - static uint16_t start; - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - case 1: - if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL), END); - } else { - if (timer_elapsed(start) > 150) { - return MACRO(U(LCTRL), END); - } else { - return MACRO(U(LCTRL), D(LGUI), T(V), U(LGUI), END); - } - } - break; - case 2: - if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL),END); - } else { - if (timer_elapsed(start) > 150){ - return MACRO(U(LCTRL),END); - } else { - return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END); - } - } - break; - case 3: - if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL),D(LSFT),D(LALT),END); - } else { - if (timer_elapsed(start) > 150){ - return MACRO(U(LCTRL),U(LSFT),U(LALT),END); - } else { - return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_ACUT here, as macro needs KC_ prefix - } - } - 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; - case 3: - ergodox_right_led_3_on(); - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - //ergodox_board_led_on(); - break; - default: - // none - break; - } - -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex b/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex deleted file mode 100644 index eb82384d54..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex +++ /dev/null @@ -1,1509 +0,0 @@ -:100000000C94CA070C940E080C940E080C940E085D -:100010000C940E080C940E080C940E080C940E0808 -:100020000C940E080C940E080C9488130C945A141B -:100030000C940E080C940E080C940E080C940E08E8 -:100040000C940E080C94322D0C940E080C940E088F -:100050000C940E080C942A230C940E080C940E0891 -:100060000C940E080C940E080C940E080C940E08B8 -:100070000C940E080C940E080C940E080C940E08A8 -:100080000C940E080C940E080C940E080C940E0898 -:100090000C940E080C940E080C940E080C940E0888 -:1000A0000C940E080C940E080C940E08C714E91456 -:1000B000D715E914D7152E155115D715A615B9154D -:1000C000001900192F192F197319B119CB1BCB1B4C -:1000D000CA19CB1BCB1ACB1A9F1BCB1BCB1BB61B36 -:1000E00002E002E2012E022E02E10002E002E10241 -:1000F000E20001E001E101E20002E001E3010602A9 -:100100000602E30002E00001E00002E001E3011961 -:10011000021902E30002E00001E0000000F0A1F09B -:10012000A329002B000354E100358100001E0014B8 -:100130000004001D7135004D001F001A0016001B41 -:1001400000E1044C00200008000700060050002ACF -:100150000021001500090019004F004A0022001775 -:10016000000A000500000002540130E3000000E234 -:1001700000000003300230E7000000E60000002E1F -:100180007F23001C000B0011000000045424001801 -:10019000000D00100052004B0025000C000E003630 -:1001A0000051002C00260012000F003700E1082843 -:1001B00000270013003300387130004E002D002F4F -:1001C000003482E5003181000001000100010001DE -:1001D00000010000003A003500310001000100017B -:1001E000003B0035022102350001004C003C001E9E -:1001F0000224062202010001003D002D02240224F7 -:1002000004010001003E000100370011040000015C -:1002100000010001000000010000000100010001D8 -:100220000000000100000001003F0024062402231A -:1002300002000001004000220425023500010001F7 -:100240000041002304260235023700010042002449 -:100250000425041F021E0201004300310026043160 -:1002600002010001004400450001002D02010000D0 -:100270000001000100010001000100000001000177 -:10028000000100FB000100010001000100F200F983 -:1002900000010001000100F000F100FA00F400018B -:1002A0000001000100F300FC00F500010001000165 -:1002B000000100F600000001000100010000000143 -:1002C0000000000100010001000000010000000129 -:1002D0000001000100010001000000010001000117 -:1002E000000100A800A9000100010001000100AC0C -:1002F00000AA00B600010001000100AB005000019F -:1003000000010001000100520051000100AE000197 -:1003100000010001004F0000000100010001000188 -:1003200000010000000100010001000100010001C6 -:1003300000010001000100010001000100010001B5 -:1003400000010001000100010001000100010001A5 -:100350000001000100010001000100010000000196 -:100360000001000100000001000000010001000187 -:100370000000000100000001000100010001000177 -:100380000000000100010001000100010001000166 -:100390000001000100010001000100010001000155 -:1003A00000010001005000010001000100010052A5 -:1003B000005100010001000100010001004F000098 -:1003C0000001000100010001000100000001000126 -:1003D00000010001000100010001000100500001C6 -:1003E0000001000100010052005100010001000164 -:1003F00000010001004F00010001000100010001A7 -:1004000000010001000000010001000100000001E6 -:1004100000000001000100010000000100000001D7 -:10042000003F005200510023020000010040002460 -:100430000021001E00270001004100250022001FAE -:1004400000370001004200260023002000270001A1 -:100450000043003002300024022E00010044004519 -:100460000001000100010000000A00253031366261 -:10047000003A200025303258000A722F63203031B4 -:1004800032333435363738394142434445460A0021 -:100490000A002530325800626F756E6365213A207C -:1004A000006C6566742073696465206174746163AF -:1004B0006865640A006C6566742073696465206E03 -:1004C0006F7420726573706F6E64696E670A007472 -:1004D0007279696E6720746F207265736574206D20 -:1004E000637032333031380A000A44454255473A86 -:1004F00020656E61626C65642E0A005B735D004B63 -:100500006579626F6172642073746172742E0A007F -:100510005B575D005B535D005B525D005B445D00BB -:100520005B435D0016034500720067006F004400E6 -:100530006F007800200045005A00000016034500B7 -:10054000720067006F0044006F00780020004500D3 -:100550005A0000000403090409028D00050100A0EF -:10056000FA09040000010301010009211101000141 -:10057000223F000705810308000A09040100010366 -:10058000010200092111010001224D00070582032B -:1005900008000A09040200010300000009211101FA -:1005A00000012236000705830308000A090403003E -:1005B00002030000000921110100012220000705AB -:1005C000840320000107050403200001090404003E -:1005D0000103000000092111010001223900070573 -:1005E00085031000011201100100000008EDFE0754 -:1005F0001301000102000105010906A10105071907 -:10060000E029E71500250195087501810205081903 -:100610000129059505750191029501750391010563 -:10062000071900297715002501957875018102C009 -:100630000631FF0974A1010975150025FF95207584 -:100640000881020976150025FF952075089102C0E2 -:1006500005010980A101850216010026B7001A01D3 -:10066000002AB700751095018100C0050C0901A191 -:10067000018503160100269C021A01002A9C0275BE -:100680001095018100C005010902A1010901A10025 -:100690000509190129051500250195057501810236 -:1006A0009501750381010501093009311581257F07 -:1006B00095027508810609381581257F9501750811 -:1006C0008106050C0A38021581257F950175088180 -:1006D00006C0C005010906A101050719E029E715B3 -:1006E00000250195087501810295017508810105B4 -:1006F0000819012905950575019102950175039168 -:10070000010507190029FF150025FF9506750881C9 -:1007100000C00A002530325820006B6579626F6195 -:1007200072645F7265706F72743A20000A0025303F -:100730003258006B6579626F6172645F7365745FD4 -:100740006C65643A200064656C5F6B65795F626913 -:10075000743A2063616E27742064656C3A202530FA -:1007600032580A006164645F6B65795F6269743A4C -:100770002063616E2774206164643A20253032580A -:100780000A00646F6E652E0A00626F6F676D6167A5 -:100790006963207363616E3A202E2E2E2000290A91 -:1007A000002575002F002575005D280025640020B8 -:1007B00000256400200025640020002564007C00E2 -:1007C00025303258006D6F7573656B6579205B62FB -:1007D000746E7C782079207620685D287265702F91 -:1007E00061636C293A205B006D6B5F776865656CAF -:1007F0005F74696D655F746F5F6D6178203D202562 -:10080000640A006D6B5F776865656C5F6D61785F2A -:100810007370656564203D2025640A006D6B5F740C -:10082000696D655F746F5F6D6178203D2025640A96 -:10083000006D6B5F6D61785F7370656564203D204E -:1008400025640A006D6B5F696E74657276616C2059 -:100850003D2025640A006D6B5F64656C6179203D05 -:100860002025640A006D6B5F776865656C5F74694D -:100870006D655F746F5F6D6178203D2025640A00AF -:100880006D6B5F776865656C5F6D61785F737065D0 -:100890006564203D2025640A006D6B5F74696D6599 -:1008A0005F746F5F6D6178203D2025640A006D6B79 -:1008B0005F6D61785F7370656564203D2025640A13 -:1008C000006D6B5F696E74657276616C203D2025EA -:1008D000640A006D6B5F64656C6179203D2025645E -:1008E0000A000A00257500363A20776865656C5F56 -:1008F00074696D655F746F5F6D61783A20000A00FE -:10090000257500353A20776865656C5F6D61785FA5 -:1009100073706565643A20000A00257500343A203A -:1009200074696D655F746F5F6D61783A20000A00CD -:10093000257500333A206D61785F73706565643AA0 -:1009400020000A00257500323A20696E74657276BF -:10095000616C286D73293A20000A00257500313A30 -:100960002064656C6179282A31306D73293A200042 -:100970000A092D2056616C756573202D0A004D3EC5 -:10098000004D25643E20003F007365742064656659 -:1009900061756C740A00433E2000776865726520BB -:1009A00064656C74613A20637572736F723D25647F -:1009B0002C20776865656C3D25640A536565206861 -:1009C0007474703A2F2F656E2E77696B6970656449 -:1009D00069612E6F72672F77696B692F4D6F757321 -:1009E000655F6B6579730A000A092D204D6F757379 -:1009F000656B6579202D0A4553432F713A0971754E -:100A000069740A313A0964656C6179282A31306D5C -:100A100073290A323A09696E74657276616C286DC1 -:100A200073290A333A096D61785F73706565640AEA -:100A3000343A0974696D655F746F5F6D61780A356A -:100A40003A09776865656C5F6D61785F737065659D -:100A5000640A363A09776865656C5F74696D655F2D -:100A6000746F5F6D61780A0A703A097072696E740A -:100A70002076616C7565730A643A09736574206445 -:100A8000656661756C74730A75703A092B310A6476 -:100A90006F776E3A092D310A706775703A092B31FC -:100AA000300A7067646F776E3A092D31300A0A7325 -:100AB00070656564203D2064656C7461202A206D3A -:100AC00061785F7370656564202A2028726570659F -:100AD0006174202F2074696D655F746F5F6D61783C -:100AE000290A003F004D3E2000433E20004C256473 -:100AF0000A000A092D20436F6E736F6C65202D0A62 -:100B00004553432F713A09717569740A6D3A096D3D -:100B10006F7573656B65790A000A092D204D616751 -:100B20006963202D0A643A0964656275670A783A38 -:100B3000096465627567206D61747269780A6B3A41 -:100B4000096465627567206B6579626F6172640A1A -:100B50006D3A096465627567206D6F7573650A7615 -:100B60003A0976657273696F6E0A733A0973746134 -:100B70007475730A633A09636F6E736F6C65206DE9 -:100B80006F64650A302D343A096C61796572302DD5 -:100B900034284631302D4634290A506175733A099C -:100BA000626F6F746C6F616465720A653A0965659E -:100BB00070726F6D0A6E3A094E4B524F0A7A3A09BB -:100BC000736C656570204C454420746573740A002D -:100BD0000A002575002E6E6B726F3A20000A002500 -:100BE00075002E737761705F6261636B736C617304 -:100BF000685F6261636B73706163653A20000A002D -:100C00002575002E737761705F67726176655F6529 -:100C100073633A20000A002575002E6E6F5F6775BA -:100C2000693A20000A002575002E737761705F72A3 -:100C3000616C745F726775693A20000A002575005F -:100C40002E737761705F6C616C745F6C6775693A65 -:100C500020000A002575002E636170736C6F636B52 -:100C60005F746F5F636F6E74726F6C3A20000A007E -:100C70002575002E737761705F636F6E74726F6C91 -:100C80005F636170736C6F636B3A20000A002530FC -:100C90003258006B65796D61705F636F6E6669676E -:100CA0002E7261773A20000A002575002E6D6F754F -:100CB00073653A20000A002575002E6B6579626F16 -:100CC0006172643A20000A002575002E6D6174720D -:100CD00069783A20000A002575002E656E61626C05 -:100CE000653A20000A002530325800646562756755 -:100CF0005F636F6E6669672E7261773A20000A0043 -:100D000025750064656661756C745F6C61796572E8 -:100D10003A20003F004E4B524F3A206F66660A0061 -:100D20004E4B524F3A206F6E0A0074696D65725FC8 -:100D3000636F756E743A202530346C580A006B6509 -:100D400079626F6172645F6E6B726F3A2025580A28 -:100D5000006B6579626F6172645F69646C653A20EB -:100D600025580A006B6579626F6172645F70726FFB -:100D7000746F636F6C3A2025580A00686F73745F54 -:100D80006B6579626F6172645F6C65647328293A80 -:100D90002025580A000A092D2053746174757320A8 -:100DA0002D0A004743433A20342E392E3320415632 -:100DB000522D4C4942433A20312E382E3120415693 -:100DC000525F415243483A20617672350A004F50D3 -:100DD00054494F4E533A204C55464120424F4F54B0 -:100DE0004D41474943204D4F5553454B45592045AB -:100DF000585452414B455920434F4E534F4C452078 -:100E0000434F4D4D414E44204E4B524F20353132D1 -:100E10000A004255494C443A206130383532363563 -:100E20002D6469727479202830393A34343A313774 -:100E3000204A616E2031332032303136290A005683 -:100E400049443A20307846454544284572676F4406 -:100E50006F7820455A29205049443A203078313360 -:100E60003037284572676F446F7820455A292056DD -:100E700045523A203078303030310A0044455343EF -:100E80003A20742E6D2E6B2E206B6579626F617225 -:100E900064206669726D7761726520666F722045A5 -:100EA00072676F646F780A000A092D2056657273A5 -:100EB000696F6E202D0A000A6D6F7573653A206F99 -:100EC00066660A000A6D6F7573653A206F6E0A00D8 -:100ED0000A6B6579626F6172643A206F66660A0018 -:100EE0000A6B6579626F6172643A206F6E0A000A5C -:100EF0006D61747269783A206F66660A000A6D61E6 -:100F0000747269783A206F6E0A000A6465627567C8 -:100F10003A206F6E0A000A64656275673A206F6650 -:100F2000660A000A0A626F6F746C6F616465722EE4 -:100F30002E2E2000433E20006565636F6E66696754 -:100F40003A0A00536C656570204C45442074657303 -:100F5000740A000000000000000000000000010210 -:100F600004060A0F17202C3A4A5D71879DB3C7DA31 -:100F7000E9F5FCFFFCF5E9DAC7B39D87715D4A3AF4 -:100F80002C20170F0A0604020100000000000000D8 -:100F90000000000011241FBECFEFDAE0DEBFCDBF9E -:100FA00004B603FE24C08091FB019091FC01A09146 -:100FB000FD01B091FE018730904BA740B04BB9F4D2 -:100FC0001092FB011092FC011092FD011092FE01A3 -:100FD00014BE84B7877F84BF88E10FB6F8948093EE -:100FE0006000109260000FBEE0E0FFE3099511E0A1 -:100FF000A0E0B1E0E0E0FEE502C005900D92AA336A -:10100000B107D9F711E0AAE3B1E001C01D92AB3FEF -:10101000B107E1F70E94C0100C94FE2E0C94000062 -:10102000FF93EF93E0913A01F0913B01309709F083 -:101030000995EF91FF910895FC018591803011F0A1 -:10104000EFDFFBCF0895FF27E0E230E247FF0CC05F -:10105000419597FF09C0EDE2609570958095909558 -:10106000611D711D811D911D27FF02C0219530E377 -:1010700050E2AA27660F771F881F991FAA1FA4177F -:1010800010F0A41B63955A95A9F7AA3008F0A95F40 -:10109000A05DAF93F395611571058105910541F749 -:1010A000ED3211F4EF93F395F21718F43F93F395A3 -:1010B000FBCF8F91B5DFFA95E1F70895E991F991AA -:1010C0008591803021F0853219F0AADFF9CF08959B -:1010D00020E0E89455915532C1F3503311F46894EF -:1010E00055915A3348F4505390F3220F022E220F99 -:1010F000220F200D250FF4CF0EF42195899199919F -:10110000533619F3533729F1533559F1BC01882768 -:101110009927E8945C3621F48991999168945591C6 -:10112000543639F446EF7EF077FF0DC08FEF9FEF16 -:101130000AC055374AE039F0583540E121F05236BF -:1011400042E009F00895FF93EF937DDFEF91FF9167 -:10115000B7CFFF93EF93FC0181918030B9F360DF4B -:10116000FBCFFF93EF9368DFF1CFDF93CF93CDB742 -:10117000DEB72596A3DFCF91DF910895FC016130A2 -:1011800089F028F0623031F16330E1F153C082819F -:10119000882321F085EE0E949D174CC085EE0E94A9 -:1011A000651848C08281882349F00E94F4229093F8 -:1011B0003D0180933C0188E191E0089580913C01DC -:1011C00090913D010E94002387399105B4F58AE092 -:1011D00091E008958281882349F00E94F42290933F -:1011E0003D0180933C0187E091E0089580913C01AE -:1011F00090913D010E940023873991050CF589EFFC -:1012000090E008958281882349F00E94F42290930F -:101210003D0180933C0182EF90E0089580913C0174 -:1012200090913D010E9400238739910564F480EE7E -:1012300090E0089580E090E0089585E191E00895C0 -:1012400084E091E008958BEE90E008950895609118 -:10125000BE017091BF018091C0019091C1010E94B7 -:101260002D2256985E9825982D9826982E98279886 -:101270002F98823061F018F4813031F00895833076 -:1012800049F0843051F00895259A2D9A0895269AB0 -:101290002E9A0895279A2F9A0895259A2D9A279A7B -:1012A0002F9A089587E299E0892B11F00E9427096F -:1012B00080E090E0089556985E9825982D9826989D -:1012C0002E9827982F988FEF90E090938900809325 -:1012D000880090938B0080938A0090938D00809378 -:1012E0008C00259A2D9A2FEF80E792E021508040C4 -:1012F0009040E1F700C00000269A2E9A2FEF80E779 -:1013000092E0215080409040E1F700C00000279A11 -:101310002F9A2FEF80E792E0215080409040E1F734 -:1013200000C0000025982D982FEF80E792E0215013 -:1013300080409040E1F700C0000026982E982FEFE3 -:1013400080E792E0215080409040E1F700C000002B -:1013500027982F9856985E9825982D9826982E981D -:1013600027982F98089589EA8093800089E08093D8 -:10137000810024982C983F988AB18F748AB96E980E -:10138000479A8BB1806B8BB9769A0E945B0986E293 -:1013900099E0892B11F00E94260980E090E00895E1 -:1013A00080E28093000180913E0181110EC00E9475 -:1013B0001F0A81E080933E012FEF83ED90E32150DF -:1013C00080409040E1F700C0000080E40E94250AC0 -:1013D0008093000181112EC00E944F0A809300016A -:1013E000811128C00E944F0A80930001811122C000 -:1013F0008FE30E944F0A8093000181111BC00E945D -:10140000470A80E40E94250A80930001811112C0DE -:101410008CE00E944F0A8093000181110BC00E9452 -:101420004F0A80930001811105C08FE30E944F0A8B -:10143000809300010E94470A809100010895109254 -:10144000B9008AE08093B800089594EA9093BC00B4 -:101450009091BC0097FFFCCF9091B900987F983095 -:1014600021F0903111F081E008958093BB0084E871 -:101470008093BC008091BC0087FFFCCF8091B900B5 -:10148000887F883111F0803471F780E0089584E915 -:101490008093BC008091BC0084FDFCCF08958093B4 -:1014A000BB0084E88093BC008091BC0087FFFCCF28 -:1014B0009091B900987F81E0983209F480E0089516 -:1014C00084E88093BC008091BC0087FFFCCF8091B2 -:1014D000BB00089580910001811115C080E40E9435 -:1014E000250A8093000181110CC082E10E944F0AFD -:1014F00080930001811105C08FEF0E944F0A8093F5 -:1015000000010E94470A84B1807F84B985B1807F41 -:1015100085B98AB1837F8AB98BB1837F8BB93E98B5 -:10152000469808950E94D009809300010E946A0A9B -:1015300080B38C7080BB81B3836F81BBA0E4B1E0CA -:10154000EEE4F1E08EE08E0F11921D928E13FCCF2F -:1015500083EB99E0892B11F00C94B30908959F92C5 -:10156000AF92BF92CF92DF92EF92FF920F931F93B1 -:10157000CF93DF93809100018823E1F080913F01B8 -:101580008F5F80933F01811115C08FEC94E00E9422 -:101590001C080E94D00980930001882329F085EB64 -:1015A00094E00E941C0806C081EA94E00E941C0896 -:1015B0000E945B0900E411E0C0E0D0E0BB24B394DA -:1015C00082E0A82ECC24C394D12C22E9E22E24E080 -:1015D000F22EC730D10500F580910001811164C061 -:1015E00080E40E94250A80930001811112C082E1EB -:1015F0000E944F0A8093000181110BC0C6010C2E7E -:1016000001C0880F0A94EAF780950E944F0A8093E0 -:1016100000010E94470A48C0CA30A1F028F4C8302F -:1016200059F0C93061F005C0CC3089F070F0CD3090 -:1016300089F0209A289810C0219A29980DC0229AE2 -:101640002A980AC0239A2B9807C0529A01C0539A2D -:101650005B9802C03E9A469890EA9A95F1F79FB13E -:10166000799902C082E001C080E091709B25982B9F -:101670007C9902C084E001C080E0892B7D9902C082 -:1016800038E001C030E0832B7E9902C020E101C028 -:1016900020E0822B9FB19095991F9927991F9295D1 -:1016A000990F907E892B10C080910001811174C028 -:1016B00080E40E94250A80930001882309F459C020 -:1016C000912C0E94470A892DF8019081981739F1D1 -:1016D000808380910101882301F18091D90180FFED -:1016E00004C087E994E00E941C088091D90180FF22 -:1016F0000CC0809101011F928F93FF92EF920E9484 -:10170000B5080F900F900F900F908091D90180FF36 -:1017100004C080E994E00E941C08A09201010E948C -:101720006A0A21960F5F1F4FCE30D10509F051CFC5 -:10173000809101018823B1F08150809301018823B9 -:1017400039F08FE99FE00197F1F700C000000AC06F -:10175000AEE4B1E0E0E4F1E0CF01825F91919D93CE -:101760008E13FCCF82E599E0892BC1F00E945209CB -:1017700015C083E10E944F0A809300018111A0CF20 -:1017800081E40E94250A80930001811199CF0E9473 -:10179000600A982E909495CF80E096CF81E0DF91FB -:1017A000CF911F910F91FF90EF90DF90CF90BF905E -:1017B000AF909F900895E82FF0E0E25BFE4F8081AC -:1017C0000895CF92DF92EF92FF920F931F93CF93E2 -:1017D000DF9389E794E00E941C088EE4E82E81E004 -:1017E000F82EC0E0D0E094E7C92E94E0D92E0BE6A5 -:1017F00014E0DF93CF93DF92CF920E94B50881E788 -:1018000094E00E941C08F70181917F0190E00E9402 -:1018100093229F938F931F930F930E94B50889E69D -:1018200094E00E941C0821968DB79EB708960FB6CB -:10183000F8949EBF0FBE8DBFCE30D105D1F6DF919B -:10184000CF911F910F91FF90EF90DF90CF9008956F -:101850008B3B910578F4883A910540F5853A9105DE -:10186000D0F48430910508F0B1C08130910509F4BD -:10187000ADC06BC0803E910508F467C0883E9105FD -:1018800008F4A4C09C01205F31092031310508F023 -:101890005CC090650895853A910509F459C0863A6F -:1018A000910509F058C082E890E40895883A9105BE -:1018B00009F454C0893A910509F453C08A3A910554 -:1018C00009F452C08B3A910509F451C08C3A910544 -:1018D00009F450C08D3A910509F44FC0803B910541 -:1018E00009F44EC08E3A910509F44DC08F3A910526 -:1018F00009F44CC0813B910509F44BC0823B910532 -:1019000009F44AC0833B910509F449C0843B910521 -:1019100009F448C0853B910509F447C0863B910511 -:1019200009F446C0873B910509F445C0883B910501 -:1019300009F444C0893B910509F443C08A3B9105F1 -:1019400009F442C080E094E4089580E090E00895B6 -:1019500081E890E4089583E890E4089582EE94E4A9 -:10196000089589EE94E408958AEE94E4089585EB51 -:1019700094E4089586EB94E4089587EB94E4089545 -:101980008CEC94E408958DEC94E4089583E895E458 -:1019900008958AE895E4089582E995E4089584E934 -:1019A00095E4089581E296E4089583E296E408952B -:1019B00084E296E4089585E296E4089586E296E44A -:1019C000089587E296E408958AE296E408950895DA -:1019D00096E0799FF001112494E5899FE00DF11DB7 -:1019E0001124E60FF11DEE0FFF1FEF5DFE4F8591F5 -:1019F00094910895880F991FFC01E556F040859158 -:101A000094910895880F991FFC01E55EFE4F859122 -:101A10009491089526E0729FF001112444E5849F7B -:101A2000E00DF11D1124E60FF11DEE0FFF1FEF5D1C -:101A3000FE4F859194919C013A9521154FE1340711 -:101A400008F41EC13F512115304120F49F700E94BF -:101A5000020D08959C0130532115304118F4992747 -:101A6000906C0895811520E5920769F40E94ED1BA2 -:101A70004FEF84E39CE0415080409040E1F700C08C -:101A800000000C944F23813020E5920751F489EE39 -:101A900094E00E941C088091D90181608093D90153 -:101AA00008959C0130552115304108F051C0292F6F -:101AB00033272F70332721303105D9F4AC0143701F -:101AC000552702C0220F331F4A95E2F73C68AC014C -:101AD00064E0440F551F6A95E1F744275370242BA7 -:101AE000352B73E0880F991F7A95E1F78076992757 -:101AF0001DC02230310529F4982F8827816F906A04 -:101B0000089523303105A9F4AC014370552721E035 -:101B100030E002C0220F331F4A95E2F73C6843E0F1 -:101B2000880F991F4A95E1F7807E9770822B932B3F -:101B3000089524303105E1F4AC014370552721E0CC -:101B400030E002C0220F331F4A95E2F73A68E7CF30 -:101B50009C0130572115304118F49F709062089510 -:101B60009C0130582115304118F49F70906A0895F7 -:101B7000803E9105E0F4803C910558F58133910554 -:101B800009F46FC048F48932910509F463C08A32C0 -:101B9000910509F46DC072C089339105E9F082386E -:101BA0009105D1F08533910509F44DC067C0833E9E -:101BB000910581F138F4803E9105B9F0823E91059E -:101BC000D9F05CC0863E910561F1873E9105A1F197 -:101BD00055C00E94FA0C08952091EC0120FD02C02E -:101BE00021FF4CC080EE90E049C08091EC0180FF65 -:101BF000F9CF89E390E042C08091EC0182FF0EC0F2 -:101C00008091EC0184FF03C080E090E037C083EE58 -:101C100090E034C08091EC0182FFF2CF82EE90E040 -:101C20002DC08091EC0183FF0BC08091EC0184FDFD -:101C3000EBCF87EE90E022C08091EC0183FFF5CFDF -:101C400086EE90E01BC08091EC0185FF07C089E221 -:101C500090E014C08091EC0185FFF9CF85E390E01E -:101C60000DC08091EC0186FF07C08AE290E006C0BB -:101C70008091EC0186FFF9CF81E390E00E94280C6F -:101C80000895089580916F0108959FB7F894109278 -:101C90005E019FBF9091F201943009F057C090917E -:101CA000E9009F703091EC00232F217030FD20E877 -:101CB000922B24E02093E9002091EB0020FF43C009 -:101CC0002091EE0027FF3FC020915C01222321F0EC -:101CD0002091E80025FF37C010925C0126E030918A -:101CE000E80035FD15C03091F201343061F53091D6 -:101CF000EB0035FD28C0215021F481E080935C0188 -:101D000022C0EFE9FFE03197F1F700C00000E7CF14 -:101D10008093F1008091E80085FD0AC08091E80081 -:101D200080FFFCCF8091E8008E778093E80006C0AA -:101D30008FB7F89421E020935E018FBF9F7090933E -:101D4000E90080E008959F709093E9008FEF089577 -:101D5000CF93DF9300D01F92CDB7DEB79C01809167 -:101D6000F201843019F593E099833B832A839093A1 -:101D7000E9008FEF9091E800815095FD06C095ED48 -:101D80009A95F1F700008111F5CF8091E80085FF69 -:101D90000DC040E050E063E070E0CE0101960E948B -:101DA00078118091E8008E778093E8000F900F9073 -:101DB0000F90DF91CF910895CF93DF9300D01F92C2 -:101DC000CDB7DEB72091F201243021F522E029833E -:101DD0009B838A8383E08093E9008FEF9091E800F2 -:101DE000815095FD06C095ED9A95F1F7000081119F -:101DF000F5CF8091E80085FF0DC040E050E063E042 -:101E000070E0CE0101960E9478118091E8008E77F3 -:101E10008093E8000F900F900F90DF91CF9108957D -:101E20002091F2012430F1F422E02093E9002FEF19 -:101E30003091E800215035FD06C035ED3A95F1F7B7 -:101E400000002111F5CF2091E80025FF0BC040E0F4 -:101E500050E065E070E00E9478118091E8008E7794 -:101E60008093E8000895CF93DF932091F20124300E -:101E700009F048C0EC0180910C018823E1F08091C9 -:101E80000D018823C1F085E08093E9008FEF9091E8 -:101E9000E800815095FD06C095E19A95F1F70000A4 -:101EA0008111F5CF8091E80085FF2CC040E050E023 -:101EB00060E170E017C081E08093E9008FEF9091BE -:101EC000E800815095FD06C095ED9A95F1F7000068 -:101ED0008111F5CF8091E80085FF14C040E050E00B -:101EE00068E070E0CE010E9478118091E8008E7762 -:101EF0008093E80080E1FE01AFE5B1E001900D9232 -:101F00008A95E1F7DF91CF91089580E295E00E94F4 -:101F10001C088091F101811109C00E940D130E94DB -:101F20006A138091E20084608093E20008958CE15E -:101F300095E00E941C081092F101089588E195E057 -:101F40000C941C0884E195E00E941C080C941F2D41 -:101F500080E195E00E941C080E94E9220E94252D44 -:101F60000E940F160C94410E20915D012F5F822F6D -:101F700062E30E94932E992319F020935D01089546 -:101F800010925D0180915E01882371F18091F201D0 -:101F9000843041F58091E9008F702091EC00922F00 -:101FA000917020FD90E8892B94E09093E900909146 -:101FB000EB0090FF14C09091EE0097FF10C090913D -:101FC000E80095FF03C01092F100F9CF9091E8006E -:101FD00090FF05C09091E8009E779093E8008F7085 -:101FE0008093E90010925E01089542E061EC81E087 -:101FF0000E94871242E061EC82E00E94871242E078 -:1020000061EC83E00E94871242E261EC84E00E946E -:10201000871242E161EC85E00C9487128091F40113 -:10202000833009F455C030F4813071F0823009F406 -:102030008EC008958A3009F47AC08B3009F460C0EC -:10204000893009F09CC020C08091F301813A09F0E9 -:1020500096C08091E800877F8093E8008091F70127 -:102060009091F801892B21F460E18FE591E003C0A4 -:1020700060E080E090E070E00E94C3118091E80091 -:102080008B778093E80008958091F301813209F005 -:1020900076C08091F7019091F801009719F00497AC -:1020A00009F06DC08091E800877F8093E8008091FF -:1020B000E80082FD05C08091F2018111F8CF5FC078 -:1020C0008091F10080936F018091E8008B7753C07D -:1020D0008091F301813A09F052C08091F70190910B -:1020E000F801892B09F04BC08091E800877F80932D -:1020F000E8008091E80080FFFCCF80910C0136C0A1 -:102100008091F3018132D9F58091F7019091F80126 -:10211000892BA9F58091E800877F8093E8000E94D1 -:10212000BC128091F50180930C010C94ED1B809101 -:10213000F301813221F58091E800877F8093E800E8 -:102140000E94BC128091F6018093700108958091E5 -:10215000F301813AA1F48091E800877F8093E80041 -:102160008091E80080FFFCCF809170018093F100A6 -:102170008091E8008E778093E8000C94BC1208955B -:1021800084B7877F84BF88E10FB6F894809360009E -:10219000109260000FBE90E080E80FB6F894809334 -:1021A0006100909361000FBE0E949C160E940D1367 -:1021B0000E946A138091E20084608093E20085E4CB -:1021C0009EE00E94282278940E94EF150E949E169D -:1021D00082E091E00E940A160E940D2D8FEF94E09C -:1021E0000E941C088091F201853089F48BEF94E005 -:1021F0000E941C080E94AD228091F001882391F377 -:102200000E94D522882371F30E946211EBCF0E94B5 -:10221000CC16E8CF292F332723303105C9F064F4D9 -:102220002130310581F02230310509F043C08DE8BD -:1022300090E028E535E042C021323105F1F022324C -:10224000310541F137C082E190E025EE35E036C03E -:1022500099278130910541F08230910541F0892B19 -:1022600049F5E4E5F5E005C0ECE3F5E002C0E4E2A1 -:10227000F5E0849190E09F0121C06530D8F4E62F0D -:10228000F0E0EE0FFF1FEB5DFE4F2081318189E012 -:1022900090E014C0653070F470E0FB01EE0FFF1F9A -:1022A000E55EFE4F20813181FB01EA5EFE4F8081B9 -:1022B00090E004C080E090E020E030E0FA0131835B -:1022C0002083089580E189BD82E189BD09B400FEC3 -:1022D000FDCF8091D8008F7D8093D8008091E00061 -:1022E00082608093E0008091E00081FDFCCF089542 -:1022F000CF92DF92EF92FF920F931F93CF93DF93D2 -:10230000EC018B016A010E94DB12811133C0C11400 -:10231000D10439F0F60180819181081B190BC80F97 -:10232000D91FE12CF12C0115110519F18091E8005C -:1023300085FD16C08091E8008E778093E800C11477 -:10234000D10449F0F60180819181E80EF91EF182F5 -:10235000E08285E00FC00E94DB12882321F30AC0CF -:1023600089918093F10001501109FFEFEF1AFF0AE4 -:10237000DACF80E0DF91CF911F910F91FF90EF9026 -:10238000DF90CF9008952091F9013091FA0126173E -:10239000370748F06115710539F42091E8002E7770 -:1023A0002093E80001C0B90140E061157105A9F171 -:1023B0002091F201222309F443C0253009F442C0E0 -:1023C0002091E80023FD40C02091E80022FD32C0AA -:1023D0002091E80020FFE9CF4091F3002091F20026 -:1023E00030E0342BFC01CF016115710559F0283024 -:1023F000310540F481918093F100615071092F5FA4 -:102400003F4FF1CF41E02830310509F040E0209105 -:10241000E8002E772093E800C8CF4111C9CF0AC049 -:102420008091F201882361F0853061F08091E800AD -:1024300083FD0AC08091E80082FFF2CF80E008951A -:1024400082E0089583E0089581E008952091F901E4 -:102450003091FA012617370748F06115710539F4F4 -:102460002091E8002E772093E80001C0B901FC011B -:1024700020E06115710591F18091F201882309F442 -:1024800040C0853009F43FC08091E80083FD3DC025 -:102490008091E80082FD2FC08091E80080FFE9CFA5 -:1024A0002091F3008091F20090E0922B611571056C -:1024B00059F08830910540F424912093F100319631 -:1024C000615071090196F2CF21E0089709F020E0F0 -:1024D0008091E8008E778093E800CBCF2111CCCF9C -:1024E0000AC08091F201882361F0853061F080910B -:1024F000E80083FD0AC08091E80082FFF2CF80E00F -:10250000089582E0089583E0089581E00895982F6A -:10251000973058F59093E900981739F07091EC00D6 -:102520002091ED005091F00003C0242F762F50E051 -:1025300021FF19C03091EB003E7F3093EB003091CA -:10254000ED003D7F3093ED003091EB003160309332 -:10255000EB007093EC002093ED005093F00020917D -:10256000EE0027FF07C09F5FD3CF8F708093E900F5 -:1025700081E0089580E008958091F30187FF11C004 -:102580008091E80082FD05C08091F2018111F8CFB1 -:1025900011C08091E8008B770BC08091F2018823F5 -:1025A00049F08091E80080FFF8CF8091E8008E77B5 -:1025B0008093E80008952091E4003091E50095E6CD -:1025C0004091EC00842F817040FF22C08091E80090 -:1025D00080FD1CC08091F201882391F0853091F03C -:1025E0008091EB0085FD10C04091E4005091E50022 -:1025F0004217530729F39A01915011F784E0089587 -:1026000082E0089583E0089581E0089580E00895D0 -:102610004091E80042FFDECF08950E947B130E94A4 -:102620008313E0EEF0E0808181608083E8EDF0E0EC -:1026300080818F77808319BCA7EDB0E08C918E7F6D -:102640008C9380818F7E80831092F10108950F9387 -:102650001F93CF93DF930E947B130E948313C8EDD7 -:10266000D0E088818F77888388818068888388819B -:102670008F7D888319BC1092F2011092EE011092A6 -:10268000F0011092EF0100EE10E0F80180818B7FE5 -:10269000808388818160888342E060E080E00E94DE -:1026A0008712E1EEF0E080818E7F8083E2EEF0E041 -:1026B000808181608083808188608083F80180814F -:1026C0008E7F8083888180618883DF91CF911F9185 -:1026D0000F910895E8EDF0E080818F7E8083E7ED33 -:1026E000F0E080818160808384E082BF81E080931C -:1026F000F1010C942713E8EDF0E080818E7F808358 -:102700001092E20008951092DA001092E10008950C -:102710001F920F920FB60F9211242F933F934F9356 -:102720005F936F937F938F939F93AF93BF93EF9339 -:10273000FF938091E10082FF0BC08091E20082FF55 -:1027400007C08091E1008B7F8093E1000E94B40F6D -:102750008091DA0080FF1FC08091D80080FF1BC0ED -:102760008091DA008E7F8093DA008091D90080FF1B -:102770000DC080E189BD82E189BD09B400FEFDCFB5 -:1027800081E08093F2010E94850F05C019BC109270 -:10279000F2010E94970F8091E10080FF19C08091A3 -:1027A000E20080FF15C08091E2008E7F8093E200FE -:1027B0008091E20080618093E2008091D800806285 -:1027C0008093D80019BC85E08093F2010E94A20F8B -:1027D0008091E10084FF30C08091E20084FF2CC032 -:1027E00080E189BD82E189BD09B400FEFDCF809101 -:1027F000D8008F7D8093D8008091E1008F7E8093F8 -:10280000E1008091E2008F7E8093E2008091E200FF -:1028100081608093E2008091EE01882311F084E0D2 -:1028200007C08091E30087FD02C081E001C083E022 -:102830008093F2010E94A80F8091E10083FF29C0DC -:102840008091E20083FF25C08091E100877F809323 -:10285000E10082E08093F2011092EE018091E100AC -:102860008E7F8093E1008091E2008E7F8093E20072 -:102870008091E20080618093E20042E060E080E0CD -:102880000E9487128091F00088608093F0000E947F -:102890009E0FFF91EF91BF91AF919F918F917F918B -:1028A0006F915F914F913F912F910F900FBE0F90BD -:1028B0001F9018951F920F920FB60F9211242F930D -:1028C0003F934F935F936F937F938F939F93AF93B8 -:1028D000BF93CF93DF93EF93FF93C091E900CF7045 -:1028E0008091EC00D82FD17080FDD0E81092E900E3 -:1028F0008091F000877F8093F00078940E949E146E -:102900001092E9008091F00088608093F000CD2B58 -:10291000CF70C093E900FF91EF91DF91CF91BF910C -:10292000AF919F918F917F916F915F914F913F9167 -:102930002F910F900FBE0F901F9018951F93CF935C -:10294000DF93CDB7DEB7AA970FB6F894DEBF0FBE00 -:10295000CDBFE3EFF1E088E08E0F9091F10091930D -:102960008E13FBCF0E940E108091E80083FF1FC1E1 -:102970008091F3019091F401492F50E04A305105C4 -:1029800008F015C1FA01EA5AFF4F0C94B32E8038B3 -:1029900081F0823809F00BC18091F7018F7080932C -:1029A000E9008091EB0085FB882780F91092E9000F -:1029B00006C08091EF019091F00191118260909199 -:1029C000E800977F9093E8008093F1001092F10067 -:1029D000C8C0282F2D7F09F0EAC0882319F0823063 -:1029E00061F0E5C08091F501813009F0E0C09330DD -:1029F00009F080E08093F0012BC08091F5018111F6 -:102A000027C08091F7018F7009F4D1C08093E9004D -:102A10002091EB0020FF1CC0933021F48091EB004B -:102A2000806214C09091EB0090619093EB0021E0E4 -:102A300030E0A90102C0440F551F8A95E2F7409388 -:102A4000EA001092EA008091EB0088608093EB002E -:102A50001092E9008091E800877F86C08111A7C0AD -:102A60001091F5011F778091E3008078812B80938E -:102A7000E3008091E800877F8093E8000E94BC1209 -:102A80008091E80080FFFCCF8091E3008068809314 -:102A9000E300111102C082E001C083E08093F201E3 -:102AA00086C08058823008F082C08091F5019091F4 -:102AB000F6018C3D53E0950779F583E08A838AE23D -:102AC00089834FB7F894DE01139620E03EE051E28F -:102AD000E32FF0E050935700E49120FF03C0E2950C -:102AE000EF703F5FEF708E2F90E0EA3010F0C796E6 -:102AF00001C0C0968D939D932F5F243149F74FBF3E -:102B00008091E800877F8093E8006AE270E0CE0160 -:102B100001960E94C31114C0AE014F5F5F4F6091D8 -:102B2000F7010E940A11BC01892B09F440C0909161 -:102B3000E800977F9093E80089819A810E9426128D -:102B40008091E8008B778093E80031C0803879F578 -:102B50008091E800877F8093E8008091EE01809368 -:102B6000F1008091E8008E778093E8000E94BC120B -:102B70001EC081111CC09091F5019230C0F480916B -:102B8000E800877F8093E8009093EE010E94BC12DA -:102B90008091EE01811106C08091E30087FD02C0A3 -:102BA00081E001C084E08093F2010E94F50F8091E2 -:102BB000E80083FF0AC08091E800877F8093E800E7 -:102BC0008091EB0080628093EB00AA960FB6F89498 -:102BD000DEBF0FBECDBFDF91CF911F910895CF9380 -:102BE0008091F2018823A1F0C091E900CF7090910B -:102BF000EC00892F817090FD80E8C82B1092E900CD -:102C00008091E80083FD0E949E14CF70C093E9007C -:102C1000CF91089590937601809375010895E09186 -:102C20007501F0917601309721F00190F081E02D4F -:102C3000099480E00895EF92FF920F931F93CF9332 -:102C4000DF93E0917501F09176013097B1F18C013D -:102C50000280F381E02D09958091D90182FF2DC07A -:102C600080FF04C08AE197E00E941C08E80110E19F -:102C700084E1E82E87E0F82E8091D90180FF0BC017 -:102C800088811F928F93FF92EF920E94B5080F9058 -:102C90000F900F900F90115021961111EDCF809150 -:102CA000D90180FF0AC082E197E0DF91CF911F91A7 -:102CB0000F91FF90EF900C941C08DF91CF911F9122 -:102CC0000F91FF90EF900895E0917501F0917601DA -:102CD000309721F00480F581E02D0994089520912A -:102CE0007301309174018217930771F0909374010E -:102CF00080937301E0917501F0917601309721F096 -:102D00000680F781E02D099408952091710130919A -:102D100072018217930771F0909372018093710191 -:102D2000E0917501F0917601309721F00084F185F2 -:102D3000E02D0994089508950C949B160E94EB22AF -:102D40000E94920A0C94B123CF93C82F8091D9018D -:102D500082FF1EC080FF04C083E397E00E941C082E -:102D60008091D90180FF0CC01F92CF938EE297E033 -:102D70009F938F930E94B5080F900F900F900F9024 -:102D80008091D90180FF04C08CE297E00E941C086A -:102D90008C2FCF910C94410ECF92DF92EF92FF9245 -:102DA0000F931F93CF93DF93CDB7DEB72B970FB65B -:102DB000F894DEBF0FBECDBF0E94AF0A88E7C82ED1 -:102DC00081E0D82E00E010E0E02E802F0E94DB0B87 -:102DD000F60141916F01F42EF826B1F40F5F1F4FF9 -:102DE0000E30110589F78FEF89838A831B820E9439 -:102DF000F4228160782F9D838C8349815A816B8175 -:102E00008D810E946F1740C09091D90191FF04C03D -:102E10008B870E94E10B8B8520E030E04F2D50E046 -:102E2000922FBA01022E02C0759567950A94E2F7B7 -:102E300060FF24C02E83EF8221E030E0690102C0F0 -:102E4000CC0CDD1C9A95E2F790E08C219D21892B1A -:102E500009F420E028870E94F4228160782F9A8765 -:102E600089874E815F8168858A850E946F17F80186 -:102E7000E858FE4F8081C826C08206C02F5F3F4FB2 -:102E80002630310569F6AACF0E94222710917701DA -:102E90000E940F161817A1F00E940F168093770159 -:102EA0002B960FB6F894DEBF0FBECDBFDF91CF914A -:102EB0001F910F91FF90EF90DF90CF900C94A4168C -:102EC0002B960FB6F894DEBF0FBECDBFDF91CF912A -:102ED0001F910F91FF90EF90DF90CF900895CF93C7 -:102EE000DF93CDB7DEB72B970FB6F894DEBF0FBEDA -:102EF000CDBF4F83588769877A878B87DE0111960C -:102F000086E0FD0111928A95E9F785E0FE0137968A -:102F100001900D928A95E1F749815A816B817C81FC -:102F20008D819E810E94871E2B960FB6F894DEBF7E -:102F30000FBECDBFDF91CF910895CF93882309F4C1 -:102F4000C2C0C82F823859F40E940F1681FDBBC041 -:102F500089E30E9423210E94022289E30CC0833866 -:102F600079F40E940F1680FDAEC083E50E942321F4 -:102F70000E94022283E50E947621CF910C940222C6 -:102F8000843859F40E940F1682FD9DC087E40E9488 -:102F900023210E94022287E4EECF8CEF8C0F813A2E -:102FA00048F48C2F0E94B52B81118DC08C2F0E946C -:102FB0002321E3CF80E28C0F883048F4C77081E092 -:102FC00001C0880FCA95EAF70E94CB21D6CF8BE5C6 -:102FD0008C0F833078F4C53A29F0C63A31F083E893 -:102FE00090E005C081E890E002C082E890E0CF91D7 -:102FF0000C946F1688E58C0F833108F064C0C83AD2 -:1030000039F1C93A41F1CA3A49F1CB3A51F1CC3AD6 -:1030100059F1CD3A61F1C03B69F1CE3A71F1CF3A45 -:1030200079F1C13B81F1C23B89F1C33B91F1C43BD2 -:1030300099F1C53BA1F1C63BA9F1C73BB1F1C83B32 -:10304000B9F1C93BC1F1CA3BC9F180E090E038C099 -:1030500082EE90E035C089EE90E032C08AEE90E0DA -:103060002FC085EB90E02CC086EB90E029C087EB69 -:1030700090E026C08CEC90E023C08DEC90E020C066 -:1030800083E891E01DC08AE891E01AC082E991E0EE -:1030900017C084E991E014C081E292E011C083E29C -:1030A00092E00EC084E292E00BC085E292E008C09C -:1030B00086E292E005C087E292E002C08AE292E0F6 -:1030C000CF910C948516CF910895882309F44BC0B5 -:1030D000823859F40E940F1681FF45C089E30E948F -:1030E00023210E94022289E30CC0833871F40E94DC -:1030F0000F1680FF38C083E50E9423210E94022220 -:1031000083E50E9476210C940222843859F40E94AF -:103110000F1682FF28C087E40E9423210E9402220A -:1031200087E4EFCF9CEF980F913A58F390E2980F15 -:10313000983050F4877091E001C0990F8A95EAF7B2 -:10314000892F0E94D121DFCF9BE5980F933020F487 -:1031500080E090E00C946F16885A833120F480E070 -:1031600090E00C9485160895882321F00E94CB21CD -:103170000C9402220895882321F00E94D1210C94FE -:1031800002220895BF92CF92DF92EF92FF920F93A7 -:103190001F93CF93DF9300D000D000D0CDB7DEB720 -:1031A00025E0FC01DE01119601900D922A95E1F7D0 -:1031B000FC01408131810281258122952F7063813C -:1031C0007481672B09F4E7C23F3F19F44F3F09F4BC -:1031D000E2C27C0149833A8389819A812E830E94CD -:1031E000E220182FB92E0E94E1200E94A81FEB2D8B -:1031F000E295EF70F0E0E05AFF4F2E810C94B32E71 -:103200008B2D807F9B2D9F70F92E882319F0F294CF -:1032100080EFF822002349F0FF2009F469C28F2DC6 -:103220000E94DB210E94022263C2812F0E94651846 -:10323000FF2009F4B0C28F2D0E94E12126960FB61F -:10324000F894DEBF0FBECDBFDF91CF911F910F91DC -:10325000FF90EF90DF90CF90BF900C9402223B2D17 -:10326000307F8B2D8F70303211F08295807F11234B -:1032700019F0113021F12DC00023B9F0222309F4F7 -:10328000A1C1213009F09EC126960FB6F894DEBF89 -:103290000FBECDBFDF91CF911F910F91FF90EF90A7 -:1032A000DF90CF90BF900C94EB21222319F02130B6 -:1032B00009F471C28E830E94EE218E8197C1002392 -:1032C00021F0263008F067C27DC1253008F063C2C6 -:1032D0008DC1002321F0222309F474C109C22223E5 -:1032E00009F484C11AC22B2D26952695237030E04F -:1032F0002115310521F021303105D1F04CC20023D8 -:1033000021F0812F9B2D937002C080E090E02696E3 -:103310000FB6F894DEBF0FBECDBFDF91CF911F91E6 -:103320000F91FF90EF90DF90CF90BF900C946F16AD -:10333000002321F0812F9B2D937002C080E090E04C -:1033400026960FB6F894DEBF0FBECDBFDF91CF91AA -:103350001F910F91FF90EF90DF90CF90BF900C9452 -:103360008516812F002319F00E94A82502C00E9413 -:10337000102626960FB6F894DEBF0FBECDBFDF91A4 -:10338000CF911F910F91FF90EF90DF90CF90BF9062 -:103390000C9495268B2D837009F07BC00111FBC125 -:1033A000812F829586958770880F880F912F9F7047 -:1033B000C92ED12CE12CF12C082E04C0CC0CDD1C24 -:1033C000EE1CFF1C0A94D2F714FF12C04FE050E02D -:1033D00060E070E004C0440F551F661F771F8A9598 -:1033E000D2F7CB01BA01609570958095909503C096 -:1033F00060E070E0CB012B2D269526952370422F9F -:1034000050E042305105D9F04330510569F16C2943 -:103410007D298E299F294130510551F126960FB6FD -:10342000F894DEBF0FBECDBFDF91CF911F910F91FA -:10343000FF90EF90DF90CF90BF900C94CF1F6C293E -:103440007D298E299F2926960FB6F894DEBF0FBEE0 -:10345000CDBFDF91CF911F910F91FF90EF90DF9043 -:10346000CF90BF900C94EB1F0E94CF1FC701B601F5 -:1034700026960FB6F894DEBF0FBECDBFDF91CF9179 -:103480001F910F91FF90EF90DF90CF90BF900C9421 -:10349000B31F002319F08B2D817001C086958823FE -:1034A00009F479C1812F829586958770880F880FDE -:1034B000912F9F70C92ED12CE12CF12C082E04C025 -:1034C000CC0CDD1CEE1CFF1C0A94D2F714FF12C0BA -:1034D0004FE050E060E070E004C0440F551F661FED -:1034E000771F8A95D2F7CB01BA01609570958095C8 -:1034F000909503C060E070E0CB012B2D26952695BA -:103500002370422F50E042305105D9F0433051052D -:1035100069F16C297D298E299F294130510551F18E -:1035200026960FB6F894DEBF0FBECDBFDF91CF91C8 -:103530001F910F91FF90EF90DF90CF90BF900C9470 -:10354000A9206C297D298E299F2926960FB6F894EB -:10355000DEBF0FBECDBFDF91CF911F910F91FF90C6 -:10356000EF90DF90CF90BF900C94C5200E94A920CF -:10357000C701B60126960FB6F894DEBF0FBECDBFC9 -:10358000DF91CF911F910F91FF90EF90DF90CF903F -:10359000BF900C948D20103FD1F118F4103E50F4E0 -:1035A000A2C0123F09F464C008F44DC0133F09F4EF -:1035B00074C099C01F708B2D8F710023A1F00E94E1 -:1035C0002620812F26960FB6F894DEBF0FBECDBF02 -:1035D000DF91CF911F910F91FF90EF90DF90CF90EF -:1035E000BF900C94B4180E944720812F26960FB6E6 -:1035F000F894DEBF0FBECDBFDF91CF911F910F9129 -:10360000FF90EF90DF90CF90BF900C94BB180023F9 -:10361000B1F0253008F0BFC08B2D8F7126960FB604 -:10362000F894DEBF0FBECDBFDF91CF911F910F91F8 -:10363000FF90EF90DF90CF90BF900C946C202630DD -:1036400008F0A9C0E9CF0023A9F08B2D8F71269631 -:103650000FB6F894DEBF0FBECDBFDF91CF911F91A3 -:103660000F91FF90EF90DF90CF90BF900C942620A9 -:10367000002359F38B2D8F7126960FB6F894DEBF79 -:103680000FBECDBFDF91CF911F910F91FF90EF90B3 -:10369000DF90CF90BF900C944720002399F08B2DA2 -:1036A0008F7126960FB6F894DEBF0FBECDBFDF91A7 -:1036B000CF911F910F91FF90EF90DF90CF90BF902F -:1036C0000C94112026960FB6F894DEBF0FBECDBF26 -:1036D000DF91CF911F910F91FF90EF90DF90CF90EE -:1036E000BF900C9407200023A9F0222309F4ADCF4A -:1036F000812F26960FB6F894DEBF0FBECDBFDF91A7 -:10370000CF911F910F91FF90EF90DF90CF90BF90DE -:103710000C949D17222309F4ADCF812F26960FB666 -:10372000F894DEBF0FBECDBFDF91CF911F910F91F7 -:10373000FF90EF90DF90CF90BF900C9465184B2DC9 -:103740004F70612FC7010E94BE0826960FB6F894ED -:10375000DEBF0FBECDBFDF91CF911F910F91FF90C4 -:10376000EF90DF90CF90BF900C942B1F4B2D4F709C -:10377000612FC70126960FB6F894DEBF0FBECDBFEE -:10378000DF91CF911F910F91FF90EF90DF90CF903D -:10379000BF900C94E70C26960FB6F894DEBF0FBED0 -:1037A000CDBFDF91CF911F910F91FF90EF90DF90F0 -:1037B000CF90BF9008950E94E8210E94BD210E94F1 -:1037C00002220E94C8270E94952680E090E00E9475 -:1037D0006F1680E090E00C9485160E94D8210C941E -:1037E000DB1B0E94E220292F22952F7030E02C3025 -:1037F00031054CF42A3031056CF422503109223065 -:10380000310588F407C02C30310549F02F303105DF -:1038100031F009C0803E48F0803F29F406C093FB98 -:10382000882780F9089580E0089581E00895CF9376 -:10383000DF9300D000D01F92CDB7DEB70F900F906E -:103840000F900F900F90DF91CF910895CF93DF935A -:1038500000D000D000D0CDB7DEB726960FB6F894D2 -:10386000DEBF0FBECDBFDF91CF9108951F93CF93E1 -:10387000DF93C091860116E080918701C81799F007 -:10388000D0E01C9FF0011D9FF00D1124E857FE4F62 -:103890004081518162817381848195810E94261CBF -:1038A0002196C770E9CFDF91CF911F910895409184 -:1038B000B8015091B9016091BA017091BB0180913A -:1038C000BC019091BD010C94261C8091BD01829594 -:1038D0008F7009F054C08091BA01882309F44FC059 -:1038E00080918601A09187016091B8017091B90122 -:1038F0004091BB015091BC01B6E08A1709F43FC06A -:1039000090E041155105C1F17F3F11F46F3FA1F1E6 -:10391000B89FF001B99FF00D1124E857FE4F2181A7 -:1039200072132AC02081621327C02281211124C072 -:10393000238134812417350710F421503109241BC9 -:10394000350B283C3105C0F42091BD012F7020615A -:103950002093BD0126E0289FF001299FF00D11243E -:10396000E357FE4F80818F708061808388EB91E008 -:103970000E94C2180C94361C01968770BECF089521 -:10398000CF92DF92EF92FF920F931F93CF93DF932B -:10399000CDB7DEB762970FB6F894DEBF0FBECDBFCE -:1039A0008C0185E0F801DE011D9601900D928A954B -:1039B000E1F7D8014C9111965C91119712966C9198 -:1039C00012971396CD90DC9014973091B8017091B6 -:1039D000B9018091BB019091BC01009709F46BC1C2 -:1039E0007F3F19F43F3F09F466C1E090BA01EE2031 -:1039F00009F4C0C02091BD01C816D90628F0F6010F -:103A0000E81BF90BCF0104C0809590958C0D9D1D8E -:103A1000FF24F394883C910578F0F12C207F09F085 -:103A2000C6C07C2DD98AC88A89890E94171C88EB58 -:103A300091E00E94C218B1C0822F807F09F046C079 -:103A4000751314C0341312C0611110C02F7020619F -:103A50002093BD010E94571C88EB91E00E94C21880 -:103A60008091BD01D80115968C932EC0CD2819F1F7 -:103A70005F3F11F44F3FF9F0F62E61111CC08091A9 -:103A800086012091870136E0821709F45AC090E040 -:103A9000389FF001399FF00D1124E857FE4F7181D6 -:103AA000571306C07081471303C07281711103C0A0 -:103AB00001968770E9CFF62E662309F418C180912C -:103AC000BD0181608093BD01F12C11C1751308C047 -:103AD000341306C0611104C08091BD01D801C3C078 -:103AE0004D875E878D859E856A8B0E94F11B6A8952 -:103AF0008823E1F16623D1F12091BD01822F8295C7 -:103B00008F7090E0029774F08091B8019091B901A4 -:103B100098878F831986DB86CA862C87CE01079605 -:103B20000E94C21886E0F801A8EBB1E001900D9266 -:103B30008A95E1F70E94651C0E94571CFF24F394AC -:103B4000D6C04D875E878D859E850E94E220292FF5 -:103B500022952F7030E0223031050CF0BCC09F70F0 -:103B600009F0B6C0805E883008F4C1C0C8010E9468 -:103B7000C218E4CFC816D90608F453C0F601E81BF2 -:103B8000F90BCF01883C910508F450C0F12C7C2D35 -:103B9000D98AC88A89890E94171CE8EBF1E086E07F -:103BA000DF011D928A95E9F70E94571CA0C075138A -:103BB00014C0341312C0611110C08091BD01F8010E -:103BC0008583C8010E94C21886E0E8EBF1E0DF01BE -:103BD0001D928A95E9F7FE2C8AC04D875E878D85F8 -:103BE0009E856A8B0E94F11B6A89882309F4BECFE7 -:103BF000662309F4BBCF2091BD01822F82958F707F -:103C000090E002970CF48ECF8091B8019091B901A9 -:103C10009A8389831B82DD82CC822E83CE0101961A -:103C20007FCF809590958C0D9D1DACCFF62E662391 -:103C300009F49CCF75132EC034132CC02091BD0104 -:103C400020FD1FC0822F82958F70D9F0D801159664 -:103C50002C9315978F3049F08F5F982F9295907F16 -:103C6000822F8F70892B15968C93C8010E94C218E1 -:103C700086E0F801A8EBB1E001900D928A95E1F79A -:103C800093CF86E0F801A8EBB1E001900D928A9500 -:103C9000E1F72DC04D875E878D859E850E94F11BC3 -:103CA000811140CF8091BD0181608093BD01C80129 -:103CB0000E94C2181CC0662309F458CF4D875E8746 -:103CC0008D859E850E94F11B882309F44FCF2ACF52 -:103CD000811148CF0CC0243031050CF047CF9F70C4 -:103CE00009F440CFF8019581907F09F03BCF8F2DEB -:103CF00062960FB6F894DEBF0FBECDBFDF91CF91B5 -:103D00001F910F91FF90EF90DF90CF9008951F9338 -:103D1000CF93DF93CDB7DEB72C970FB6F894DEBF05 -:103D20000FBECDBF4F83588769877A878B879C8763 -:103D3000CE0107960E94C01C882369F08F81988568 -:103D40002A853B85232BF1F19F3F09F063C08F3F0C -:103D500009F060C037C086E0FE013796DE0111969B -:103D600001900D928A95E1F76F817885EA85FB8550 -:103D7000309741F17F3F11F46F3F21F1209187018E -:103D800030E0C9010196877099274091860150E083 -:103D90008417950709F447C069837A83FD83EC8310 -:103DA00096E0929FD001939FB00D1124A857BE4F6B -:103DB000FE01319601900D929A95E1F7809387016B -:103DC0000E94361C16E08091860190918701891728 -:103DD000C1F1189FC001112488579E4F0E94C01C3A -:103DE000882379F1E09186011E9FF0011124E857A4 -:103DF000FE4F4081518162817381848195810E944F -:103E0000261C8091860190E0019687709927809307 -:103E10008601D9CF4F81588569857A858B859C85A8 -:103E20000E94261CCFCF0E94ED1B1092870110929A -:103E30008601E8EBF1E086E0DF011D928A95E9F763 -:103E4000C1CF2C960FB6F894DEBF0FBECDBFDF9169 -:103E5000CF911F910895EF92FF920F931F93CF93ED -:103E6000DF938C01892B09F46CC0F12CEE24E394D0 -:103E7000E8012196F8018491843740F4843008F0F9 -:103E800051C0813081F0823019F15BC0853709F46F -:103E900044C0A8F19CE7980F903708F052C08F7784 -:103EA0000E94651841C00E5F1F4FFE01C49180E261 -:103EB0008C0F883048F4C7708E2D01C0880FCA95CA -:103EC000EAF70E94DB2114C08C2F0E949D172DC0A1 -:103ED0000E5F1F4FFE01C49180E28C0F883058F4B2 -:103EE000C7708E2D01C0880FCA95EAF70E94E121A4 -:103EF0000E9402221AC08C2F0E94651816C00E5F05 -:103F00001F4FFE01C491CC2381F08FE99FE0019700 -:103F1000F1F700C00000C150F6CF0E5F1F4FFE0149 -:103F2000F49003C00E949D178E018F2D882309F401 -:103F30009FCFEFE9FFE03197F1F700C0000081501B -:103F4000F5CFDF91CF911F910F91FF90EF900895E2 -:103F500008956093C2017093C3018093C40190934C -:103F6000C5010C94DB1B0F931F930091C2011091AC -:103F7000C3012091C4013091C501DC01CB01802B2C -:103F8000912BA22BB32B8093C2019093C301A093DA -:103F9000C401B093C5011F910F910C94DB1B0F93CB -:103FA0001F930091C2011091C3012091C40130916F -:103FB000C501DC01CB0180239123A223B32380938D -:103FC000C2019093C301A093C401B093C5011F9196 -:103FD0000F910C94DB1B0F931F930091C201109162 -:103FE000C3012091C4013091C501DC01CB018027C0 -:103FF0009127A227B3278093C2019093C301A09376 -:10400000C401B093C5011F910F910C94DB1B10925A -:10401000BE011092BF011092C0011092C1010C9418 -:10402000DB1B41E050E060E070E004C0440F551F2E -:10403000661F771F8A95D2F74093BE015093BF0148 -:104040006093C0017093C1010C94DB1B41E050E010 -:1040500060E070E004C0440F551F661F771F8A950B -:10406000D2F78091BE019091BF01A091C001B091A3 -:10407000C101482B592B6A2B7B2B4093BE015093D7 -:10408000BF016093C0017093C1010C94DB1B41E040 -:1040900050E060E070E004C0440F551F661F771FBA -:1040A0008A95D2F740955095609570958091BE01A4 -:1040B0009091BF01A091C001B091C1014823592343 -:1040C0006A237B234093BE015093BF016093C001DC -:1040D0007093C1010C94DB1B41E050E060E070E0A4 -:1040E00004C0440F551F661F771F8A95D2F7809131 -:1040F000BE019091BF01A091C001B091C1014827BC -:1041000059276A277B274093BE015093BF016093D4 -:10411000C0017093C1010C94DB1B0F931F9300919E -:10412000BE011091BF012091C0013091C101DC019D -:10413000CB01802B912BA22BB32B8093BE019093AC -:10414000BF01A093C001B093C1011F910F910C94C6 -:10415000DB1B0F931F930091BE011091BF012091B3 -:10416000C0013091C101DC01CB0180239123A22346 -:10417000B3238093BE019093BF01A093C001B0937D -:10418000C1011F910F910C94DB1B0F931F930091A2 -:10419000BE011091BF012091C0013091C101DC012D -:1041A000CB0180279127A227B3278093BE0190934C -:1041B000BF01A093C001B093C1011F910F910C9456 -:1041C000DB1B0895CF92DF92EF92FF920F931F9324 -:1041D000CF93DF938C01C090C201D090C301E090D7 -:1041E000C401F090C5014091BE015091BF016091A2 -:1041F000C0017091C101C42AD52AE62AF72ACFE16D -:10420000D0E0D701C6010C2E04C0B695A7959795AE -:1042100087950A94D2F780FF07C0B8018C2F0E94BF -:104220000A0D8130910531F4219758F7B80180E0EB -:104230000E940A0DDF91CF911F910F91FF90EF9097 -:10424000DF90CF90089590910C01992321F09091E7 -:104250000D01911109C020910E0130910F01F9015A -:1042600032969FEF40E030C0982F969596959695A0 -:104270009F30A0F4E0910E01F0910F01E90FF11DC4 -:10428000877021E030E0A90102C0440F551F8A95D4 -:10429000E2F7CA019181892B818308959091D90118 -:1042A00090FF23C01F928F9384E697E09F938F9394 -:1042B0000E94B5080F900F900F900F9008959F3FA8 -:1042C00039F04F5F4E3041F051915813F8CF0DC087 -:1042D0005111F7CF942FF5CF9F3F39F0F901E90F36 -:1042E000F11D97FDFA9582830895089590910C0130 -:1042F000992321F090910D01911109C020910E0197 -:1043000030910F01F9013296205F3F4F30C0982F56 -:104310009695969596959F30A8F4E0910E01F091B0 -:104320000F01E90FF11D877021E030E0A90102C003 -:10433000440F551F8A95E2F7CA0180959181892320 -:10434000818308959091D90190FF16C01F928F9399 -:1043500086E497E09F938F930E94B5080F900F908B -:104360000F900F9008953196E217F30729F090818E -:104370009813F9CF1082F7CF089581E090E0E09193 -:104380000E01F0910F01E80FF91F108201968031A4 -:104390009105A9F708959091D801892B8093D801B0 -:1043A000089580959091D80189238093D80108952C -:1043B0001092D80108959091D701892B8093D7014D -:1043C000089580959091D70189238093D70108950E -:1043D0001092D70108958093C60108951092C601E6 -:1043E000089580910E0190910F01FC0131969C017E -:1043F000205F3F4F80E0919191118F5FE217F307AB -:10440000D1F70895E0910E01F0910F018091D8014C -:104410008083E0910E01F0910F0190818091D7018E -:10442000892B80838091C601882361F0E0910E0181 -:10443000F0910F019081892B80830E94F1218111DD -:104440001092C60180910E0190910F010C941B16E1 -:1044500090933B0180933A010895CF92DF92EF92BF -:10446000FF926C01EE24FF24C114D104E104F10495 -:1044700021F0C701B60120E101C020E0C72ED82EEF -:10448000E92EFF24C114D104E104F10419F0285FDE -:10449000C701B6016B017C0154E0F694E794D79410 -:1044A000C7945A95D1F7C114D104E104F10419F06D -:1044B0002C5FC701B6016B017C0142E0F694E794E2 -:1044C000D794C7944A95D1F7C114D104E104F104FB -:1044D00019F02E5FC701B601DC01CB01B695A79597 -:1044E00097958795892B8A2B8B2B09F02F5F822F2D -:1044F000FF90EF90DF90CF9008958295982F9C7C4D -:10450000392F36953695282F237344E0249FC00118 -:104510001124932F982B292F2A7A2695892F857578 -:10452000880F822B08951F93CF93DF931F92CDB7EF -:10453000DEB799830E947D22182F9981892F0E94CE -:104540007D22212F30E0322F2227A901482BCA01DA -:104550000F90DF91CF911F9108958091F2018430E7 -:1045600009F11092DA0120E488E190E00FB6F894A6 -:10457000A895809360000FBE2093600083B7817F71 -:10458000846083BF83B7816083BF7894889583B745 -:104590008E7F83BF88E10FB6F894809360001092FD -:1045A00060000FBE089508950895CF930E94D3220E -:1045B0000E94AF0A0E94D422C0E08C2F0E94DB0B25 -:1045C000811104C0CF5FCE30C1F701C081E0CF912F -:1045D00008950C94ED1B82E084BD93E095BD9AEFA5 -:1045E00097BD80936E0008952FB7F8948091DB01FA -:1045F0009091DC01A091DD01B091DE012FBF089503 -:10460000CF92DF92EF92FF920F931F932FB7F89400 -:104610004091DB015091DC016091DD017091DE0180 -:104620002FBF6A017B01EE24FF248C0120E030E0E3 -:10463000C016D106E206F30610F4415051099A0162 -:10464000281B390BC9011F910F91FF90EF90DF904C -:10465000CF9008951F920F920FB60F9211248F934F -:104660009F93AF93BF938091DB019091DC01A09168 -:10467000DD01B091DE010196A11DB11D8093DB012A -:104680009093DC01A093DD01B093DE01BF91AF9167 -:104690009F918F910F900FBE0F901F9018950E94C1 -:1046A0000D13F8942FEF87EA91E621508040904057 -:1046B000E1F700C0000087E090EBDC018093FB0194 -:1046C0009093FC01A093FD01B093FE019CE088E172 -:1046D0000FB6F894A895809360000FBE9093600089 -:1046E000FFCFEF92FF920F931F93CF93DF93D82FBB -:1046F000C0E08C2F0E94DB0B00E010E0E82EF12CD4 -:10470000C701002E02C0959587950A94E2F780FDB7 -:1047100006C00F5F1F4F0630110591F709C0602FCB -:104720007C2F80E00E94E80CD813F3CF81E004C016 -:10473000CF5FCE30F1F680E0DF91CF911F910F91E6 -:10474000FF90EF900895CF93C82F8CE20E947123C1 -:10475000882321F08C2FCF910C94712380E0CF918E -:104760000895CF930E940025811102C00E94E62483 -:1047700089E897E00E941C08C5E6C15049F00E94F4 -:10478000AF0A8FE39CE90197F1F700C00000F5CF75 -:1047900082E897E00E941C0889E20E94A32381110D -:1047A00013C18AE20E94A32381110E94E62485E0BE -:1047B0000E94A32381110E944F230E940B25809306 -:1047C000D90187E00E94A3238823A9F18BE10E94ED -:1047D000A323882351F08091D90181FB222720F95E -:1047E00091E0922790FB81F90EC08EE00E94A323F6 -:1047F000882361F08091D90182FB222720F991E082 -:10480000922790FB82F98093D90115C080E10E9424 -:10481000A3239091D901882341F093FB222720F90B -:1048200081E0822780FB93F904C0892F809580FB6B -:1048300090F99093D9018091D9010E940F250E948F -:104840001D258093EC0180EE0E94A323882341F074 -:104850008091EC01982F909590FB80F98093EC016A -:1048600089E30E94A323882359F08091EC0181FB06 -:10487000222720F991E0922790FB81F98093EC01A7 -:1048800082EE0E94A323882359F08091EC0182FBE1 -:10489000222720F991E0922790FB82F98093EC0186 -:1048A00086EE0E94A323882359F08091EC0183FBBC -:1048B000222720F991E0922790FB83F98093EC0165 -:1048C00083EE0E94A323882359F08091EC0184FB9E -:1048D000222720F991E0922790FB84F98093EC0144 -:1048E00085E30E94A323882359F08091EC0185FB86 -:1048F000222720F991E0922790FB85F98093EC0123 -:1049000081E30E94A323882359F08091EC0186FB68 -:10491000222720F991E0922790FB86F98093EC0101 -:1049200081E10E94A323882359F08091EC0187FB49 -:10493000222720F991E0922790FB87F98093EC01E0 -:104940008091EC010E9421258091EC0187FB882752 -:1049500080F980930D0187E20E94A323C82F8EE186 -:104960000E94A3238111C2608FE10E94A3238111C1 -:10497000C46080E20E94A3238111C86081E20E948A -:10498000A3238111C06182E20E94A3238111C0622E -:1049900083E20E94A3238111C06484E20E94A323C6 -:1049A000882311F0C06802C0CC2329F08C2F0E940C -:1049B00018256C2F03C00E941425682F70E080E03A -:1049C00090E0CF910C94A91FCF9108956DEE7EEFEA -:1049D00080E090E00E94E92E60E082E090E00E949A -:1049E000DB2E60E083E090E00E94DB2E60E084E05C -:1049F00090E00E94DB2E60E085E090E00C94DB2EDE -:104A000080E090E00E94D52E21E08D3E9E4F09F07F -:104A100020E0822F089582E090E00C94CD2E682F44 -:104A200082E090E00C94DB2E83E090E00C94CD2E9D -:104A3000682F83E090E00C94DB2E84E090E00C94EF -:104A4000CD2E682F84E090E00C94DB2E8091E10164 -:104A500080FF0BC06091130185E0689FB0011124B5 -:104A600075956795759567952BC081FF09C0609115 -:104A7000130185E0689FB00111247595679520C0EA -:104A800082FF07C06091130185E0689FB001112487 -:104A900017C09091E2019923D1F06091120196170D -:104AA00088F72091130185E0289F90011124929F9F -:104AB000A001939F500D112470E0CA010E949F2E07 -:104AC0006038710540F46115710539F002C065E088 -:104AD00070E0862F08958FE7089581E00895809112 -:104AE000E10180FF08C06091110170E07595679544 -:104AF0007595679521C081FF06C06091110170E036 -:104B00007595679519C082FF04C06091110170E02E -:104B100010C09091E2019923C1F0609110019617A5 -:104B2000A0F780911101899FC001112470E00E94BB -:104B30009F2E6038710528F46115710521F0862FCC -:104B400008958FE7089581E0089561E070E0F4CF63 -:104B5000803F21F40E942625819504C0813F29F4DD -:104B60000E9426258093E5010895823F21F40E944A -:104B70002625819504C0833F29F40E942625809331 -:104B8000E4010895893F19F40E946F2505C08A3F0A -:104B900031F40E946F2581958093E60108958B3F43 -:104BA00021F40E946F25819504C08C3F29F40E9456 -:104BB0006F258093E7010895843F21F48091E301FC -:104BC000816017C0853F21F48091E301826011C0AC -:104BD000863F21F48091E30184600BC0873F21F47C -:104BE0008091E301886005C0883F31F48091E30142 -:104BF00080618093E30108958D3F21F48091E1016C -:104C000081600BC08E3F21F48091E101826005C07C -:104C10008F3F29F48091E10184608093E101089540 -:104C2000803F39F48091E50187FF6CC01092E50167 -:104C300069C0813F29F48091E5011816BCF362C078 -:104C40009091E401823F29F497FF5CC01092E40147 -:104C500059C0833F19F41916CCF354C0893F41F46D -:104C60008091E60118160CF04DC01092E6014AC082 -:104C70008A3F29F48091E60187FF44C0F6CF8B3F3D -:104C800039F48091E70187FF3DC01092E7013AC0F7 -:104C90008C3F29F48091E7011816BCF333C0843FA0 -:104CA00021F48091E3018E7F17C0853F21F480912C -:104CB000E3018D7F11C0863F21F48091E3018B7F5A -:104CC0000BC0873F21F48091E301877F05C0883FB7 -:104CD00031F48091E3018F7E8093E30113C08D3F17 -:104CE00021F48091E1018E7F0BC08E3F21F48091F1 -:104CF000E1018D7F05C08F3F29F48091E1018B7F19 -:104D00008093E1018091E40181110EC08091E50161 -:104D100081110AC08091E601811106C08091E701EE -:104D2000811102C01092E20108958091D90183FFA0 -:104D30007EC085EC97E00E941C088091E3011F92E1 -:104D40008F9380EC97E09F938F930E94B5088EEB32 -:104D500097E00E941C088091E401282F332727FD4B -:104D600030953F938F938BEB97E09F938F930E94A7 -:104D7000B50889EB97E00E941C088091E501282F77 -:104D8000332727FD30953F938F9386EB97E09F93D2 -:104D90008F930E94B50884EB97E00E941C088091D5 -:104DA000E601282F332727FD30953F938F9381EB22 -:104DB00097E09F938F930E94B5088FEA97E00E9437 -:104DC0001C088091E701282F332727FD30953F935A -:104DD0008F938CEA97E09F938F930E94B50889EA9E -:104DE00097E00E941C088091E2011F928F9386EA4F -:104DF00097E09F938F930E94B50884EA97E00E9402 -:104E00001C088091E1011F928F9381EA97E09F93A4 -:104E10008F930E94B5088EE997E00E941C088DB719 -:104E20009EB74C960FB6F8949EBF0FBE8DBF83EE13 -:104E300091E00E9464160E94F4229093E001809316 -:104E4000DF0108951F93CF93DF938091DF0190914D -:104E5000E0010E940023AC019091E201992321F02E -:104E60002091140130E006C0209115018AE0289FAE -:104E7000900111244217530708F486C08091E40181 -:104E8000C091E501D091E6011091E701811107C0C1 -:104E9000C11176C0D11174C0111172C075C09F3F8D -:104EA00019F09F5F9093E201181624F40E942625C2 -:104EB0008093E4018091E40187FF05C00E942625CC -:104EC00081958093E4011C1624F40E94262580938A -:104ED000E5018091E50187FF05C00E9426258195A7 -:104EE0008093E5016091E401662339F1C091E50109 -:104EF000CC2319F1772767FD7095872F972F0E9494 -:104F0000A42D23E333E343E35FE30E94082E0E94D2 -:104F1000712D6093E4016C2F772767FD7095872FC3 -:104F2000972F0E94A42D23E333E343E35FE30E9422 -:104F3000082E0E94712D6093E5011D1624F40E9435 -:104F40006F258093E6018091E60187FF05C00E94EE -:104F50006F2581958093E601111624F40E946F2538 -:104F60008093E7018091E70187FF05C00E946F25CC -:104F700081958093E701DF91CF911F910C94952645 -:104F80009F3F09F08ECF96CFDF91CF911F9108956B -:104F9000E3EEF1E085E0DF011D928A95E9F71092DA -:104FA000E2011092E101089588EE99E00E941C0848 -:104FB0001F9281E08F931F9285E08F938AE999E099 -:104FC0009F938F930E94B5080F900F900F900F90B2 -:104FD0000F900F9008958330E9F128F4813061F04B -:104FE000823009F10895853009F462C008F449C09F -:104FF000863009F474C0089580911501262F30E0A1 -:10500000280F311D2F3F310524F4680F60931501DF -:1050100003C08FEF80931501809115011F928F932C -:1050200083ED98E072C080911401262F30E0280FA4 -:10503000311D2F3F310524F4680F6093140103C024 -:105040008FEF80931401809114011F928F9381EC54 -:1050500098E05BC080911301262F30E0280F311DAE -:105060002F3F310524F4680F6093130103C08FEFC5 -:1050700080931301809113011F928F938EEA98E021 -:1050800044C080911201262F30E0280F311D2F3FA0 -:10509000310524F4680F6093120103C08FEF8093F1 -:1050A0001201809112011F928F9389E998E02DC01F -:1050B00080911101262F30E0280F311D2F3F31053F -:1050C00024F4680F6093110103C08FEF80931101E6 -:1050D000809111011F928F9380E898E016C0809113 -:1050E0001001262F30E0280F311D2F3F310524F409 -:1050F000680F6093100103C08FEF809310018091BF -:1051000010011F928F9385E698E09F938F930E94E2 -:10511000B5080F900F900F900F900895833081F194 -:1051200028F4813059F08230D1F00895853009F4A7 -:1051300049C0B8F1863009F456C008958091150130 -:10514000681720F4861B8093150102C01092150188 -:10515000809115011F928F9386E598E054C080914D -:105160001401681720F4861B8093140102C010926A -:105170001401809114011F928F9384E498E043C03E -:1051800080911301681720F4861B8093130102C0DD -:1051900010921301809113011F928F9381E398E085 -:1051A00032C080911201681720F4861B809312018F -:1051B00002C010921201809112011F928F938CE114 -:1051C00098E021C080911101681720F4861B80931C -:1051D000110102C010921101809111011F928F9351 -:1051E00083E098E010C080911001681720F4861BBE -:1051F0008093100102C010921001809110011F9243 -:105200008F9388EE97E09F938F930E94B5080F903D -:105210000F900F900F900895CF93C82F1F928F93E8 -:105220008DEE9AE09F938F930E94B50881E090E005 -:10523000A0E0B0E0BC01CD0104C0660F771F881F5D -:10524000991FCA95D2F70E94A91F0F900F900F9037 -:105250000F90CF910C94ED1BCF938D3109F465C065 -:10526000B0F58E3009F4CCC100F5873009F49BC14C -:10527000A8F4863009F06DC28091D901817F8E7FBC -:105280008093D90182EF9AE00E941C0884E39FE09A -:105290000E941C0881E08093E90180C1883009F4F4 -:1052A0004FC08B3009F47CC154C2863109F4F0C17F -:1052B00038F4803109F4B8C1813109F430C249C2EF -:1052C000893109F4CEC18B3109F486C142C28533DC -:1052D00009F437C248F4873209F433C208F433C200 -:1052E000893209F42EC235C2833438F48A3308F087 -:1052F0002CC2883309F454C12CC2833409F421C26E -:10530000883409F026C20E94ED1B83E29FE00E94D0 -:105310001C089FEF23ED80E3915020408040E1F78F -:1053200000C000000E944F2339C183E49FE00E9427 -:105330001C080E942B2D0E940F160E94410E2EC1A8 -:1053400088E39FE00E941C0883E09DE00E941C0807 -:105350000E9414251F928F9380E09DE09F938F936E -:105360000E94B5088EEF9CE00E941C080E940B254D -:10537000C82F8BEE9CE00E941C081F92CF9386EEF4 -:105380009CE09F938F930E94B50884EE9CE00E945E -:105390001C088AED9CE00E941C088C2F81701F92D3 -:1053A0008F9387ED9CE09F938F930E94B50885EDC6 -:1053B0009CE00E941C088BEC9CE00E941C08C1FB36 -:1053C000882780F91F928F9388EC9CE09F938F939E -:1053D0000E94B50886EC9CE00E941C088AEB9CE0C9 -:1053E0000E941C08C2FB882780F91F928F9387EBCD -:1053F0009CE09F938F930E94B50885EB9CE00E94F0 -:105400001C088CEA9CE00E941C08C3FBCC27C0F956 -:105410001F92CF9389EA9CE09F938F930E94B508D7 -:1054200087EA9CE00E941C080E941D25C82F83E982 -:105430009CE00E941C081F92CF938EE89CE09F93F3 -:105440008F930E94B5088CE89CE00E941C0883E7BB -:105450009CE00E941C088C2F81701F928F9380E724 -:105460009CE09F938F930E94B5088DB79EB780965E -:105470000FB6F8949EBF0FBE8DBF8EE69CE00E94D3 -:105480001C0887E59CE00E941C08C1FB882780F966 -:105490001F928F9384E59CE09F938F930E94B508A1 -:1054A00082E59CE00E941C0880E49CE00E941C08AD -:1054B000C2FB882780F91F928F938DE39CE09F9316 -:1054C0008F930E94B5088BE39CE00E941C0889E240 -:1054D0009CE00E941C08C3FB882780F91F928F93D1 -:1054E00086E29CE09F938F930E94B50884E29CE043 -:1054F0000E941C088AE19CE00E941C08C4FB8827CB -:1055000080F91F928F9387E19CE09F938F930E9475 -:10551000B50885E19CE00E941C0883E09CE00E94A5 -:105520001C08C5FB882780F91F928F9380E09CE0C0 -:105530009F938F930E94B5088EEF9BE00E941C08FA -:1055400082EE9BE00E941C08C6FB882780F91F9210 -:105550008F938FED9BE09F938F930E94B5088DED05 -:105560009BE00E941C0885ED9BE00E941C08C7FB85 -:10557000CC27C0F91F92CF9382ED9BE09F938F932E -:105580000E94B50880ED9BE00E941C088DB79EB775 -:105590004C960FB6F8949EBF0FBE8DBFC1E0DEC023 -:1055A00089E19BE05BC08091D901C82FC17080FF69 -:1055B00009C086E19FE00E941C088091D901817F8B -:1055C0008E7F47C08AE09FE00E941C088091D9012D -:1055D00081608093D901E2CF9091D90191FBCC27D2 -:1055E000C0F981E0C827892FC0FB81F98093D901D8 -:1055F000CC2319F08DEF9EE027C08FEE9EE02EC0E9 -:105600009091D90192FBCC27C0F981E0C827892F5E -:10561000C0FB82F98093D901CC2319F080EE9EE083 -:1056200013C080ED9EE01AC09091D90193FBCC2766 -:10563000C0F981E0C827892FC0FB83F98093D90185 -:10564000CC2351F084EC9EE00E941C088091D9018B -:1056500081608093D90182C087EB9EE00E941C0884 -:105660009DCF88EA9EE00E941C088CE79EE00E9485 -:105670001C088FE39EE00E941C0882E19EE00E94CD -:105680001C088EEC9DE00E941C0883EA9DE0E6CF9A -:1056900085E99DE00E941C080E940F161F928F93BF -:1056A0008BE79DE09F938F930E94B50880910C013A -:1056B0001F928F9384E69DE09F938F930E94B5087D -:1056C000809170011F928F9381E59DE09F938F934E -:1056D0000E94B50880910D011F928F938EE39DE08B -:1056E0009F938F930E94B5088091DB019091DC011C -:1056F000A091DD01B091DE01BF93AF939F938F9393 -:105700008AE29DE09F938F930E94B5088DB79EB764 -:1057100046960FB6F8949EBF0FBE8DBF3FCF0E9436 -:10572000ED1BC0910D0181E0C827C0930D01CC2372 -:1057300029F080E29DE00E941C0810C085E19DE0F8 -:105740008DCF80E003C08D5101C089530E940C2988 -:1057500025CF83E19DE00E941C08C0E08C2FCF91F3 -:10576000089580E0089580E00895CF93C82F809138 -:10577000E901813081F020F0823009F44FC045C149 -:10578000E0910E01F0910F018081813169F0823248 -:1057900009F03DC109C0E0910E01F0910F01808137 -:1057A000813111F0823261F48C2F0E94B12B811172 -:1057B00004C08C2F0E942C292FC081E090E02CC0C7 -:1057C0008C2F0E94B32B811126C0C431E1F070F4FC -:1057D000CB3081F0C031D1F40E94D42785EE9AE01D -:1057E0000E941C0882E08093E90115C0C93259F07B -:1057F000C83361F482EF9AE00E941C0889EE9AE0B7 -:105800000E941C0808C01092E90103C183EE9AE0CF -:105810000E941C08FEC081E08170FDC0C43220F5EA -:10582000CE3108F0C0C0CB3099F1C8F4C73009F0D0 -:10583000D2C08AE08093150194E19093140193E023 -:10584000909313018093120188E08093110188E204 -:105850008093100189E899E00E941C08BFC0C33101 -:1058600049F1C431C1F0B7C0CB3409F4A9C028F460 -:10587000C93289F0C83361F0AEC0C13509F49EC0A9 -:10588000C23509F499C0CE3409F0A5C06AE09EC0C3 -:105890000E94D427A3C08091E801882319F01092B8 -:1058A000E8019CC086E999E00E941C0881E0809391 -:1058B000E901B1C080E799E00E941C088EE599E0FB -:1058C0000E941C08809115011F928F938BE599E02F -:1058D0009F938F930E94B50889E599E00E941C0868 -:1058E00087E499E00E941C08809114011F928F9315 -:1058F00084E499E09F938F930E94B50882E499E035 -:105900000E941C0883E399E00E941C088091130107 -:105910001F928F9380E399E09F938F930E94B50825 -:105920008EE299E00E941C088DE199E00E941C081B -:10593000809112011F928F938AE199E09F938F9338 -:105940000E94B50888E199E00E941C0883E099E074 -:105950000E941C08809111011F928F9380E099E0B2 -:105960009F938F930E94B5088EEF98E00E941C08C9 -:1059700087EE98E00E941C08809110011F928F937F -:1059800084EE98E09F938F930E94B50882EE98E092 -:105990000E941C088DB79EB748960FB6F8949EBF1C -:1059A0000FBE8DBF1BC0CE51EC2FF0E0E15DFE4F6E -:1059B00080818093E80112C061E003C061E006C00D -:1059C0006AE08091E8010E94EB2708C08091E8011D -:1059D0000E948E2803C087E899E013C08091E801F7 -:1059E000882369F01F928F9381E899E09F938F93AA -:1059F0000E94B5080F900F900F900F9004C08EE793 -:105A000099E00E941C0881E006C01092E90180E044 -:105A100002C080E001CFCF910895E1E8F0E08081FD -:105A2000886080838081816080838FB7F89493E061 -:105A30009093890090ED909388008FBF0895EFE6D2 -:105A4000F0E08081826080830895EFE6F0E080815D -:105A50008D7F80830895EFE6F0E0908182E08927D2 -:105A6000808308951F920F920FB60F9211242F93E7 -:105A70003F934F935F936F937F938F939F93AF93D6 -:105A8000BF93EF93FF938091EA019091EB01019610 -:105A90009093EB018093EA01811103C082E00E94A0 -:105AA000410EE091EB01E695E695F0E0ED5AF04FFE -:105AB000E4918091EA018E1303C080E00E94410EC0 -:105AC000FF91EF91BF91AF919F918F917F916F91D6 -:105AD0005F914F913F912F910F900FBE0F901F90AC -:105AE000189504D06894B1118DC0089570D088F0D5 -:105AF0009F5790F0B92F9927B751A0F0D1F0660FBA -:105B0000771F881F991F1AF0BA95C9F712C0B130D4 -:105B100081F077D0B1E0089574C0672F782F88277F -:105B2000B85F39F0B93FCCF3869577956795B39513 -:105B3000D9F73EF490958095709561957F4F8F4F82 -:105B40009F4F0895E89409C097FB3EF49095809587 -:105B5000709561957F4F8F4F9F4F9923A9F0F92F33 -:105B600096E9BB279395F695879577956795B795B1 -:105B7000F111F8CFFAF4BB0F11F460FF1BC06F5F97 -:105B80007F4F8F4F9F4F16C0882311F096E911C0A9 -:105B9000772321F09EE8872F762F05C0662371F0CA -:105BA00096E8862F70E060E02AF09A95660F771FDE -:105BB000881FDAF7880F9695879597F9089557FD0E -:105BC0009058440F551F59F05F3F71F04795880F6B -:105BD00097FB991F61F09F3F79F087950895121602 -:105BE00013061406551FF2CF4695F1DF08C01616AE -:105BF00017061806991FF1CF86957105610508945F -:105C00000895E894BB2766277727CB0197F9089575 -:105C10000BD078C069D028F06ED018F0952309F029 -:105C20005AC05FC01124EECFCADFA0F3959FD1F315 -:105C3000950F50E0551F629FF001729FBB27F00D3A -:105C4000B11D639FAA27F00DB11DAA1F649F66278F -:105C5000B00DA11D661F829F2227B00DA11D621FDE -:105C6000739FB00DA11D621F839FA00D611D221F98 -:105C7000749F3327A00D611D231F849F600D211D7C -:105C8000822F762F6A2F11249F5750408AF0E1F01F -:105C900088234AF0EE0FFF1FBB1F661F771F881F68 -:105CA00091505040A9F79E3F510570F014C0AACF03 -:105CB0005F3FECF3983EDCF3869577956795B79553 -:105CC000F795E7959F5FC1F7FE2B880F911D96957D -:105CD000879597F9089597F99F6780E870E060E0ED -:105CE00008959FEF80EC089500240A941616170675 -:105CF00018060906089500240A94121613061406BD -:105D000005060895092E0394000C11F4882352F01F -:105D1000BB0F40F4BF2B11F460FF04C06F5F7F4FD7 -:105D20008F4F9F4F0895991B79E004C0991F9617D4 -:105D300008F0961B881F7A95C9F78095089597FB00 -:105D4000072E16F4009407D077FD09D00E94B92ED3 -:105D500007FC05D03EF4909581959F4F089570956E -:105D600061957F4F0895EE0FFF1F0590F491E02D90 -:105D70000994AA1BBB1B51E107C0AA1FBB1FA61792 -:105D8000B70710F0A61BB70B881F991F5A95A9F7E4 -:105D900080959095BC01CD010895F999FECF92BDF3 -:105DA00081BDF89A992780B50895A8E1B0E042E056 -:105DB00050E00C94F02E262FF999FECF1FBA92BD19 -:105DC00081BD20BD0FB6F894FA9AF99A0FBE0196DC -:105DD00008950E94DB2E272F0C94DC2EDC01CB01D2 -:105DE000FC01F999FECF06C0F2BDE1BDF89A3196EB -:105DF00000B40D9241505040B8F70895F894FFCF89 -:105E00002002420E330F100FDC0EA80E0101C70155 -:105E100028080A03140A3F4D362039D30686065057 -:105E2000063006F7056A0583059C05B505D505010D -:0A5E3000020304050607080900003C -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_README.md b/keyboard/ergodox_ez/keymaps/keymap_osx_de_README.md deleted file mode 100644 index 6b17d75d54..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de_README.md +++ /dev/null @@ -1,27 +0,0 @@ -#Ergodox EZ für OSX - -Dies ist nur ein kleiner Tweak der bestehenden firmware für das ErgoDox-EZ-Keyboard. Leider passte das layout nicht wirklich für OSX, deswegen habe ich einige Anpassungen gemacht. Dabei wurden folgende features umgesetzt: - -- Die Umlaute sollten an einigermassen sinnvollen Plätzen liegen -- der Umstieg sollte dadurch erleichtert werden, dass einige Tasten an ihren "normalen" Platz zurückgewandert sind. Z.B. ESC, Tab,... -- die Leertaste lässt sich jetzt mit beiden Daumen bedienen -- die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar. -- es gibt eine neue Layer für die Nutzung der Cursortasten, dort sind sie etwas einfacher angeordnet und sind z.B. auch für Spiele nutzbar -- Die Symbollayer wurde dahingehend angepasst, dass die klammern, etc nun auf beiden hälften der Tastatur zu finden sind -- der Zehnerblock wurde in eine eigene Layer umgezogen -- die Meh und Hyper-Tasten wurden in die Daumenblöcke umgezogen - ------------------------------- - -# ErgoDox EZ for OSX - -This is only a little tweak of the existing default layout for the ErgoDox keyboard. Unfortunately the default layout did not work well with german OSX, so I created som adjustments. These were the features added and changed: - -- the umlaut-keys should be at their useful place more or less -- the switching should be made more easy so some other keys (like tab, esc) were moved to their default place -- the space key can now be used with both hands -- the CMD- and ALT-Keys moved to the middle, can be reached more easily. -- there is a new layer for using the cursor-keys, placed like on the default keyboard. This makes them useable for games also -- the symbollayer now has only symbols -- the number block was moved to a special layer -- meh and hyper went down to the thumb block diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c deleted file mode 100644 index 7e9defafa7..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c +++ /dev/null @@ -1,262 +0,0 @@ -// Netable differences vs. the default firmware for the ErgoDox EZ: -// 1. The Cmd key is now on the right side, making Cmd+Space easier. -// 2. The media keys work on OSX (But not on Windows). -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_extras/keymap_german.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#define ADNW 3 // media keys -#define NUMB 4 // number keys - - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ADNW | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | " | ' | ? | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | . | ! | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,KC_GRV,LSFT(KC_GRV),DE_EXLM,DE_QST,KC_TRNS,KC_TRNS, - KC_TRNS,DE_HASH,DE_DLR, LALT(LSFT(KC_7)),DE_SLSH,KC_DOT, - KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,LALT(KC_7),LALT(KC_N),KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_DEL,KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | Play | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -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_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, 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_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -/* Keymap 3: ADNW-Koy layer - * ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | K | . | O | , | Y | CMD | | CMD | V | G | C | L | ß | Z | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ADNW | H | A | E | I | U |------| |------| D | T | R | N | S | F/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M |J/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |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; - case 3: - ergodox_right_led_3_on(); - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - //ergodox_board_led_on(); - break; - default: - // none - break; - } - -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png b/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png deleted file mode 100644 index 1d5226974f..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.c b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.c deleted file mode 100644 index 4b59d2eb29..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.c +++ /dev/null @@ -1,187 +0,0 @@ -// French AZERTY version of the default_osx file -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_extras/keymap_french_osx.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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | - | & | é | " | ' | ( | LEFT | | RIGHT| § | è | ! | ç | à | ) | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | A | Z | E | R | T | L1 | | L1 | Y | U | I | O | P | ` | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | Q | S | D | F | G |------| |------| H | J | K | L | M | LGui | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |W/Ctrl| X | C | V | B | | | | N | , |; / L2| : |=/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | ù /L1| < |AltShf| Left | Right| | Up | Down | ^ | $ | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,---------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |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 - FR_MINS, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_LEFT, - KC_DELT, FR_A, FR_Z, KC_E, KC_R, KC_T, TG(1), - KC_BSPC, FR_Q, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(FR_W), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), - LT(SYMB,FR_UGRV), FR_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPC, KC_BSPC, KC_END, - - // right hand - KC_RGHT, FR_SECT, FR_EGRV, FR_EXLM, FR_CCED, FR_AGRV, FR_RPRN, - TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, FR_GRV, - KC_H, KC_J, KC_K, KC_L, FR_M, KC_LGUI, - MEH_T(KC_NO), KC_N, FR_COMM, LT(MDIA, FR_SCLN), FR_COLN, CTL_T(FR_EQL), KC_RSFT, - KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, 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,FR_EXLM,FR_AT, FR_LCBR,FR_RCBR,FR_PIPE,KC_TRNS, - KC_TRNS,FR_HASH,FR_DLR, FR_LPRN,FR_RPRN,FR_GRV, - KC_TRNS,FR_PERC,FR_CIRC,FR_LBRC,FR_RBRC,FR_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, FR_7, FR_8, FR_9, FR_ASTR, KC_F12, - KC_DOWN, FR_4, FR_5, FR_6, FR_PLUS, KC_TRNS, - KC_TRNS, FR_AMP, FR_1, FR_2, FR_3, FR_BSLS, KC_TRNS, - KC_TRNS,FR_COMM, FR_0, FR_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 -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; - } - -}; \ No newline at end of file diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex deleted file mode 100644 index 8915d9caa5..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex +++ /dev/null @@ -1,1471 +0,0 @@ -:100000000C9400070C9444070C9444070C94440788 -:100010000C9444070C9444070C9444070C94440734 -:100020000C9444070C9444070C9458120C942A1313 -:100030000C9444070C9444070C9444070C94440714 -:100040000C9444070C94022C0C9444070C94440721 -:100050000C9444070C94FA210C9444070C94440724 -:100060000C9444070C9444070C9444070C944407E4 -:100070000C9444070C9444070C9444070C944407D4 -:100080000C9444070C9444070C9444070C944407C4 -:100090000C9444070C9444070C9444070C944407B4 -:1000A0000C9444070C9444070C9444079713B91319 -:1000B000A714B913A714FE132114A71476148914D6 -:1000C000D017D017FF17FF17431881189B1A9B1AD8 -:1000D0009A189B1A9B199B196F1A9B1A9B1A861ABE -:1000E0000000F0A12E004C002A00E1003481000045 -:1000F0001E00140004001D7164004D001F001A0052 -:1001000016001B00E1042A0020000800070006007A -:1001100050002C0021001500090019004F004A0072 -:10012000220017000A000500000065745000015409 -:100130000000007F0000E3004F0001540000007742 -:100140000000E20023001C000B00110000002971D8 -:10015000240018000D00100052004B0025000C0078 -:100160000E00368251002800260012000F003700D2 -:100170002F002B00270013003300387130004E0091 -:100180002D003200E300E500C10000000100010085 -:1001900001000100010000003A0025003502340290 -:1001A000010001003B00350030002F00010001007C -:1001B0003C00220422002206010001003D002D0423 -:1001C0002D002D06010001003E000F063200110433 -:1001D000000001000100010000000100000001001A -:1001E0000100010000000100000001003F0052007A -:1001F00051001E00000001004000240221021E02E6 -:10020000010001004100250222021F02100001002E -:10021000420026022302200227020100430030028E -:100220003802370638000100440045000100010093 -:1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 -:10025000F2000100010001000100F000F1000100C6 -:10026000F400010001000100F3000100F5000100AD -:100270000100010001000100000001000100010077 -:100280000000010000000100010001000000010069 -:100290000000010001000100010001000000010058 -:1002A0000100010001000100A9000100010001009E -:1002B0000100AC00AA00B600010001000100AB0083 -:1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -: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 -:100C10007573202D0A004743433A20342E392E3372 -:100C2000204156522D4C4942433A20312E382E3124 -:100C3000204156525F415243483A20617672350A4C -:100C4000004F5054494F4E533A204C554641204294 -:100C50004F4F544D41474943204D4F5553454B4508 -:100C6000592045585452414B455920434F4E534FFC -:100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2030663263CD -:100C9000373733202831303A34373A3334204A61F9 -:100CA0006E2020352032303136290A005649443A28 -:100CB00020307846454544284572676F446F782058 -:100CC000455A29205049443A20307831333037286A -:100CD0004572676F446F7820455A29205645523A2D -:100CE000203078303030310A00444553433A207484 -:100CF0002E6D2E6B2E206B6579626F61726420669B -:100D000069726D7761726520666F72204572676FD8 -:100D1000646F780A000A092D2056657273696F6E38 -:100D2000202D0A000A6D6F7573653A206F66660A9A -:100D3000000A6D6F7573653A206F6E0A000A6B6565 -:100D400079626F6172643A206F66660A000A6B65A9 -:100D500079626F6172643A206F6E0A000A6D617485 -:100D60007269783A206F66660A000A6D617472696A -:100D7000783A206F6E0A000A64656275673A206FE0 -:100D80006E0A000A64656275673A206F66660A003B -:100D90000A0A626F6F746C6F616465722E2E2E206A -:100DA00000433E20006565636F6E6669673A0A001E -:100DB000536C656570204C454420746573740A005B -:100DC0000000000000000000000000010204060A0C -:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD -:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD -:100DF0000F0A0604020100000000000000000000CD -:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74 -:100E100024C08091F9019091FA01A091FB01B09159 -:100E2000FC018730904BA740B04BB9F41092F90108 -:100E30001092FA011092FB011092FC0114BE84B7CB -:100E4000877F84BF88E10FB6F8948093600010928A -:100E500060000FBEE0E0FFE3099511E0A0E0B1E023 -:100E6000E0EAFBE502C005900D92AA33B107D9F77D -:100E700011E0AAE3B1E001C01D92A93FB107E1F77B -:100E80000E94900F0C94CE2D0C940000FF93EF93D2 -:100E9000E0913A01F0913B01309709F00995EF910B -:100EA000FF910895FC018591803011F0EFDFFBCFB9 -:100EB0000895FF27E0E230E247FF0CC0419597FF1D -:100EC00009C0EDE26095709580959095611D711D4A -:100ED000811D911D27FF02C0219530E350E2AA2712 -:100EE000660F771F881F991FAA1FA41710F0A41B55 -:100EF00063955A95A9F7AA3008F0A95FA05DAF9352 -:100F0000F395611571058105910541F7ED3211F4F5 -:100F1000EF93F395F21718F43F93F395FBCF8F916E -:100F2000B5DFFA95E1F70895E991F991859180305F -:100F300021F0853219F0AADFF9CF089520E0E89476 -:100F400055915532C1F3503311F4689455915A3389 -:100F500048F4505390F3220F022E220F220F200D3F -:100F6000250FF4CF0EF4219589919991533619F3F9 -:100F7000533729F1533559F1BC0188279927E89453 -:100F80005C3621F48991999168945591543639F4DD -:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709 -:100FA0004AE039F0583540E121F0523642E009F08C -:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC -:100FC000EF93FC0181918030B9F360DFFBCFFF9399 -:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0 -:100FE000A3DFCF91DF91089561110BC0FC018281D5 -:100FF000882321F085EE0E946D1603C085EE0E94C5 -:10100000351780E090E0089508956091BC017091DB -:10101000BD018091BE019091BF010E94FD205698B4 -:101020005E9825982D9826982E9827982F9881308D -:1010300019F0823021F00895259A2D9A0895269A64 -:101040002E9A089585E098E0892B11F00E940508FA -:1010500080E090E0089556985E9825982D982698FF -:101060002E9827982F988FEF90E090938900809387 -:10107000880090938B0080938A0090938D008093DA -:101080008C00259A2D9A2FEF80E792E02150804026 -:101090009040E1F700C00000269A2E9A2FEF80E7DB -:1010A00092E0215080409040E1F700C00000279A74 -:1010B0002F9A2FEF80E792E0215080409040E1F797 -:1010C00000C0000025982D982FEF80E792E0215076 -:1010D00080409040E1F700C0000026982E982FEF46 -:1010E00080E792E0215080409040E1F700C000008E -:1010F00027982F9856985E9825982D9826982E9880 -:1011000027982F98089589EA8093800089E080933A -:10111000810024982C983F988AB18F748AB96E9870 -:10112000479A8BB1806B8BB9769A0E942B0884E02A -:1011300098E0892B11F00E94040880E090E0089567 -:1011400080E28093000180913C0181110EC00E94D9 -:10115000EF0881E080933C012FEF83ED90E3215075 -:1011600080409040E1F700C0000080E40E94F50854 -:101170008093000181112EC00E941F0980930001FD -:10118000811128C00E941F0980930001811122C093 -:101190008FE30E941F098093000181111BC00E94F0 -:1011A000170980E40E94F50880930001811112C0A4 -:1011B0008CE00E941F098093000181110BC00E94E6 -:1011C0001F0980930001811105C08FE30E941F0950 -:1011D000809300010E9417098091000108951092E8 -:1011E000B9008AE08093B800089594EA9093BC0017 -:1011F0009091BC0097FFFCCF9091B900987F9830F8 -:1012000021F0903111F081E008958093BB0084E8D3 -:101210008093BC008091BC0087FFFCCF8091B90017 -:10122000887F883111F0803471F780E0089584E977 -:101230008093BC008091BC0084FDFCCF0895809316 -:10124000BB0084E88093BC008091BC0087FFFCCF8A -:101250009091B900987F81E0983209F480E0089578 -:1012600084E88093BC008091BC0087FFFCCF809114 -:10127000BB00089580910001811115C080E40E9497 -:10128000F5088093000181110CC082E10E941F09C2 -:1012900080930001811105C08FEF0E941F09809388 -:1012A00000010E94170984B1807F84B985B1807FD5 -:1012B00085B98AB1837F8AB98BB1837F8BB93E9818 -:1012C000469808950E94A008809300010E943A0960 -:1012D00080B38C7080BB81B3836F81BBAEE3B1E020 -:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94 -:1012F00083E898E0892B11F00C94830808959F925D -:10130000AF92BF92CF92DF92EF92FF920F931F9313 -:10131000CF93DF93809100018823E1F080913D011C -:101320008F5F80933D01811115C082E493E00E949C -:1013300052070E94A00880930001882329F088E2C8 -:1013400093E00E94520706C084E193E00E94520796 -:101350000E942B080EE311E0C0E0D0E0BB24B39460 -:1013600082E0A82ECC24C394D12C25E0E22E23E0E9 -:10137000F22EC730D10500F580910001811164C0C3 -:1013800080E40E94F50880930001811112C082E17F -:101390000E941F098093000181110BC0C6010C2E11 -:1013A00001C0880F0A94EAF780950E941F09809374 -:1013B00000010E94170948C0CA30A1F028F4C830C3 -:1013C00059F0C93061F005C0CC3089F070F0CD30F3 -:1013D00089F0209A289810C0219A29980DC0229A45 -:1013E0002A980AC0239A2B9807C0529A01C0539A90 -:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1 -:10140000799902C082E001C080E091709B25982B01 -:101410007C9902C084E001C080E0892B7D9902C0E4 -:1014200038E001C030E0832B7E9902C020E101C08A -:1014300020E0822B9FB19095991F9927991F929533 -:10144000990F907E892B10C080910001811174C08A -:1014500080E40E94F50880930001882309F459C0B4 -:10146000912C0E941709892DF8019081981739F164 -:10147000808380910101882301F18091D70180FF51 -:1014800004C08AE093E00E9452078091D70180FF58 -:101490000CC0809101011F928F93FF92EF920E94E6 -:1014A000EB070F900F900F900F908091D70180FF66 -:1014B00004C083E093E00E945207A09201010E94C1 -:1014C0003A0921960F5F1F4FCE30D10509F051CF59 -:1014D000809101018823B1F081508093010188231C -:1014E00039F08FE99FE00197F1F700C000000AC0D2 -:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326 -:101500008E13FCCF82E298E0892BC1F00E94220862 -:1015100015C083E10E941F09809300018111A0CFB3 -:1015200081E40E94F50880930001811199CF0E9407 -:101530003009982E909495CF80E096CF81E0DF918E -:10154000CF911F910F91FF90EF90DF90CF90BF90C0 -:10155000AF909F900895E82FF0E0E45BFE4F80810C -:101560000895CF92DF92EF92FF920F931F93CF9344 -:10157000DF938CEE92E00E9452078CE4E82E81E02B -:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5 -:1015900012E0DF93CF93DF92CF920E94EB0784EEAD -:1015A00092E00E945207F70181917F0190E00E9432 -:1015B00063219F938F931F930F930E94EB078CEDF2 -:1015C00092E00E94520721968DB79EB708960FB6FB -:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE -:1015E000CF911F910F91FF90EF90DF90CF900895D2 -:1015F0008B3B910578F4883A910540F5853A910541 -:10160000D0F48430910508F0B1C08130910509F41F -:10161000ADC06BC0803E910508F467C0883E91055F -:1016200008F4A4C09C01205F31092031310508F085 -:101630005CC090650895853A910509F459C0863AD1 -:10164000910509F058C082E890E40895883A910520 -:1016500009F454C0893A910509F453C08A3A9105B6 -:1016600009F452C08B3A910509F451C08C3A9105A6 -:1016700009F450C08D3A910509F44FC0803B9105A3 -:1016800009F44EC08E3A910509F44DC08F3A910588 -:1016900009F44CC0813B910509F44BC0823B910594 -:1016A00009F44AC0833B910509F449C0843B910584 -:1016B00009F448C0853B910509F447C0863B910574 -:1016C00009F446C0873B910509F445C0883B910564 -:1016D00009F444C0893B910509F443C08A3B910554 -:1016E00009F442C080E094E4089580E090E0089519 -:1016F00081E890E4089583E890E4089582EE94E40C -:10170000089589EE94E408958AEE94E4089585EBB3 -:1017100094E4089586EB94E4089587EB94E40895A7 -:101720008CEC94E408958DEC94E4089583E895E4BA -:1017300008958AE895E4089582E995E4089584E996 -:1017400095E4089581E296E4089583E296E408958D -:1017500084E296E4089585E296E4089586E296E4AC -:10176000089587E296E408958AE296E4089508953C -:1017700096E0799FF001112494E5899FE00DF11D19 -:101780001124E60FF11DEE0FFF1FEC51FF4F859165 -:1017900094910895880F991FFC01E05AF0408591BB -:1017A00094910895880F991FFC01E052FF4F859195 -:1017B0009491089526E0729FF001112444E5849FDE -:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E -:1017D000FF4F859194919C013A9521154FE1340773 -:1017E00008F41EC13F512115304120F49F700E9422 -:1017F000D20B08959C0130532115304118F49927DC -:10180000906C0895811520E5920769F40E94BD1A35 -:101810004FEF84E39CE0415080409040E1F700C0EE -:1018200000000C941F22813020E5920751F48CE5D2 -:1018300093E00E9452078091D70181608093D70185 -:1018400008959C0130552115304108F051C0292FD1 -:1018500033272F70332721303105D9F4AC01437081 -:10186000552702C0220F331F4A95E2F73C68AC01AE -:1018700064E0440F551F6A95E1F744275370242B09 -:10188000352B73E0880F991F7A95E1F780769927B9 -:101890001DC02230310529F4982F8827816F906A66 -:1018A000089523303105A9F4AC014370552721E098 -:1018B00030E002C0220F331F4A95E2F73C6843E054 -:1018C000880F991F4A95E1F7807E9770822B932BA2 -:1018D000089524303105E1F4AC014370552721E02F -:1018E00030E002C0220F331F4A95E2F73A68E7CF93 -:1018F0009C0130572115304118F49F709062089573 -:101900009C0130582115304118F49F70906A089559 -:10191000803E9105E0F4803C910558F581339105B6 -:1019200009F46FC048F48932910509F463C08A3222 -:10193000910509F46DC072C089339105E9F08238D0 -:101940009105D1F08533910509F44DC067C0833E00 -:10195000910581F138F4803E9105B9F0823E910500 -:10196000D9F05CC0863E910561F1873E9105A1F1F9 -:1019700055C00E94CA0B08952091EA0120FD02C0C3 -:1019800021FF4CC080EE90E049C08091EA0180FFC9 -:10199000F9CF89E390E042C08091EA0182FF0EC056 -:1019A0008091EA0184FF03C080E090E037C083EEBD -:1019B00090E034C08091EA0182FFF2CF82EE90E0A5 -:1019C0002DC08091EA0183FF0BC08091EA0184FD64 -:1019D000EBCF87EE90E022C08091EA0183FFF5CF44 -:1019E00086EE90E01BC08091EA0185FF07C089E286 -:1019F00090E014C08091EA0185FFF9CF85E390E083 -:101A00000DC08091EA0186FF07C08AE290E006C01F -:101A10008091EA0186FFF9CF81E390E00E94F80A05 -:101A20000895089580916D0108959FB7F8941092DC -:101A30005C019FBF9091F001943009F057C09091E4 -:101A4000E9009F703091EC00232F217030FD20E8D9 -:101A5000922B24E02093E9002091EB0020FF43C06B -:101A60002091EE0027FF3FC020915A01222321F050 -:101A70002091E80025FF37C010925A0126E03091EE -:101A8000E80035FD15C03091F001343061F530913A -:101A9000EB0035FD28C0215021F481E080935A01EC -:101AA00022C0EFE9FFE03197F1F700C00000E7CF77 -:101AB0008093F1008091E80085FD0AC08091E800E4 -:101AC00080FFFCCF8091E8008E778093E80006C00D -:101AD0008FB7F89421E020935C018FBF9F709093A3 -:101AE000E90080E008959F709093E9008FEF0895DA -:101AF000CF93DF9300D01F92CDB7DEB79C018091CA -:101B0000F001843019F593E099833B832A83909305 -:101B1000E9008FEF9091E800815095FD06C095EDAA -:101B20009A95F1F700008111F5CF8091E80085FFCB -:101B30000DC040E050E063E070E0CE0101960E94ED -:101B400048108091E8008E778093E8000F900F9006 -:101B50000F90DF91CF910895CF93DF9300D01F9224 -:101B6000CDB7DEB72091F001243021F522E02983A2 -:101B70009B838A8383E08093E9008FEF9091E80054 -:101B8000815095FD06C095ED9A95F1F70000811101 -:101B9000F5CF8091E80085FF0DC040E050E063E0A4 -:101BA00070E0CE0101960E9448108091E8008E7787 -:101BB0008093E8000F900F900F90DF91CF910895E0 -:101BC0002091F0012430F1F422E02093E9002FEF7E -:101BD0003091E800215035FD06C035ED3A95F1F71A -:101BE00000002111F5CF2091E80025FF0BC040E057 -:101BF00050E065E070E00E9448108091E8008E7728 -:101C00008093E8000895CF93DF932091F001243072 -:101C100009F048C0EC0180910C018823E1F080912B -:101C20000D018823C1F085E08093E9008FEF90914A -:101C3000E800815095FD06C095E19A95F1F7000006 -:101C40008111F5CF8091E80085FF2CC040E050E085 -:101C500060E170E017C081E08093E9008FEF909120 -:101C6000E800815095FD06C095ED9A95F1F70000CA -:101C70008111F5CF8091E80085FF14C040E050E06D -:101C800068E070E0CE010E9448108091E8008E77F5 -:101C90008093E80080E1FE01ADE5B1E001900D9296 -:101CA0008A95E1F7DF91CF91089583E993E00E944F -:101CB00052078091EF01811109C00E94DD110E943D -:101CC0003A128091E20084608093E20008958FE8E8 -:101CD00093E00E9452071092EF0108958BE893E081 -:101CE0000C94520787E893E00E9452070C94EF2B64 -:101CF00083E893E00E9452070E94B9210E94F52BCD -:101D00000E94DF140C94110D20915B012F5F822F34 -:101D100062E30E94632D992319F020935B010895DB -:101D200010925B0180915C01882371F18091F00138 -:101D3000843041F58091E9008F702091EC00922F62 -:101D4000917020FD90E8892B94E09093E9009091A8 -:101D5000EB0090FF14C09091EE0097FF10C090919F -:101D6000E80095FF03C01092F100F9CF9091E800D0 -:101D700090FF05C09091E8009E779093E8008F70E7 -:101D80008093E90010925C01089542E061EC81E0EB -:101D90000E94571142E061EC82E00E94571142E03C -:101DA00061EC83E00E94571142E261EC84E00E9402 -:101DB000571142E161EC85E00C9457118091F201DA -:101DC000833009F455C030F4813071F0823009F469 -:101DD0008EC008958A3009F47AC08B3009F460C04F -:101DE000893009F09CC020C08091F101813A09F04E -:101DF00096C08091E800877F8093E8008091F5018C -:101E00009091F601892B21F460E18DE591E003C00A -:101E100060E080E090E070E00E9493108091E80024 -:101E20008B778093E80008958091F101813209F069 -:101E300076C08091F5019091F601009719F0049712 -:101E400009F06DC08091E800877F8093E800809161 -:101E5000E80082FD05C08091F0018111F8CF5FC0DC -:101E60008091F10080936D018091E8008B7753C0E1 -:101E70008091F101813A09F052C08091F501909171 -:101E8000F601892B09F04BC08091E800877F809391 -:101E9000E8008091E80080FFFCCF80910C0136C003 -:101EA0008091F1018132D9F58091F5019091F6018F -:101EB000892BA9F58091E800877F8093E8000E9434 -:101EC0008C118091F30180930C010C94BD1A8091C8 -:101ED000F101813221F58091E800877F8093E8004D -:101EE0000E948C118091F40180936E01089580917D -:101EF000F101813AA1F48091E800877F8093E800A6 -:101F00008091E80080FFFCCF80916E018093F1000A -:101F10008091E8008E778093E8000C948C110895EE -:101F200084B7877F84BF88E10FB6F8948093600000 -:101F3000109260000FBE90E080E80FB6F894809396 -:101F40006100909361000FBE0E946C150E94DD112C -:101F50000E943A128091E20084608093E20085E161 -:101F60009DE00E94F82078940E94BF140E946E1594 -:101F700082E091E00E94DA140E94DD2B82E793E078 -:101F80000E9452078091F001853089F48EE693E03B -:101F90000E9452070E947D218091EE01882391F3D7 -:101FA0000E94A521882371F30E943210EBCF0E947A -:101FB0009C15E8CF292F332723303105C9F064F46D -:101FC0002130310581F02230310509F043C08DE820 -:101FD00090E02BEC33E042C021323105F1F02232A7 -:101FE000310541F137C082E190E028E534E036C0A8 -:101FF00099278130910541F08230910541F0892B7C -:1020000049F5E7ECF3E005C0EFEAF3E002C0E7E9E9 -:10201000F3E0849190E09F0121C06530D8F4E62F71 -:10202000F0E0EE0FFF1FEB5DFE4F2081318189E074 -:1020300090E014C0653070F470E0FB01EE0FFF1FFC -:10204000E55EFE4F20813181FB01EA5EFE4F80811B -:1020500090E004C080E090E020E030E0FA013183BD -:102060002083089580E189BD82E189BD09B400FE25 -:10207000FDCF8091D8008F7D8093D8008091E000C3 -:1020800082608093E0008091E00081FDFCCF0895A4 -:10209000CF92DF92EF92FF920F931F93CF93DF9334 -:1020A000EC018B016A010E94AB11811133C0C11494 -:1020B000D10439F0F60180819181081B190BC80FFA -:1020C000D91FE12CF12C0115110519F18091E800BF -:1020D00085FD16C08091E8008E778093E800C114DA -:1020E000D10449F0F60180819181E80EF91EF18258 -:1020F000E08285E00FC00E94AB11882321F30AC063 -:1021000089918093F10001501109FFEFEF1AFF0A46 -:10211000DACF80E0DF91CF911F910F91FF90EF9088 -:10212000DF90CF9008952091F7013091F8012617A4 -:10213000370748F06115710539F42091E8002E77D2 -:102140002093E80001C0B90140E061157105A9F1D3 -:102150002091F001222309F443C0253009F442C044 -:102160002091E80023FD40C02091E80022FD32C00C -:102170002091E80020FFE9CF4091F3002091F20088 -:1021800030E0342BFC01CF016115710559F0283086 -:10219000310540F481918093F100615071092F5F06 -:1021A0003F4FF1CF41E02830310509F040E0209168 -:1021B000E8002E772093E800C8CF4111C9CF0AC0AC -:1021C0008091F001882361F0853061F08091E80012 -:1021D00083FD0AC08091E80082FFF2CF80E008957D -:1021E00082E0089583E0089581E008952091F70149 -:1021F0003091F8012617370748F06115710539F459 -:102200002091E8002E772093E80001C0B901FC017D -:1022100020E06115710591F18091F001882309F4A6 -:1022200040C0853009F43FC08091E80083FD3DC087 -:102230008091E80082FD2FC08091E80080FFE9CF07 -:102240002091F3008091F20090E0922B61157105CE -:1022500059F08830910540F424912093F100319693 -:10226000615071090196F2CF21E0089709F020E052 -:102270008091E8008E778093E800CBCF2111CCCFFE -:102280000AC08091F001882361F0853061F080916F -:10229000E80083FD0AC08091E80082FFF2CF80E071 -:1022A000089582E0089583E0089581E00895982FCD -:1022B000973058F59093E900981739F07091EC0039 -:1022C0002091ED005091F00003C0242F762F50E0B4 -:1022D00021FF19C03091EB003E7F3093EB0030912D -:1022E000ED003D7F3093ED003091EB003160309395 -:1022F000EB007093EC002093ED005093F0002091E0 -:10230000EE0027FF07C09F5FD3CF8F708093E90057 -:1023100081E0089580E008958091F10187FF11C068 -:102320008091E80082FD05C08091F0018111F8CF15 -:1023300011C08091E8008B770BC08091F001882359 -:1023400049F08091E80080FFF8CF8091E8008E7717 -:102350008093E80008952091E4003091E50095E62F -:102360004091EC00842F817040FF22C08091E800F2 -:1023700080FD1CC08091F001882391F0853091F0A0 -:102380008091EB0085FD10C04091E4005091E50084 -:102390004217530729F39A01915011F784E00895E9 -:1023A00082E0089583E0089581E0089580E0089533 -:1023B0004091E80042FFDECF08950E944B120E9438 -:1023C0005312E0EEF0E0808181608083E8EDF0E080 -:1023D00080818F77808319BCA7EDB0E08C918E7FD0 -:1023E0008C9380818F7E80831092EF0108950F93EC -:1023F0001F93CF93DF930E944B120E945312C8ED9C -:10240000D0E088818F7788838881806888838881FD -:102410008F7D888319BC1092F0011092EC0110920C -:10242000EE011092ED0100EE10E0F80180818B7F4B -:10243000808388818160888342E060E080E00E9440 -:102440005711E1EEF0E080818E7F8083E2EEF0E0D4 -:10245000808181608083808188608083F8018081B1 -:102460008E7F8083888180618883DF91CF911F91E7 -:102470000F910895E8EDF0E080818F7E8083E7ED95 -:10248000F0E080818160808384E082BF81E080937E -:10249000EF010C94F711E8EDF0E080818E7F8083EE -:1024A0001092E20008951092DA001092E10008956F -:1024B0001F920F920FB60F9211242F933F934F93B9 -:1024C0005F936F937F938F939F93AF93BF93EF939C -:1024D000FF938091E10082FF0BC08091E20082FFB8 -:1024E00007C08091E1008B7F8093E1000E94840E01 -:1024F0008091DA0080FF1FC08091D80080FF1BC050 -:102500008091DA008E7F8093DA008091D90080FF7D -:102510000DC080E189BD82E189BD09B400FEFDCF17 -:1025200081E08093F0010E94550E05C019BC109205 -:10253000F0010E94670E8091E10080FF19C0809138 -:10254000E20080FF15C08091E2008E7F8093E20060 -:102550008091E20080618093E2008091D8008062E7 -:102560008093D80019BC85E08093F0010E94720E20 -:102570008091E10084FF30C08091E20084FF2CC094 -:1025800080E189BD82E189BD09B400FEFDCF809163 -:10259000D8008F7D8093D8008091E1008F7E80935A -:1025A000E1008091E2008F7E8093E2008091E20062 -:1025B00081608093E2008091EC01882311F084E037 -:1025C00007C08091E30087FD02C081E001C083E085 -:1025D0008093F0010E94780E8091E10083FF29C072 -:1025E0008091E20083FF25C08091E100877F809386 -:1025F000E10082E08093F0011092EC018091E10013 -:102600008E7F8093E1008091E2008E7F8093E200D4 -:102610008091E20080618093E20042E060E080E02F -:102620000E9457118091F00088608093F0000E9412 -:102630006E0EFF91EF91BF91AF919F918F917F911E -:102640006F915F914F913F912F910F900FBE0F901F -:102650001F9018951F920F920FB60F9211242F936F -:102660003F934F935F936F937F938F939F93AF931A -:10267000BF93CF93DF93EF93FF93C091E900CF70A7 -:102680008091EC00D82FD17080FDD0E81092E90045 -:102690008091F000877F8093F00078940E946E1301 -:1026A0001092E9008091F00088608093F000CD2BBB -:1026B000CF70C093E900FF91EF91DF91CF91BF916F -:1026C000AF919F918F917F916F915F914F913F91CA -:1026D0002F910F900FBE0F901F9018951F93CF93BF -:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63 -:1026F000CDBFE1EFF1E088E08E0F9091F100919372 -:102700008E13FBCF0E94DE0E8091E80083FF1FC175 -:102710008091F1019091F201492F50E04A3051052A -:1027200008F015C1FA01EA5AFF4F0C94832D803846 -:1027300081F0823809F00BC18091F5018F70809390 -:10274000E9008091EB0085FB882780F91092E90071 -:1027500006C08091ED019091EE01911182609091FF -:10276000E800977F9093E8008093F1001092F100C9 -:10277000C8C0282F2D7F09F0EAC0882319F08230C5 -:1027800061F0E5C08091F301813009F0E0C0933041 -:1027900009F080E08093EE012BC08091F30181115C -:1027A00027C08091F5018F7009F4D1C08093E900B2 -:1027B0002091EB0020FF1CC0933021F48091EB00AE -:1027C000806214C09091EB0090619093EB0021E047 -:1027D00030E0A90102C0440F551F8A95E2F74093EB -:1027E000EA001092EA008091EB0088608093EB0091 -:1027F0001092E9008091E800877F86C08111A7C010 -:102800001091F3011F778091E3008078812B8093F2 -:10281000E3008091E800877F8093E8000E948C119C -:102820008091E80080FFFCCF8091E3008068809376 -:10283000E300111102C082E001C083E08093F00147 -:1028400086C08058823008F082C08091F301909158 -:10285000F4018C3D53E0950779F583E08A838AE2A1 -:1028600089834FB7F894DE01139620E03EE051E2F1 -:10287000E32FF0E050935700E49120FF03C0E2956E -:10288000EF703F5FEF708E2F90E0EA3010F0C79648 -:1028900001C0C0968D939D932F5F243149F74FBFA0 -:1028A0008091E800877F8093E8006AE270E0CE01C3 -:1028B00001960E94931014C0AE014F5F5F4F60916C -:1028C000F5010E94DA0FBC01892B09F440C09091F8 -:1028D000E800977F9093E80089819A810E94F61022 -:1028E0008091E8008B778093E80031C0803879F5DB -:1028F0008091E800877F8093E8008091EC018093CD -:10290000F1008091E8008E778093E8000E948C119E -:102910001EC081111CC09091F3019230C0F48091CF -:10292000E800877F8093E8009093EC010E948C116F -:102930008091EC01811106C08091E30087FD02C007 -:1029400081E001C084E08093F0010E94C50E809177 -:10295000E80083FF0AC08091E800877F8093E80049 -:102960008091EB0080628093EB00AA960FB6F894FA -:10297000DEBF0FBECDBFDF91CF911F910895CF93E2 -:102980008091F0018823A1F0C091E900CF7090916F -:10299000EC00892F817090FD80E8C82B1092E9002F -:1029A0008091E80083FD0E946E13CF70C093E90010 -:1029B000CF91089590937401809373010895E091ED -:1029C0007301F0917401309721F00190F081E02DB6 -:1029D000099480E00895EF92FF920F931F93CF9395 -:1029E000DF93E0917301F09174013097B1F18C01A4 -:1029F0000280F381E02D09958091D70182FF2DC0DF -:102A000080FF04C08DE895E00E945207E80110E1C4 -:102A100087E8E82E85E0F82E8091D70180FF0BC073 -:102A200088811F928F93FF92EF920E94EB070F9085 -:102A30000F900F900F90115021961111EDCF8091B2 -:102A4000D70180FF0AC085E895E0DF91CF911F9103 -:102A50000F91FF90EF900C945207DF91CF911F914F -:102A60000F91FF90EF900895E0917301F091740140 -:102A7000309721F00480F581E02D0994089520918C -:102A80007101309172018217930771F09093720176 -:102A900080937101E0917301F0917401309721F0FE -:102AA0000680F781E02D0994089520916F013091FF -:102AB00070018217930771F09093700180936F01FA -:102AC000E0917301F0917401309721F00084F18559 -:102AD000E02D0994089508950C946B150E94BB2174 -:102AE0000E9462090C948122CF93C82F8091D70154 -:102AF00082FF1EC080FF04C086EA95E00E94520754 -:102B00008091D70180FF0CC01F92CF9381EA95E09E -:102B10009F938F930E94EB070F900F900F900F9051 -:102B20008091D70180FF04C08FE995E00E94520791 -:102B30008C2FCF910C94110DCF92DF92EF92FF92D8 -:102B40000F931F93CF93DF93CDB7DEB72B970FB6BD -:102B5000F894DEBF0FBECDBF0E947F0986E7C82E66 -:102B600081E0D82E00E010E0E02E802F0E94AB0A1A -:102B7000F60141916F01F42EF826B1F40F5F1F4F5B -:102B80000E30110589F78FEF89838A831B820E949B -:102B9000C4218160782F9D838C8349815A816B8108 -:102BA0008D810E943F1640C09091D70191FF04C0D3 -:102BB0008B870E94B10A8B8520E030E04F2D50E0DA -:102BC000922FBA01022E02C0759567950A94E2F71A -:102BD00060FF24C02E83EF8221E030E0690102C053 -:102BE000CC0CDD1C9A95E2F790E08C219D21892B7D -:102BF00009F420E028870E94C4218160782F9A87F9 -:102C000089874E815F8168858A850E943F16F80119 -:102C1000EA58FE4F8081C826C08206C02F5F3F4F12 -:102C20002630310569F6AACF0E94F2251091750170 -:102C30000E94DF141817A1F00E94DF148093750121 -:102C40002B960FB6F894DEBF0FBECDBFDF91CF91AC -:102C50001F910F91FF90EF90DF90CF900C9474151F -:102C60002B960FB6F894DEBF0FBECDBFDF91CF918C -:102C70001F910F91FF90EF90DF90CF900895CF9329 -:102C8000DF93CDB7DEB72B970FB6F894DEBF0FBE3C -:102C9000CDBF4F83588769877A878B87DE0111966E -:102CA00086E0FD0111928A95E9F785E0FE013796ED -:102CB00001900D928A95E1F749815A816B817C815F -:102CC0008D819E810E94571D2B960FB6F894DEBF12 -:102CD0000FBECDBFDF91CF910895CF93882309F424 -:102CE000C2C0C82F823859F40E94DF1481FDBBC0D6 -:102CF00089E30E94F31F0E94D22089E30CC083382D -:102D000079F40E94DF1480FDAEC083E50E94F31FBA -:102D10000E94D22083E50E944620CF910C94D220BD -:102D2000843859F40E94DF1482FD9DC087E40E941C -:102D3000F31F0E94D22087E4EECF8CEF8C0F813AF4 -:102D400048F48C2F0E94852A81118DC08C2F0E94FF -:102D5000F31FE3CF80E28C0F883048F4C77081E026 -:102D600001C0880FCA95EAF70E949B20D6CF8BE559 -:102D70008C0F833078F4C53A29F0C63A31F083E8F5 -:102D800090E005C081E890E002C082E890E0CF9139 -:102D90000C943F1588E58C0F833108F064C0C83A65 -:102DA00039F1C93A41F1CA3A49F1CB3A51F1CC3A39 -:102DB00059F1CD3A61F1C03B69F1CE3A71F1CF3AA8 -:102DC00079F1C13B81F1C23B89F1C33B91F1C43B35 -:102DD00099F1C53BA1F1C63BA9F1C73BB1F1C83B95 -:102DE000B9F1C93BC1F1CA3BC9F180E090E038C0FC -:102DF00082EE90E035C089EE90E032C08AEE90E03D -:102E00002FC085EB90E02CC086EB90E029C087EBCB -:102E100090E026C08CEC90E023C08DEC90E020C0C8 -:102E200083E891E01DC08AE891E01AC082E991E050 -:102E300017C084E991E014C081E292E011C083E2FE -:102E400092E00EC084E292E00BC085E292E008C0FE -:102E500086E292E005C087E292E002C08AE292E058 -:102E6000CF910C945515CF910895882309F44BC048 -:102E7000823859F40E94DF1481FF45C089E30E9423 -:102E8000F31F0E94D22089E30CC0833871F40E94A2 -:102E9000DF1480FF38C083E50E94F31F0E94D22018 -:102EA00083E50E9446200C94D220843859F40E9475 -:102EB000DF1482FF28C087E40E94F31F0E94D22003 -:102EC00087E4EFCF9CEF980F913A58F390E2980F78 -:102ED000983050F4877091E001C0990F8A95EAF715 -:102EE000892F0E94A120DFCF9BE5980F933020F41B -:102EF00080E090E00C943F15885A833120F480E004 -:102F000090E00C9455150895882321F00E949B2091 -:102F10000C94D2200895882321F00E94A1200C94C3 -:102F2000D2200895BF92CF92DF92EF92FF920F933B -:102F30001F93CF93DF9300D000D000D0CDB7DEB782 -:102F400025E0FC01DE01119601900D922A95E1F732 -:102F5000FC01408131810281258122952F7063819E -:102F60007481672B09F4E7C23F3F19F44F3F09F41E -:102F7000E2C27C0149833A8389819A812E830E942F -:102F8000B21F182FB92E0E94B11F0E94781EEB2D80 -:102F9000E295EF70F0E0E05AFF4F2E810C94832D04 -:102FA0008B2D807F9B2D9F70F92E882319F0F29432 -:102FB00080EFF822002349F0FF2009F469C28F2D29 -:102FC0000E94AB200E94D22063C2812F0E9435173D -:102FD000FF2009F4B0C28F2D0E94B12026960FB6B3 -:102FE000F894DEBF0FBECDBFDF91CF911F910F913F -:102FF000FF90EF90DF90CF90BF900C94D2203B2DAC -:10300000307F8B2D8F70303211F08295807F1123AD -:1030100019F0113021F12DC00023B9F0222309F459 -:10302000A1C1213009F09EC126960FB6F894DEBFEB -:103030000FBECDBFDF91CF911F910F91FF90EF9009 -:10304000DF90CF90BF900C94BB20222319F0213049 -:1030500009F471C28E830E94BE208E8197C1002325 -:1030600021F0263008F067C27DC1253008F063C228 -:103070008DC1002321F0222309F474C109C2222347 -:1030800009F484C11AC22B2D26952695237030E0B1 -:103090002115310521F021303105D1F04CC200233A -:1030A00021F0812F9B2D937002C080E090E0269646 -:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1030C0000F91FF90EF90DF90CF90BF900C943F1541 -:1030D000002321F0812F9B2D937002C080E090E0AF -:1030E00026960FB6F894DEBF0FBECDBFDF91CF910D -:1030F0001F910F91FF90EF90DF90CF90BF900C94B5 -:103100005515812F002319F00E94782402C00E94D7 -:10311000E02426960FB6F894DEBF0FBECDBFDF9138 -:10312000CF911F910F91FF90EF90DF90CF90BF90C4 -:103130000C9465258B2D837009F07BC00111FBC1B8 -:10314000812F829586958770880F880F912F9F70A9 -:10315000C92ED12CE12CF12C082E04C0CC0CDD1C86 -:10316000EE1CFF1C0A94D2F714FF12C04FE050E08F -:1031700060E070E004C0440F551F661F771F8A95FA -:10318000D2F7CB01BA01609570958095909503C0F8 -:1031900060E070E0CB012B2D269526952370422F01 -:1031A00050E042305105D9F04330510569F16C29A6 -:1031B0007D298E299F294130510551F126960FB660 -:1031C000F894DEBF0FBECDBFDF91CF911F910F915D -:1031D000FF90EF90DF90CF90BF900C949F1E6C29D2 -:1031E0007D298E299F2926960FB6F894DEBF0FBE43 -:1031F000CDBFDF91CF911F910F91FF90EF90DF90A6 -:10320000CF90BF900C94BB1E0E949F1EC701B601B9 -:1032100026960FB6F894DEBF0FBECDBFDF91CF91DB -:103220001F910F91FF90EF90DF90CF90BF900C9483 -:10323000831E002319F08B2D817001C08695882391 -:1032400009F479C1812F829586958770880F880F40 -:10325000912F9F70C92ED12CE12CF12C082E04C087 -:10326000CC0CDD1CEE1CFF1C0A94D2F714FF12C01C -:103270004FE050E060E070E004C0440F551F661F4F -:10328000771F8A95D2F7CB01BA016095709580952A -:10329000909503C060E070E0CB012B2D269526951C -:1032A0002370422F50E042305105D9F04330510590 -:1032B00069F16C297D298E299F294130510551F1F1 -:1032C00026960FB6F894DEBF0FBECDBFDF91CF912B -:1032D0001F910F91FF90EF90DF90CF90BF900C94D3 -:1032E000791F6C297D298E299F2926960FB6F8947F -:1032F000DEBF0FBECDBFDF91CF911F910F91FF9029 -:10330000EF90DF90CF90BF900C94951F0E94791F93 -:10331000C701B60126960FB6F894DEBF0FBECDBF2B -:10332000DF91CF911F910F91FF90EF90DF90CF90A1 -:10333000BF900C945D1F103FD1F118F4103E50F473 -:10334000A2C0123F09F464C008F44DC0133F09F451 -:1033500074C099C01F708B2D8F710023A1F00E9443 -:10336000F61E812F26960FB6F894DEBF0FBECDBF96 -:10337000DF91CF911F910F91FF90EF90DF90CF9051 -:10338000BF900C9484170E94171F812F26960FB6AA -:10339000F894DEBF0FBECDBFDF91CF911F910F918B -:1033A000FF90EF90DF90CF90BF900C948B1700238D -:1033B000B1F0253008F0BFC08B2D8F7126960FB667 -:1033C000F894DEBF0FBECDBFDF91CF911F910F915B -:1033D000FF90EF90DF90CF90BF900C943C1F263071 -:1033E00008F0A9C0E9CF0023A9F08B2D8F71269694 -:1033F0000FB6F894DEBF0FBECDBFDF91CF911F9106 -:103400000F91FF90EF90DF90CF90BF900C94F61E3D -:10341000002359F38B2D8F7126960FB6F894DEBFDB -:103420000FBECDBFDF91CF911F910F91FF90EF9015 -:10343000DF90CF90BF900C94171F002399F08B2D35 -:103440008F7126960FB6F894DEBF0FBECDBFDF9109 -:10345000CF911F910F91FF90EF90DF90CF90BF9091 -:103460000C94E11E26960FB6F894DEBF0FBECDBFBA -:10347000DF91CF911F910F91FF90EF90DF90CF9050 -:10348000BF900C94D71E0023A9F0222309F4ADCFDE -:10349000812F26960FB6F894DEBF0FBECDBFDF9109 -:1034A000CF911F910F91FF90EF90DF90CF90BF9041 -:1034B0000C946D16222309F4ADCF812F26960FB6FA -:1034C000F894DEBF0FBECDBFDF91CF911F910F915A -:1034D000FF90EF90DF90CF90BF900C9435174B2D5D -:1034E0004F70612FC7010E94F40726960FB6F8941B -:1034F000DEBF0FBECDBFDF91CF911F910F91FF9027 -:10350000EF90DF90CF90BF900C94FB1D4B2D4F7030 -:10351000612FC70126960FB6F894DEBF0FBECDBF50 -:10352000DF91CF911F910F91FF90EF90DF90CF909F -:10353000BF900C94B70B26960FB6F894DEBF0FBE63 -:10354000CDBFDF91CF911F910F91FF90EF90DF9052 -:10355000CF90BF9008950E94B8200E948D200E94B5 -:10356000D2200E9498260E94652580E090E00E946B -:103570003F1580E090E00C9455150E94A8200C9413 -:10358000AB1A0E94B21F292F22952F7030E02C30E9 -:1035900031054CF42A3031056CF4225031092230C7 -:1035A000310588F407C02C30310549F02F30310542 -:1035B00031F009C0803E48F0803F29F406C093FBFB -:1035C000882780F9089580E0089581E00895CF93D9 -:1035D000DF9300D000D01F92CDB7DEB70F900F90D1 -:1035E0000F900F900F90DF91CF910895CF93DF93BD -:1035F00000D000D000D0CDB7DEB726960FB6F89435 -:10360000DEBF0FBECDBFDF91CF9108951F93CF9343 -:10361000DF93C091840116E080918501C81799F06D -:10362000D0E01C9FF0011D9FF00D1124EA57FE4FC2 -:103630004081518162817381848195810E94F61A53 -:103640002196C770E9CFDF91CF911F9108954091E6 -:10365000B6015091B7016091B8017091B9018091A4 -:10366000BA019091BB010C94F61A8091BB0182952E -:103670008F7009F054C08091B801882309F44FC0BD -:1036800080918401A09185016091B6017091B7018C -:103690004091B9015091BA01B6E08A1709F43FC0D0 -:1036A00090E041155105C1F17F3F11F46F3FA1F149 -:1036B000B89FF001B99FF00D1124EA57FE4F218108 -:1036C00072132AC02081621327C02281211124C0D5 -:1036D000238134812417350710F421503109241B2C -:1036E000350B283C3105C0F42091BB012F702061BF -:1036F0002093BB0126E0289FF001299FF00D1124A3 -:10370000E557FE4F80818F708061808386EB91E06A -:103710000E9492170C94061B01968770BECF0895E5 -:10372000CF92DF92EF92FF920F931F93CF93DF938D -:10373000CDB7DEB762970FB6F894DEBF0FBECDBF30 -:103740008C0185E0F801DE011D9601900D928A95AD -:10375000E1F7D8014C9111965C91119712966C91FA -:1037600012971396CD90DC9014973091B60170911A -:10377000B7018091B9019091BA01009709F46BC12A -:103780007F3F19F43F3F09F466C1E090B801EE2095 -:1037900009F4C0C02091BB01C816D90628F0F60173 -:1037A000E81BF90BCF0104C0809590958C0D9D1DF1 -:1037B000FF24F394883C910578F0F12C207F09F0E8 -:1037C000C6C07C2DD98AC88A89890E94E71A86EBEF -:1037D00091E00E949217B1C0822F807F09F046C00D -:1037E000751314C0341312C0611110C02F70206102 -:1037F0002093BB010E94271B86EB91E00E94921749 -:103800008091BB01D80115968C932EC0CD2819F15B -:103810005F3F11F44F3FF9F0F62E61111CC080910B -:1038200084012091850136E0821709F45AC090E0A6 -:10383000389FF001399FF00D1124EA57FE4F718136 -:10384000571306C07081471303C07281711103C002 -:1038500001968770E9CFF62E662309F418C180918E -:10386000BB0181608093BB01F12C11C1751308C0AD -:10387000341306C0611104C08091BB01D801C3C0DC -:103880004D875E878D859E856A8B0E94C11A6A89E5 -:103890008823E1F16623D1F12091BB01822F82952B -:1038A0008F7090E0029774F08091B6019091B7010B -:1038B00098878F831986DB86CA862C87CE01079668 -:1038C0000E94921786E0F801A6EBB1E001900D92FC -:1038D0008A95E1F70E94351B0E94271BFF24F39471 -:1038E000D6C04D875E878D859E850E94B21F292F89 -:1038F00022952F7030E0223031050CF0BCC09F7053 -:1039000009F0B6C0805E883008F4C1C0C8010E94CA -:103910009217E4CFC816D90608F453C0F601E81B85 -:10392000F90BCF01883C910508F450C0F12C7C2D97 -:10393000D98AC88A89890E94E71AE6EBF1E086E015 -:10394000DF011D928A95E9F70E94271BA0C075131D -:1039500014C0341312C0611110C08091BB01F80172 -:103960008583C8010E94921786E0E6EBF1E0DF0153 -:103970001D928A95E9F7FE2C8AC04D875E878D855A -:103980009E856A8B0E94C11A6A89882309F4BECF7A -:10399000662309F4BBCF2091BB01822F82958F70E3 -:1039A00090E002970CF48ECF8091B6019091B70110 -:1039B0009A8389831B82DD82CC822E83CE0101967D -:1039C0007FCF809590958C0D9D1DACCFF62E6623F4 -:1039D00009F49CCF75132EC034132CC02091BB0169 -:1039E00020FD1FC0822F82958F70D9F0D8011596C7 -:1039F0002C9315978F3049F08F5F982F9295907F79 -:103A0000822F8F70892B15968C93C8010E94921774 -:103A100086E0F801A6EBB1E001900D928A95E1F7FE -:103A200093CF86E0F801A6EBB1E001900D928A9564 -:103A3000E1F72DC04D875E878D859E850E94C11A56 -:103A4000811140CF8091BB0181608093BB01C8018F -:103A50000E9492171CC0662309F458CF4D875E87D9 -:103A60008D859E850E94C11A882309F44FCF2ACFE5 -:103A7000811148CF0CC0243031050CF047CF9F7026 -:103A800009F440CFF8019581907F09F03BCF8F2D4D -:103A900062960FB6F894DEBF0FBECDBFDF91CF9117 -:103AA0001F910F91FF90EF90DF90CF9008951F939B -:103AB000CF93DF93CDB7DEB72C970FB6F894DEBF68 -:103AC0000FBECDBF4F83588769877A878B879C87C6 -:103AD000CE0107960E94901B882369F08F819885FC -:103AE0002A853B85232BF1F19F3F09F063C08F3F6F -:103AF00009F060C037C086E0FE013796DE011196FE -:103B000001900D928A95E1F76F817885EA85FB85B2 -:103B1000309741F17F3F11F46F3F21F120918501F2 -:103B200030E0C9010196877099274091840150E0E7 -:103B30008417950709F447C069837A83FD83EC8372 -:103B400096E0929FD001939FB00D1124AA57BE4FCB -:103B5000FE01319601900D929A95E1F780938501CF -:103B60000E94061B16E080918401909185018917BF -:103B7000C1F1189FC00111248A579E4F0E94901BCB -:103B8000882379F1E09184011E9FF0011124EA5706 -:103B9000FE4F4081518162817381848195810E94B1 -:103BA000F61A8091840190E001968770992780939E -:103BB0008401D9CF4F81588569857A858B859C850D -:103BC0000E94F61ACFCF0E94BD1A10928501109262 -:103BD0008401E6EBF1E086E0DF011D928A95E9F7CA -:103BE000C1CF2C960FB6F894DEBF0FBECDBFDF91CC -:103BF000CF911F910895EF92FF920F931F93CF9350 -:103C0000DF938C01892B09F46CC0F12CEE24E39432 -:103C1000E8012196F8018491843740F4843008F05B -:103C200051C0813081F0823019F15BC0853709F4D1 -:103C300044C0A8F19CE7980F903708F052C08F77E6 -:103C40000E94351741C00E5F1F4FFE01C49180E2F4 -:103C50008C0F883048F4C7708E2D01C0880FCA952C -:103C6000EAF70E94AB2014C08C2F0E946D162DC065 -:103C70000E5F1F4FFE01C49180E28C0F883058F414 -:103C8000C7708E2D01C0880FCA95EAF70E94B12037 -:103C90000E94D2201AC08C2F0E94351716C00E5FCA -:103CA0001F4FFE01C491CC2381F08FE99FE0019763 -:103CB000F1F700C00000C150F6CF0E5F1F4FFE01AC -:103CC000F49003C00E946D168E018F2D882309F495 -:103CD0009FCFEFE9FFE03197F1F700C0000081507E -:103CE000F5CFDF91CF911F910F91FF90EF90089545 -:103CF00008956093C0017093C1018093C2019093B5 -:103D0000C3010C94AB1A0F931F930091C001109143 -:103D1000C1012091C2013091C301DC01CB01802B94 -:103D2000912BA22BB32B8093C0019093C101A09340 -:103D3000C201B093C3011F910F910C94AB1A0F9362 -:103D40001F930091C0011091C1012091C2013091D7 -:103D5000C301DC01CB0180239123A223B3238093F1 -:103D6000C0019093C101A093C201B093C3011F9100 -:103D70000F910C94AB1A0F931F930091C0011091F7 -:103D8000C1012091C2013091C301DC01CB01802728 -:103D90009127A227B3278093C0019093C101A093DC -:103DA000C201B093C3011F910F910C94AB1A1092F2 -:103DB000BC011092BD011092BE011092BF010C9483 -:103DC000AB1A41E050E060E070E004C0440F551FC2 -:103DD000661F771F8A95D2F74093BC015093BD01AF -:103DE0006093BE017093BF010C94AB1A41E050E0A8 -:103DF00060E070E004C0440F551F661F771F8A956E -:103E0000D2F78091BC019091BD01A091BE01B0910B -:103E1000BF01482B592B6A2B7B2B4093BC0150933D -:103E2000BD016093BE017093BF010C94AB1A41E0D9 -:103E300050E060E070E004C0440F551F661F771F1C -:103E40008A95D2F740955095609570958091BC0108 -:103E50009091BD01A091BE01B091BF0148235923AB -:103E60006A237B234093BC015093BD016093BE0144 -:103E70007093BF010C94AB1A41E050E060E070E039 -:103E800004C0440F551F661F771F8A95D2F7809193 -:103E9000BC019091BD01A091BE01B091BF01482726 -:103EA00059276A277B274093BC015093BD0160933B -:103EB000BE017093BF010C94AB1A0F931F93009136 -:103EC000BC011091BD012091BE013091BF01DC0108 -:103ED000CB01802B912BA22BB32B8093BC01909311 -:103EE000BD01A093BE01B093BF011F910F910C942F -:103EF000AB1A0F931F930091BC011091BD0120914B -:103F0000BE013091BF01DC01CB0180239123A223AC -:103F1000B3238093BC019093BD01A093BE01B093E5 -:103F2000BF011F910F910C94AB1A0F931F93009137 -:103F3000BC011091BD012091BE013091BF01DC0197 -:103F4000CB0180279127A227B3278093BC019093B0 -:103F5000BD01A093BE01B093BF011F910F910C94BE -:103F6000AB1A0895CF92DF92EF92FF920F931F93B7 -:103F7000CF93DF938C01C090C001D090C101E0903D -:103F8000C201F090C3014091BC015091BD0160910C -:103F9000BE017091BF01C42AD52AE62AF72ACFE1D3 -:103FA000D0E0D701C6010C2E04C0B695A795979511 -:103FB00087950A94D2F780FF07C0B8018C2F0E9422 -:103FC000DA0B8130910531F4219758F7B80180E080 -:103FD0000E94DA0BDF91CF911F910F91FF90EF902C -:103FE000DF90CF90089590910C01992321F090914A -:103FF0000D01911109C020910E0130910F01F901BD -:1040000032969FEF40E030C0982F96959695969502 -:104010009F30A0F4E0910E01F0910F01E90FF11D26 -:10402000877021E030E0A90102C0440F551F8A9536 -:10403000E2F7CA019181892B818308959091D7017C -:1040400090FF23C01F928F9387ED95E09F938F93EE -:104050000E94EB070F900F900F900F9008959F3FD5 -:1040600039F04F5F4E3041F051915813F8CF0DC0E9 -:104070005111F7CF942FF5CF9F3F39F0F901E90F98 -:10408000F11D97FDFA9582830895089590910C0192 -:10409000992321F090910D01911109C020910E01F9 -:1040A00030910F01F9013296205F3F4F30C0982FB9 -:1040B0009695969596959F30A8F4E0910E01F09113 -:1040C0000F01E90FF11D877021E030E0A90102C066 -:1040D000440F551F8A95E2F7CA0180959181892383 -:1040E000818308959091D70190FF16C01F928F93FE -:1040F00089EB95E09F938F930E94EB070F900F90B1 -:104100000F900F9008953196E217F30729F09081F0 -:104110009813F9CF1082F7CF089581E090E0E091F5 -:104120000E01F0910F01E80FF91F10820196803106 -:104130009105A9F708959091D601892B8093D60116 -:10414000089580959091D60189238093D601089592 -:104150001092D60108959091D501892B8093D501B5 -:10416000089580959091D50189238093D501089574 -:104170001092D50108958093C40108951092C4014E -:10418000089580910E0190910F01FC0131969C01E0 -:10419000205F3F4F80E0919191118F5FE217F3070D -:1041A000D1F70895E0910E01F0910F018091D601B1 -:1041B0008083E0910E01F0910F0190818091D501F3 -:1041C000892B80838091C401882361F0E0910E01E6 -:1041D000F0910F019081892B80830E94C120811171 -:1041E0001092C40180910E0190910F010C94EB1478 -:1041F00090933B0180933A010895CF92DF92EF9222 -:10420000FF926C01EE24FF24C114D104E104F104F7 -:1042100021F0C701B60120E101C020E0C72ED82E51 -:10422000E92EFF24C114D104E104F10419F0285F40 -:10423000C701B6016B017C0154E0F694E794D79472 -:10424000C7945A95D1F7C114D104E104F10419F0CF -:104250002C5FC701B6016B017C0142E0F694E79444 -:10426000D794C7944A95D1F7C114D104E104F1045D -:1042700019F02E5FC701B601DC01CB01B695A795F9 -:1042800097958795892B8A2B8B2B09F02F5F822F8F -:10429000FF90EF90DF90CF9008958295982F9C7CAF -:1042A000392F36953695282F237344E0249FC0017B -:1042B0001124932F982B292F2A7A2695892F8575DB -:1042C000880F822B08951F93CF93DF931F92CDB752 -:1042D000DEB799830E944D21182F9981892F0E9462 -:1042E0004D21212F30E0322F2227A901482BCA016E -:1042F0000F90DF91CF911F9108958091F00184304C -:1043000009F11092D80120E488E190E00FB6F8940A -:10431000A895809360000FBE2093600083B7817FD3 -:10432000846083BF83B7816083BF7894889583B7A7 -:104330008E7F83BF88E10FB6F8948093600010925F -:1043400060000FBE089508950895CF930E94A321A1 -:104350000E947F090E94A421C0E08C2F0E94AB0A1A -:10436000811104C0CF5FCE30C1F701C081E0CF9191 -:1043700008950C94BD1A82E084BD93E095BD9AEF38 -:1043800097BD80936E0008952FB7F8948091D9015E -:104390009091DA01A091DB01B091DC012FBF08956B -:1043A000CF92DF92EF92FF920F931F932FB7F89463 -:1043B0004091D9015091DA016091DB017091DC01EB -:1043C0002FBF6A017B01EE24FF248C0120E030E046 -:1043D000C016D106E206F30610F4415051099A01C5 -:1043E000281B390BC9011F910F91FF90EF90DF90AF -:1043F000CF9008951F920F920FB60F9211248F93B2 -:104400009F93AF93BF938091D9019091DA01A091CE -:10441000DB01B091DC010196A11DB11D8093D90192 -:104420009093DA01A093DB01B093DC01BF91AF91CF -:104430009F918F910F900FBE0F901F9018950E9423 -:10444000DD11F8942FEF87EA91E6215080409040EB -:10445000E1F700C0000087E090EBDC018093F901F8 -:104460009093FA01A093FB01B093FC019CE088E1DA -:104470000FB6F894A895809360000FBE90936000EB -:10448000FFCFEF92FF920F931F93CF93DF93D82F1D -:10449000C0E08C2F0E94AB0A00E010E0E82EF12C67 -:1044A000C701002E02C0959587950A94E2F780FD1A -:1044B00006C00F5F1F4F0630110591F709C0602F2E -:1044C0007C2F80E00E94B80BD813F3CF81E004C0AA -:1044D000CF5FCE30F1F680E0DF91CF911F910F9149 -:1044E000FF90EF900895CF93C82F8CE20E94412255 -:1044F000882321F08C2FCF910C94412280E0CF9122 -:104500000895CF930E94D023811102C00E94B62348 -:104510008CEF95E00E945207C5E6C15049F00E9419 -:104520007F098FE39CE90197F1F700C00000F5CF08 -:1045300085EF95E00E94520789E20E947322811163 -:1045400013C18AE20E94732281110E94B62385E082 -:104550000E94732281110E941F220E94DB238093FC -:10456000D70187E00E9473228823A9F18BE10E9482 -:104570007322882351F08091D70181FB222720F9F3 -:1045800091E0922790FB81F90EC08EE00E94732289 -:10459000882361F08091D70182FB222720F991E0E6 -:1045A000922790FB82F98093D70115C080E10E9489 -:1045B00073229091D701882341F093FB222720F9A1 -:1045C00081E0822780FB93F904C0892F809580FBCE -:1045D00090F99093D7018091D7010E94DF230E9428 -:1045E000ED238093EA0180EE0E947322882341F03C -:1045F0008091EA01982F909590FB80F98093EA01D1 -:1046000089E30E947322882359F08091EA0181FB9B -:10461000222720F991E0922790FB81F98093EA010B -:1046200082EE0E947322882359F08091EA0182FB76 -:10463000222720F991E0922790FB82F98093EA01EA -:1046400086EE0E947322882359F08091EA0183FB51 -:10465000222720F991E0922790FB83F98093EA01C9 -:1046600083EE0E947322882359F08091EA0184FB33 -:10467000222720F991E0922790FB84F98093EA01A8 -:1046800085E30E947322882359F08091EA0185FB1B -:10469000222720F991E0922790FB85F98093EA0187 -:1046A00081E30E947322882359F08091EA0186FBFE -:1046B000222720F991E0922790FB86F98093EA0166 -:1046C00081E10E947322882359F08091EA0187FBDF -:1046D000222720F991E0922790FB87F98093EA0145 -:1046E0008091EA010E94F1238091EA0187FB8827EB -:1046F00080F980930D0187E20E947322C82F8EE11A -:104700000E9473228111C2608FE10E947322811185 -:10471000C46080E20E9473228111C86081E20E941D -:1047200073228111C06182E20E9473228111C062F2 -:1047300083E20E9473228111C06484E20E9473228A -:10474000882311F0C06802C0CC2329F08C2F0E946E -:10475000E8236C2F03C00E94E423682F70E080E000 -:1047600090E0CF910C94791ECF9108956DEE7EEF7D -:1047700080E090E00E94B92D60E082E090E00E942D -:10478000AB2D60E083E090E00E94AB2D60E084E020 -:1047900090E00E94AB2D60E085E090E00C94AB2DA2 -:1047A00080E090E00E94A52D21E08D3E9E4F09F013 -:1047B00020E0822F089582E090E00C949D2D682FD8 -:1047C00082E090E00C94AB2D83E090E00C949D2D62 -:1047D000682F83E090E00C94AB2D84E090E00C9483 -:1047E0009D2D682F84E090E00C94AB2D8091DF012B -:1047F00080FF0BC06091130185E0689FB001112418 -:1048000075956795759567952BC081FF09C0609177 -:10481000130185E0689FB00111247595679520C04C -:1048200082FF07C06091130185E0689FB0011124E9 -:1048300017C09091E0019923D1F060911201961771 -:1048400088F72091130185E0289F90011124929F01 -:10485000A001939F500D112470E0CA010E946F2D9A -:104860006038710540F46115710539F002C065E0EA -:1048700070E0862F08958FE7089581E00895809174 -:10488000DF0180FF08C06091110170E075956795A8 -:104890007595679521C081FF06C06091110170E098 -:1048A0007595679519C082FF04C06091110170E091 -:1048B00010C09091E0019923C1F06091100196170A -:1048C000A0F780911101899FC001112470E00E941E -:1048D0006F2D6038710528F46115710521F0862F60 -:1048E00008958FE7089581E0089561E070E0F4CFC6 -:1048F000803F21F40E94F623819504C0813F29F472 -:104900000E94F6238093E3010895823F21F40E94E0 -:10491000F623819504C0833F29F40E94F6238093F7 -:10492000E2010895893F19F40E943F2405C08A3F9F -:1049300031F40E943F2481958093E40108958B3FD8 -:1049400021F40E943F24819504C08C3F29F40E94E9 -:104950003F248093E5010895843F21F48091E10193 -:10496000816017C0853F21F48091E101826011C010 -:10497000863F21F48091E10184600BC0873F21F4E0 -:104980008091E101886005C0883F31F48091E101A8 -:1049900080618093E10108958D3F21F48091DF01D2 -:1049A00081600BC08E3F21F48091DF01826005C0E1 -:1049B0008F3F29F48091DF0184608093DF010895A7 -:1049C000803F39F48091E30187FF6CC01092E301CE -:1049D00069C0813F29F48091E3011816BCF362C0DD -:1049E0009091E201823F29F497FF5CC01092E201AE -:1049F00059C0833F19F41916CCF354C0893F41F4D0 -:104A00008091E40118160CF04DC01092E4014AC0E8 -:104A10008A3F29F48091E40187FF44C0F6CF8B3FA1 -:104A200039F48091E50187FF3DC01092E5013AC05D -:104A30008C3F29F48091E5011816BCF333C0843F04 -:104A400021F48091E1018E7F17C0853F21F4809190 -:104A5000E1018D7F11C0863F21F48091E1018B7FC0 -:104A60000BC0873F21F48091E101877F05C0883F1B -:104A700031F48091E1018F7E8093E10113C08D3F7D -:104A800021F48091DF018E7F0BC08E3F21F4809155 -:104A9000DF018D7F05C08F3F29F48091DF018B7F7F -:104AA0008093DF018091E20181110EC08091E301CA -:104AB00081110AC08091E401811106C08091E50155 -:104AC000811102C01092E00108958091D70183FF07 -:104AD0007EC088E396E00E9452078091E1011F9218 -:104AE0008F9383E396E09F938F930E94EB0781E37C -:104AF00096E00E9452078091E201282F332727FD7C -:104B000030953F938F938EE296E09F938F930E9410 -:104B1000EB078CE296E00E9452078091E301282F78 -:104B2000332727FD30953F938F9389E296E09F933B -:104B30008F930E94EB0787E296E00E9452078091D4 -:104B4000E401282F332727FD30953F938F9384E28C -:104B500096E09F938F930E94EB0782E296E00E947B -:104B600052078091E501282F332727FD30953F9389 -:104B70008F938FE196E09F938F930E94EB078CE1D8 -:104B800096E00E9452078091E0011F928F9389E185 -:104B900096E09F938F930E94EB0787E196E00E9437 -:104BA00052078091DF011F928F9384E196E09F93DB -:104BB0008F930E94EB0781E196E00E9452078DB728 -:104BC0009EB74C960FB6F8949EBF0FBE8DBF81EE78 -:104BD00091E00E9434150E94C4219093DE018093DD -:104BE000DD0108951F93CF93DF938091DD019091B4 -:104BF000DE010E94D021AC019091E001992321F0C7 -:104C00002091140130E006C0209115018AE0289F10 -:104C1000900111244217530708F486C08091E201E5 -:104C2000C091E301D091E4011091E501811107C029 -:104C3000C11176C0D11174C0111172C075C09F3FEF -:104C400019F09F5F9093E001181624F40E94F62358 -:104C50008093E2018091E20187FF05C00E94F62364 -:104C600081958093E2011C1624F40E94F623809320 -:104C7000E3018091E30187FF05C00E94F62381953F -:104C80008093E3016091E201662339F1C091E30171 -:104C9000CC2319F1772767FD7095872F972F0E94F6 -:104CA000742C23E333E343E35FE30E94D82C0E9498 -:104CB000412C6093E2016C2F772767FD7095872F59 -:104CC000972F0E94742C23E333E343E35FE30E94B6 -:104CD000D82C0E94412C6093E3011D1624F40E94FD -:104CE0003F248093E4018091E40187FF05C00E9486 -:104CF0003F2481958093E401111624F40E943F24FF -:104D00008093E5018091E50187FF05C00E943F2463 -:104D100081958093E501DF91CF911F910C946525DA -:104D20009F3F09F08ECF96CFDF91CF911F910895CD -:104D3000E1EEF1E085E0DF011D928A95E9F710923E -:104D4000E0011092DF0108958BE598E00E94520780 -:104D50001F9281E08F931F9285E08F938DE098E002 -:104D60009F938F930E94EB070F900F900F900F90DF -:104D70000F900F9008958330E9F128F4813061F0AD -:104D8000823009F10895853009F462C008F449C001 -:104D9000863009F474C0089580911501262F30E003 -:104DA000280F311D2F3F310524F4680F6093150142 -:104DB00003C08FEF80931501809115011F928F938F -:104DC00086E497E072C080911401262F30E0280F0E -:104DD000311D2F3F310524F4680F6093140103C087 -:104DE0008FEF80931401809114011F928F9384E3BD -:104DF00097E05BC080911301262F30E0280F311D12 -:104E00002F3F310524F4680F6093130103C08FEF27 -:104E100080931301809113011F928F9381E297E099 -:104E200044C080911201262F30E0280F311D2F3F02 -:104E3000310524F4680F6093120103C08FEF809353 -:104E40001201809112011F928F938CE097E02DC088 -:104E500080911101262F30E0280F311D2F3F3105A1 -:104E600024F4680F6093110103C08FEF8093110148 -:104E7000809111011F928F9383EF96E016C080916D -:104E80001001262F30E0280F311D2F3F310524F46B -:104E9000680F6093100103C08FEF80931001809121 -:104EA00010011F928F9388ED96E09F938F930E943D -:104EB000EB070F900F900F900F900895833081F1C2 -:104EC00028F4813059F08230D1F00895853009F40A -:104ED00049C0B8F1863009F456C008958091150193 -:104EE000681720F4861B8093150102C010921501EB -:104EF000809115011F928F9389EC96E054C08091A8 -:104F00001401681720F4861B8093140102C01092CC -:104F10001401809114011F928F9387EB96E043C098 -:104F200080911301681720F4861B8093130102C03F -:104F300010921301809113011F928F9384EA96E0DF -:104F400032C080911201681720F4861B80931201F1 -:104F500002C010921201809112011F928F938FE86C -:104F600096E021C080911101681720F4861B809380 -:104F7000110102C010921101809111011F928F93B3 -:104F800086E796E010C080911001681720F4861B18 -:104F90008093100102C010921001809110011F92A5 -:104FA0008F938BE596E09F938F930E94EB070F9072 -:104FB0000F900F900F900895CF93C82F1F928F934B -:104FC00080E699E09F938F930E94EB0781E090E049 -:104FD000A0E0B0E0BC01CD0104C0660F771F881FC0 -:104FE000991FCA95D2F70E94791E0F900F900F90CB -:104FF0000F90CF910C94BD1ACF938D3109F465C0F9 -:10500000B0F58E3009F4CCC100F5873009F49BC1AE -:10501000A8F4863009F06DC28091D701817F8E7F20 -:105020008093D70185E699E00E94520781EA9DE0CE -:105030000E94520781E08093E70180C1883009F423 -:105040004FC08B3009F47CC154C2863109F4F0C1E1 -:1050500038F4803109F4B8C1813109F430C249C251 -:10506000893109F4CEC18B3109F486C142C285333E -:1050700009F437C248F4873209F433C208F433C262 -:10508000893209F42EC235C2833438F48A3308F0E9 -:105090002CC2883309F454C12CC2833409F421C2D0 -:1050A000883409F026C20E94BD1A80E99DE00E9462 -:1050B00052079FEF23ED80E3915020408040E1F7BD -:1050C00000C000000E941F2239C180EB9DE00E94B9 -:1050D00052070E94FB2B0E94DF140E94110D2EC16B -:1050E00085EA9DE00E94520786E79BE00E945207F6 -:1050F0000E94E4231F928F9383E79BE09F938F93FB -:105100000E94EB0781E79BE00E9452070E94DB238D -:10511000C82F8EE59BE00E9452071F92CF9389E52E -:105120009BE09F938F930E94EB0787E59BE00E9493 -:1051300052078DE49BE00E9452078C2F81701F92D2 -:105140008F938AE49BE09F938F930E94EB0788E400 -:105150009BE00E9452078EE39BE00E945207C1FB36 -:10516000882780F91F928F938BE39BE09F938F9307 -:105170000E94EB0789E39BE00E9452078DE29BE0CF -:105180000E945207C2FB882780F91F928F938AE200 -:105190009BE09F938F930E94EB0788E29BE00E9425 -:1051A00052078FE19BE00E945207C3FBCC27C0F956 -:1051B0001F92CF938CE19BE09F938F930E94EB070C -:1051C0008AE19BE00E9452070E94ED23C82F86E0EF -:1051D0009BE00E9452071F92CF9381E09BE09F9338 -:1051E0008F930E94EB078FEF9AE00E94520786EEA2 -:1051F0009AE00E9452078C2F81701F928F9383EE4A -:105200009AE09F938F930E94EB078DB79EB780968D -:105210000FB6F8949EBF0FBE8DBF81EE9AE00E943C -:1052200052078AEC9AE00E945207C1FB882780F956 -:105230001F928F9387EC9AE09F938F930E94EB07C6 -:1052400085EC9AE00E94520783EB9AE00E94520795 -:10525000C2FB882780F91F928F9380EB9AE09F937F -:105260008F930E94EB078EEA9AE00E9452078CE926 -:105270009AE00E945207C3FB882780F91F928F9300 -:1052800089E99AE09F938F930E94EB0787E99AE060 -:105290000E9452078DE89AE00E945207C4FB8827BB -:1052A00080F91F928F938AE89AE09F938F930E94D0 -:1052B000EB0788E89AE00E94520786E79AE00E948E -:1052C0005207C5FB882780F91F928F9383E79AE0E6 -:1052D0009F938F930E94EB0781E79AE00E94520709 -:1052E00085E59AE00E945207C6FB882780F91F9245 -:1052F0008F9382E59AE09F938F930E94EB0780E55E -:105300009AE00E94520788E49AE00E945207C7FB85 -:10531000CC27C0F91F92CF9385E49AE09F938F9397 -:105320000E94EB0783E49AE00E9452078DB79EB774 -:105330004C960FB6F8949EBF0FBE8DBFC1E0DEC085 -:105340008CE899E05BC08091D701C82FC17080FFC5 -:1053500009C083E89DE00E9452078091D701817FB8 -:105360008E7F47C087E79DE00E9452078091D7015A -:1053700081608093D701E2CF9091D70191FBCC2738 -:10538000C0F981E0C827892FC0FB81F98093D7013C -:10539000CC2319F08AE69DE027C08CE59DE02EC065 -:1053A0009091D70192FBCC27C0F981E0C827892FC3 -:1053B000C0FB82F98093D701CC2319F08DE49DE0E6 -:1053C00013C08DE39DE01AC09091D70193FBCC27C9 -:1053D000C0F981E0C827892FC0FB83F98093D701EA -:1053E000CC2351F081E39DE00E9452078091D701C8 -:1053F00081608093D70182C084E29DE00E945207C1 -:105400009DCF85E19DE00E94520789EE9CE00E94BD -:1054100052078CEA9CE00E94520785E89CE00E94BB -:10542000520781E49CE00E94520786E19CE0E6CFAF -:1054300088E09CE00E9452070E94DF141F928F9325 -:105440008EEE9BE09F938F930E94EB0780910C015F -:105450001F928F9387ED9BE09F938F930E94EB07A2 -:1054600080916E011F928F9384EC9BE09F938F93AA -:105470000E94EB0780910D011F928F9381EB9BE0BF -:105480009F938F930E94EB078091D9019091DA014D -:10549000A091DB01B091DC01BF93AF939F938F93F9 -:1054A0008DE99BE09F938F930E94EB078DB79EB78A -:1054B00046960FB6F8949EBF0FBE8DBF3FCF0E9499 -:1054C000BD1AC0910D0181E0C827C0930D01CC2306 -:1054D00029F083E99BE00E94520710C088E89BE016 -:1054E0008DCF80E003C08D5101C089530E94DC271D -:1054F00025CF86E89BE00E945207C0E08C2FCF9119 -:10550000089580E0089580E00895CF93C82F80919A -:10551000E701813081F020F0823009F44FC045C1AD -:10552000E0910E01F0910F018081813169F08232AA -:1055300009F03DC109C0E0910E01F0910F01808199 -:10554000813111F0823261F48C2F0E94812A811105 -:1055500004C08C2F0E94FC272FC081E090E02CC05B -:105560008C2F0E94832A811126C0C431E1F070F48F -:10557000CB3081F0C031D1F40E94A42688E599E0B7 -:105580000E94520782E08093E70115C0C93259F0AA -:10559000C83361F485E699E00E9452078CE599E0F2 -:1055A0000E94520708C01092E70103C186E599E006 -:1055B0000E945207FEC081E08170FDC0C43220F518 -:1055C000CE3108F0C0C0CB3099F1C8F4C73009F033 -:1055D000D2C08AE08093150194E19093140193E086 -:1055E000909313018093120188E08093110188E267 -:1055F000809310018CEF97E00E945207BFC0C33127 -:1056000049F1C431C1F0B7C0CB3409F4A9C028F4C2 -:10561000C93289F0C83361F0AEC0C13509F49EC00B -:10562000C23509F499C0CE3409F0A5C06AE09EC025 -:105630000E94A426A3C08091E601882319F010924D -:10564000E6019CC089E098E00E94520781E08093C7 -:10565000E701B1C083EE97E00E94520781ED97E029 -:105660000E945207809115011F928F938EEC97E054 -:105670009F938F930E94EB078CEC97E00E94520758 -:105680008AEB97E00E945207809114011F928F933A -:1056900087EB97E09F938F930E94EB0785EB97E052 -:1056A0000E94520786EA97E00E94520780911301F8 -:1056B0001F928F9383EA97E09F938F930E94EB074B -:1056C00081EA97E00E94520780E997E00E94520722 -:1056D000809112011F928F938DE897E09F938F9393 -:1056E0000E94EB078BE897E00E94520786E797E05D -:1056F0000E945207809111011F928F9383E797E0D8 -:105700009F938F930E94EB0781E797E00E945207D7 -:105710008AE597E00E945207809110011F928F93B3 -:1057200087E597E09F938F930E94EB0785E597E0CD -:105730000E9452078DB79EB748960FB6F8949EBF49 -:105740000FBE8DBF1BC0CE51EC2FF0E0E15DFE4FD0 -:1057500080818093E60112C061E003C061E006C071 -:105760006AE08091E6010E94BB2608C08091E601B4 -:105770000E945E2703C08AEF97E013C08091E60184 -:10578000882369F01F928F9384EF97E09F938F9304 -:105790000E94EB070F900F900F900F9004C081EFC5 -:1057A00097E00E94520781E006C01092E70180E076 -:1057B00002C080E001CFCF910895E1E8F0E0808160 -:1057C000886080838081816080838FB7F89493E0C4 -:1057D0009093890090ED909388008FBF0895EFE635 -:1057E000F0E08081826080830895EFE6F0E08081C0 -:1057F0008D7F80830895EFE6F0E0908182E0892735 -:10580000808308951F920F920FB60F9211242F9349 -:105810003F934F935F936F937F938F939F93AF9338 -:10582000BF93EF93FF938091E8019091E901019676 -:105830009093E9018093E801811103C082E00E9406 -:10584000110DE091E901E695E695F0E0E054F24FA4 -:10585000E4918091E8018E1303C080E00E94110D55 -:10586000FF91EF91BF91AF919F918F917F916F9138 -:105870005F914F913F912F910F900FBE0F901F900E -:10588000189504D06894B1118DC0089570D088F037 -:105890009F5790F0B92F9927B751A0F0D1F0660F1C -:1058A000771F881F991F1AF0BA95C9F712C0B13037 -:1058B00081F077D0B1E0089574C0672F782F8827E2 -:1058C000B85F39F0B93FCCF3869577956795B39576 -:1058D000D9F73EF490958095709561957F4F8F4FE5 -:1058E0009F4F0895E89409C097FB3EF490958095EA -:1058F000709561957F4F8F4F9F4F9923A9F0F92F96 -:1059000096E9BB279395F695879577956795B79513 -:10591000F111F8CFFAF4BB0F11F460FF1BC06F5FF9 -:105920007F4F8F4F9F4F16C0882311F096E911C00B -:10593000772321F09EE8872F762F05C0662371F02C -:1059400096E8862F70E060E02AF09A95660F771F40 -:10595000881FDAF7880F9695879597F9089557FD70 -:105960009058440F551F59F05F3F71F04795880FCD -:1059700097FB991F61F09F3F79F087950895121664 -:1059800013061406551FF2CF4695F1DF08C0161610 -:1059900017061806991FF1CF8695710561050894C1 -:1059A0000895E894BB2766277727CB0197F90895D8 -:1059B0000BD078C069D028F06ED018F0952309F08C -:1059C0005AC05FC01124EECFCADFA0F3959FD1F378 -:1059D000950F50E0551F629FF001729FBB27F00D9D -:1059E000B11D639FAA27F00DB11DAA1F649F6627F2 -:1059F000B00DA11D661F829F2227B00DA11D621F41 -:105A0000739FB00DA11D621F839FA00D611D221FFA -:105A1000749F3327A00D611D231F849F600D211DDE -:105A2000822F762F6A2F11249F5750408AF0E1F081 -:105A300088234AF0EE0FFF1FBB1F661F771F881FCA -:105A400091505040A9F79E3F510570F014C0AACF65 -:105A50005F3FECF3983EDCF3869577956795B795B5 -:105A6000F795E7959F5FC1F7FE2B880F911D9695DF -:105A7000879597F9089597F99F6780E870E060E04F -:105A800008959FEF80EC089500240A9416161706D7 -:105A900018060906089500240A941216130614061F -:105AA00005060895092E0394000C11F4882352F082 -:105AB000BB0F40F4BF2B11F460FF04C06F5F7F4F3A -:105AC0008F4F9F4F0895991B79E004C0991F961737 -:105AD00008F0961B881F7A95C9F78095089597FB63 -:105AE000072E16F4009407D077FD09D00E94892D67 -:105AF00007FC05D03EF4909581959F4F08957095D1 -:105B000061957F4F0895EE0FFF1F0590F491E02DF2 -:105B10000994AA1BBB1B51E107C0AA1FBB1FA617F4 -:105B2000B70710F0A61BB70B881F991F5A95A9F746 -:105B300080959095BC01CD010895F999FECF92BD55 -:105B400081BDF89A992780B50895A8E1B0E042E0B8 -:105B500050E00C94C02D262FF999FECF1FBA92BDAC -:105B600081BD20BD0FB6F894FA9AF99A0FBE01963E -:105B700008950E94AB2D272F0C94AC2DDC01CB0196 -:105B8000FC01F999FECF06C0F2BDE1BDF89A31964D -:105B900000B40D9241505040B8F70895F894FFCFEB -:105BA0002002120D030EE00DAC0D780D0101C501B0 -:105BB00028080A03140A3F4D3620394605F904C364 -:105BC00004A3046A04DD03F6030F04280448040157 -:0A5BD000020304050607080900009F -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_kinesis_pnut.c b/keyboard/ergodox_ez/keymaps/keymap_osx_kinesis_pnut.c deleted file mode 100644 index f71ca28ceb..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_kinesis_pnut.c +++ /dev/null @@ -1,191 +0,0 @@ -// Netable differences vs. the default firmware for the ErgoDox EZ: -// 1. The Cmd key is now on the right side, making Cmd+Space easier. -// 2. The media keys work on OSX (But not on Windows). -// Wanted to map default layer of my EZ to my existing Kinesis Mapping. -// Only default layer was remapped all others layers are standard Ergodox EZ -// Very personal mapping of-course, but who knows a starting point for others. - -#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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | CapsL | 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 | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ESC | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '" | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |AltShf|Grv/L1| '" | Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | LGui | App | | Ctrl/Esc | RGui | - * ,------|------|------| |------+--------+------. - * | | | Home | | = | | | - * | Backs|Delete|------| |------| Enter |Space | - * | pace | | End | | TAB | | | - * `--------------------' `----------------------' - */ -// 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_CAPSLOCK, 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(1), - KC_ESC, 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), - LALT(KC_LSFT), LT(SYMB,KC_GRV),KC_QUOT,KC_LEFT,KC_RGHT, - KC_LGUI, ALT_T(KC_APP), - KC_HOME, - KC_BSPC,KC_DELT,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, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOTE, - 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, - CTL_T(KC_ESC), KC_LGUI, - KC_EQL, - KC_TAB, KC_ENT, KC_SPC - ), -/* 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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 -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_plover.c b/keyboard/ergodox_ez/keymaps/keymap_plover.c deleted file mode 100644 index bd356c47c5..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_plover.c +++ /dev/null @@ -1,228 +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 -#define PLVR 3 // Plover layer - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | LGui | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L1 | |Plover| Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Esc | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | Home | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | End | | PgUp | | | - * |Backsp|Delete|------| |------| Enter |Space | - * | ace | | LAlt | | 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_LGUI, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), - KC_ESC, 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, - ALT_T(KC_APP), KC_HOME, - KC_END, - KC_BSPC,KC_DELT,KC_LALT, - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(3), 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, - KC_LALT, CTL_T(KC_ESC), - KC_PGUP, - KC_PGDN,KC_ENT, KC_SPC - ), -/* 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | |Brwser|Brwser| - * | Lclk | Rclk |------| |------|Fwd |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -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_BTN1, KC_BTN2, 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_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, 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_WBAK, KC_WFWD -), - -/* Keymap 4: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | a | s | d | f | g | | | | h | j | k | l | ; | ' | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | c | v |------| |------| n | m | - * | | | | | | | | - * `--------------------' `--------------------' - */ - -[PLVR] = KEYMAP( // layout: layer 4: Steno for Plover - // left hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, - KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_FN4, KC_NO, - KC_NO, - KC_C, KC_V, KC_NO, - // right hand - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_NO, KC_N, KC_M -), -}; - -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_software_neo2.c b/keyboard/ergodox_ez/keymaps/keymap_software_neo2.c deleted file mode 100644 index 684ecf5e33..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_software_neo2.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_extras/keymap_neo2.h" - -// Layer names -#define BASE 0 // default layer -#define MDIA 1 // media keys - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 |BackSpce| - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | X | V | L | C | W | L1 | | L1 | K | H | G | F | Q | ß | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Caps | U | I | A | E | O |------| |------| S | N | R | T | D | Y | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Ü/Ctrl| Ö/C-S| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | L1 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | Esc | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------+------+------| |------+--------+------. - * | | |NeoL2 | |NeoL2 | | | - * | Tab |Backsp|------| |------| Space |Enter | - * | |ace |NeoL1 | |NeoL1 | | | - * `--------------------' `----------------------' - */ -// 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_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, - KC_DELT, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, TG(1), - KC_CAPS, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, - KC_LSFT, CTL_T(NEO_UE), C_S_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, ALL_T(KC_NO), - DE_LESS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, - ALT_T(KC_APP),KC_LGUI, - NEO_L2_L, - KC_TAB,KC_BSPC,NEO_L1_L, - // right hand - KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(1), NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, - NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_Y, - MEH_T(KC_NO),NEO_B, NEO_M, KC_COMM, KC_DOT, NEO_J, KC_RSFT, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ESC, - KC_LALT,CTL_T(KC_ESC), - NEO_L2_R, - NEO_L1_R,KC_SPC, KC_ENT - ), -/* Keymap 1: 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 MDIA: - ergodox_right_led_2_on(); - break; - default: - ergodox_board_led_off(); - break; - } - -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_workman_osx_mdw.c b/keyboard/ergodox_ez/keymaps/keymap_workman_osx_mdw.c deleted file mode 100644 index 14bbe010d5..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_workman_osx_mdw.c +++ /dev/null @@ -1,366 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -// README -// This keyboard layout is based on the [Workman Dead layout](https://github.com/ojbucao/Workman/tree/master/mac#workman-dead-for-programmers), which uses the comma as a dead key to trigger a second layer. -// Since I have more keys at my disposal on the ErgoDox, I moved the dead key to the bottom right. There are still a lot of -// blanks so still discovering what I like. -// If you aren't familiar with a dead key, the idea is that you tap the dead key which switches the layout. the next key you hit -// triggers the key you pressed AND switches the layout back to the original. For now I do this with a super kludgey macro and I -// look forward to learning about a more elegant way to do the same thing. Until then, this will have to do. - - -// TODO: Define layer names that make sense for the ErgoDox EZ. -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#define DEAD 3 // dead version of the symbols layer - -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 | D | R | W | B | L1 | | L1 | J | F | U | P | ; | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Hyper | A | S | H | T | G |------| |------| Y | N | E | O | I | ' | - * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------| - * | LShift | Z | X | M | C | V | | | | K | L | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | CTRL | OPT | CMD | | Left | Down | Up | Right| L3 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * |Bckspc| Space|------| |------| Space |Enter | - * | | | 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, TG(1), - ALL_T(KC_ESC), KC_A, KC_S, KC_H, KC_T, KC_G, - KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_NO, - KC_NO, KC_NO, KC_LCTL,KC_LALT,KC_LGUI, - KC_NO, KC_NO, - KC_HOME, - KC_BSPC,KC_SPC,KC_END, - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(1), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS, - KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, - MEH_T(KC_NO),KC_K, KC_L, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, KC_FN4, - KC_NO, KC_NO, - KC_PGUP, - KC_PGDN,KC_SPC,KC_ENT - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS, KC_PERC, KC_AMPR, LSFT(KC_SLSH), LSFT(KC_EQL), KC_AT, KC_TRNS, - KC_TRNS, KC_SLSH, KC_LPRN, KC_EQL, KC_0, LSFT(KC_LBRC), - KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_PIPE, 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_DLR, KC_UNDERSCORE, KC_LBRC, KC_RBRC, KC_EXLM, KC_F12, - KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, KC_QUOT, - KC_TRNS, KC_SLSH, KC_2, KC_3, KC_4, KC_5, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 -), -/* Keymap 4: Dead Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[DEAD] = KEYMAP( - // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS, M(100), M(101), M(102), M(103), M(104), KC_TRNS, - KC_TRNS, M(109), M(110), M(111), M(112), M(113), - KC_TRNS, M(120), M(121), M(122), M(123), M(124), 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, M(105), M(106), M(107), M(108), M(130), KC_F12, - M(114), M(115), M(116), M(117), M(118), M(119), - KC_TRNS, M(125), M(126), M(127), M(128), M(129), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) - [2] = ACTION_LAYER_ON(BASE,0), // FN2 - Go back to the base layer - [3] = ACTION_LAYER_ON(DEAD,0), - [4] = ACTION_LAYER_TOGGLE(DEAD), -}; - -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; - case 100: - layer_clear(); - return MACRODOWN(D(LSFT), T(5), U(LSFT), T(FN4), END); - break; - case 101: - layer_clear(); - return MACRODOWN(D(LSFT), T(7), U(LSFT), T(FN4), END); - break; - case 102: - layer_clear(); - return MACRODOWN(D(LSFT), T(SLSH), U(LSFT), T(FN4), END); - break; - case 103: - layer_clear(); - return MACRODOWN(D(LSFT), T(EQL), U(LSFT), T(FN4), END); - break; - case 104: - layer_clear(); - return MACRODOWN(D(LSFT), T(2), U(LSFT), T(FN4), END); - break; - case 105: - layer_clear(); - return MACRODOWN(D(LSFT), T(4), U(LSFT), T(FN4), END); - break; - case 106: - layer_clear(); - return MACRODOWN(D(LSFT), T(MINS), U(LSFT), T(FN4), END); - break; - case 107: - layer_clear(); - return MACRODOWN(T(LBRC), T(FN4), END); - break; - case 108: - layer_clear(); - return MACRODOWN(T(RBRC), T(FN4), END); - break; - case 130: - layer_clear(); - return MACRODOWN(D(LSFT), T(1), U(LSFT), T(FN4), END); - break; - case 109: - layer_clear(); - return MACRODOWN(T(SLSH), T(FN4), END); - break; - case 110: - layer_clear(); - return MACRODOWN(D(LSFT), T(9), U(LSFT), T(FN4), END); - break; - case 111: - layer_clear(); - return MACRODOWN(T(EQL), T(FN4), END); - break; - case 112: - layer_clear(); - return MACRODOWN(T(0), T(FN4), END); - break; - case 113: - layer_clear(); - return MACRODOWN(D(LSFT), T(LBRC), U(LSFT), T(FN4), END); - break; - case 114: - layer_clear(); - return MACRODOWN(D(LSFT), T(RBRC), U(LSFT), T(FN4), END); - break; - case 115: - layer_clear(); - return MACRODOWN(T(1), T(FN4), END); - break; - case 116: - layer_clear(); - return MACRODOWN(D(LSFT), T(8), U(LSFT), T(FN4), END); - break; - case 117: - layer_clear(); - return MACRODOWN(D(LSFT), T(0), U(LSFT), T(FN4), END); - break; - case 118: - layer_clear(); - return MACRODOWN(T(MINS), T(FN4), END); - break; - case 119: - layer_clear(); - return MACRODOWN(D(LSFT), T(QUOT), U(LSFT), T(FN4), END); - break; - case 120: - layer_clear(); - return MACRODOWN(T(6), T(FN4), END); - break; - case 121: - layer_clear(); - return MACRODOWN(T(7), T(FN4), END); - break; - case 122: - layer_clear(); - return MACRODOWN(T(8), T(FN4), END); - break; - case 123: - layer_clear(); - return MACRODOWN(T(9), T(FN4), END); - break; - case 124: - layer_clear(); - return MACRODOWN(D(LSFT), T(BSLS), U(LSFT), T(FN4), END); - break; - case 125: - layer_clear(); - return MACRODOWN(T(BSLS), T(FN4), END); - break; - case 126: - layer_clear(); - return MACRODOWN(T(2), T(FN4), END); - break; - case 127: - layer_clear(); - return MACRODOWN(T(3), T(FN4), END); - break; - case 128: - layer_clear(); - return MACRODOWN(T(4), T(FN4), END); - break; - case 129: - layer_clear(); - return MACRODOWN(T(5), T(FN4), END); - break; - - default: - 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/kines-ish/keymap_kines-ish.c b/keyboard/ergodox_ez/keymaps/kines-ish/keymap_kines-ish.c new file mode 100644 index 0000000000..20cb53241f --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/kines-ish/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/kines-ish/keymap_kines-ish_README.md b/keyboard/ergodox_ez/keymaps/kines-ish/keymap_kines-ish_README.md new file mode 100644 index 0000000000..5d39a0590d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/kines-ish/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/osx_de/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de.c new file mode 100644 index 0000000000..cc9076eec8 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de.c @@ -0,0 +1,277 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_german_osx.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define CRSR 3 // media keys +#define NUMB 4 // number keys + +#define M_CTRL_CMDV 1 +#define M_CTRL_CMDC 2 +#define M_MEH_SH_ACUT 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | L3 | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | ! | ? | | | | | \ | [ | ] | | | # | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | . | ! | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, + KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_DEL,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, + KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | Play | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, 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_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +// Cursor layer +KEYMAP( + 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_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, + // 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +//number pad +KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, 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, + // 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, LSFT(KC_RBRC), KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(CRSR) // FN2 - Momentary Layer 2 (Cursors) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + static uint16_t start; + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + case 1: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL), END); + } else { + if (timer_elapsed(start) > 150) { + return MACRO(U(LCTRL), END); + } else { + return MACRO(U(LCTRL), D(LGUI), T(V), U(LGUI), END); + } + } + break; + case 2: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),END); + } else { + return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END); + } + } + break; + case 3: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LSFT),D(LALT),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + } else { + return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_ACUT here, as macro needs KC_ prefix + } + } + 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; + case 3: + ergodox_right_led_3_on(); + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + //ergodox_board_led_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_README.md b/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_README.md new file mode 100644 index 0000000000..6b17d75d54 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_README.md @@ -0,0 +1,27 @@ +#Ergodox EZ für OSX + +Dies ist nur ein kleiner Tweak der bestehenden firmware für das ErgoDox-EZ-Keyboard. Leider passte das layout nicht wirklich für OSX, deswegen habe ich einige Anpassungen gemacht. Dabei wurden folgende features umgesetzt: + +- Die Umlaute sollten an einigermassen sinnvollen Plätzen liegen +- der Umstieg sollte dadurch erleichtert werden, dass einige Tasten an ihren "normalen" Platz zurückgewandert sind. Z.B. ESC, Tab,... +- die Leertaste lässt sich jetzt mit beiden Daumen bedienen +- die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar. +- es gibt eine neue Layer für die Nutzung der Cursortasten, dort sind sie etwas einfacher angeordnet und sind z.B. auch für Spiele nutzbar +- Die Symbollayer wurde dahingehend angepasst, dass die klammern, etc nun auf beiden hälften der Tastatur zu finden sind +- der Zehnerblock wurde in eine eigene Layer umgezogen +- die Meh und Hyper-Tasten wurden in die Daumenblöcke umgezogen + +------------------------------ + +# ErgoDox EZ for OSX + +This is only a little tweak of the existing default layout for the ErgoDox keyboard. Unfortunately the default layout did not work well with german OSX, so I created som adjustments. These were the features added and changed: + +- the umlaut-keys should be at their useful place more or less +- the switching should be made more easy so some other keys (like tab, esc) were moved to their default place +- the space key can now be used with both hands +- the CMD- and ALT-Keys moved to the middle, can be reached more easily. +- there is a new layer for using the cursor-keys, placed like on the default keyboard. This makes them useable for games also +- the symbollayer now has only symbols +- the number block was moved to a special layer +- meh and hyper went down to the thumb block diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_adnw_koy.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_adnw_koy.c new file mode 100644 index 0000000000..7e9defafa7 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_adnw_koy.c @@ -0,0 +1,262 @@ +// Netable differences vs. the default firmware for the ErgoDox EZ: +// 1. The Cmd key is now on the right side, making Cmd+Space easier. +// 2. The media keys work on OSX (But not on Windows). +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_german.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define ADNW 3 // media keys +#define NUMB 4 // number keys + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ADNW | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | " | ' | ? | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | . | ! | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_GRV,LSFT(KC_GRV),DE_EXLM,DE_QST,KC_TRNS,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, LALT(LSFT(KC_7)),DE_SLSH,KC_DOT, + KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,LALT(KC_7),LALT(KC_N),KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_DEL,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, + KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | Play | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, 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_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +/* Keymap 3: ADNW-Koy layer + * ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | K | . | O | , | Y | CMD | | CMD | V | G | C | L | ß | Z | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ADNW | H | A | E | I | U |------| |------| D | T | R | N | S | F/L2 | + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M |J/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |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; + case 3: + ergodox_right_led_3_on(); + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + //ergodox_board_led_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_highres.png b/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_highres.png new file mode 100644 index 0000000000..1d5226974f Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/osx_de/keymap_osx_de_highres.png differ diff --git a/keyboard/ergodox_ez/keymaps/osx_fr/keymap_osx_fr.c b/keyboard/ergodox_ez/keymaps/osx_fr/keymap_osx_fr.c new file mode 100644 index 0000000000..4b59d2eb29 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_fr/keymap_osx_fr.c @@ -0,0 +1,187 @@ +// French AZERTY version of the default_osx file +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_french_osx.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | - | & | é | " | ' | ( | LEFT | | RIGHT| § | è | ! | ç | à | ) | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | A | Z | E | R | T | L1 | | L1 | Y | U | I | O | P | ` | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | Q | S | D | F | G |------| |------| H | J | K | L | M | LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |W/Ctrl| X | C | V | B | | | | N | , |; / L2| : |=/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ù /L1| < |AltShf| Left | Right| | Up | Down | ^ | $ | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |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 + FR_MINS, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_LEFT, + KC_DELT, FR_A, FR_Z, KC_E, KC_R, KC_T, TG(1), + KC_BSPC, FR_Q, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(FR_W), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,FR_UGRV), FR_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC, KC_BSPC, KC_END, + + // right hand + KC_RGHT, FR_SECT, FR_EGRV, FR_EXLM, FR_CCED, FR_AGRV, FR_RPRN, + TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, FR_GRV, + KC_H, KC_J, KC_K, KC_L, FR_M, KC_LGUI, + MEH_T(KC_NO), KC_N, FR_COMM, LT(MDIA, FR_SCLN), FR_COLN, CTL_T(FR_EQL), KC_RSFT, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, 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,FR_EXLM,FR_AT, FR_LCBR,FR_RCBR,FR_PIPE,KC_TRNS, + KC_TRNS,FR_HASH,FR_DLR, FR_LPRN,FR_RPRN,FR_GRV, + KC_TRNS,FR_PERC,FR_CIRC,FR_LBRC,FR_RBRC,FR_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, FR_7, FR_8, FR_9, FR_ASTR, KC_F12, + KC_DOWN, FR_4, FR_5, FR_6, FR_PLUS, KC_TRNS, + KC_TRNS, FR_AMP, FR_1, FR_2, FR_3, FR_BSLS, KC_TRNS, + KC_TRNS,FR_COMM, FR_0, FR_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 +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; + } + +}; \ No newline at end of file diff --git a/keyboard/ergodox_ez/keymaps/osx_kinesis_pnut/keymap_osx_kinesis_pnut.c b/keyboard/ergodox_ez/keymaps/osx_kinesis_pnut/keymap_osx_kinesis_pnut.c new file mode 100644 index 0000000000..f71ca28ceb --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_kinesis_pnut/keymap_osx_kinesis_pnut.c @@ -0,0 +1,191 @@ +// Netable differences vs. the default firmware for the ErgoDox EZ: +// 1. The Cmd key is now on the right side, making Cmd+Space easier. +// 2. The media keys work on OSX (But not on Windows). +// Wanted to map default layer of my EZ to my existing Kinesis Mapping. +// Only default layer was remapped all others layers are standard Ergodox EZ +// Very personal mapping of-course, but who knows a starting point for others. + +#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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | CapsL | 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 | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ESC | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '" | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |AltShf|Grv/L1| '" | Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LGui | App | | Ctrl/Esc | RGui | + * ,------|------|------| |------+--------+------. + * | | | Home | | = | | | + * | Backs|Delete|------| |------| Enter |Space | + * | pace | | End | | TAB | | | + * `--------------------' `----------------------' + */ +// 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_CAPSLOCK, 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(1), + KC_ESC, 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), + LALT(KC_LSFT), LT(SYMB,KC_GRV),KC_QUOT,KC_LEFT,KC_RGHT, + KC_LGUI, ALT_T(KC_APP), + KC_HOME, + KC_BSPC,KC_DELT,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, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOTE, + 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, + CTL_T(KC_ESC), KC_LGUI, + KC_EQL, + KC_TAB, KC_ENT, KC_SPC + ), +/* 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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 +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/plover/keymap_plover.c b/keyboard/ergodox_ez/keymaps/plover/keymap_plover.c new file mode 100644 index 0000000000..bd356c47c5 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/plover/keymap_plover.c @@ -0,0 +1,228 @@ +#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 +#define PLVR 3 // Plover layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LGui | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | |Plover| Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | Home | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | End | | PgUp | | | + * |Backsp|Delete|------| |------| Enter |Space | + * | ace | | LAlt | | 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_LGUI, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + KC_ESC, 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, + ALT_T(KC_APP), KC_HOME, + KC_END, + KC_BSPC,KC_DELT,KC_LALT, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(3), 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, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +/* 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,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Fwd |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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_BTN1, KC_BTN2, 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_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, 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_WBAK, KC_WFWD +), + +/* Keymap 4: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | a | s | d | f | g | | | | h | j | k | l | ; | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | c | v |------| |------| n | m | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( // layout: layer 4: Steno for Plover + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, + KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_FN4, KC_NO, + KC_NO, + KC_C, KC_V, KC_NO, + // right hand + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M +), +}; + +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/software_neo2/keymap_software_neo2.c b/keyboard/ergodox_ez/keymaps/software_neo2/keymap_software_neo2.c new file mode 100644 index 0000000000..684ecf5e33 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/software_neo2/keymap_software_neo2.c @@ -0,0 +1,139 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_neo2.h" + +// Layer names +#define BASE 0 // default layer +#define MDIA 1 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 |BackSpce| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | X | V | L | C | W | L1 | | L1 | K | H | G | F | Q | ß | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | U | I | A | E | O |------| |------| S | N | R | T | D | Y | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Ü/Ctrl| Ö/C-S| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | Esc | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------+------+------| |------+--------+------. + * | | |NeoL2 | |NeoL2 | | | + * | Tab |Backsp|------| |------| Space |Enter | + * | |ace |NeoL1 | |NeoL1 | | | + * `--------------------' `----------------------' + */ +// 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_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, + KC_DELT, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, TG(1), + KC_CAPS, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, + KC_LSFT, CTL_T(NEO_UE), C_S_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, ALL_T(KC_NO), + DE_LESS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, + ALT_T(KC_APP),KC_LGUI, + NEO_L2_L, + KC_TAB,KC_BSPC,NEO_L1_L, + // right hand + KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(1), NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, + NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_Y, + MEH_T(KC_NO),NEO_B, NEO_M, KC_COMM, KC_DOT, NEO_J, KC_RSFT, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ESC, + KC_LALT,CTL_T(KC_ESC), + NEO_L2_R, + NEO_L1_R,KC_SPC, KC_ENT + ), +/* Keymap 1: 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 MDIA: + ergodox_right_led_2_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/wormak_osx_mdw/keymap_workman_osx_mdw.c b/keyboard/ergodox_ez/keymaps/wormak_osx_mdw/keymap_workman_osx_mdw.c new file mode 100644 index 0000000000..14bbe010d5 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/wormak_osx_mdw/keymap_workman_osx_mdw.c @@ -0,0 +1,366 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +// README +// This keyboard layout is based on the [Workman Dead layout](https://github.com/ojbucao/Workman/tree/master/mac#workman-dead-for-programmers), which uses the comma as a dead key to trigger a second layer. +// Since I have more keys at my disposal on the ErgoDox, I moved the dead key to the bottom right. There are still a lot of +// blanks so still discovering what I like. +// If you aren't familiar with a dead key, the idea is that you tap the dead key which switches the layout. the next key you hit +// triggers the key you pressed AND switches the layout back to the original. For now I do this with a super kludgey macro and I +// look forward to learning about a more elegant way to do the same thing. Until then, this will have to do. + + +// TODO: Define layer names that make sense for the ErgoDox EZ. +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define DEAD 3 // dead version of the symbols layer + +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 | D | R | W | B | L1 | | L1 | J | F | U | P | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Hyper | A | S | H | T | G |------| |------| Y | N | E | O | I | ' | + * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | M | C | V | | | | K | L | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | CTRL | OPT | CMD | | Left | Down | Up | Right| L3 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Bckspc| Space|------| |------| Space |Enter | + * | | | 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, TG(1), + ALL_T(KC_ESC), KC_A, KC_S, KC_H, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_NO, + KC_NO, KC_NO, KC_LCTL,KC_LALT,KC_LGUI, + KC_NO, KC_NO, + KC_HOME, + KC_BSPC,KC_SPC,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(1), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS, + KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, + MEH_T(KC_NO),KC_K, KC_L, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, KC_FN4, + KC_NO, KC_NO, + KC_PGUP, + KC_PGDN,KC_SPC,KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_PERC, KC_AMPR, LSFT(KC_SLSH), LSFT(KC_EQL), KC_AT, KC_TRNS, + KC_TRNS, KC_SLSH, KC_LPRN, KC_EQL, KC_0, LSFT(KC_LBRC), + KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_PIPE, 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_DLR, KC_UNDERSCORE, KC_LBRC, KC_RBRC, KC_EXLM, KC_F12, + KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, KC_QUOT, + KC_TRNS, KC_SLSH, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 +), +/* Keymap 4: Dead Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[DEAD] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, M(100), M(101), M(102), M(103), M(104), KC_TRNS, + KC_TRNS, M(109), M(110), M(111), M(112), M(113), + KC_TRNS, M(120), M(121), M(122), M(123), M(124), 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, M(105), M(106), M(107), M(108), M(130), KC_F12, + M(114), M(115), M(116), M(117), M(118), M(119), + KC_TRNS, M(125), M(126), M(127), M(128), M(129), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_ON(BASE,0), // FN2 - Go back to the base layer + [3] = ACTION_LAYER_ON(DEAD,0), + [4] = ACTION_LAYER_TOGGLE(DEAD), +}; + +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; + case 100: + layer_clear(); + return MACRODOWN(D(LSFT), T(5), U(LSFT), T(FN4), END); + break; + case 101: + layer_clear(); + return MACRODOWN(D(LSFT), T(7), U(LSFT), T(FN4), END); + break; + case 102: + layer_clear(); + return MACRODOWN(D(LSFT), T(SLSH), U(LSFT), T(FN4), END); + break; + case 103: + layer_clear(); + return MACRODOWN(D(LSFT), T(EQL), U(LSFT), T(FN4), END); + break; + case 104: + layer_clear(); + return MACRODOWN(D(LSFT), T(2), U(LSFT), T(FN4), END); + break; + case 105: + layer_clear(); + return MACRODOWN(D(LSFT), T(4), U(LSFT), T(FN4), END); + break; + case 106: + layer_clear(); + return MACRODOWN(D(LSFT), T(MINS), U(LSFT), T(FN4), END); + break; + case 107: + layer_clear(); + return MACRODOWN(T(LBRC), T(FN4), END); + break; + case 108: + layer_clear(); + return MACRODOWN(T(RBRC), T(FN4), END); + break; + case 130: + layer_clear(); + return MACRODOWN(D(LSFT), T(1), U(LSFT), T(FN4), END); + break; + case 109: + layer_clear(); + return MACRODOWN(T(SLSH), T(FN4), END); + break; + case 110: + layer_clear(); + return MACRODOWN(D(LSFT), T(9), U(LSFT), T(FN4), END); + break; + case 111: + layer_clear(); + return MACRODOWN(T(EQL), T(FN4), END); + break; + case 112: + layer_clear(); + return MACRODOWN(T(0), T(FN4), END); + break; + case 113: + layer_clear(); + return MACRODOWN(D(LSFT), T(LBRC), U(LSFT), T(FN4), END); + break; + case 114: + layer_clear(); + return MACRODOWN(D(LSFT), T(RBRC), U(LSFT), T(FN4), END); + break; + case 115: + layer_clear(); + return MACRODOWN(T(1), T(FN4), END); + break; + case 116: + layer_clear(); + return MACRODOWN(D(LSFT), T(8), U(LSFT), T(FN4), END); + break; + case 117: + layer_clear(); + return MACRODOWN(D(LSFT), T(0), U(LSFT), T(FN4), END); + break; + case 118: + layer_clear(); + return MACRODOWN(T(MINS), T(FN4), END); + break; + case 119: + layer_clear(); + return MACRODOWN(D(LSFT), T(QUOT), U(LSFT), T(FN4), END); + break; + case 120: + layer_clear(); + return MACRODOWN(T(6), T(FN4), END); + break; + case 121: + layer_clear(); + return MACRODOWN(T(7), T(FN4), END); + break; + case 122: + layer_clear(); + return MACRODOWN(T(8), T(FN4), END); + break; + case 123: + layer_clear(); + return MACRODOWN(T(9), T(FN4), END); + break; + case 124: + layer_clear(); + return MACRODOWN(D(LSFT), T(BSLS), U(LSFT), T(FN4), END); + break; + case 125: + layer_clear(); + return MACRODOWN(T(BSLS), T(FN4), END); + break; + case 126: + layer_clear(); + return MACRODOWN(T(2), T(FN4), END); + break; + case 127: + layer_clear(); + return MACRODOWN(T(3), T(FN4), END); + break; + case 128: + layer_clear(); + return MACRODOWN(T(4), T(FN4), END); + break; + case 129: + layer_clear(); + return MACRODOWN(T(5), T(FN4), END); + break; + + default: + 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