summaryrefslogtreecommitdiffstats
path: root/keyboard/ergodox_ez/keymaps/osx_de
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2016-01-23 20:33:35 -0500
committerJack Humbert <jack.humb@gmail.com>2016-01-23 20:33:35 -0500
commit544a49329cac78206c0d195f2e7bfd39db05507d (patch)
treebfcd304f7215738909e1241d73a77a426f5a195c /keyboard/ergodox_ez/keymaps/osx_de
parenta820533ab770e1919f190c102a091c1060f6302e (diff)
parente5aee62e54d0b6f02ff170f4e9bf1e738d36fb4c (diff)
Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard into smarkefile
Diffstat (limited to 'keyboard/ergodox_ez/keymaps/osx_de')
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de/keymap.c299
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex1509
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.pngbin0 -> 749565 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de/readme.md27
4 files changed, 1835 insertions, 0 deletions
diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c
new file mode 100644
index 0000000000..69acd9b951
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c
@@ -0,0 +1,299 @@
+#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 | ü |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT|
+ * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------|
+ * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |</L1| ^° |AltShf| Left | Right| | Up | Down | CMD-SHIFT | + | #/L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,---------------.
+ * | MDIA | Meh | | Hyper| NUM |
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Back-| Del |------| |------| Enter | Space|
+ * | Space| | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(M_CTRL_CMDV),
+ KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI,
+ KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G,
+ KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT,
+ LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
+ M(M_MEH_SH_ACUT), TG(2),
+ KC_HOME,
+ KC_BSPC,KC_DEL, KC_END,
+ // right hand
+ M(M_CTRL_CMDC), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS,
+ KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UE,
+ DE_H, DE_J, DE_K, DE_L, DE_OE, ALT_T(DE_AE),
+ KC_RALT, DE_N, DE_M, DE_COMM,DE_DOT, CTL_T(DE_MINS), KC_RSFT,
+ KC_UP, KC_DOWN,LGUI(KC_LSFT),DE_PLUS, LT(SYMB,DE_HASH),
+ TG(4), ALL_T(DE_ACUT),
+ KC_PGUP,
+ KC_PGDN,KC_ENT, KC_SPC
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | < | > | ! | ? | | | | | \ | [ | ] | | | # | 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
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | Mute | | | | | | Play |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | Lclk | MsUp | Rclk | WlUp | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| WlDw |------| |------|VolUp | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | MClk | | | |VolDn | | Prev | Next | Up | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | Left | Down | Right |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
+ KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, 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_MUTE, 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_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+// ADNW-KOY layer
+/* 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.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | K | . | O | , | Y | | | | V | G | C | L | ß | Z |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | H | A | E | I | U |------| |------| D | T | R | N | S | F/L2 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M |J/Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |</L1| ^ |AltShf| Left | Right| | Up | Down | CMD-SHIFT | ´ | //L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+--------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `----------------------'
+ */
+KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_TRNS,
+ KC_TRNS, KC_H, KC_A, KC_E, KC_I, KC_U,
+ KC_TRNS, CTL_T(KC_X),KC_Q, DE_AE, DE_UE, DE_OE, 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_SLSH,
+ KC_TRNS, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y,
+ KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F),
+ KC_TRNS, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ 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/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex
new file mode 100644
index 0000000000..2c83055b0d
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex
@@ -0,0 +1,1509 @@
+:100000000C94CA070C940E080C940E080C940E085D
+:100010000C940E080C940E080C940E080C940E0808
+:100020000C940E080C940E080C9488130C945A141B
+:100030000C940E080C940E080C940E080C940E08E8
+:100040000C940E080C94322D0C940E080C940E088F
+:100050000C940E080C942A230C940E080C940E0891
+:100060000C940E080C940E080C940E080C940E08B8
+:100070000C940E080C940E080C940E080C940E08A8
+:100080000C940E080C940E080C940E080C940E0898
+:100090000C940E080C940E080C940E080C940E0888
+:1000A0000C940E080C940E080C940E08C714E91456
+:1000B000D715E914D7152E155115D715A615B9154D
+:1000C000001900192F192F197319B119CB1BCB1B4C
+:1000D000CA19CB1BCB1ACB1A9F1BCB1BCB1BB61B36
+:1000E00002E002E2012E022E02E10002E002E10241
+:1000F000E20001E001E101E20002E001E3010602A9
+:100100000602E30002E00001E00002E001E3011961
+:10011000021902E30002E00001E0000000F0A1F09B
+:10012000A329002B00E200E100358100001E00142D
+:100130000004001D7135004D001F001A0016001B41
+:1001400000E1044C00200008000700060050002ACF
+:100150000021001500090019004F004A0022001775
+:10016000000A000500000003300130E3000000E257
+:1001700000000002540230E7000000E60000000426
+:100180005423001C000B00110000002E7F240018D7
+:10019000000D00100052004B0025000C000E003630
+:1001A0000051002C00260012000F003700E1082843
+:1001B00000270013003300387130004E002D002F4F
+:1001C000003474E5003181000001000100010001EC
+:1001D00000010000003A003500310001000100017B
+:1001E000003B0035022102350001004C003C001E9E
+:1001F0000224062202010001003D002D02240224F7
+:1002000004010001003E000100370011040000015C
+:1002100000010001000000010000000100010001D8
+:100220000000000100000001003F0024062402231A
+:1002300002000001004000220425023500010001F7
+:100240000041002304260235023700010042002449
+:100250000425041F021E0201004300310026043160
+:1002600002010001004400450001002D02010000D0
+:100270000001000100010001000100000001000177
+:100280000001000100010001000100F400F200FB88
+:1002900000010001000100F000F100FA000100017E
+:1002A000000100F500F300FC00010001000100F96D
+:1002B00000FA00F60000000100010001000000014A
+:1002C0000000000100A80001000000010000000182
+:1002D0000001000100A900AA0000000100010001C6
+:1002E000000100010001000100010001000100AC5B
+:1002F000000100B600010001000100AB0050000148
+:1003000000010001000100520051000100AE000197
+:1003100000010001004F0000000100010001000188
+:10032000000100000001000E000B001B7101000124
+:100330000001003700040014000100010001001258
+:10034000000800340001000100010036000C002FFD
+:10035000000100010001001D001800330000000131
+:100360000001000100000001000000010001000187
+:100370000000000100000001000100190007000555
+:10038000000000010001000A001700130001000135
+:10039000000100060015001A000100010001000F15
+:1003A00000110010000100010001002D0016000DD9
+:1003B000710100010038001C0009820100010000E9
+: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
+:101F40000C941C